对Word Mover‘s Distance的理解 WMD

https://zhuanlan.zhihu.com/p/88788961

https://blog.****.net/sinat_24330297/article/details/102738810

 

 

一、简要概括

本文提出了一个新的度量两个文档语义的distance,叫做Word Mover's Distance(WMD)。它主要基于两个点:(1)两个文档中的word都表示成word2vec;(2)对于文档A中的每一个词,我们都可以在文档B中找到一个对应的词,使得A的所有词”移动“到B的所有词(移动距离与它们之间word2vec的欧式距离相关)的移动距离之和最小,即WMD。这个距离的定义与著名的交通运输问题”Earch Mover's Distance“是一致的。WMD没有超参数,实现简单直接,运用于文本分类问题,能够比其他通用的度量方法取得更好的效果。

如下图所示,document1中的每一个词都找到了document2中对应的词,然后所有这些词之间的距离和即为两个文档之间的WMD。

对Word Mover‘s Distance的理解 WMD

二、背景回顾

文本的表达是解决一切文本相关问题的基石,比如文本分类,文本提取,文本聚类等等。第一代文本表达方式是BOW或者TF-IDF。这种方法的主要缺点就是词语维度的”正交性“,也就是不同的词之间距离总是为0,即便它们之间可能存在某种语义相似性(比如hotel和motel)。第二代文本的表达方式是LSA或者LDA,将BOW空间投射到低纬度的”隐含主题“空间,从而比BOW能更好的捕捉词语之间的语义相似度。第三代文本表达方式是word2vec,是一种基于浅层网络的表达学习机制,与LSA和LDA类似也能够把BOW投射到低纬度的隐空间,但是与LDA的学习机制不同。word2vec还有一个独特的地方是能够学习到词语之间的analogy:比如vec(柏林)-vec(德国)=vec(北京)-vec(中国)。

三、Word Mover's Distance定义(核心)

对于一个长度为 对Word Mover‘s Distance的理解 WMD 的词汇表,每一个词都有一个word2vec的embedding表示,构成一个 对Word Mover‘s Distance的理解 WMD 矩阵,其中每一列 对Word Mover‘s Distance的理解 WMD 代表一个第i个单词的d维embedding向量。WMD的计算有以下三个步骤:

  1. 计算每个单词的nBOW权重: 对Word Mover‘s Distance的理解 WMD 其中 对Word Mover‘s Distance的理解 WMD 表示第i个词在文中出现的次数。很明显, d表征的是单个词的一个权重分布。
  2. 计算pair-wise的单词距离: 对Word Mover‘s Distance的理解 WMD
  3. 综合1和2计算document之间的距离:用dd'表示两个文档的nBOW向量,我们允许d中的任何一个词i转移到d'中的任何一个词j,转移的代价就是c(i,j)。定义一个转移矩阵 对Word Mover‘s Distance的理解 WMD ,其中 对Word Mover‘s Distance的理解 WMD 表示单词i有多少的权重要转移到单词j。为了保证将d全部转移到d‘,必须满足d中从某单词i流出的权重之和等于该单词在d中的nBOW的权重,即 对Word Mover‘s Distance的理解 WMD ;同理d’中流入某单词j的权重之和等于该单词在d'中的nBOW的权重,即 对Word Mover‘s Distance的理解 WMD 。

最终,我们只需要找到一个单词匹配方式,使得累加带权重求和距离最小,这个最小距离就是最终俩个文本的相似度。

对Word Mover‘s Distance的理解 WMD

以上这个问题是一道典型的线性规划问题,也是EMD运输问题的一个特殊例子。从一个比较通俗易懂的角度来理解WMD就是:在计算这两个句子的相似度的时候,该算法会尽量匹配两篇文章中语义最为相近的词,那么他们之间的距离之和就是WMD。比如下图 对Word Mover‘s Distance的理解 WMD 和 对Word Mover‘s Distance的理解 WMD 通过与 对Word Mover‘s Distance的理解 WMD 中的词一一匹配计算得出相应的WMD; 对Word Mover‘s Distance的理解 WMD 和 对Word Mover‘s Distance的理解 WMD 存在一个词语和多个词对应的关系。(具体如何计算如何匹配我还不是太清楚??)

对Word Mover‘s Distance的理解 WMD