论文笔记:From Word Embeddings To Document Distances

文档相似度(document similarity)是自然语言处理(NLP)领域中比较经典的一个下游任务。基本问题是,给定两个文档,判断它们的内容有多相似。这种判断可以基于多个层次。最低级的就是字符串到字符串的匹配,最高级的就是两篇文档是不是传达了相似的信息。从低级到高级,评判算法给出的相似度的合理性越来越依赖于算法对人类语言的理解,或者说越来越基于“语义”。比如,"Obama speaks to the media in Illinois"同"The President greets the press in Chicago" (引自标题论文)有类似的语义,但完全不一样的表达,或者说两句话的字符串形式差异很大。那么,如何才能做到基于语义的相似度计算?

随着神经网络的复兴,NLP领域里涌现了一个重要技术,就是词向量,或者说词嵌入。语言学家很早就在思考对于人类语言的数学建模。自然而然,这需要语言学家解决一个基本问题:以英语为例,如果说英语的基本单位是一个个的英文单词,那么该如何把每个单词映射为几何空间里的一个向量,使得语义相关的单词有相邻近的空间位置?直观的做法是,手工设计一个高维空间,每个维度都有明确的定义,然后按照人类对语言的理解,给一个单词在每个维度打分,也就是依靠人来定义坐标轴和每个单词的具体坐标。这样的映射通常会有比较好的性质,比如同义词应该在所有坐标轴上坐标相似,反义词应该在某些坐标轴上坐标相反。但很明显,手工做法难以大规模推广到所有英文单词。也因此有了word2vec、glove这一类基于统计共现的词向量模型。这一类模型本质上是在对单词的共现矩阵做矩阵分解,此处按下不表。总之,我们现在有大量的可选的词向量模型,能够用向量间的空间距离来抽象的表达单词间的语义距离。接下来的问题是,如何从给定的单词间的语义距离,推断文档间的语义距离?这也就是标题论文的主题。

基本思路如下。首先,一篇文档可以粗糙的理解为一个单词的集合(无序)。如果文档A和B相似,那么我们应该能发现A中的一些词在语义上对应着B中的一些词。比如,在第一段的两个例句中,“Obama”应该对应"President",“media”应该对应“press”。为什么?以A句中的“media”为例,相对于B句中的其他单词,“media”同“press”有最小的基于单词对的语义距离。

更一般来说,假设我们有一个语料库(corpus),也就是一堆文档的集合。我们先收集语料库中至少出现一次的单词,构成字典(vocabulary)。假设字典中有N个唯一的词,随意排序好,w_i指字典中的第i个单词。然后,统计每篇文档使用了字典中的哪些词,以及每个词使用了多少次。假设文档A中,所有字典词出现的频率为(d_1^A,d_2^A,...,d_N^A)d_i^A \in [0, 1], \sum_{i=1}^N d_i^A=1)。自然,A中没使用的词的频率为0。 类似的,文档B的单词频率为(d_1^B,d_2^B,...,d_N^B)。记w_i^A为文档A中出现的第i个字典词。然后构建一个N \times N的矩阵c,其中元素(i,j)记为c(i,j)。具体含义上,c(i,j)=dist(w_i^A, w_j^B),也就是w_i^Aw_j^B的基于单词词义的语义距离。距离矩阵c由某个词向量模型给出的单词向量结合一个距离函数可以得出,视为给定即可。

那么直观上,可以定义如下文档距离,
dist(A,B)=\sum_{i=1,j=1}^{i=N,j=N} c(i,j)d_i^A d_j^B

即单词对(w_i^A, w_j^B)对文档距离的贡献正比于它们的语义距离,以及它们的词频乘积。然而,该定义并不合理。比如,如果套用该定义计算第一段两个例句的距离,我们实际上了考虑了“Obama”同“Illinois”的距离。显然,因为它们的单词语义相差很多,将其算在总距离内,夸大了两句话的语义距离。

其实,我们想要做的是,将A中出现过的每一个词匹配到B中出现过的语义最相近的词,文档A和B的距离就是所有匹配到一起的单词对的语义距离之和。可是这个想法也有很多问题。第一,数学上难以求解。对每一个w_i^A,我们都需要求解一个“argmin”问题,即在B中找到c(i,j)最小的w_j^B。第二,没有考虑词频。最后,从语言理解的角度出发,文档A中的一个主体词(题眼),可能同时对应文档B中多个具体的词;只考虑与其语义最接近的一个词,有失片面。综上所述,原则上,w_i^A(或w_j^B)应该被允许对应到B(或A)中的任意多个词。

