文档词频矩阵_使用word embedding计算文档距离

参照论文:http://proceedings.mlr.press/v37/kusnerb15.pdf

论文论述了使用word embedding(词向量或者叫词嵌入)来计算文档距离在准确率上的优点,于是提出了用WMD算法来计算文档的距离。但WMD这个方法计算复杂度太高,于是作者提出了WCD,RWMD两种近似算法来加速计算文档距离。

1.概述

最通常表示一个文档的方法有BOW(bag of words, 词袋模型),TF-IDF(词频-逆向文档频率模型)。其共同特征是统计一个单词在一篇文档中的使用频率。

1.1BOW:

下面是两个文档的例子:

1. Obama speaks to the media in Illinois

2. The President greets the press in Chicago

步骤:

  • 删除停用词

1. Obama speak media Illinois

2. President greet press Chicago

  • 建立词典(key, index)

{'Obama':1, 'speak':2, 'media':3, 'Illinois':4, 'President':5, 'greet':6, 'press':7, 'Chicago':8}

  • 对每个文档进行词频统计(index, count)
  1. {1:1, 2:1, 3:1, 4:1, 5:0, 6:0, 7:0, 8:0}
  2. {1:0, 2:0, 3:0, 4:0, 5:1, 6:1, 7:1, 8:1}
  • 表示文档向量
  1. [1,1,1,1,0,0,0,0]
  2. [0,0,0,0,1,1,1,1]

但这个两文档向量由于正交而不适合表示它们之间的距离。

1.2TF-IDF

tf-idf模型的主要思想是:如果词w在一篇文档d中出现的频率高,并且在其他文档中很少出现,则认为词w具有很好的区分能力,适合用来把文章d和其他文章区分开来。

计算tf计算公式:

w是某个单词, d是文档,

表示w这个单词在d文档中出现的频率。
表示这个文档所有单词数。

D是所有文档集来说,n是总文档数,

表示出现w的文档数。

tf-idf可以衡量一个检索文章串q:

与文档的匹配:

假如计算(停用词首先要除掉后计算)

q:1. Obama speaks to the media in Illinois

d: The President greets the press in Chicago

计算为0值,不能看出它们有什么相似度。

LSI,LDA等技术试图用一个低维度表示潜在的语义来表示一个文档,由于它们只是BOW和TF-IDF的变体,因此它们在文档距离计算上难以取得绝对的优势。

1.3 WMD (word mover's distance)

本论文提出了单词搬运距离的思想,这个思想借鉴了一种word embedding技术word2Vec。word2vec生成的word embedding证实了一种语义的相关性。相近的单词的word embedding表征在空间中也是距离比较近的关系。WMD是将文本文档表示为嵌入词的加权点云。 两个文本文档A和B之间的距离是文档A中的单词需要行进的最小累积距离准确匹配文档B的点云。

6ca864abf57eb4effc15a577950cb32f.png

WMD的好处:

  • 不需要超参数,理解直接和使用
  • 可解释性强
  • 融合word2vec使高的检索准确率

2.WMD

把每个词通过embedding成一个m维向量,所有词向量矩阵

。第i个词的词向量是

2.1 nBOW文档表示方式

每个文档d是使用词袋模型表示:

, 这个nBOW向量自然是一个非常稀疏的向量。所有文档都会事先删除停用词,因为它们对文档分类没有关系。

一些说一个文档记为这种nBow表示的文档。

2.2 Word travel cost

两个单词在word embedding空间的距离记为:

。思考:为什么不用余弦距离。

2.3 文档距离

设两个文档

,
表示文档
个单词转化为文档
个单词的权重。
满足:

那么两个文档之间的距离定义为如下式:

2.4 Transportation problem

把文档转化借鉴运输问题的思想,运输问题描述为:

生产地P产品数量(吨)

,仓库Q存储量(吨)
,并且假设产地与仓库
之间单位运输费用是
,求用最小费用把这些产品运输到仓库存储的方案是:

.......................................................(1)

012a2a88ae3bb3897b39cb36500c1403.png

2.5 快速距离计算方法

WMD 按运输问题方式求解,那么平均的时间复杂是

其中p一个文档单词数(相同单词不重复计数)。引入几种lower bound函数来不需要计算就能过滤掉大部分文档。

2.5.1 单词质心距离

=
=

根据三角不等式上式满足:

=

=

=

这个算法复杂度是

d是向量的维度。

用WCD算法找kNN候选。

2.5.1 松弛的WMD算法

虽然WCD是一个比较快速的算法,但和真实计算还不太逼近,因此有个RWMD算法作为WMD算法的优化,RWMD算法是去掉了WMD算法的一个约束项。这个优化算法是:

subject to:

大量事实证明WMD只有除掉一个约束后的WMD才有可能成为能优化solution。

这个优化solution是对在每个

的单词,用在
中距离它最近的一个单词来表示。因此算法表示为:

单词i 与单词j距离最短:j =

否则

因此N*N的矩阵,是一个只有N个元素不为0的稀疏矩阵。

算法j =

在word embedding检索一个离它最近的单词j。复杂度是
,但是有一种通过out-of-the-box tools技术能加速寻找最邻近算法。

=

假设通过两个松弛solution得到两个值

,我们获得一个更逼近的bound是

2.5.2 预抽取与修剪

为了选择k个最邻近,通过WCD,RWMD两个lower bound函数能显著减少WMD距离的计算量。使用WCD计算的距离进行排序选择与检索文档最近的k个文档。接下来遍历这个剩下的个文档。使用RWCD算法(比WCD更逼近真实距离)删除掉距离比

大,如果比
小,我们就用WMD算法更新这个k个最近距离。

3.结论

WMD 比BOW, td-idf,BM25,Componential Counting Grid,mSDA,LDA,LSI等计算文档相似度进行来分类有更高的准确率。这种准确率归功于高质量通过word2vec技术学习大量数据而得到的word embedding。WMD另一个非常好的特性是算法的可解释性。

另外一个话题是计算单词距离加一些惩罚项,如果它们出现在文档中不同的区域。例如两个相近的单词一个出现在introduce部分,另一个在method部分。

4.进一步研究

本论文对讨论使用单词相似度来计算文档距离,显然比单纯使用相同单词计算文档距离有很大的进步,但我认为有些地方有不足之处。并且作者也使用词频作为单词移动权重。但一个词的权重不仅仅和词频有关,还和这个词在本文档中最相似距离的单词词频,句式结构,词语在文档中的位置有密切关系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值