四、3、 Skip-Gram 模型
另一种方法是得到中间的词,然后由模型来预测或生成周边的词。这种模型被成为Skip-Gram模型。
设置与此前的CBOW大致相同,只是调换了x和y的顺序。
具体可以分解成6步:
1)生成one hot 向量 x
2)得到语境的嵌入词向量
3)将
4)生成2m得分向量使用
5)将每个得分转换成概率y=softmax(u)
6)期望生成的概率与真实概率相符
如同CBOW,我们需要生成一个目标函数来评估模型。一个重要的不同点是我们使用简单贝叶斯假设来分解概率,即高度条件独立假设,给定词与周边词完全无关。
最小化
有了这个目标函数,可以计算未知参数的梯度,然后通过随机梯度下降在每次迭代时更新。
4、负抽样
目标函数中对于|V|的计算量是非常巨大的。
任何更新或对目标函数的评估需要O(|V|)时间,所以我们考虑是否可用近似的方法来降低成本。
对每步训练,我们仅采几个负样本,而不遍历所有词汇。
我们从干扰分布(Pn(w))中取样,该概率与词频排序相配。
我们需要更新目标函数,梯度,更新规则。
虽然负取样基于Skip-Gram模型,但事实优化不同目标。
考虑一组词和语境(w,c),如果它来自语料集概率记作P(D=1|w,c),否则P(D=0|w,c).
首先用sigmoid函数为第一种情况建模
现在我们构建一个新的目标函数并试图最大化相符的概率。
我们采用简单最大似然的方法,这里我们使用theta作为参数,在我么例子中应是V和U。
新的目标函数为
上述取样自Pn(w)。有很多关于Pn(w)的讨论,但最有效的是在Unigram模型中设置成3/4
可以看出对常见词的提升较少而对罕见词提升概率较大。