• 论文作者简介

本论文第一作者Matt J. Kusner是牛津大学的副教授,致力于设计适应现实世界问题需求的新机器学习模型(例如,fair algorithms, discrete generative models, document distances, privacy, dataset compression, budgeted learning, and Bayesian optimization)。

  • 论文摘要

论文中作者提出了一个度量文本文档之间距离的新指标,即词移距离WMD(Word Mover's Distance)。该成果基于Mikolov等人提出的词嵌入(word embeddings),一种语义上有意义的词汇表征。具体来说,将每个单词标记编码为某个向量,该向量表示为某种“单词”空间中的一个点(该空间的维数远远小于词汇表的大小|V|),每个维度都会编码某个含义。WMD距离衡量的是两个文本文档之间的差异性,即一篇文档的词汇需要对应到另一篇文档的某一个相近词汇,取该过程中所生成距离的最小值作为文档距离。该距离度量可以视为Earth Mover's Distance的一个特例。作者在8个现实世界的文档分类数据集上,与当时7个state-of-the-art的基准算法相比较,WMD度量取得了前所未有的较低的K最近邻文档分类错误率。

  • 论文内容介绍

准确地表示两个文档之间的距离在文档检索、新闻分类和聚类、歌曲识别和多语言文档匹配中具有广泛的应用。早先通过词袋模型BOW(bag of words)或词频-逆向文件频率TF-IDF(term frequency-inverse document frequency)表示文档的方式,由于它们频繁的接近正交的特性,故不适用于文档距离。这些表示方式的另一个显著缺点是他们没有捕获到单词之间的距离。作者利用Mikolov等人提出的word2vec模型构建了新的文档距离度量指标Word Mover's Distance (WMD),将文本文档表示为词嵌入向量的加权点云,每个词嵌入向量对应高维空间中的一个点。两篇文本文档A和B之间的距离是一个最小累积距离,该距离是来自文档A的单词需要travel来精确匹配文档B的点云。见下方新度量指标的略图。

作者还比较了几个下限方法,这些下限方法可以用作近似计算或者修剪掉被证明不在一个查询的k个最近邻中的文档。WMD距离具有几个有趣的特性:(1) 没有超参数,易于理解和使用; (2)高度可解释的,两个文档之间的距离可以分解并解释为少数几个单词之间的稀疏距离;(3)它自然地融入了word2vec空间中的编码知识并获得高检索准确率。作者是首次将高质量的词嵌入和EMD检索算法关联起来进行文档距离研究的。

  • 词嵌入向量(word embedding vector)

比如,针对300维的词嵌入向量,每个维度表示某个特定的含义。词汇表中所有词汇构成的词嵌入矩阵(word embedding matrix)如下图所示(图中的每一列表示该词汇对应的词嵌入向量,例如单词man表示的词嵌入向量为

  • Word Mover's Distance

nBOW:假设有n个单词的词汇表的word2vec嵌入矩阵

,第i列表示d维空间中第i个单词的词嵌入向量。假设文本文档表示成归一化的词袋向量nBOW(normalized bag-of-words vectors),
,确切地说,如果单词i在文档中出现了
次,则以nBOW形式表示的文档向量的第i个分量
。显而易见,一个nBOW向量d是非常稀疏的,因为大多数单词不会在给定的文档中出现。

Word travel cost:我们的目标是将每个单词对(例如,President and Obama)之间的语义相似度包含进文档距离度量中。单词

和单词
之间的欧氏距离
。为了避免混淆单词距离和文档距离,使用
指代为从一个词到另一个词的“旅行”成本。

Document distance:两个词之间的“travel cost”是一个自然的构建块用以创建两个文档之间的距离。令

维单纯形中两个文本文档的nBOW表示形式。首先,我们允许文档
中的每个单词
转换成文档
中的任何单词。令
表示一个稀疏的flow matrix,
表示文档
中单词
的多少权重流向了文档
中的单词
。为了将
完全转换为
,我们要确保来自单词
的整个流出权重之和等于
,即
类似的,流向文档
中单词
的流入权重之和等于
,即
。最后,将两个文档之间的距离定义为将文档
中的所有单词移动到文档
中的最小(加权)累积成本。即,

Transportation problem:在给定约束条件下,将文档

移动到文档
的最小累积成本就是以下线性规划的解决方案。

上述优化问题可以看做是earth mover's distance metric(EMD)的一个特例。

Visualization:考虑WMD度量文档距离的一个例子,

是两个句子,我们想要将他们与查询语句
进行比较。首先,去停用词(停用词主要由助词、冠词、感叹词等不具有实际含义的词汇以及数字和标点符号构成)。这样
中就只保留了President, greets, press, Chicago四个单词,每个单词的权重
(可以理解为词频(term frequency,TF),指的是某一个给定的词语在该文档中出现的频率,该单词在该文档中的出现次数/该文档中的总词数)。从句子
中的单词
中的单词
的箭头标注为它们对距离
的贡献值。WMD跟我们的直觉一致,将单词移动到语义上相似的单词,比如将Illinois转换成Chicago比将Japan转换成Chicago要廉价的多。这是因为在word2vec词嵌入空间中向量vec(Illinois)更接近于vec(Chicago)而不是vec(Japan)。因此,文档
的距离(1.07)要明显小于
的距离(1.63)。
  • Fast Distance Computation

由于解决WMD优化问题的最佳平均时间复杂度为

,其中p表示文档中唯一单词的数量。对于具有许多唯一单词的数据集(即,高维)或大量文档,解决WMD最优运输问题就变得成本高昂令人难以承受。我们可以引入WMD运输问题几个廉价的下限计算方法来修剪掉大多数的候选文档从而不必计算精确的WMD距离。

下限方法1(Word centroid distance):质心距离

确定文档
之间WMD的下限。根据三角不等式有

note:矩阵向量乘法的第二种形式

将该距离称为Word Centroid Distance(WCD),每个文档由其加权平均词向量表示。该下限计算方法只需要通过几个矩阵运算便可得出,时间复杂度也只有O(dp)

下限方法2(Relaxed word moving distance):由于WCD计算出的下限比较宽松,通过松弛WMD优化问题并分别移除两个约束条件中的一个,我们可以得到更严格的界限。如果只移除第二个约束条件,优化问题就变成了,

这个松弛问题一定会产生WMD距离的一个下限(lower-bound),一个明显的事实是每个WMD的解决方案(满足两个约束条件),一定仍然是移除一个约束条件的松弛问题的一个可行解决方案。令两个松弛解决方案分别是

,通过取两个松弛条件的最大值,我们可以得到一个更严格的边界,
,我们称该条件为Relaxed WMD (RWMD)。这个界限明显比WCD更严格。

Prefetch and prune:我们使用两个下限来大幅减少我们需要进行的WMD距离计算量,以便找到一个查询文档的k个最近邻。首先将所有文档按照它们到查询文档的WCD距离(该距离计算成本廉价)进行升序排列,然后计算查询文档到这些文档中前k个文档的精确WMD距离。接下来遍历剩余的其它文档。对于余下的每篇文档我们首先检查RWMD下限是否超过当前第k个最近文档的距离,如果是这样我们就将其修剪掉。否则的话就计算WMD距离并在必要时更新第k个最近邻。由于RWMD近似非常严格,它允许我们在一些数据集上修剪掉高达95%的文档数。

  • 结果

作者在八个基准文档分类任务上以kNN分类的形式评估了WMD距离(word mover’s distance)。

1、8个监督学习范畴的公开文档数据集

2、用于与WMD距离相比较的表示文档的7个基准方法

对于每个基准方法,我们使用欧氏距离进行kNN分类。

bag-of-words (BOW), TFIDF(term frequency-inverse document frequency), BM25 Okapi, LSI(Latent Semantic Indexing), LDA(Latent Dirichlet Allocation), mSDA(Marginalized Stacked Denoising Autoencoder), CCG(Componential Counting Grid)

3、文档分类结果

在除了两个(BBCSPORT,OHSUMED)之外的所有数据集上,WMD取得了最低的测试误差。

4、Lower Bounds and Pruning

最后,作者评估了在m的不同取值下prefetch和prune算法的精确和近似版本的加速性能和准确性。所有加速都是相对于详尽的WMD度量所需时间(图的最上方)而报告的,并且在4个核心上并行运行。(8 cores for 20NEWS) of an Intel L5520 CPU with 2.27Ghz clock frequency.首先,我们注意到在所有情况下,通过prefetching增加的错误相对较小,而可以获得可观的速度提升。

从图中可以观察到,误差在m = k和m = 2k之间下降最多,对于时间敏感的应用来说,这可能会产生一个介于准确率和检索时间之间的最佳点(sweet spot)。如前所述,使用RWMD直接导致令人印象深刻的低错误率,并且在所有数据集上的平均检索时间低于1秒。

  • 结论

WMD度量在所有数据集上的错误率如此之低,我们将其归因于其利用了word2vec词嵌入向量高效表征词汇的能力。

  • 参考文献:

【1】Matt J. Kusner, From Word Embeddings To Document Distances

【2】Mikolov, T., Chen, K., Corrado, G., and Dean, J. Efficient estimation of word representations in vector space. In Proceedsings of Workshop at ICLR, 2013a.

【3】Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S., and Dean, J. Distributed representations of words and phrases and their compositionality. In NIPS, pp. 3111– 3119, 2013b.

Word2Vec Tutorial - The Skip-Gram Model

吴恩达、深度学习第五门课程-序列模型(sequence models)、网易云课堂

文档词频矩阵_论文理解:从词嵌入到文档距离相关推荐

  1. 文档词频矩阵_如何通过词向量技术来计算 2 个文档的相似度?

    作者:吴俣https://www.zhihu.com/question/33952003/answer/135089460 Deep Learning 派系:(1)最简单的就是两个句子分别过一个CNN ...

  2. python+Xpath爬取英文新闻并生成文档词频矩阵

    详情见我的github:https://github.com/Snowing-ST/Statistical-Case-Studies/tree/master/Lab3%20English%20Text ...

  3. 指代消解_论文理解《Improving Coreference Resolution by Learning Entity-Level Distributed Representations》

    论文<Improving Coreference Resolution by Learning Entity-Level Distributed Representations> 段落: ...

  4. vvv在线文档导出工具_一款真正实时的在线文档协作编辑工具,多人可同时对一份文件修改...

    etherpad-lite 一个非常实时的网络协作文字处理器 Etherpad是一款真正实时的协作编辑器,可扩展到数千个同步实时用户. 与所有其他协作工具不同,Etherpad提供完全保真的数据导出和 ...

  5. vscode 不展示文档注释内容_文本框这样用,实现文档不同板块内容高效联动,你还不知道吧...

    --word2016系列教程之"文本框链接使用" 我们使用word文档进行手抄报排版或其他文档排版时,可能会出现一个板块的内容比较多,排不下去.需要在其它板块进行排列,像这样--, ...

  6. ansys workbench 帮助文档在哪_中英对照读ANSYS帮助文档,是怎么玩的?

    话说我之前写过两篇关于有限元软件的帮助文档怎么翻译成中文的推送.但是自那以后我又有了更好的方法.虽然在前面的文章里我也提过一次,但想想还是单独发出来安利一下比较好. 使用Chrome浏览器打开英文的帮 ...

  7. word文档怎么一分为二_微信文章怎么转成word文档,这个强大工具可以帮你搞定...

    现在每个人微信里都会订阅自己喜欢的公众号,小编也是这样,初略统计下,微信里关注的公众号不下60个,工作的.生活的.新闻资讯.娱乐八卦.美容养生等等,太多太多了. 这些公众号每天都会推送许多内容精致的文 ...

  8. 将word文档导入数据库_如何将用户信息插入Word文档

    将word文档导入数据库 When you install Word, you are asked to enter your name and initials. This user informa ...

  9. java闭包矩阵_深刻理解Java闭包概念

    闭包又称词法闭包java 闭包最先定义为一种包含和的实体.闭包 解释一:闭包是引用了自由变量的函数,这个被引用的变量将和这个函数一同存在.函数 解释二:闭包是函数和相关引用环境组成的实体.spa 注: ...

最新文章

  1. java为啥要捕捉异常_java – 为什么在捕获时使用IOexception而不是Exception?
  2. 如果修改postgresql的最大连接数
  3. WinSCP默认使用root用户登录的方法
  4. 【UWB】Kalman filter, KF卡尔曼滤波, EKF 扩展卡尔曼滤波
  5. 诺基亚塞班系列最强回顾(搬运整理)
  6. 互联网1分钟 |1119
  7. MySQL 删除字段数据某关键字后的所有数据
  8. activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
  9. .net知识和学习方法系列(十四)TraceListener的应用
  10. (stl排序+检索)大理石在哪
  11. debian9.8与主机共享问题
  12. php报错怎么改,php 怎么设置报错级别 和 控制报错[转]
  13. 1.11 为什么使用卷积?
  14. bzoj 3211: 花神游历各国 bzoj 3038: 上帝造题的七分钟2
  15. JSR-303校验-转载
  16. 新的任务范式:Program-guided Tasks
  17. 微店一键复制商品软件使用教程
  18. android pgis地图,PGIS(警用地图)建设方案详细.doc
  19. [openwrt]:斐讯K3C OPCC+中大H3C校园网认证配置指南(一)
  20. Hadoop面试题总结

热门文章

  1. 强大的Canvas开源库Fabric.js简介与开发指南
  2. 产品经理经验谈100篇(一)-一个经销商订单贷的业务设计
  3. python 进程池 等待数量_【2020Python修炼记】python并发编程(六)补充—进程池和线程池...
  4. mysql 替代like_mysql用instr替代like查询
  5. 51cto 检测ip地址冲突_在Linux中发现IP地址冲突的方法
  6. java动态变量名反射_Java动态性—反射 - Eclipse666的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. java 门面模式_Java门面模式
  8. Es6学习笔记(7)----数组的扩展
  9. CSS3总结(干货)
  10. CSS中越界问题经典解决方案