Word2vec 句向量模型PV-DM与PV-DBOW原论文翻译

翻译 2015年12月21日 02:29:46

原文:LE, Quoc V.; MIKOLOV, Tomas. Distributed representations of sentences and documents. arXiv preprint arXiv:1405.4053, 2014.

这篇论文提出了一个使用Word2vec的原理创建句子的特征向量的方法,阅读需要先掌握Word2vec的相关知识,这里推荐一篇博文《Word2vec 中的数学原理详解》,这篇博文中有非常详细的关于Word2vec的介绍,对作者表示感谢。我首先翻译这篇论文的两个核心章节2.2和2.3,这两个章节讲述了算法的PV-DM版本与PV-DBOW的核心理论,后续会陆续补充注解和其它相关章节。有认识不到位的地方,请各位朋友帮助指正。

2.2 句向量:一个分布记忆模型

在我们的句(Paragraph)向量模型中,每一个句子都被映射成一个独立的向量,这个句向量作为矩阵 D 的一列;同时,每一个词也被映射成一个独立的向量,这个词向量作为矩阵 W 的一列。对这个句向量和这些词向量求平均或者首尾相连,用来预测文本中的下一个词。在本研究的试验中,我们选用首尾相连来组合这些矩阵。
严格的说,与公式1(Word2vec的公式)相比,唯一的不同点在于这里从 WD 两个矩阵中构造 h
句子的标识(Token)被当做另外一个“词”看待。它扮演一个“Memory”的角色,用来记忆当前文本或文章主题中漏掉了什么。因此,我们把这个模型称为“句向量的分布记忆模型”(PV-DM: Distributed Memory Model of Paragraph Vectors)。
上下文是固定长度的,从句子的一个滑动窗口中取样。句向量被限制在一个句子的所有上下文里面,但不超越句子。但是词向量矩阵 W 是超越句子的。比如说,”powerful”的词向量也对所有的句子有效。
我们通过随机梯度下降法来训练这些句向量和词向量,在此过程中通过反向传播获得梯度。在随机梯度下降的每一步,都可以从一个随机的句子中抽取一个定长的上下文,如图2从网络中计算出梯度误差,然后更新模型的参数。
在预测阶段,需要执行一个“推断(inference)”步骤计算新句子的句向量。他也是通过梯度上升来获取。在这个阶段,其余的模型参数、词向量矩阵 W 和 softmax 权重是固定的。
假设语料库中有 N 个句子,字典里有 M 个词汇;我们试图将每一个句子映射到 p 维空间,每一个词映射到 q 维空间,于是这个模型就有总共 N×p+M×q 个参数(包括softmax参数)。即使句子的数量会随着 N 的增大而增大,训练中的更新还是稀疏且高效。


图2:这是一个句向量框架。这个框架类似于图1中的框架。唯一不同点在于增加了一个句子标识(Token),这个标识被映射到矩阵 D 的一个向量里。在这个模型里,通过对上下文三个词向量的首尾相接或求均值,来预测第四个词。这个句向量表示从当前上下文而来的缺失的信息,被当做一个关于句子主题的存储器。

经过训练,这些句向量就可以当做句子的特征使用。我们可以把这些特征直接用于传统的机器学习技术,比如逻辑回归、支持向量机或者K-means聚类。
总而言之,这个算法有两个关键阶段:1)通过训练获得词向量矩阵 W, softmax权重 U, b 以及 句向量 D 从已知的句子里;2)第二个阶段是推断阶段,用于取得一个新句子(没有出现过)的句向量 D,通过增加更多的列在矩阵 D 里,并保持 W, U, b 不变的情况下在矩阵 D 上进行梯度下降。我们使用 D 通过一个基础的分类器给句子加上标签。
句向量的优点: 句向量的一个重要的优点在于,它的训练集是没有被加上标签的数据,因此它可以被用于一些训练样本标签不足的任务。
句向量也解决了词袋模型的一些关键的弱点。第一,它传承了词向量的一个重要特性——词和词之间的语义。在语义里,“强有力”比起“巴黎”来说,和“强壮”更接近。句向量的第二个优点在于它考虑到了“词序(word order)”,n-gram模型则需要设置一个较大的n才能做到。这一点很重要,因为n-gram模型保存了句子中大量的信息,包括词序。也就是说,我们的模型优于词袋n-gram模型因为后者会表现出一个极高的维度,这会影响效率。

