NLP论文笔记:From Word Embeddings To Document Distances

From Word Embeddings To Document Distances

  • from word embeddings to document distances

from word embeddings to document distances

本文主要用于记录华盛顿大学发表于2015年的一篇论文(引用量500+),该论文主要提出了一种计算文本(语句)相似度的方法论,很多神经网络模型也是由此衍生出来的~

论文提出了一个WMD 计算文本相似度的算法。在8个文本分类任务上 7个达到最佳结果。
WMD: Word moving distance

  • 摘要
    本文主要提出了一种基于词移动距离(Word Mover’s Distance, WMD)的文本相似度的计算方法。其主要工作都是基于词在句子中的共现概率而训练的词向量来展开的(其实就是用了word2vec训练出来的词向量)。WMD的距离计算方法简单理解就是,针对一篇文章中的每一个词,我们都能在对比文章中找到一个词,使得该词“移动/转移”到该词的“代价/距离”最小(其实就是俩个词向量的距离最小),而两篇文章的相似度就是,一篇文章中的所有词转到另一篇文章的词的“总代价/距离”。这个距离的度量方法其实与著名的交通运输问题“Earth Mover’s Distance”思路是一样的。这种度量的方法的一个好处就是,其没有超参数需要去优化,计算直接了当。然后,本文所做的实验也论证了这种(WMD)的度量方法确实简单有效,且在当时击败(用最小k近邻误差来衡量)了其他7种主流的文本相似度度量算法。

  • 论文提出背景
    在深入了解该算法计算思路之前,还是先提两句15年那个时候计算文本相似度的方法。自从word2vec在12年被提出以后,这一词向量训练方法几乎就是nlp工作者的标配,其强大的词向量表达能力,让大家经常就是无脑加数据训练更好的词向量表达(更别提12年之前还是用词袋或是tf-idf),然后计算文本相似度的时候就是累加所有词的词向量再求和(其实word2vec本身的词向量相加也是有意义的,比如那个经常的等式,king - man = queen - women)。但这种累加求和的计算方式,往往就会在累加求和的过程中渐渐磨平那些关键词的距离特征。因此,本论文提出的方法,其核心思想就是突出词与词之间的距离特征映射关系(仔细一想,是不是就是后面nlp里面attention的基本思路呢?毕竟attention的核心也是分配给关键词更多的权重)。

  • WMD计算方法
    本段将详细阐述论文提出的计算方法。首先假设我们有一个词向量矩阵 X ∈ R d ∗ n X\in R^{d*n} XRdn,其中n是词典库的大小,d是词向量的维度。然后,一篇文章可以被表示成被归一化后的词袋向量 b ∈ R n b\in R^n bRn。每一维就是该词在文章中出现的次数(归一化除以总数后),显然这个词袋向量是非常稀疏的,因为大量的词不会出现在一篇文章中。

当我们将两篇文章都用词袋向量b表示以后,如果两篇文章表义相近,且用词相近可以得出这俩个向量的距离肯定也是相近的,但是如果两篇文章表义相近,但用词不同,这俩个向量但距离就飘了~而这就是我们不希望看到的。

然后我们还是定义俩个词(分属两篇文章)的距离度量是利用word2vec计算出的向量,表示为 c ( i , j ) c(i,j) c(i,j)。定义一个转移矩阵 T ∈ R n ∗ n T\in R^{n*n} TRnn,其上的每一个值 T i , j T_{i,j} Ti,j代表单词i有多少权重要流入到单词j,我们只需要保证,该单词流出的权重等于该单词在词袋向量中所有的权重即可 ∑ j T i j = d i \sum_j T_{ij} = d_i jTij=di,而对于流入方单词同理,其流入的权重等于其在词袋向量中的权重!最终我们只需要找到一个累加求和距离最小权重分配比,就是最终俩个文本的相似度。上述文字,可以用数学公式表达为
NLP论文笔记:From Word Embeddings To Document Distances_第1张图片
在计算这俩个句子的相似度的时候,该算法就会考虑计算两篇文章中最相近的词之间的距离,而不是,考虑整体,增加的算法鲁棒性.
NLP论文笔记:From Word Embeddings To Document Distances_第2张图片

  • WMD优化思路
    至此,大家应该对最初始版本的WMD计算方法有所了解了,而敏锐的同学肯定也已经觉察到了该算法的复杂度很高 O ( p 3 l o g p ) O(p^3logp) O(p3logp)。因此论文里还提了几个简单的优化思路(取下限)。

