文本相似度:Distributed Representations of Sentences and Documents

文章地址:https://arxiv.org/pdf/1405.4053.pdf

文章标题:Distributed Representations of Sentences and Documents(句子和文档的分布式表示)ICML2014

Abstract

许多机器学习算法要求输入用定长特征向量表示。当涉及到文本时,最常见的固定长度特性之一是词袋。尽管它们很受欢迎,但bag-of-words特性有两个主要的缺点:它们丢失了单词的顺序,并且忽略了单词的语义。例如,“powerful”、“strong”和“Pairs”是相同的距离。在本文中,我们提出了一种无监督的段落向量算法,它可以从可变长度的文本片段(如句子、段落和文档)中学习固定长度的特征表示。我们的算法通过一个密集的向量来表示每个文档,这个向量经过训练可以预测文档中的单词。它的构造给了我们的算法克服bag-of-words模型的缺点的潜力。实证结果表明,段落向量在文本表示方面优于袋装词模型和其他技术。最后,我们在几个文本分类和情感分析任务上取得了最新的研究成果。

一、Introduction

文本分类和聚类在许多应用中起着重要的作用。文件检索,网页搜索,垃圾邮件过滤。这些应用程序的核心是机器学习算法,如逻辑回归或Kmeans。这些算法通常要求文本输入用固定长度的向量表示。也许文本最常见的固定长度向量表示是词袋或n-gran-词袋(Harris, 1954),因为它简单、高效,而且常常具有惊人的准确性。

然而,词袋(BOW)有很多缺点,词序丢失了,因此只要使用相同的单词,不同的句子可以有完全相同的表示。尽管n-grams-词袋考虑了短上下文中的语序,但它也存在数据稀疏性和高维性的问题。单词袋和n-grams-词袋对单词的语义或更正式的单词之间的距离几乎没有意义。这意味着“powerful”、“strong”和“Pairs”这三个词距离相同,尽管从语义上讲,“powerful”应该更接近“strong”而不是“Pairs”。

在这篇论文中,我们提出了一个段落向量,一个学习连续的分布式向量表示的无监督框架。文本可以是长短不一的,从句子到文档。名称段落向量是为了强调这样一个事实,即该方法可以应用于长度可变的文本片段,从短语或句子到大型文档的任何内容

在我们的模型中,向量表示被训练成用于预测段落中的单词。更准确地说,我们将段落向量与来自一个段落的几个单词向量连接起来,并在给定的上下文中预测下面的单词。单词向量和段落向量都是通过随机梯度下降反向传播来训练的(Rumelhart et al., 1986)。虽然段落向量在段落中是唯一的,但是单词向量是共享的。在预测时,通过固定单词向量并训练新的段落向量直到收敛来推断段落向量。

我们的技术灵感来自于最近使用神经网络学习单词向量表示的工作(Bengio et al., 2006;Collobert & Weston, 2008;Mnih & Hinton, 2008;Turian等人,2010;Mikolov等,2013a;c)。在他们的公式中,每个单词由一个向量表示,这个向量与上下文中的其他单词向量连接或平均,得到的向量用于预测上下文中的其他单词。例如,(Bengio et al., 2006)中提出的神经网络语言模型使用之前的几个词向量的连接形成神经网络的输入,并尝试预测下一个词。结果是,在模型训练之后,单词向量被映射到向量空间中,使得语义相似的单词具有相似的向量表示(例如,“strong”接近于“powerful”)。

在这些成功的技术之后,研究人员试图扩展这些模型,使其超越单词级别,以实现短语级别或句子级别的表示(Mitchell & Lapata, 2010;Zanzotto等人,2010;Yessenalina & Cardie, 2011;Grefenstette等人,2013年;Mikolov等,2013c)。例如,一种简单的方法是使用文档中所有单词的加权平均值。一种更复杂的方法是使用矩阵向量操作(Socher et al., 2011b),按照句子的解析树给出的顺序组合单词向量。这两种方法都有弱点。第一种方法是单词向量的加权平均,它丢失单词顺序的方式与标准的单词袋模型相同。第二种方法是使用解析树来组合单词向量,它只适用于句子,因为它依赖于解析。

