词向量表达

word2vec就是将单词嵌入到向量空间中。
独热表达: 每一个单词用不同的ID进行表示,因此可以表示为其中一个维度为1,其他全0的向量。例如:
科学院:[1,0,0] 中科院:[0,1,0] 数据挖掘:[0,0,1]
Word2Vec的原理与实现
此种方法相当于将单词看成无语义的ID。在向量空间中考虑,此时单词之间相似性程度一样,不能体现出单词间的语义关系。
分布式表达
每一个单词表示为一般的向量,可以建模单词之间的语义关系。
例如:科学院:[1.0,0.5,0] 中科院:[0.5,1.0,0] 数据挖掘:[0,0.1,1.0]
Word2Vec的原理与实现

word2vec

利用简单的浅层神经网络模型从海量的文档中学习词向量。
其两种变体分别为:连续词袋模型(CBOW)Skip-Gram模型。从算法角度看,这两种方法非常相似,其区别为CBOW根据源词上下文词汇(‘the cat sits on the’)来预测目标词汇(例如,‘mat’),而Skip-Gram模型做法相反,它通过目标词汇来预测源词汇。Skip-Gram模型采取CBOW的逆过程的动机在于:CBOW算法对于很多分布式信息进行了平滑处理(例如将一整段上下文信息视为一个单一观察量)。很多情况下,对于小型的数据集,这一处理是有帮助的。相形之下,Skip-Gram模型将每个“上下文-目标词汇”的组合视为一个新观察量,这种做法在大型数据集中会更为有效。
例如具有如下的数据集:

the quick brown fox jumped over the lazy dog

目标单词的左右单词视作一个上下文, 使用大小为1的窗口,这样就得到这样一个由(上下文, 目标单词) 组成的数据集:

([the, brown], quick), ([quick, fox], brown), ([brown, jumped], fox),...

Skip-Gram模型是把目标单词和上下文颠倒过来,所以在这个问题中,举个例子,就是用’quick’来预测 ‘the’ 和 ‘brown’ ,用 ‘brown’ 预测 ‘quick’ 和 ‘brown’ 。因此这个数据集就变成由(输入, 输出)组成的:

(quick, the), (quick, brown), (brown, quick), (brown, fox), ...

skip-gram
根据当前单词wtw_{t}预测上下文单词wt+j,cjcj0w_{t+j},-c\leq j\leq c ,j\neq 0
Word2Vec的原理与实现
此时最大化似然,给定当前单词情况下,最大化相邻单词出现的概率。
L=t=1Tcjcj0logp(wt+jwt)p(wt+jwt)=exp(wtTwt+j)v=1Vexp(wtTwv)L=\sum_{t=1}^{T}\sum_{-c\leq j\leq c ,j\neq 0}\log p(w_{t+j}|w_{t})\\ p(w_{t+j}|w_{t})=\frac{\exp{(w_{t}^{T} w_{t+j})}}{\sum_{v=1}^{V}\exp{(w_{t}^{T} w_{v})}}
在这里,概率值正比于单词向量的余弦相似性
CBOW
根据上下文单词wt+j,cjcj0w_{t+j},-c\leq j\leq c ,j\neq 0预测单词wtw_{t}
Word2Vec的原理与实现

相关文章:

  • 2022-02-01
  • 2021-08-29
  • 2021-07-15
  • 2022-01-10
  • 2021-09-02
  • 2021-11-20
猜你喜欢
  • 2021-04-15
  • 2021-10-19
  • 2022-12-23
  • 2021-07-16
  • 2021-04-22
  • 2021-06-13
  • 2021-10-10
相关资源
相似解决方案