[NLP论文阅读]Distributed Representations of Sentences and Documents

1.对CBOW模型和Skip-gram模型的介绍
首先,需要先介绍一下Mikolov另一篇文章中提出的CBOW模型和Skip-gram模型。
[NLP论文阅读]Distributed Representations of Sentences and Documents_第1张图片
CBOW模型可以看做是一个三层结构:
输入层(input):输入为Context(w),Context(w)表示单词w的上下文,模型中采用了窗口的方式来对上下文进行限制。例如,确定上下文窗口的大小为2C,那么Context(w)就是语料库中单词w的前后各C个单词。
投影层(projection):该层是对输入的2C个单词的词向量进行累加(sum)。
输出层(output):该层的构造和早期的神经概率语言模型不同,它的结构是一棵二叉树。具体来说,它是以语料库中出现过的单词作为叶子节点(所以共有|V|个节点,V为语料库的单词表),以单词出现的次数(词频)作为权重构造出的Huffman树。那么对于输入的上下文Context(w)的目标词w,w在输出层的Huffman中的位置是唯一确定的(可以通过Huffman编码确定),从根节点到达w所在的叶子节点的路径上的每一个节点都可以看做是一个二分类过程(分类结果0,1分别对应着不同的概率),进而w的概率P(w|Context(w))也可以通过将根节点到w所在叶子节点上每个概率连乘计算得到。模型希望最大化这里写图片描述,因为直接求概率连乘求偏导很麻烦,所以一般都采用取对数的方式。
总结来说,CBOW模型就是通过输入上下文Context(w)来预测目标词w。
Skip-gram模型和CBOW模型正好相反,Skip-gram模型希望通过输入一个单词w,来预测单词w的上下文Context(w),为了和CBOW模型对比着看,也可以强行把Skip-gram模型看成是一个三层结构:
输出层(input):输入为单词w。
投影层(projection):感觉多余,什么都不干。
输出层(output):和CBOW模型一样,也是一棵Huffman树,P(Context(w)|w)可以通过将上下文共2C个单词的概率连乘得到,最后模型希望最大化这里写图片描述

2.Paragraph Vector
需要说明的一点是这里的Paragraph Vector不是真的段落向量的意思,它可以根据需要的不同进行变化,可以是短语、句子甚至是文档。
在文章中作者同样提出了2个模型:
[NLP论文阅读]Distributed Representations of Sentences and Documents_第2张图片
这两个模型和word2vec中的模型应该说非常的相似,分别被称为PV-DM(Distributed Memory version of Paragraph Vector)和PV-DBOW(Distributed Bag of Words version of Paragraph Vector)。
对于PV-DM和CBOW,PV-DM在模型的输入层新增了一个Paragraph id,用于表征输入上下文所在的Paragraph。例如如果需要训练得到句子向量,那么Paragraph id即为语料库中的每个句子的表示。Paragraph id其实也是一个向量,具有和词向量一样的维度,但是它们来自不同的向量空间,D和W,也就是来自于两个不同的矩阵。剩下的思路和CBOW模型基本一样。在模型中值得注意的一点是,在同一个Paragraph中,进行窗口滑动时,Paragraph id是不变的。
作者在文中还提到,当模型训练完毕后,如果出现了一个之前没有见到过的Paragraph,那么得到该Paragraph的id的方式是,固定模型中矩阵D之外的所有参数,只对矩阵D进行梯度下降来更新模型。当算法收敛后,该Paragraph的id也就得到了。
个人感觉,PV-DM模型由于加入了Paragraph id确实在一定程度上考虑了单词之间的顺序,但不是很充分。
对于PV-DBOW模型,该模型希望通过输入一个Paragraph id来预测该Paragraph中的单词的概率,和Skip-gram模型非常的类似,就不在多说了。

可能讲的不是很清楚,欢迎讨论。

你可能感兴趣的:(paper阅读,nlp,阅读)