段落向量能够构造可变长度的输入序列的表示。与前面的一些方法不同,它是通用的适用于任何长度的文本:句子、段落和文档。它不需要对单词加权函数进行特定于任务的调优,也不依赖于解析树。在接下来的文章中,我们将在几个基准数据集上展示段落向量的优点。例如,在情绪分析任务中,我们实现了新的最先进的结果,比复杂的方法更好,产生了超过16%的错误率的相对改进。在一项文本分类任务中,我们的方法令人信服地击败了单词袋模型,给出了大约30%的相对改进。

二、Algorithms

我们首先讨论以前学习单词向量的方法。这些方法是我们段落向量方法的灵感来源。

2.1 Learning Vector Representation ofWords(学习单词的向量表示)

在这里插入图片描述
图一:一个学习单词向量的框架。由三个单词(“the”、“cat”和“sat”)组成的语境被用来预测第四个单词(“on”)。将输入单词映射到矩阵w的列以预测输出单词。

本节介绍单词的分布式向量表示的概念。图1显示了一个众所周知的学习单词向量的框架。任务是根据上下文中的其他单词来预测一个单词。

在这个框架中,每个单词都被映射到一个唯一的向量,这个向量由矩阵w中的一列表示。然后将向量的连接或求和作为预测句子中下一个单词的特征

更准确地说,给定一系列训练单词w1,w2,w3,…,矢量模型的目标是使平均对数概率最大化:
在这里插入图片描述
预测任务通常通过一个多类分类器来完成,比如softmax。
在这里插入图片描述
对于每个输出单词i,每个yi都是未归一化的log概率,计算为:
在这里插入图片描述
其中U, b为softmax参数。h由从W中提取的字向量的拼接或平均构成。

在实践中,层次式softmax (Morin & Bengio, 2005; Mnih & Hinton, 2008; Mikolov et al., 2013c)是首选softmax的快速训练。在我们的工作中,层次softmax的结构是一个二叉哈夫曼树,短码被分配给频繁的字。这是一个很好的加速技巧,因为常用词访问起来很快。这种使用二进制霍夫曼代码的层次是相同的(Mikolov等人,2013c)。

基于神经网络的词向量通常使用随机梯度下降法进行训练,其中梯度是通过反向传播获得的(Rumelhart et al., 1986)。这种类型的模型通常被称为神经语言模型(Bengio et al., 2006)。在code.google.com/p/word2vec/ (Mikolov et al., 2013a)可以找到一种基于神经网络的单词向量训练算法的特殊实现。

训练收敛后,将意义相近的单词映射到向量空间中的相似位置。例如,“power”和“strong”相近,而“power”和“Paris”则比较遥远。词向量之间的差异也有意义。例如,向量这个词可以用简单的向量代数来回答类比问题:“国王”-“男人”+“女人”=“女王”(Mikolov et al., 2013d)。也可以学习一个线性矩阵来翻译语言之间的单词和短语(Mikolov等人,2013b)。

这些特性使得单词向量对于许多自然语言处理任务具有吸引力,如语言建模、自然语言理解、统计机器翻译、图像理解和关系提取。

2.2 Paragraph Vector:A distributed memory model(段落向量:分布式内存模型)

我们学习段落向量的方法受到单词向量学习方法的启发。灵感来自于要求词向量对句子中下一个词的预测任务做出贡献。因此,尽管单词向量是随机初始化的,但它们最终可以作为预测任务的间接结果捕获语义。我们将以类似的方式在我们的段落向量中使用这个概念。给定从段落中抽取的许多上下文,段落向量也被要求对下一个单词的预测任务做出贡献
在这里插入图片描述
图二:一个学习段落向量的框架。该框架类似于图1所示的框架;唯一的变化是附加的段落标记通过矩阵d映射到一个向量。在这个模型中,这个向量与三个单词的上下文的连接平均值用于预测第四个单词。段落向量表示当前上下文中缺失的信息,可以作为段落主题的记忆。

