Word2vec tutorial-the skip gram1.总述:创建一个简单的神经网络,一个输入层,一个隐藏层,一个输出层,我们只需要得到有效的隐藏层的权重即可。2.构建数据:使用word pairs作为一个训练组(w1,w2)输入一个单词,输出其上下文单词。3.训练:输入w1的one-hot表示,输出所有词的概率分布(通过softmax得到),取 概率最大的那个词w*作为神经网络的输出词。
4.获取词向量:Hidden layer weight matrix即为词向量注意:神经网络不考虑输出词相对于输出词的位置信息相似上下文的单词,其词向量也会相似。5.分布式方法的限制:5.1相似性的定义;不同语境下其效果会变差,即相似性并不只局限于其上下文的相似性,分布式的假设并没有那么的 鲁棒。5.2害群之马;许多词的“琐碎”属性不会反映在文本中5.3反义词;基于分布式的假设的模型趋向于认为反义词之间非常的相似5.4语料库的偏好;5.5语境缺乏;词的含义依赖于上下文(语境),对于所有的形式都是用统一个向量是有问题的。Word2Vec Tutorial Part 2 - Negative Sampling1.问题:对于拥有10000个不重复单词,每个单词300维的特征,其weight的个数为300million,如此多的数量,作梯度下降必然十分的slow.2.词向量训练的优化方式:2.1把具有普遍意义的词组作为一个单词例如:Boston Globe 比单个的Boston和Globe更有意义在组成phrase之前,每对单词出现在训练文本的次数,都将决定是否组成phrase2.2Subsampling Frequent Words对频繁的单词进行子采样比如(fox,the),这个pairs对fox的含义并没有太大的贡献,同时由于the出现的太频繁,含有the的pairs的训练对于the的词向量的贡献已经过饱和了。故在训练时,根据这个单词出现的频率决定其在训练时被删除的概率。词的保留概率公式如下:x->词频,公式的结果表示其保留的概率。即word的词频越大,其保留的概率越低。2.3negative sampling训练时,由于在一次bp中需要对所有的参数求梯度,故速度太慢,所以每次只对部分的weight求导,更新部分Weight(对本应输出1的神经元(‘positive’)和其他n个本应输出0的神经元(‘negative’)),出现频率越高的词其越有可能被选作为negative samples如何选择negative sample?构建一个长度为n的table,根据每个单词的出现频率P(w)(f(wi)为word count),计算一个单词填充该单词的index多少次:n*P(w),从中选择单词的在table中的index,其表示的word即为negative sample.Reference:[1]http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/[2]http://mccormickml.com/2017/01/11/word2vec-tutorial-part-2-negative-sampling/[3]《Neural Network Methods in Natural Language Processing》chapter 10
|
Word2vec tutorial-the skip gram &Word2Vec Tutorial Part 2 - Negative Sampling 文章讲解
最新推荐文章于 2020-12-11 11:54:54 发布