其中一种优化的思路是WCD(Word Centroid Distance),即之前最暴力的一种解法是把所有的词向量都相加(权重一样),这里不是简单的相加,而是带权重的相加(weighted word vector,其实也很暴力)。其实这里跟后期的神经网络的attention的优化思路是一样的,我们也更关注训练出俩个句子或文章中,到底哪几个词的相似度是起最关键的作用的(不管是local还是global的思想)。

另一种就是取消一下WMD中的限制,即我们不严格要求流入词的权重是与词在文章中的权重是一致的,那相当于就是尽可能多的词去做匹配而不做严格的限制,具体的推导论述请看下文.

  • 算法涉及的定义:
  1. word travel cost : c ( i , j ) = ∣ ∣ x i − x j ∣ ∣ 2 c(i,j) = ||x_i - x_j||_2 c(i,j)=xixj2 x i x_i xi x j x_j xj之间的欧式距离。这里 c ( i , j ) c(i,j) c(i,j) 表示为一个单词 转到 另外一个单词的花费 cost.

  2. document distance:文档的距离
    我们假设文档一是d,文档二是d’. 我们允许d中的单词转成d’中的任意一个单词。假设 T i , j = d i j T_{i,j}=d_{ij} Ti,j=dij表示 d中的单词i转成d’中的单词j 的花费cost。那么我们需要确保d’ 中每个单词的输入流加和都为dj ∑ i T i j = d j ′ \sum_i T_{ij} = d'_j iTij=dj,d中每个单词的输出流加和都为di ∑ j T i j = d i \sum_j T_{ij} = d_i jTij=di.

  3. 转换距离 最终可以写成一个线性规划问题,最小化 总和,约束为d的输出流,d’的输入流。如下:(注意 这里的di 表示的个数,di可以为任意的实数,比如说 d中的一个单词,转成d’中k个单词 则di=k. 这k个单词 可以是k个不同的 也可以是转成同一个 说明d中那个单词k个位置都是同一个意思,当然我们期望最好是能转成对应的1个,这样对应关系更简单)(文档d中第i个单词,转成d’中的单词个数总和为di, 反过来为d’j 下面这个线性方程组 其实是个条件比较严格的方程组,就是我同时要求你d到d’的转换单词总数为xx,又要求d’到d转换单词次数为yy… 要想得到最佳结果 计算起来比较麻烦,所以下面提出了2种 牺牲准确度 减少复杂度的方法,WCD 用文档的词中心距离,即dk来表示第k个文档的词向量,先通过词中心距离 排除一些无关的文档。然后再通过宽松词移动距离RWMD来得到相对精确的结果。这个RWMD其实就是把下面的的方程拆成2组,LN(di), LN(dj), 然后求 两组结果的最大值。)
    NLP论文笔记:From Word Embeddings To Document Distances_第3张图片

  • 距离快速计算方法
    解决WMD的最佳算法的平均时间复杂度是 O ( p 3 l o g p ) O(p^3logp) O(p3logp),其中p是文档中的单词的种类个数。
    对于大量文档或者有很多唯一单词的的数据集,解WMD算法将非常棘手。
    下面介绍几个较低的优化算法 通过减去大部分的文档 牺牲一点准确性 降低WMD的问题的复杂度。
  • word centroid distance 词中心距离
  • Relaxed word moving distance 宽松词移动距离
  • 预抓取和剪枝

