Advertisement

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

阅读量:

对CBOW模型和Skip-gram模型的阐述。在介绍之前,请先了解Mikolov在其另一篇论文中所提出的CBOW模型与Skip-gram模型。

这里写图片描述

CBOW模型可被看作是一个三层结构:
输入层(input):输入为Context(w),它表示单词w在其语境中的上下文关系。通过设置窗口大小为2C的方式可以限定上下文范围。
投影层(projection):该层是对输入的2C个词向量进行求和运算处理。
输出层(output):与早期的概率语言模型不同的是其架构设计采用了一棵二叉树(binary tree)结构。具体而言是以语料库中出现过的每个单词作为端节点(共有|V|个节点其中V代表语料库中的单词总数)。根据单词出现频率构建的哈夫曼树(Huffman tree)。对于给定上下文Context(w)的目标词w它在输出层哈夫曼编码中的位置是唯一确定的(可以通过Huffman编码路径唯一确定)。从根节点到目标词所在的叶子节点路径上的每一个分支都可以看作一个二分类过程(分类结果0/1分别对应不同的概率值)。因此目标词w的概率P(w|Context(w))可以通过将根节点到叶子节点上各分支概率相乘得到。模型旨在最大化这一概率值

这里写图片描述

因为直接计算概率的连乘及其偏导数较为繁琐, 所以通常采用取对数的方式简化运算。
总结而言, CBOW 模型通过输入上下文 Context(w) 来预测目标词 w。
相比之下, Skip-gram 模型与 CBOW 模型存在明显的反向关系: 即使从结构上讲, Skip-gram 模型也可以被视作一个三层神经网络架构:
输入层(input): 接收单个单词 w 作为输入。
投影层(projection): 这一层并没有实际的功能作用。
输出层(output): 和 CBOW 模型一致, 输出层同样是 Haffman 树结构, 通过将上下文中的 2C 个单词的概率进行连乘即可得到 P(Context(w)|w), 最终模型旨在最大化这一概率值

这里写图片描述

需要注意的是,在这里Paragraph Vector并不是真正的段落向量。它可以根据不同的需求进行调整,并且既可以表示短语、句子也可以代表整个文档。在文章中作者同样提出了2个模型:

这里写图片描述

这两个模型也可称为PV-DM(Paragraph Vector的分布式内存版本)和PV-DBOW(Paragraph Vector的分布式袋词版本)。
对于PV-DM与CBOW而言,在PV-DM中新增了一个Paragraph id用于表征输入上下文所在的段落。例如,在训练得到句子向量时,该Paragraph id即基于语料库中各个独立句子的向量表示。需要注意的是,在同一个段落内进行滑动窗口操作时,Paragraph id保持不变。
作者指出,在完成训练后遇到未曾见过的新段落时,则可通过仅更新矩阵D的方式计算该段落id的方法(固定其他参数)。当算法收敛后即可获得该段落对应的id表示。
个人认为,在一定程度上考虑了单词间的顺序关系但并不充分的是PV-DM模型。
而针对PV-DBOW模型,则是通过一个固定的Paragraph id来预测其中单词的概率分布,并不复杂也不再赘述。

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

全部评论 (0)

还没有任何评论哟~