Skip-Gram模型

根据中心词,预测或生成它的上下文单词。

比如,根据jumped,预测或生成{“the”,“cat”,“over”,“the”,“puddle”}。

显然,交换CBOW模型的x和y,Skip-Gram模型的输入是中心词的one-hot向量x,定义输出为 Skip-Gram模型和负采样 。词向量矩阵V和U和CBOW模型相同。它的模型训练同样有以下6步:

1,生成以one-hot向量表示,中心词c的词向量x;

2,初始化矩阵V,生成模型的输入词向量 Skip-Gram模型和负采样 ;

3,因为输入只有1个中心词,无需均值化,即 Skip-Gram模型和负采样 ;

4,初始化矩阵U,类比 Skip-Gram模型和负采样 ,生成2m个得分向量 :Skip-Gram模型和负采样 ;

5,使用softmax将每个得分向量都转换为概率: Skip-Gram模型和负采样 ;

6,最小化softmax概率和真实 Skip-Gram模型和负采样 间的损失函数;

值得注意的是,Skip-Gram的目标函数需要建立在朴素贝叶斯的条件概率独立的假设上,即,除了中心词,所有的上下文词都相互独立。

Skip-Gram模型和负采样

Skip-Gram的目标函数

负采样

上述损失函数的|V|极大,任何一步的迭代和更新都会花费O(|V|)时间,一个直观的优化,就是去近似迭代它。

对每一次迭代,我们并不会遍历整个词库,而只是选取几个反例而已。具体而言,我们从一个噪音分布 Skip-Gram模型和负采样 中随机选择反例样本,其概率通常设定为语料库各词频的3/4次幂,我们将它称作负采样。假设,is在语料库的词频是0.9,Constitution是0.09,bombastic是0.01,其各自的3/4次幂分别是0.92,0.16和0.032。因此,使用3/4次幂负采样到bombastic的概率相比之前增大3倍。即,相对而言,低频词更容易被采样到。

基于负采样的Skip-Gram模型的优化目标和常规Skip-Gram不同。考虑一对中心词和上下文(w,c),P(D=1|w,c)表示(w,c)出自训练语料集的概率,P(D=0|w,c)则表示(w,c)不在训练语料集中的概率。因此,我们的目标函数就变成,当(w,c)确实在语料集中时,最大化P(D=1|w,c),但当(w,c)不在语料中时,最大化P(D=0|w,c)即可。在这种场景下我们选用最大似然函数的求解目标函数。

我们使用sigmoid函数对P(D=1|w,c)建模,即,

P(D=1|w,c, Skip-Gram模型和负采样 ) = Skip-Gram模型和负采样 ,

 Skip-Gram模型和负采样 是模型未知参数的同时,也是我们前文提到的V和U。定义, Skip-Gram模型和负采样 表示“错误”或“负”的语料组合,比如“stock boil fish is toy”等,它是按P_n(w)采样出的K个错误表达。因此,具体的目标函数如下:

Skip-Gram模型和负采样

基于负采样的Skip-Gram目标函数

相关文章: