一、方法描述
在文档检索,文本分类,聚类等应用中,计算文档间距离是重要的影响因素
文章提出了一种新的计算文档间距离的方法。用带权重的embedding词云来表示文档,文档间的距离采用A文档中全部词到B文档中全部词的累计最近距离来计算文章间的距离。
该方法有如下几个优点:
1.易于使用,无需超参数
2.它具有很高的可解释性,因为两个文档之间的距离可以分解为几个单独单词之间的稀疏距离
3.它使用word2vec知识进行编码,因此具有较高的检索精度。
二、方法的实现
WMD的计算过程如下:
1.假设n个词的word2vec词典矩阵为 ,其中n为单词的数量,d为embedding的维度,第i个单词的词向量为。
将文章转化为nBOW向量,其中出现次的词i表示为
2.用word2vec embedding中的欧式距离来定义i,j两个单词间的距离,
3.用d和d'来表示两个文章的nBOW向量,我们可以用来表示d到d'的转移矩阵,那么则表示有多少属于d的单词i转移到d'的单词j中。
因此我们有和,那么d到d'的最小距离则可以表示为。
此问题则可以转化为如下表述的线性规划问题:
一个计算句子间WMD距离的例子如下:
计算两个文档间的WMD距离时间复杂度较高()
优化方法:
1.WCD(Word Centroid Distance)距离:
时间复杂度为,用WCD来筛选出最近的候选集,然后再计算WMD距离来求近似解。
WCD距离可以理解将文章词向量的均值作为文章的语义向量,来计算两个文章语义向量的欧式距离。
2.RWMD(Relaxed word moving distance)距离:
WCD距离计算虽然快,但是这个距离的下界不够紧,因此作者提出了另一种方法RWMD距离:
这个方法是将WMD距离中的限制条件去除了一个——不考虑目标文档词的数量。
因此转移矩阵的定义如下:
对与任意词,有最近的词,该下界的推导如下:
用这个方法我们可以得到两篇文章的距离下界
当用同样的方法去除第一个条件后,也可以得到一个距离
取这两个距离中的最大值可以得到一个更紧的下界,文章将这个作为RWMD距离,时间复杂度为。
3.预取和剪枝算法
文章采用WCD和RWMD方法来大幅度降低计算的复杂度。
1)先用WCD距离来计算所有的文档距离,并进行排序。
2)选择topK文档计算WMD距离。
3)按顺序逐个访问剩余文档,计算文档的RWMD距离,如果RWMD距离比当前topk的WMD距离大,则剪枝,如果小,则计算RWMD距离,如果新文档的RWMD距离比TOPk小,则更新TOPK文档。
RWMD是个很紧的下界(如图所示),因此可以剪枝掉95%的文档,如果不要求精确解可以只计算m(m<n)个文档的RWMD距离。
三、方法效果
文章在不同的数据集上对比了7种baseline方法和WMD方法进行的KNN分类,取得了较好的效果:
思考:
文章组合使用多种更松下界方法来对原有算法进行剪枝,从而降低算法的复杂度。
WMD距离的计算依赖word2vec质量的好坏。
参考文献
From Word Embeddings To Document Distances