4.1 word centroid distance
根据三角不等式化简 得到WCD,每个文档由weighted average word vector 来代表。
NLP论文笔记:From Word Embeddings To Document Distances_第4张图片
最后转化为质心距离,我们将这个距离称作WCD,而不难看出这个计算复杂度线性于文档和词汇数量的O(dp)。得到的这个WCD现在就可以作为一个下确界使用,用以过滤调重复的计算。比如说,在进行k聚类算法的时候,我们先计算每一个文档的WCD值,这时候我们只花费了线性时间。而再从这些文档中,选取WCD值最小的前k或者前2k个文本和中心文本进行WMD比对,这样可以大大节省时间。

4.2 Relaxed word moving distance (RWMD)
虽然我们证明了WCD是一个线性复杂度的WMD的下确界,但是作者认为,WCD还不够逼近WMD,于是打算使用一个更紧的下确界来进一步过滤计算。作者使用的方法是,放松两个限制条件中的一个,将原优化问题改成如下的问题:
NLP论文笔记:From Word Embeddings To Document Distances_第5张图片
作者指出,这个放松之后的优化问题得到的最优解必然是原问题的一个lower bound,因为不管原问题怎样针对第二个条件进行优化,他都是建立在第一个优化条件的最优解集里面的。就找到最短距离的时候,假设找到了一个点为最优,另一个点不管怎么变换都是建立在第一个点固定的情况下。(想象挂一幅画,钉好了第一颗钉子对齐第二颗钉子的感觉)
这时我们可以将这个新的优化问题的最优解写成以下形式:
在这里插入图片描述
并且证明如下:
NLP论文笔记:From Word Embeddings To Document Distances_第6张图片
并且当我们移除一个限制条件以后,从d到d’的距离和反过来基本相同。于是我们把两个距离写作,l_1(d, d’),l_2(d, d’),并且我们尝试去寻找两个中比较大的一个作为最逼近的那个下确界l_r(d, d’) = max(l_1(d, d’), l_2(d, d’)),这种下确界的总体计算复杂度是O(q^2)

4.3 Prefetch and prune
最后一个技巧则是算法上通过结合两种不同的下确界WCD和RWMD来得到最优的速度和结果。作者再次以k聚类问题为例,我们首先还是使用WCD距离来对所有候选文档进行排序,随后选择其中k个WCD最小的候选文档。然后以第k个最小的WCD文档的RWMD值作为阈值,计算刚才筛选的k个文档以外的剩下的文档的RWMD值,并和阈值进行比对。大于阈值的文档,我们就直接不考虑了,否则就进行WMD的计算来最终确定它的距离。由于RWMD非常的逼近于WMD,所以在好的情况下,可以过滤95%的候选文档,节省了大量的时间。

  • 5 结果比较
    本文的第五部分对这个WMD算法和经典的文档表达和分类算法进行了比对,分别在八个文档分类数据集上通过knn聚类来比对其效果。在比对当中,对文本进行去停词,和去低频词的基本清洗操作。结果是,WMD聚类在六个问题上做到了最好的效果(见下图),紧随其后的则是LSI,隐藏语义分析算法,而在bbcsport文档分类问题上WMD也败给了LSI分类的表现。
    NLP论文笔记:From Word Embeddings To Document Distances_第7张图片
    作者也对如何使用WCD和RWMD来过滤计算进行了实验(见下图),下图中每个条状图代表的是只计算通过WCD筛选出来的m个候选文本进行RWMD比对再计算WMD的优化算法的错误率,条状图上面的数字代表该方法几倍快于只使用WMD进行计算的时间。从图中不难看出,尽管通过WCD选取前k个候选文本的速度非常快,但是由于WCD的宽松性,使得准确度有所下降。当我们扩大WCD选取文本的数量为2k-8k个的时候,错误率就逐步下降。
    NLP论文笔记:From Word Embeddings To Document Distances_第8张图片
    参考:论文

你可能感兴趣的:(NLP)