Skip-Gram模型
根据中心词,预测或生成它的上下文单词。
比如,根据jumped,预测或生成{“the”,“cat”,“over”,“the”,“puddle”}。
显然,交换CBOW模型的x和y,Skip-Gram模型的输入是中心词的one-hot向量x,定义输出为 。词向量矩阵V和U和CBOW模型相同。它的模型训练同样有以下6步:
1,生成以one-hot向量表示,中心词c的词向量x;
2,初始化矩阵V,生成模型的输入词向量 ;
3,因为输入只有1个中心词,无需均值化,即 ;
4,初始化矩阵U,类比 ,生成2m个得分向量 :
;
5,使用softmax将每个得分向量都转换为概率: ;
6,最小化softmax概率和真实 间的损失函数;
值得注意的是,Skip-Gram的目标函数需要建立在朴素贝叶斯的条件概率独立的假设上,即,除了中心词,所有的上下文词都相互独立。
Skip-Gram的目标函数
负采样
上述损失函数的|V|极大,任何一步的迭代和更新都会花费O(|V|)时间,一个直观的优化,就是去近似迭代它。
对每一次迭代,我们并不会遍历整个词库,而只是选取几个反例而已。具体而言,我们从一个噪音分布 中随机选择反例样本,其概率通常设定为语料库各词频的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, ) =
,
是模型未知参数的同时,也是我们前文提到的V和U。定义,
表示“错误”或“负”的语料组合,比如“stock boil fish is toy”等,它是按P_n(w)采样出的K个错误表达。因此,具体的目标函数如下:
基于负采样的Skip-Gram目标函数