[Paper] From Word Embeddings To Document Distances

From Word Embeddings To Document Distances

1. 问题

文档相似度是很难衡量的,本篇论文之前,两个文档的相似度主要由词频来计算。
举个简单的例子,有三句话:

  • “李无名喜欢王无名”
  • “张无名喜欢李无名”
  • “李某暗恋王某”

分别统计每句话的每个词出现的频率,分别得到向量:

  • [“李无名”:\(\frac{1}{3}\),“喜欢”:\(\frac{1}{3}\),“王无名”:\(\frac{1}{3}\),“张无名”:\(\frac{1}{3}\),“张某”:\(0\),“暗恋”:\(0\),“王某”:\(0\)]
  • [“李无名”:\(\frac{1}{3}\),“喜欢”:\(\frac{1}{3}\),“王无名”:\(\frac{1}{3}\),“张无名”:\(\frac{1}{3}\),“张某”:\(0\),“暗恋”:\(0\),“王某”:\(0\)]
  • [“李无名”:\(0\),“喜欢”:\(0\),“王无名”:\(0\),“张无名”:\(\frac{1}{3}\),“张某”:\(\frac{1}{3}\),“暗恋”:\(\frac{1}{3}\),“王某”:\(\frac{1}{3}\)]

从上面的特征向量可以看出,第一个句子和第二个句子的相似度更高一些,但是从语义角度讲,第一个句子和第三个句子表达的内容更加相近一些,由此可以看出,简单的\(BOW/IF-TDF\)表示方法很难表达语句和文档中丰富的语义信息,比如“李无名”-“李某”。
由此,本文作者提出使用Word2Vec来表示词语,WMD(Word Mover's Distance)来衡量向量距离的方法。

2. 相关

2.1 Word2Vec Embedding

Word2Vec是一种词向量表示方法,可以把稀疏的特征向量转化为稠密的特征向量。经过这种方法的转换,每个词可以表示为相同维度的稠密向量,而且语义相近的词间的欧氏距离也会比语义无关的词距离大。(https://www.cnblogs.com/guoyaohua/p/9240336.html)

2.2 Earth Mover's Distance

EMD距离是一种描述两个分布间距离的方法,尤其是在两个向量维度不一致的时候,这很符合文本比对的特点:两个文本里面包含的词语的交集肯定不等于并集。
http://www.bubuko.com/infodetail-172741.html

3. 思路

有了以上两个技术,我们就可以比较好的对文本进行表示,同时计算两个文本的相似度了。

  • 我们拥有一个包含\(n\)个词语的Word2Vec编码器\(X\in{\mathbb{R}^{n\times{d}}}\),可以将每个单词编码为d维稠密向量
  • 我们对两篇文档进行nBOW表示,得到特征向量\(D_1,D_2\in{\mathbb{R}^n}\),其中对于每个\(d_i\in{D}\)\(d_i=\frac{p_i}{\sum_{j=1}^np_j}\)\(p_i\)为第i个单词出现的频数。
  • 对于词典中的每个词语,词语间的距离可以用\(c\left(i,j\right)=\\||x_i-x_j||_2\)距离来表示, 其中\(x_i, x_j\in{X}\)
    avater
  • 对于每一个\(D_1\)中的词语\(w_{1i}\),用一个参数\(T_{ij}\)表示其与\(w_{2j}\in{D_2}\)的变换权重(个人理解,不是专用名词),这样我们就得到了一个权重矩阵\(T\in{\mathbb{R^{n\times{n}}}}\),与此同时,我们还得到了约束条件\(\sum_{j=1}^n{T_{ij}}=d_{1i}\),和\(\sum_{i=1}^n{T_{ij}}=d_{2j}\)来保证“出入平衡”
  • 最终我们得到了总体距离的表示:
    \[\min_{T\geq0}\sum_{i,j=1}^nT_{ij}c\left(i, j\right)\]
    \[s.t: \sum_{j=1}^n{T_{ij}}=d_{1i}, \forall{i\in{{\{1,2,\dots,n}\}}}\]
    \[\sum_{i=1}^n{T_{ij}}=d_{2j}, \forall{j\in{{\{1,2,\dots,n}\}}}\]
    计算过程有很多详细的介绍,在此就不说了。
    avater

4. 优化

使用3中的方法,虽然可以得到精确的最小距离,但是计算复杂度过高,有\(O(p^3\log{p})\),其中p为两个文档中共有的单词数量,于是,为了简化计算有了以下三种快速优化方法:Word Centroid Computation, Relaxed word moving distance和预删除和修剪(prefetch and prune)

5. 不足

  • 失去了语句上下文的信息
  • 只能处理Word2Vec能编码的词语
  • 不能给出文档的向量表达
  • 求解非常耗时

猜你喜欢

转载自www.cnblogs.com/cannotfindaname/p/11826518.html