2.3 无词序句向量:分布词袋模型

上面的方法讨论了在一个文本窗口内,通过句向量和词向量的首尾相接来预测下一个词。另一种方法不把上下文中的词作为输入,而是强制这个模型在输出中从句子中随机抽取词汇来进行预测。实际上,其意义在于在每一个随机梯度下降的循环中,我们抽取一个文本窗口,然后从这个文本窗口中抽取一个词,然后通过一个分类任务得到句向量。这项技术如图3所示。我们把这个版本称为句向量的分布词袋(PV-DBOW: Distributed Bag of Words version of Paragraph Vector)版本,相比于上一节提到的PV-DM版本。


图3:句向量的分布词袋版本。在这个版本中,句向量被训练出来,用来预测在一个小窗口中的词汇。

除了在概念上简单以外,这个模型只需要存储少量的数据。相比于上一个模型需要存储softmax权重和词向量,这个模型只需要存储softmax权重。同样的,这个模型也近似于Skip-gram模型。
在我们的试验中,每一个句向量都是两个向量的组合:一个通过PV-DM训练,另一个通过PV-DBOW训练。PV-DM能够很好地执行多种任务,但是它结合PV-DBOW后,常常能够更加出色完成任务,此我们强烈推荐这种做法。

未完待续。

相关文章推荐

Word2vec 句向量模型PV-DM与PV-DBOW

参考原文:LE, Quoc V.; MIKOLOV, Tomas. Distributed representations of sentences and documents. arXiv pr...

浅谈回环检测中的词袋模型(bag of words)

浅谈回环检测中的词袋模型(bag of words)将会从以下四个方面进行展开 关于词袋模型的基本理解 算法简介 开源代码库DBoW2库的简单介绍 关于DBoW的一些总结...

BoW(词袋)模型详细介绍

最近学习BoW模型,将自己网上看到的资料及对论文的理解,将BoW模型总结如下! BoW模型 Bag-of-words model (BoW model) 最早出现在自然语言处理(Natural ...

SLAM学习笔记4: ORB-SLAM中BOW特征匹配

通常估计两帧之间的运动, 我们需要分别计算两帧中的所有特征点, 然后计算特征点之间的匹配关系. 再通过对应特征点的移动情况来估计两帧之间的摄像机运动.这中间会涉及好很多问题, 至今未能得到有效解决: ...
  • yqr002
  • yqr002
  • 2016年04月02日 01:26
  • 3483

基于gensim的Doc2Vec简析

摘要:本文主要描述了一种文章向量(doc2vec)表示及其训练的相关内容,并列出相关例子。两位大牛Quoc Le 和 Tomas Mikolov(搞出Word2vec的家伙)在2014年的《Distr...
  • lenbow
  • lenbow
  • 2016年08月04日 16:10
  • 21870

文本表示的新思路——Distributed&nb…

绪论        Distributed Representations of Sentences and Documents是Mikolov继word2vec后的另一力作——将文本表示为矢量。 ...

基于gensim的Doc2Vec简析

1、Word2vec的基本原理 先简述一下Word2vec相关原理,因为本文要讲述的doc2vec是基于Word2vec思想的算法。w2v的数学知识还比较丰富,网络上相关资料也很多。如果要系统的...

R+NLP︱text2vec包——BOW词袋模型做监督式情感标注案例(二,情感标注)

在之前的开篇提到了text2vec,笔者将其定义为R语言文本分析"No.1",她是一个文本分析的生态系统。笔者在学习之后发现开发者简直牛!基于分享精神,将自学笔记记录出来。开篇内容参考:重磅︱R+NL...

NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)

R语言由于效率问题,实现自然语言处理的分析会受到一定的影响,如何提高效率以及提升词向量的精度是在当前软件环境下,比较需要解决的问题。 笔者认为还存在的问题有: 1、如何在R语言环境下,大规模语料提高运...

段落向量与句子向量表达

这是Tomas Mikolov的一篇关于段落向量和句子向量的论文。本文是我翻译加自我理解的结果,如需要更详细的介绍,请看英文文献。摘要许多机器翻译的算法都需要使用固定长度的词向量特征。在到达文本层面时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Word2vec 句向量模型PV-DM与PV-DBOW原论文翻译
举报原因:
原因补充:

(最多只允许输入30个字)