概述
本文翻译doc2vec模型的提出论文distributed representations of sentences and documents。
正式译文如下:
摘要:许多机器学习算法需要一个固定长度的特征向量作为输入,当运用到文本上时,词袋是最常见的固定长度特征之一,尽管很流行,词袋特征有两个主要的缺点:缺少了词语之间的顺序和忽略了单词的语义。例如,‘powerful’,‘strong’和‘Paris’语义差距是比较大的,在本文里,我们提出了句向量,一个非监督算法从句子,段落和文档这些可变长度的文本中学习到固定长度的特征表示。我们的算法使用密集向量表示每篇文档,每个向量被训练用来在文本中预测单词。这种形式给我们的算法潜在的可能性去解决词袋的缺点。实验结果表明,句向量在文本表示方面比词袋模型以及其他技术更好,最终,我们在几个文本分类器和语句分析任务得到了很好的结果。
1.介绍
文本分类和聚类在很多应用里起着非常重要的作用,比如,文档恢复,网站搜索,垃圾邮件过滤。这些应用的核心是机器学习算法,比如逻辑回归或者K-Means。这些算法需要被表示为固定长度向量的文本作为输入。最常见的文本固定长度向量表示是词袋和bag-of-n-grams,因为这些模型简单有效准确。
然而,BOW(bag-of-word)有许多缺点。单词顺序丢失造成不同的句子有相同的表示,即使bag-of-n-grams在短文本里考虑了单词顺序,也遭受了数据稀疏和高维的难题。BOW和bag-of-n-grams对词义或者说对单词之间距离不明感。这个表示单词‘powerful’,‘strong’和‘Paris’距离是一样的,尽管‘powerful’在词义上跟‘strong’比‘Paris’要近。
在本文中,我们提出了句向量,一个非监督框架下学习多文本的连续分布式向量表示。该文本可以有从句子到文档不同长度。句向量表示可以应用到不同长度的文本,从短语或者句子到一个大文档的任意事物。
在我们的模型里,在向量被训练用来在段落里预测单词,更精确的说,我们在一个段落里,用几个词向量连接成句向量然后预测下一个单词。词向量和句向量使用随机梯度下降和backpropagation训练。当句向量在句中是唯一的,词向量是被共享的。当在预测时,句向量由固定词向量推断并训练新的句向量直到拟合。
我们的技术启发于最近使用神经网络学习词向量的工作。在这些工作里,每个单词都由一个向量表示,而这个向量是由文本中其它单词向量连接或平均得来,得到的向量被用来预测其他单词。例如,神经网络语言模型是使用几个前面单词向量的连接作为输入,来尝试预测下一个单词。结果是,当模型被训练后,词向量被映射到一个向量空间,从而语义接近的单词有相似的向量表示。
沿用这些成功的技术,研究者们尝试拓展模型使之超出单词级表示方式到短语级或者语句级表示方式。例如,一个简单的方法是在文档里使用所有单词的加权平均。一个更加随意的方法是通过使用矩阵向量操作,通过一个句子解析树组合词向量。两个防范都有缺点,第一个方法,词向量的加权平均跟词袋模型一样丢失了词序。第二个方法,使用解析树来组合词向量,被证明只能用在句子中。
句向量能够构建不同长度文本序列的表示,不像前面的几个方法,它更通用和适用于任意程度的文本:句子,段落和文档。它既不需要单词权重函数的具体调整,也不依赖于解析树。本文的后续部分,我们将展示在几个基准数据库上的实验来验证词向量的优点。例如,在词义分析任务中,我们实现了比复杂方法更加先进的结果,在错误率上有超过16%的改进。在文本分类任务中,我们的方法打败了BOW模型,有将近30%的提升。
2.算法
我们从讨论先前学习词向量的方法开始,句向量方法收到了这些方法的启发。
2.1 学习单词的向量表示
这部分介绍分布式词向量的概念。一个著名的学习词向量框架如图1所示,该框架任务是在文本里在给定其它单词的情况下,预测一个单词。
在这个框架里,每个单词被映射为一个唯一的向量,作为矩阵W的一列。列号表示该单词在字典里的位置,向量的连接或者平均被作为特征来预测文本里的下一个单词。
更为正式的说,给定一个训练次序列w1,w2,…,wT,词向量模型的目的是最大化平均对数概率(average log probability)
预测任务被多分类器完成,例如softmax,因此我们有:
对于每个单词i,yi是非正则化对数概率(un-normalized log-probability),计算方式如下:
其中,u,b是softmax的参数,h是由w中某些词向量的连接和平均而形成的。
在实际操作中,hierarchical softmax比如softmax更适合用于快速训练,在我们的工作中,hierarchical softmax的结构是哈夫曼二叉树,短code用来表示频繁出现的单词,这是一个好的加速技巧,因为相同的单词可以被快速的访问。
基于词向量的神经网络通常使用随机梯度下降来训练,梯度是通过反向传播得到。这类模型通常被称为神经语言模型,一个特别的基于神经网络算法训练词向量的实现可以在code.google.com/p/word2vec上得到。
在训练拟合之后,相似语义的单词被映射到向量空间的一个相似位置,例如,powerful’和‘strong’是很接近的,然而‘powerful’和‘Paris’是很远的。词向量之间的差异也带有意义,例如,词向量可以通过简答向量代数被用来回答比喻问题:‘king’-‘man’+‘woman’=‘Queen’,通过学习一个线性矩阵来翻译语言之间的单词和短语也是可能的。
这些性能使词向量收到了许多自然语言处理任务的追捧,例如,语言模型,自然语言理解,统计机器翻译,图像理解和关系提取。
2.2 句向量:分布存储模型(distributed memory model)
我们学习句向量的方法是受到学习词向量方法的启发。这个启发就是词向量被要求在句子里预测下一个单词做出贡献,所以尽管词向量是随机初始化的,他最终在预测任务中作为间接结果捕捉到了语义。我们在句向量的构建中使用这一思想,句向量也将被要求在许多文本样本中预测下一个单词中做出贡献。
在我们的句向量框架里(见图2),每个段落被映射成一个唯一的向量,作为矩阵D的一列,同时,每个词向量被映射到一个唯一的向量,作为矩阵W的一列。句向量和词向量被连接或者平均来预测下一个单词。在实验中,我们使用连接的方式。
更为具体的来说,在这个模型里对比词向量框架唯一的改变是公式1,h是由W和D构建的。
段落标识可以被认为是另一个单词,它充当着记忆的角色,记住什么从当前的文本或者段落的主题中丢失。由于这个原因,我们通常称呼这个模型为Distributed Memory Model of Paragraph Vector(PV-DM)。
内容是固定长度以及在段落里利用滑动窗口抽样生成的,句向量在同一段落里的所有内容里是共享的,然而,句向量矩阵W在段落间是共享的。例如,单词‘powerful’向量在所有段落里是共享的。
句向量和词向量使用随机梯度下降训练。梯度将会通过反向传播得到。在随机梯度下降的每一步里,可以从一个任意的段落里抽样一个固定长度的文本,在图2的网络里计算error gradient并使用这个梯度更新模型里的参数。
在预测时,需要执行推断步骤来计算新段落的段落向量。这将通过梯度下降得到,在这一步中,模型剩下的参数词向量W和softmax权重是固定的。
假设语料库中有 N 个句子,字典里有 M 个词汇;我们试图将每一个句子映射到 p 维空间,每一个词映射到 q 维空间,于是这个模型就有总共 N×p+M×q 个参数(包括softmax参数)。即使句子的数量会随着 N 的增大而增大,训练中的更新还是稀疏且高效。
训练过后,句向量可以被用作段落的特征,我们可以直接使用这些特征用在传统机器学习技术上,例如逻辑回归,SVM或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版本。
除了在概念上简单以外,这个模型只需要存储少量的数据。相比于上一个模型需要存储softmax权重和词向量,这个模型只需要存储softmax权重。同样的,这个模型也近似于Skip-gram模型。
在我们的试验中,每一个句向量都是两个向量的组合:一个通过PV-DM训练,另一个通过PV-DBOW训练。PV-DM能够很好地执行多种任务,但是它结合PV-DBOW后,常常能够更加出色完成任务,此我们强烈推荐这种做法。
3.实验
最后
以上就是繁荣发箍为你收集整理的分布式的句子和文件表示的全部内容,希望文章能够帮你解决分布式的句子和文件表示所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复