在段落向量框架(见图2),每一段映射到一个独特的向量,由一列矩阵D和每一个字也映射到一个独特的向量,由一列矩阵w,段落向量和词向量的平均或连接在一个上下文预测下一个单词。在实验中,我们使用串联的方法来组合向量。

更准确地说,这个模型与向量框架相比的唯一变化是在方程1中,其中h是由W和D构成的。

段落标记可以看作是另一个单词。它就像一个记忆体,记住当前上下文或段落主题中缺少的内容。因此,我们通常将这种模型称为段落向量(PV-DM)的分布式内存模型

上下文是固定长度的,并从段落上的滑动窗口取样。段落向量在同一段落中生成的所有上下文之间共享,但不在段落之间共享。然而,向量矩阵W这个词在各个段落中是通用的。即表示“强大”的向量对于所有段落都是相同的。

使用随机梯度下降法训练段落向量和单词向量,通过反向传播得到梯度。在随机梯度下降的每一步,我们都可以从随机段中抽取一个固定长度的上下文样本,从图2的网络中计算误差梯度,并利用梯度更新模型中的参数。

在预测时,需要执行一个推理步骤来计算新段落的段落向量。这也是通过梯度下降得到的。在这一步中,模型其余部分的参数(vectorsW和softmax权值)是固定的。

假设有N个段落语料库,词汇有M个字,我们想了解段落向量,这样每一段映射到p维度和映射到每个单词的q维度,那么模型的总参数N×p+M×q参数(不含将softmax参数)。当N很大时,即使参数的数量很大,但训练过程中的更新通常是稀疏的,因此效率很高。

经过训练后,段落向量可以用作段落的特征(例如,代替或除单词之外)。我们可以将这些特性直接提供给传统的机器学习技术,如逻辑回归、支持向量机或K-means。

综上所述,该算法本身有两个关键阶段:1)对已经看到的段落进行单词向量W、softmax权值U、b和段落向量D的训练;2)“推理阶段”,在保持W、U、b不变的情况下,在D中增加更多的列,并在D上递减,得到新的段落(之前从未见过)的段落向量D。我们曾经使用一个标准的分类器来预测一些特定的标签,例如逻辑回归。

段落向量的优点:段落向量的一个重要优点是,它们是从未标记的数据中学习的,因此可以很好地处理没有足够标记数据的任务

段落向量还解决了词袋模型的一些关键缺陷。首先,它们继承了单词向量的一个重要属性:单词的语义。在这个空间里,“powerful”比“Pairs”更接近“strong”。“段落向量的第二个优点是,它们考虑了语序,至少在小的上下文中是这样,就像一个n-gram模型有一个大的n一样。这很重要,因为n-gram模型保存了大量段落信息,包括单词顺序。也就是说,我们的模型可能比n-gram袋模型更好,因为n-gram袋模型将创建一个非常高维的表示法,这种表示法的泛化效果很差。

2.3. Paragraph Vector without word ordering:Distributed bag of words(无词序的段落向量:分散的词袋)

上面的方法考虑段落向量与单词向量的连接,以预测文本窗口中的下一个单词。另一种方法是忽略输入中的上下文单词,而强制模型预测从输出段落中随机抽取的单词。实际上,这意味着在随机梯度下降的每次迭代中,我们对一个文本窗口进行抽样,然后从文本窗口中随机抽取一个单词,并根据段落向量形成一个分类任务。这种技术如图3所示。我们将这个版本命名为分布式词袋版本的段落向量(PV-DBOW),而不是上一节中提到的分布式内存版本的段落向量(PV-DM)
在这里插入图片描述
图三:分布词袋式文字版本的段落向量。在这个版本中,段落向量被训练来预测小窗口中的单词。

除了概念上的简单之外,这个模型还需要存储更少的数据。我们只需要存储softmax权值,而不是softmax权值和字向量在前一个模型。该模型与词向量中的跳跃图模型相似(Mikolov et al., 2013c)。

