本文旨在提炼paragraph2vector的核心思想与方法,并尝试在代码层面进行应用。如有错漏,请不吝赐教。
任务梗概
向量化处理文本,往往是对文本应用机器学习算法的第一步。从2013年word2vector算法出现以来,许多研究者就开始尝试使用神经网络算法探寻文本表示。在句子,或更长一点的文本层面,有两种文本向量转化方式。一种是对句子中每个词的word2vector表示向量进行加权相加,另一种是通过构造句子的语法分析树来组合词向量并构成句子向量。前者丢失了词间的偏序。后者将方法应用限定在了句子层面,无法将应用扩展至多句文本。基于这样的研究现状,作者给出了无监督的针对句子、段落、甚至是长文档的向量化文本表示方法。
核心方法
Learning Vector Representation of Words
首先介绍word2vec训练词汇向量的基本思路框架。Distributed Memory version of Paragraph Vector (PV-DM)
这个方法基本承袭了word2vec的思路:通过单层神经网络建立词语的预测模型,在此过程中得到副产物,即文本的向量化表达。不同之处仅在于,网络的输入中添加了当前上下文paragraph的表示矩阵D。其中,D对于paragraph的表示在同一段落中相同,而w的表示则是在所有段落中都保持一致(?什么作用)。网络的训练方式采用随机梯度下降反向传播。而当需要给出新来paragraph的向量化表示时,词的向量化表示与神经网络参数都已确定。
算法大致过程如下。假设知识库中有N个段落,M个单词。我们需要得到段落的p维表示和词语的q维表示。那么就向量层面我们有N*p+M*q个参数。第一步,我们训练得到单层神经网络参数,已知词语和段落的向量化表示。第二步,对于新来段落,在表示矩阵D中添加向量列,并在已知神经网络上采用梯度下降法进行优化。
- Distributed Bag of Words version of Paragraph Vector (PV-DBOW)
这个方法是采用段落矩阵来预测段落中一个固定大小窗口中随机的一个词语(???)。
实验过程中,文章结合两种方法产生的段落向量进行测试。
实验结果
文章通过对标准数据集中的段落进行情感分析和信息检索来比较这种向量化方法相对于其它基准方法的优劣性。结果显示paragraph2vec显著优于词袋等一众模型。