文本相似度是自然语言处理研究热点之一,论文提出了一种新的衡量文本相似度的方法,Word Mover’s Distance (WMD)。此方法利用两个文本的词向量的距离来作为相似度,具体方法将在下文探讨。
提出原因
常用来表达文本特征的方式有BOW和TF-IDF,但这些特征不能很好的表达特征,当两个向量正交或近似正交时,文本相似度会特别低(these features are often not suitable for document distances due to their frequent near-orthogonality.) 。还有一个缺点是不能捕捉单词之间的距离。比如下面两句话表达同样的意思,然而除了停用词外,没有相同的词。
a: Obama speaksto the media in Illinois。
b: The President greets the press in Chicago.
当前还有一些可以通过学习低维隐藏特征向量的方式来更合理的表达文本,比如LDA, LSA等,然而与BOW相比效果相差无几。
优缺点
- 优点
- WMD没有超参数并可以直接使用和理解
- 具有很好的解释性
- 具有很高的准确率
- 缺点
- 词袋模型,没有保留语序信息
- 不能很好的处理词向量的OOV(Out of vocabulary)问题
- 时间复杂度高
Word Mover’s Distance算法
- nBOW representation
假设文本使用nBOW(normalized bag-of-words)向量表示,
。 假设使用
表示单词
出现的频率,那么
,n表示共有多少个词。显然这是一个稀疏矩阵,因为词表中的词很难大部分都在一个文本中出现。
- Word travel cost
假设现在有训练好的词向量,第
个单词的词向量使用
表示。常用来表示单词距离的方式有欧式距离,有单词
,那么
表示单词
与
的距离。
- Document distance
使用和
分别表示两个文档的nBOW矩阵,
中的每个词i都可以全部或部分地转移到
。
来自论文
因此,定义一个稀疏的转移矩阵表示
转移到
的代价,
表示
转移到
的代价(Let
be a (sparse) flow matrix where
denotes how much of word
in
travels to word in
),那么从
转移到
的代价为
。同时有如下限制:
和
- Transportation problem
将上述优化问题转化为线性规划问题
s.t.
论文中提到,上述公式属于earth mover’s distance metric (EMD)的一个特殊形式,所以没有给出如何求解。
剪枝
利用论文4.1节 的Prefetch and prune 部分可以知道剪枝可以减少95%的计算。
结果
与其他baseline相比,WMD在各自任务上都有比较明显的提升。


流程如下
以下内容来自[1]
- 利用word2vec将词编码成词向量
- 去掉停用词
- 计算出每个词在文本中所占权重,一般用词频来表示
- 对于每个词,找到另一条文本中的词,确定移动多少到这个词上。如果两个词语义比较相近,可以全部移动或移动多一些。如果语义差异较大,可以少移动或者不移动。用词向量距离与移动的多少相乘就是两个词的转移代价
- 保证全局的转移代价加和是最小的
- 文本1的词需要全部移出,文本2的词需要全部移入
参考文献
- https://supernan1994.github.io/nlp/wmd1.html (推荐)
- http://ir.dlut.edu.cn/news/detail/362
- FromWord Embeddings To Document Distances
- https://zhuanlan.zhihu.com/p/32242768 (python实现WMD)
网友评论