在我们的实验中,每个段落向量是两个向量的组合:一个是通过标准的分布式内存段向量(PV-DM)学习的,另一个是通过分布式单词包段向量(PV-DBOW)学习的。单独使用PV-DM通常可以很好地完成大多数任务(具有最先进的性能),但是它与PV-DBOW的结合通常在我们尝试的许多任务中更加一致,因此强烈推荐使用它。

三、Experiments

我们执行实验来更好地理解段落向量的行为。为了实现这一点,我们在两个文本理解问题上对段落向量进行了基准测试,这两个问题需要段落的固定长度向量表示:情感分析和信息检索。

对于情感分析,我们使用两个数据集:斯坦福情感数据库(Socher et al., 2013b)和IMDB数据集(Maas et al., 2011)。这些数据集中的文档在长度上存在显著差异:Socher et al. (Socher et al., 2013b)数据集中的每个例子都是一个句子,而Maas et al. (Maas et al., 2011)数据集中的每个例子都由几个句子组成。

我们还在信息检索任务上测试了我们的方法,其目标是确定给定查询是否应该检索文档。

3.1 Sentiment Analysis with the Stanford Sentiment Treebank Dataset(情绪分析与斯坦福情绪数据库)

3.2 Beyond One Sentence:Sentiment Analysis with IMDB dataset(超越一句话:情绪分析与IMDB数据集)

3.3 Information Retrieval with Paragraph Vectors(使用段落向量进行信息检索)

3.4 Some further observations(进一步的观察)

四、RelatedWork

单词的分布式表示首先在(Rumelhart et al., 1986)中被提出,并且已经成为一个成功的范例,特别是在统计语言建模方面(Elman, 1990;Bengio et al., 2006;Mikolov, 2012)。词向量已经在NLP应用中得到应用,如单词表示、命名实体识别、词义消歧、解析、标记和机器翻译(Collobert & Weston, 2008;Turney & Pantel, 2010;Turian等人,2010;Collobert等人,2011;Socher等,2011b;黄等,2012;邹等,2013)。

代表短语是最近的一种趋势,受到了很多关注(Mitchell & Lapata, 2010;Zanzotto等人,2010;Yessenalina & Cardie, 2011;Grefenstette等人,2013年;Mikolov等,2013c)。在这个方向上,自动编码风格的模型也被用于段落建模(Maas et al., 2011;Larochelle & Lauly, 2012;Srivastava等人,2013)。

短语和句子的分布式表示也是Socher等人的研究重点(Socher等人,2011a;c;2013 b)。它们的方法通常需要解析,并被证明适用于句子级表示。如何将他们的方法扩展到单个句子之外,这一点并不明显。他们的方法也受到监督,因此需要更多的标记数据才能正常工作。相反,段落向量大部分是无监督的,因此可以很好地处理标记较少的数据。

我们通过梯度下降法计算段落向量的方法与计算机视觉中的成功范例相似(Perronnin & Dance, 2007;Perronnin et al., 2010)被称为Fisher kernels (Jaakkola & Haussler, 1999)。Fisher kernels的基本构造是无监督生成模型上的梯度向量。

五、Discussion

我们描述了一种无监督学习算法——段落向量它可以学习不同长度的文本(如句子和文档)的向量表示。学习向量表示来预测从段落中抽取的上下文中的周围单词

我们在多个文本分类任务(如Stanford Treebank和IMDB情感分析数据集)上的实验表明,该方法与最先进的方法相比具有竞争力。良好的性能证明了段落向量在捕获段落语义方面的优点。事实上,段落向量有可能克服词袋模型的许多缺点。

虽然本工作的重点是表示文本,但我们的方法可以用于学习顺序数据的表示。在不能进行解析的非文本域中,我们希望段落向量能够成为单词包和语法包模型的强大替代。

发布了199 篇原创文章 · 获赞 268 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/MaybeForever/article/details/103615624
今日推荐