Word2Vec------skip-gram、CBOW、负采样、的一些理解

1.Window based Co-occurrence Matrix

简单来说就是统计语料库中,在确定window长度的情况下,统计word的出现频率,基于词频得到关联矩阵,例如:
Word2Vec------skip-gram、CBOW、负采样、的一些理解_第1张图片
然后,利用SVD奇异值分解,变成K维,每一row就刚好是每个词word embedding的大小。但是这种方法有很多缺点,纬度高、矩阵稀疏、cost较大等。

2. continuous bag-of-words (CBOW)

基于周围的context去计算中心词。
Word2Vec------skip-gram、CBOW、负采样、的一些理解_第2张图片
(1)定义好windows(可以简单理解成一句fixed length的句子)的大小(假定为m)之后,我们轮流把一个window中的一个word当作中心词,然后把其它词用one-hot(词汇大小为V)的方法表示出来,作为input vector,维度是(nV),定义一个V’'维度为(V1);n是嵌入的维度
(2)把input vector中的每一个向量都和V’‘点积,则得到embedded word vector;并求得平均值为u
(3)得到一个score vector Z = U’‘和u点积,U’’(V*n),点积的值越大,相似度就越高。
(4)把这个用softmax的方式表示,计算这个概率和真实概率分布的交叉熵,最小化这个交叉熵即可。

3. skip-gram

基于中心词去计算周围的context。
Word2Vec------skip-gram、CBOW、负采样、的一些理解_第3张图片
(4)Negative Sampling
每次更新后的evaluation of the objective function,都会比较cost,所以采用一种近视的方法。For every training step, instead of looping over the entire vocabulary, we can just sample several negative examples!
Let’s denote by P(D = 1jw, c) the probability that (w, c) came from the corpus data. Correspondingly, P(D = 0jw, c) will be the probability that (w, c) did not come from the corpus data. 所以使用sigmoid 函数
Word2Vec------skip-gram、CBOW、负采样、的一些理解_第4张图片
(5)Hierarchical Softmax
采用霍夫曼树的方法,减少计算复杂度;我们把高频出现的word放在树的root旁边,低频的放在更小的子节点上。

一些简单的理解,欢迎指正!

参考:https://myndbook.com/view/4900

你可能感兴趣的:(学习心得,Word2vec)