这是华盛顿大学发表于2015年的一篇论文,主要讲的是一种计算文本(语句)相似度的方法论。
论文链接:http://proceedings.mlr.press/v37/kusnerb15.pdf
第一次接触关于nlp方面的文章,并记录学习历程。
From Word Embeddings To Document Distances
摘要:
本文主要提出了一种基于词移动距离(Word Mover's Distance, WMD)的文本相似度的计算方法。其主要工作都是基于词在句子中的共现概率而训练的词向量来展开的(其实就是用了word2vec训练出来的词向量)。WMD的距离计算方法简单理解就是,针对一篇文章中的每一个词,我们都能在对比文章中找到一个词,使得该词“移动/转移”到该词的“代价/距离”最小(其实就是俩个词向量的距离最小),而两篇文章的相似度就是,一篇文章中的所有词转到另一篇文章的词的“总代价/距离”。这个距离的度量方法其实与著名的交通运输问题“Earth Mover's Distance”思路是一样的。这种度量的方法的一个好处就是,其没有超参数需要去优化,计算直接了当。然后,本文所做的实验也论证了这种(WMD)的度量方法确实简单有效,且在当时击败(用最小k近邻误差来衡量)了其他7种主流的文本相似度度量算法。
Q:word2vec训练出来的词向量,word2vec是什么意思?
A;可以看这里的介绍,写的很清楚。https://zhuanlan.zhihu.com/p/26306795
Q:Earth Mover's Distance是什么思想?原理是什么?
introduction
文章背景部分:
文档最常见的两种表示方式是通过单词包(BOW)或术语频率(TF-IDF)。但是这些特征不能表示文本之间的距离(因为他们的频率是相互正交的);这也是上面两种表示方法的最大的缺点。因为他们不能捕捉到两个单词之间的距离。比如:奥巴马在伊利诺斯州对媒体讲话:总统在芝加哥迎接媒体。虽然这些句子没有共同的词汇,但它们传达了几乎相同的信息,这是BOW模型无法表达的事实。在这种情况下,单词对的紧密程度:(奥巴马,总统);(说话时,问候);(媒体、出版社);而且(伊利诺斯州,芝加哥)并没有考虑到BOW-based distance.。
Q:(BOW)或术语频率(TF-IDF)各代表什么意思。原理是什么?为什么不能表达讲个单词之间的距离(数学层面)?
有许多学者试图通过学习文档的潜在低维表示来绕过这个问题。比如Latent Semantic Indexing (LSI) ;eigendecomposes the BOW feature space, and Latent Dirichlet Allocation (LDA);还有很多BOW/TF-IDF的变种。虽然这些方法比BOW生成更一致的文档表示,但它们通常不会提高BOW在基于距离的任务(例如,最近邻分类器)上的经验性能。
Q:LSI;LDA;BOW/TF-IDF的变种的原理和操作方法?
这篇文章是在利用了著名的word2vec模型产生了前所未有的高质量的词嵌入,并且可以自然地扩展到非常大的数据集。(我们使用一个训练了大约1000亿个单词的自由可用的模型)。作者们证明,语义关系通常在矢量运算中得以保留。比如vec(柏林)- vec(德国)+ vec(法国)更接近vec(巴黎)。
这表明,嵌入词向量之间的距离在一定程度上具有语义意义。我们的度量,我们称之为Mover s Distance (WMD),利用了word2vec嵌入的这个特性。我们将文本文档表示为嵌入单词的加权点云。两个文本文档A和B之间的距离是文档A的单词精确匹配文档B的点云所需的最小累积距离。
上图展示了文中提出新的度量的示意图。
用WMD的方法来解决优化问题。WMD距离有几个有趣的特性:1。它是超参数自由和直观的理解和使用;2. 两个文档之间的距离可以分解为几个单词之间的稀疏距离,因此具有很高的可解释性;3.它很自然地结合了word2vec空间中编码的知识,并且在8个真实世界的分类任务中有6个任务的检索精度超过了所有7个最先进的备选文档距离。
2. Related Work
构建文档之间的距离与学习新的文档表示密切相关。Salton & Buckley (1988).是系统研究基于词频加权、标准化术语和基于语料库的统计的不同组合的第一批著作之一。。。。。。。。
学习文档表示的新方法包括堆栈去噪自编码器(SDA) (Glorot et al., 2011)和更快的mSDA (Chen et al., 2012),后者通过堆栈神经网络中的dropout噪声学习单词相关性。最近,组件计数网格(Perina et al., 2013)合并了LDA (Blei et al., 2003)和计数网格(Jojic &模型,允许主题是单词分布的混合。还有,Le &Mikolov(2014)受word2vec模型的启发,使用简化的神经语言模型学习文档的稠密表示(Mikolov et al., 2013a)。
在计算机视觉文献中,EMD的使用是最早出现的(Rubner et al., 1998;Ren等人,2011)。一些出版物研究了用于图像检索应用的EMD近似(Grauman &达仁,2004;Shirdhonkar,雅各布斯,2008;Levina,Bickel, 2001)。随着词嵌入在质量上的改进,文档检索进入了一个类似的设置,其中每个词都与一个信息丰富的特征向量相关联。据我们所知,我们的工作是第一个连接高质量的词嵌入和EMD检索算法
Cuturi(2013)在EMD目标中引入了熵惩罚,它允许通过非常有效的迭代矩阵更新来解决结果的近似值。此外,矢量化可以通过GPGPUs进行并行计算,但是,他们的方法假设每个文档的维数不是太高,在我们的设置中维数是非常大的(所有可能的单词)。这消除了他们的方法的主要优点(GPGPUs上的并行化),因此我们开发了一个新的EMD近似,它对我们的问题领域非常有效。
Q:需要了解EMD的机理,quality word embeddings 的方法。
3. Word2Vec Embedding
最近Mikolov等人(2013a;b)介绍了一种新的单词嵌入方法word2vec。他们的模型使用(浅)神经网络语言模型学习每个单词的向量表示。具体来说,他们提出了一个神经网络架构(跳跃图模型),它由一个输入层、一个投影层和一个输出层组成,用来预测附近的单词。
具体解释看https://www.jianshu.com/p/471d9bfbd72f
4. Word Mover’s Distance
假设有两个文本D1,D2,WMD的计算流程如下:
- 去除D1,D2的stop words
- 用word2vec embedding来表示D1,D2中的每一个词
- 用nBOW 方法来分别表示D1,D2,记做和'
- 计算word travel cost,利用上面计算出来的和' 来表示单词i和单词j之间的距离
- 计算
6、这个全局转移代价累加和的最小值就是D1,D2的相似度。
下面看一下例子。
D0, D1 和 D2 在去掉停用词(to, the, in)后,是等长的4个向量。以 D1 为例,Obama 是通过 word2vec 计算出了分别到 President,greets,press, Chicago 的距离,其中到 President 0.45是,乘以C(i,j)最小值的解,所以依照上面 WMD 的定义,Obama 就和 President一一对应上了。这里之所以一一对应,是因为两个文本去停用词后都剩下四个单词3。
但是在现实生活中对比文档时几乎不会出现两个被比较的文档长度完全一样,在这种情况下,作者给了另外一个例子。由于 D0, D3 两个文本长度不一样,所以导致他们的 nBOW 值也不同(比如 President 在D0 中的值为 1/4 = 0.25 即 4个词中出现一次, Obama 的值则为 1/3 = 0.33 表示三个词里出现一次)这里如果转移 Obama 到 D0 文档去 0.33 - 0.25 = 0.08 还有0.08 个单位没有分配出去,因为 President 最大只能接受 0.25 的权重,在这时如果 greets 是除了 President 之外与 Obama 距离最近的词,就会把剩下的 0.08 权重分给它3
4.1. Fast Distance Computation
优化问题:引入几个WMD运输问题的low bound廉价下界,使我们能够在不计算WMD精确距离的情况下删除大部分文档。
Word centroid distance.
这是利用三角不等式来找到WMD的最优化目标的一个宽松下界,用来替代WMD的结果。其实这种算法的本质上就是我们最快能够想到的计算两条文本相似度的方法:分别把每条文本的词向量加起来取平均,再计算得到的两个向量的欧氏距离。
WCD 在损失一定精度的情况下极大的加快了运行速度,将时间复杂度减小到O(dp)。其中d代表词向量维度,p代表两篇文本分词去重后词表的大小 。
Relaxed word moving distance.
虽然WCD的计算速度很快,但它边界并不是很紧。我们可以通过放松WMD优化问题并分别删除其中一个约束(删除这两个约束会得到平凡的下界T = 0)来获得更紧的边界。如果只删除第二个约束,优化就变成了
Prefetch and prune.预取和修剪
在所有文档中找出与一个文档D最相似的K个文档:
用WCD方法计算所有文档与文档D的WCD距离,并按照递增排序;
取前K个文档出来,计算WMD值,这时先暂且任务这K个文档是找出来的与D文档最相似的K个文档,但是由于WCD方法是不tight的,所以对于剩下的文档转到步骤3
计算RWMD值,如果计算的RWMD值比上面的K个WMD值最大的要小,就说明找到了一个更小的WMD,替换topK中WMD最大的那个;否则,扔掉不要
参考:
https://blog.csdn.net/weixin_42204397/article/details/104814553