word2vec 笔记


word2vec 中的数据原理详解

思维导图

首先明确这些模型的作用:通过自监督判别任务,训练有语义结构的词向量。

这里的的有语义结构的意思是相类似的词需要有较相近的词向量。

基于 Hierarchical softmax 的模型

image-20251213161215776

CBOW 模型是根据上下文的单词来预测中心词的概率

Ship-gram 模型是根据中心词预测上下文词汇出现的概率

CBOW 模型

image-20251213161718387

对于模型的讲解原文章以及写的很好了,这里仅仅做问题补充。

1.首先回答原文章留出的思考题:

image-20251213161841282

答案是也满足归一化操作,为什么呢?

因为对每一个节点都是进行的 sigmod 操作,那么对于每一个非叶节点,左子节点的概率和右子节点的概率和一定是为 1 的。这样的话可以看作将一块饼分成很多块,每一次都是在上一次分完的基础上进行再分,所以无论怎么分割,最终饼的总和是不变的,始终为 1

image-20251213162855871

上面是一个具体的例子。对于一个上下文 w,所有可能的中心词的概率之和一定为 1,即所有叶子节点的输出结果之和一定为 1.

2.CBOW 模型会不会训练中心词的词向量呢?

从单词训练来说的话,并不会训练中心词的词向量,因为模型的输入是上下文的词向量,其中不包含中心词的词向量,所以不会更新中心词的词向量。

但是从多次训练来看的话,本轮的词向量肯定也会当作上下文词向量作为输入,从而进行训练。

3.Hierarchical softmax 有使用 softmax 吗?

虽然 Hierarchical Softmax 名字中带有 softmax,实际计算中只使用 sigmoid 进行一系列二分类(Bernoulli)预测; 这些 Bernoulli 概率在树结构中被组合,从而等价地定义了一个 Multinomial Logistic(softmax)形式的条件概率分布。

Skip-gram

skip-gram 是根据中心词预测上下文出现的概率,优化的目标也是使正确的上下文出现的概率最大化。

image-20251213164752869

4.为什么模型训练出来的词向量会有语义结构呢?

使用 skip-gram 模型可以很容易的解释这个问题。假如有两个相似的词:“小狗”和“小猫”。那么这两个词的上下文肯定很相似,那么 skip-gram 模型的输出肯定也很相似。当训练好的模型的输出的结果很相似的时候,很大概率可以保证这两个词的词向量相似度很高,从而保证了训练出来的词向量有语义结构。

Negtative Sample 模型

NEG 的目的是用来提高训练速度和改善所得词向量质量的

现在考虑根据上下文预测中心词,如果需要预测所有字典中的词向量的概率,这个计算量是特别大的,所以这个时候使用 Sample,采样部分的负样本,然后加上正确的样本,然后使模型输出的正确的中心词概率最大,错误的中心词概率最小即可,这部分原文章论述的很详细,此处不再过多赘述。

5.对于同样的上下文,如何区分计算的不同的中心词的概率

negtative sample 模型是输出层没有 huffman 树,而是使用二分类器进行替代,输入为上下文变量为 X,中心词 u,输出为在这个上下文中出现中心词的概率。对不同的中心词就能获得不同的概率