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
可以看出对常见词的提升较少而对罕见词提升概率较大。
另一种方法是得到中间的词,然后由模型来预测或生成周边的词。这种模型被成为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深度学习 —— CS224学习笔记 1
- NLP深度学习 —— CS224学习笔记8
- NLP深度学习 —— CS224学习笔记2
- NLP深度学习 —— CS224学习笔记6
- NLP深度学习 —— CS224学习笔记12
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-2)-- NLP和词嵌入
- Attention and Memory in Deep Learning and NLP(深度学习和NLP中的注意和记忆机制) 阅读笔记
- 深度学习笔记——理论与推导之Structured Learning【NLP】(十二)
- 24.Oracle深度学习笔记——使用存储提纲
- NLP深度学习 —— CS 224学习笔记 11
- Stanford深度学习与自然语言处理讲义下载(CS224)
- 【深度学习】【caffe实用工具2】笔记24 Windows下【Caffe实用工具】之【计算图像均值】compute_image_mean的用法
- Unity Shader 学习笔记(24) 深度纹理、法线纹理
- CS224n 笔记1-自然语言处理与深度学习简介
- [NLP]CS224n学习笔记一:NLP介绍
- 24.Oracle深度学习笔记——使用存储提纲
- C++学习笔记24,方法重写与方法隐藏
- Deep Learning(深度学习)学习笔记整理系列之(三)
- 深度学习所需的python-学习笔记6
- 深度学习入门课程笔记 神经网络