您的位置:首页 > 其它

NLP深度学习 —— CS224学习笔记3

2017-08-22 21:11 447 查看
四、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



可以看出对常见词的提升较少而对罕见词提升概率较大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NLP 笔记