数学上,我们使用T_{ij} \ge 0来描述w_i^{A}w_j^{B}的对应强度,这个对应是有方向的。也就是说,一般意义上,T_{ij} \ne T_{ji}。基于此构建两个文档间词到词的对应矩阵T。给定T,文档间的距离可以计算为
dist(A,B)=\sum_{i=1,j=1}^{i=N,j=N} T_{ij} c(i,j)
那么,什么样的对应关系T才是最优的呢?或者说,什么样的文档距离才是合理的语义距离呢?自然而然,我们希望算法给予c(i,j)较小的单词对较大的T_{ij}(较强的对应)。数学上,这对应一个最小化线性规划问题。T_{ij}是待解的决策变量,dist(A,B)是待优化的目标函数,c(i,j)是给定的系数。翻译成大白话,优化问题的目标是,寻找到使总体语义距离最小的词与词的两两对应关系。然而,假设c(i,j) \ge 0 \ \ \forall (i,j),目前的优化问题有个平凡解,即T_{ij}=0 \ \ \forall (i,j)。这是因为我们忘记考虑词频信息。假设一个词在距离公式中的总权重应该同它的词频相匹配。我们有,
\sum_i T_{ij}=d_i^A,\sum_j T_{ij}=d_j^B

以上的优化问题有一个直观理解。把每个单词想象成一个车站,每个车站都有一定量的乘客,数量上等于该词的词频。词频为零等价于车站里没有乘客。一篇文档就是一个城市,里面有许多车站(单词)。我们希望把城市A中的所有车站的所有乘客(即文档A中的词频总量,等于1)转移到城市B中的车站(同B中的词对应起来,注意B中的词频总量也为1)。

一方面,T_{ij}是从w_i^A车站到w_j^B车站的运输量,c(i,j)是单位运输成本。因此,(i,j)间运输的总成本为T_{ij}c(i,j)。另一方面,车站w_i^A的总发出的乘客数为d_i^A。而B中的每个车站也有自己的最大承载人数,等于对应的词频。又因为发出的总乘客数必须等于接受的总乘客数,所以分派到车站w_j^B上,必须满足总接受的乘客数为d_j^B。我们希望寻找到使全部乘客的总运输成本,dist(A,B),最小的运输方案,T。求解优化问题得到最优运输方案T^*后,带入到dist(A,B)中得到最小成本,dist^*(A,B),这个值就是所谓的文档A和B的word mover's distance (WMD)。WMD(A,B)越小,文档A和B在语义上越接近。

然而,该算法的局限性很大。第一,计算复杂度约等于文档长度(唯一词数量)的三次方。即便后文做了些优化,计算复杂度也在平方左右。所以,当我们需要对大量长文档计算每一对文档的相似度时,论文的算法显然不适用。另一个问题在于,算法完全忽略了词序,导致最终捕捉到的语义相似度比较粗糙。不过,可能因为核心想法较为有趣直观,该论文有不少后续研究。比如,Wu et al. (2018) 通过理论推导,为WMD提出了容易计算的上界。基本思路如下。

当A和B的长度太长时,直接计算WMD(A,B)较为费时。而且当我们需要计算WMD(A,B),WMD(A,C),WMD(A,D), ... 时,虽然都涉及到文档A,但多次计算却只能彼此独立进行,没有任何可重复利用的信息。那么,可不可以为任意文档A设计一个文档向量v_A,然后结合一个容易计算的距离函数K(x,y)(论文中的核函数),使得K(v_A, v_B)\approx WMD(A,B)?这样,我们只需提前把待比较的文档的向量都计算好,文章中称为word mover's embedding (WME),就可以快速计算所有文档对的距离了。

WME的核心想法是,引入R个长度和内容都完全随机的短文档作为中间量。对于任意待比较的文档A,计算一个长度为R的向量,第i个元素是该文档同第i个随机文档的WMD距离的简单函数。这个向量称为文档A的WME向量。文档A和B的距离定义为它们WME向量的内积。因此,给定WME向量计算WME距离极其迅速。又因为可以直接控制生成随机文档的最大长度,计算所有文档的WME向量的总时间复杂度可控。当然了,这篇文章的核心想法是有理论背书的。比如,在什么意义上,WME距离是WMD的近似上界?具体论述请参考原文。


参考文献

Wu, Lingfei, Ian En-Hsu Yen, Kun Xu, Fangli Xu, Avinash Balakrishnan, Pin-Yu Chen, Pradeep Ravikumar, and Michael J. Witbrock. 2018. “Word Mover’s Embedding: From Word2Vec to Document Embedding.” In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, 4524–4534.

Kusner, Matt J., 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, 957–966. ICML’15.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 前面的文章主要从理论的角度介绍了自然语言人机对话系统所可能涉及到的多个领域的经典模型和基础知识。这篇文章,甚至之后...
    我偏笑_NSNirvana阅读 13,868评论 2 64
  • 主要内容 自然语言输入编码 前馈网络 卷积网络 循环网络(recurrent networks ) 递归网络(re...
    JackHorse阅读 4,106评论 0 2
  • 本文主要用于记录华盛顿大学发表于2015年的一篇论文(引用量500+),该论文主要提出了一种计算文本(语句)相似度...
    蘑菇轰炸机阅读 2,081评论 0 11
  • 一、词嵌入背景 词嵌入(Word Embedding)是一种将文本中的词转换成数字向量的方法,为了使用标准机器学习...
    rosyxiao阅读 20,840评论 0 15
  • 当你喜欢一个女生的时候,你会付出你的所有,和我好像。 1.文本相似度计算——文本向量化 1.前言 在自然语言处理过...
    T_129e阅读 464评论 0 0