一、前言

最近阅读的论文From Word Embeddings To Document Distances.做一个小总结。作为一个NLP刚刚开始,而且还没有入门的小白,很多的概念都不懂,一点点的查吧,边查边做笔记【苦笑脸】。例如word embedding,word2vec,bag-of-words,本文将详细解释相关的概念并加入我自己对文章的了解。

二、基本概念

2.1 word embedding:

翻译过来就是词向量,简单来说就是特定单词的向量表示,将单词映射到另一个空间向量中的方法,也可以说是一个function,该方法有两个特点:1,injective(一一对应,一个X对应一个Y),2,structure-preserving(结构保存,就是X所属空间X1<X2,映射后Y所属空间上Y1<Y2)。当然更加具体的可以看维基百科(word embedding)的解释,我感觉解释的相当到位。

2.2 bag-of-words:

直译很形象,就是将单词放入袋子里, 统计每个单词在文本中出现的次数作为训练器的特征,可以用于文本分类模型,但是这样做忽略了语法和单词的语序。例如文章1中的栗子:
1、Obama speaks to the media in Illinois
2、 The President greets the press in Chicago.
两个句子表达的意思基本一样,应该属于同一类,但是bag-of-words的方法并不适用。
对于bag-of-words更形象的理解可以举一个维基百科中的栗子:

(1) John likes to watch movies. Mary likes movies too.
(2) Mary also likes to watch football games.

两个句子的列表结构如下:

“John”,“likes”,“to”,“watch”,“movies”,“Mary”,“likes”,“movies”,“too”
“Mary”,“also”,“likes”,“to”,“watch”,“football”,“games”

用JSON表达每个bag-of-words:

BoW1 = {“John”:1,“likes”:2,“to”:1,“watch”:1,“movies”:2,“Mary”:1,“too”:1};
BoW2 = {“Mary”:1,“also”:1,“likes”:1,“to”:1,“watch”:1,“football”:1,“games”:1};

每个键是单词,每个值是该单词在给定文本文档中出现的次数。元素的顺序是自由的,所以,例如{“too”:1,“Mary”:1,“movies”:2,“John”:1,“watch”:1,“likes”:2,“to”:1}也是BoW1。如果另一个文档是这两个的并集:

(3) John likes to watch movies. Mary likes movies too. Mary also likes to watch football games.

这时的JSON表达的话就是:

BoW3 = {“John”:1,“likes”:3,“to”:2,“watch”:2,“movies”:2,“Mary”:2,“too”:1,“also”:1,“football”:1,“games”:1};

针对3,1和2可以表示为如下的两个list

(1)[1, 2, 1, 1, 2, 1, 1, 0, 0, 0]
(2)[0, 1, 1, 1, 0, 1, 0, 1, 1, 1]

2.3 nBOW(BOW标准化)

Paper中提到了normalized-BOW(nBOW)的概念,目的是减小模型训练的误差。它的定义是,如果一个单词iii在文档中出现了CiC_{i}Ci次那么经过 nBOW 处理后该单词的表示方法为 di=Ci∑j=1nCjd_{i}=\frac{C_{i}}{\sum_{j=1}^{n}C_{j}}di=j=1nCjCi。简单点说就是该单词出现的词数除以该文本中单词总数。应用上述的例子
(1)[1, 2, 1, 1, 2, 1, 1, 0, 0, 0]
(2)[1/7,2/7,1/7,1/7,2/7,1/7,1/7,0,0,0]
其中(2)代表nBOW处理之后的文本向量,在实战中做 nBOW 之前一般都先去除停用词(下面讲的stop words)

2.4word2vec

推荐一个知乎用户的文章,详细的揭开了word2vecword2vecword2vec的本质2,可以看看:(转到)

2.5stop words

stop words是在处理NLP数据(文本)通常是指一种语言中最常见的一些词,例如the 、a、at等,一般都是被从文本中剔除掉。但是没有一种通用的stop words列表。针对具体的问题,需要用具体的stop words。

三、文章总结

文档距离计算是自然语言处理研究的核心课题之一,也在工业中有着广泛的应用。通过文档距离的计算可以自动化处理大量文档分类和聚类相关的问题。比如在社交网络中,新闻、摘要内容的聚类方便做用户的推荐推送。在企业中文档的分类可以优化对相关资料搜索的准确性。然而,常规做法往往会忽略对近义词、短语的处理。比如尽管两个文章表达的内容很相近,但因为不同人表达方式、修辞的不同,造成机器无法在不同词中找到二者间的共性,从而导致无法将两篇内容相近的文章很好的归类。随着word2vecword2vecword2vec 这样技术的日趋成熟,使这些问题在今天得到了相对令人满意的解决,也使我们能够通过两个向量之间的距离来衡量两个词的相似性。如果我们把这些向量(不同文档中的词)间相对应的距离差加和,就可以把词之间的相似性转化为文档间的相似性了。Word Mover’s Distance(WMD)就是基于这样的思路得来的3

3.1 Word Mover’s Distance

假设有两个文本D1,D2,WMD的计算流程如下:

  • 1、去除D1,D2的stop words

  • 2、用word2vec embedding来表示D1,D2中的每一个词

  • 3、用nBOW 方法来分别表示D1,D2,记做dddd′d^{'}d

  • 4、 计算word travel cost,利用上面计算出来的dddd′d^{'}d来表示单词iii和单词jjj之间的距离C(i,j)=∥xi−yj∥2C(i,j)=\lVert x_{i}-y_{j}\rVert_{2}C(i,j)=xiyj2

  • 5、计算TijT_{ij}Tij
    ddd中的每个单词iii都可以全部或者部分转移到d′d'd的每个单词jjj中去。因此定义一个转移矩阵T∈Rn×nT \in \mathbf{R}^{n \times n}TRn×n(当两个词向量维度不相等时:T∈Rn×mT \in \mathbf{R}^{n \times m}TRn×m)。TijT_{ij}Tij表示ddd中的词iii转移到d′d^{'}d中的词jjj的转移距离。且Tij>0T_{ij}>0Tij>0
    那么从dddd′d^{'}d的全局转移代价累加和就表示为∑i,jTijC(i,j)\sum_{i,j}T_{ij}C(i,j)i,jTijC(i,j),这里需要求出最小的全局转移代价累加和,也就是文本间的相似度。这就是一个LP问题,求解LP问题的参考文档:https://cvxopt.org/userguide/coneprog.html#linear-programming
    minT≤0∑i,j=1nTijC(i,j)\mathop{min}\limits_{T\leq0} \sum_{i, j=1}^nT_{ij}C(i,j)T0mini,j=1nTijC(i,j)
    s.t.s.t.s.t.∑j=1nTij=di∀i∈{1,2,...n}\sum_{j=1}^n T_{ij} = d_{i} \qquad \forall i \in \{1,2,...n\}j=1nTij=dii{1,2,...n} ∑i=1nTij=dj′∀i∈{1,2,...n}\sum_{i=1}^n T_{ij} = d_{j}^{'} \qquad \forall i \in \{1,2,...n\}i=1nTij=dji{1,2,...n}
    TijT_{ij}Tij中第iii行的值相加后等于ddd中的第iii个单词的nBOW值
    TijT_{ij}Tij中第jjj列的值相加后等于d′d^{'}d中的第jjj个单词的nBOW值

  • 6、这个全局转移代价累加和的最小值就是D1,D2的相似度。

到这里基本上以及全面了解了WMD算法,接下来再看看文章中例举的例子:

D0, D1 和 D2 在去掉停用词(to, the, in)后,是等长的4个向量。以 D1 为例,Obama 是通过 word2vec 计算出了分别到 President,greets,press, Chicago 的距离,其中到 President 0.45是TijT_{ij}Tij乘以C(i,j)C(i,j)C(i,j)最小值的解,所以依照上面 WMD 的定义,Obama 就和 President一一对应上了。这里之所以一一对应,是因为两个文本去停用词后都剩下四个单词3

但是在现实生活中对比文档时几乎不会出现两个被比较的文档长度完全一样,在这种情况下,作者给了另外一个例子。由于 D0, D3 两个文本长度不一样,所以导致他们的 nBOW 值也不同(比如 President 在D0 中的值为 1/4 = 0.25 即 4个词中出现一次, Obama 的值则为 1/3 = 0.33 表示三个词里出现一次)这里如果转移 Obama 到 D0 文档去 0.33 - 0.25 = 0.08 还有0.08 个单位没有分配出去,因为 President 最大只能接受 0.25 的权重,在这时如果 greets 是除了 President 之外与 Obama 距离最近的词,就会把剩下的 0.08 权重分给它3

3.2 优化问题

这里对上面最小值的优化问题其实论文中并没有描述,因为在计算机视觉学科已经有相关的研究,就是earth mover’s distance metric (EMD4)的一个特例。
本论文采用了Fast-EMD论文中提出的求解方法:Fast and Robust Earth Mover’s Distances5。该算法的平均时间复杂度是O(p3logp)O{(p^3 \textrm{log}p)}O(p3logp)(其中ppp是独立单词的个数)。但是如果文档的维度特别大,独立单词的个数特别多的话,Fast Distance Computation的解法将是一个非常棘手的问题。
我们可以通过使用low bound来减少问题的求解空间。从而提升计算效率。

3.2.1Word centroid distance (WCD)

这是利用三角不等式(∣a∣+∣b∣≥∣a+b∣|a|+|b| \ge|a+b|a+ba+b)来找到WMD的最优化目标的一个宽松下界,用来替代WMD的结果。其实这种算法的本质上就是我们最快能够想到的计算两条文本相似度的方法:分别把每条文本的词向量加起来取平均,再计算得到的两个向量的欧氏距离。

WCD 在损失一定精度的情况下极大的加快了运行速度,将时间复杂度减小到O(dp)。其中d代表词向量维度,p代表两篇文本分词去重后词表的大小 。

3.2.2Relaxed word moving distance(RWMD)

虽然WCD非常容易求解,但是边界过于宽松,无法很好的近似解决WMD问题。RWMD相比于WCD有更加紧密的边界,RWMD会计算两次,每次计算时会从WMD两个约束中去掉一个约束,得出两个比WMD宽松的结果,然后取其中的最大值。
去掉第二个约束项minT≤0∑i,j=1nTijC(i,j)\mathop{min}\limits_{T\leq0} \sum_{i, j=1}^nT_{ij}C(i,j)T0mini,j=1nTijC(i,j)
s.t.s.t.s.t.∑j=1nTij=di∀i∈{1,2,...n}\sum_{j=1}^n T_{ij} = d_{i} \qquad \forall i \in \{1,2,...n\}j=1nTij=dii{1,2,...n}
这就是说把ddd中的word全都转换到d′d^{'}d中就行了Tij∗={diif j=argminjc(i,j)0otrherwiseT_{ij}^{*}= \left\{ \begin{array}{ll} d_{i} & \textrm{if $j=argmin_{j}c(i,j)$}\\ 0 & \textrm{otrherwise} \end{array} \right.Tij={di0ifj=argminjc(i,j)otrherwise假设iiid′d^{'}d中的最短距离为j∗j^{*}jj∗=argminjc(i,j)j^{*}=argmin_{j}c(i,j)j=argminjc(i,j)word的最短mover’s distance就是c(i,j)dic(i,j)d_{i}c(i,j)di。证明方法如下:
∑jTijc(i,j)≥∑jTijc(i,j∗)=c(i,j∗)∑jTij=c(i,j∗)di\sum_{j}T_{ij}c(i,j) \ge \sum_{j}T_{ij}c(i,j^{*})=c(i,j^{*}) \sum_{j}T_{ij}=c(i,j^*)d_{i}jTijc(i,j)jTijc(i,j)=c(i,j)jTij=c(i,j)di
同理移除第一个约束得到:
∑iTijc(i,j)≥∑iTijc(i∗,j)=c(i∗,j)∑iTij=c(i∗,j)di′\sum_{i}T_{ij}c(i,j) \ge \sum_{i}T_{ij}c(i^{*},j)=c(i^{*},j) \sum_{i}T_{ij}=c(i^*,j)d_{i}^{'}iTijc(i,j)iTijc(i,j)=c(i,j)iTij=c(i,j)di
去两个值得较大一个作为RWMD的下界

3.2.3预取和修剪

在所有文档中找出与一个文档D最相似的K个文档:

  1. 用WCD方法计算所有文档与文档D的WCD距离,并按照递增排序;
  2. 取前K个文档出来,计算WMD值,这时先暂且任务这K个文档是找出来的与D文档最相似的K个文档,但是由于WCD方法是不tight的,所以对于剩下的文档转到步骤3
  3. 计算RWMD值,如果计算的RWMD值比上面的K个WMD值最大的要小,就说明找到了一个更小的WMD,替换topK中WMD最大的那个;否则,扔掉不要

代码实现

参考博文https://zhuanlan.zhihu.com/p/88559611,https://jozeelin.github.io/2019/07/26/WMD/。github:https://github.com/src-d/wmd-relax

参考


  1. Matt J. Kusner, Yu Sun, Nicholas I. Kolkin, and Kilian Q. Weinberger. 2015. From word embeddings to document distances. In Proceedings of the 32nd International Conference on International Conference on Machine Learning - Volume 37 (ICML’15). JMLR.org, 957–966. ↩︎

  2. https://zhuanlan.zhihu.com/p/26306795 ↩︎

  3. https://zhuanlan.zhihu.com/p/88559611 ↩︎ ↩︎ ↩︎

  4. EMD: https://www.cs.cmu.edu/~efros/courses/AP06/Papers/rubner-jcviu-00.pdf ↩︎

  5. Fast and Robust Earth Mover’s Distances:https://www.cse.huji.ac.il/~werman/Papers/ICCV2009.pdf ↩︎

From Word Embeddings To Document Distances论文总结相关推荐

  1. 从词嵌入到文档距离论文笔记(From Word Embeddings To Document Distances)

    摘要 引言 二.相关工作 三 .word2vec词向量 四.WMD距离 四.WMD距离-快速计算 五.实验结果 六.总结

  2. 论文:lda2vev:Mixing Dirichlet Topic Models and Word Embeddings to Make lda2vec

    lda2vev:Mixing Dirichlet Topic Models and Word Embeddings to Make lda2vec 论文概述 ABSTRACT Introduction ...

  3. Re13:读论文 Gender and Racial Stereotype Detection in Legal Opinion Word Embeddings

    诸神缄默不语-个人CSDN博文目录 论文名称:Gender and Racial Stereotype Detection in Legal Opinion Word Embeddings 论文ArX ...

  4. Employing Personal Word Embeddings for Personalized Search

    Employing Personal Word Embeddings for Personalized Search总结 Idea 模型整体结构 模型详细内容 符号 Pre-training 个性化模 ...

  5. 吴恩达《序列模型》精炼笔记(2)-- NLP和Word Embeddings

    AI有道 不可错过的AI技术公众号 关注 1 Word Representation 上节课我们介绍过表征单词的方式是首先建立一个较大的词汇表(例如10000),然后使用one-hot的方式对每个单词 ...

  6. Coursera吴恩达《序列模型》课程笔记(2)-- NLP Word Embeddings

    红色石头的个人网站:redstonewill.com <Recurrent Neural Networks>是Andrw Ng深度学习专项课程中的第五门课,也是最后一门课.这门课主要介绍循 ...

  7. Improving Twitter Sentiment Classification Using Topic-Enriched Multi-Prototype Word Embeddings

    1. 介绍 本文主要介绍论文Improving Twitter Sentiment Classification Using Topic-Enriched Multi-Prototype Word E ...

  8. Word embeddings in 2017: Trends and future directions (2017年里的词嵌入:趋势和未来方向)

    Word embeddings in 2017: Trends and future directions 原文作者:anonymous 原文地址:http://ruder.io/word-embed ...

  9. Artetxe2018CoNLL_Uncovering divergent linguistic information in word embeddings...

    Uncovering divergent linguistic information in word embeddings with lessons for intrinsic and extrin ...

最新文章

  1. LeetCode刷题-1
  2. Vivado中IP核生成文件
  3. struts2之ModelDriven的使用
  4. 高斯拉普拉斯金字塔资料整理
  5. Daily Scrum 10.26
  6. 学习opencv之cvtColor
  7. 计算机联锁道岔故障处理,TYJL-II型计算机联锁系统的日常维护和故障处理.doc
  8. zimbra mysql管理_zimbra 命令行管理
  9. R交互图_shiny包
  10. excel文件修复工具_DBF Doctor下载_DBF文件修复软件官方版下载[管理工具]
  11. 对近来安庆天气特征的总结(夏季)
  12. excel能改编码_如何修改Excel的编码-excel编码设置,查看excel编码格式
  13. 小米笔记本13.3(Intel+mx150独显双显卡)+deepin15.5+cuda9.0安装教程
  14. GIC/ITS代码分析(11)LPI中断虚拟化之概述
  15. 记录win7安装Docker for Windows(DockerToolbox)的一记大坑:wating for an ip....卡死
  16. 转载:2014 Top Security Tools as Voted by ToolsWatch.org Readers
  17. RDD、DataFrame、DataSet原理解析
  18. int和integer
  19. 第十九讲 信息安全管理【2021年软考-高级信息系统项目管理师】
  20. 6S-7PIOS14~14.7.1密码界面越狱教程

热门文章

  1. Python 基础部分(三)
  2. 书友汇德天-创作不停,学习不止(十字交叉线画法)
  3. 大三学生简历_不要再问那些没有的高级开发人员了。 开始指导大三学生。
  4. 【软考-中级】系统集成项目管理工程师【总】
  5. datagridvie设置行高列宽_DataGridView控件如何让行高随内容的多少变化啊?
  6. iPhone十二年了,多希望这是苹果的一个新轮回!
  7. 华为云服务器更换操作系统,云服务器更换操作系统
  8. 数位DP --Windy数
  9. iOS 初中级工程师简历指北
  10. ffmpeg批量m4a转mp3