武林高手常常从山川之间顿悟,并由山川之形变化出上乘武艺。风云之间的飘渺互动,实则也为实打实的科学、工程实践提供了指引。风是客观存在的,而只有籍由云,咱们才能观察到它。在技术领域的平常工做中,诸如此类的例子数不胜数。而在天然语言语义的研究中,先驱者们把这个道理总结成了一条假设——上下文假设[i]:php
“实体的含义,以及实体之间语法关系的含义和这些实体与其余实体之间组合方式的限制有关。”词语做为抽象的符号,自己没有含义。词语在字典中罗列出来的“词义”,乃是它在不一样的上下文语境中,对总体语义所作贡献的总结。在这里,词义是风,而语境为云。所以,在研究词语语义的时候,实际上便是要弄清楚在人们在描述客观事物、表达本身的想法的时候,是如何使用某个词语的:在哪使用,在何时使用,和哪些词一块儿使用。也就是说,若是人们要进行有意义的交流,那么在讨论、描述某个事物的时候,除事物自己之外,须另外附加上某个语境,经过事物和语境中其余元素的互动,来表达事先设定的语义[1]。算法
进一步地,若是两个词所指代的事物在语义上是相近的,那么在人们使用它们的时候,极可能倾向于在相似的语境中引用他们。识别两个词在语义上是否相近对多种天然语言实践任务都是有帮助的,例如本体知识库构建、语言模型构建、词义排歧、查询推荐、机器翻译等等。ide
那么,如何籍由语境来衡量一个词(所指代事物)的语义,及其和其余词(事物)之间的互动呢?语境的“相似”依靠什么来衡量呢?在衡量过程当中,是否会遇到一些特殊状况须要处理?假使咱们设计了一个统一的语境类似度衡量标准,仅靠通常意义上的语境又是否足够呢?要回答这些问题,用寥寥数页的文字自是远远不够。不过,笔者但愿经过讨论下述三个问题,管中窥豹,见语义,及语义类似度计算之一斑。post
问题1:如何定义语境?如何衡量两个语境是否相似?
问题2:若是一个词可以指代多个事物,如何区分对应的不一样语境?
问题3:两个事物之间几乎不共享语境元素,是否表明它们没有关系?ui
这三个问题是以其开放程度排序的。对于第一个问题,咱们能够说的细一些,由于研究的历史长了,它已经几乎成为了一个封闭的问题。而对后两个问题,目前仍旧是研究热点,这里只能简单介绍有限几种思路,在开放的问题中,仍是每一个人本身的思考最重要。spa
1.1 向量空间模型prototype
从工程的角度来看,词语的所处语境能够用其周边上下文中的其余词,以及与这些词之间的语义关系来表示。一种直观的实践是将上述词语和/或语义关系用向量加以表示,而全部此类向量,则张成一个向量空间。这里举一个仅考虑上下文词的例子(已分好词):翻译
武林高手1常常2从3山川4之间5顿悟6,并7由8山川之形9变化10出11上乘12武艺13。设计
上下文的选取是要考虑范围的,离目标词太远的词,就能够忽略不计了。若是咱们考虑“山川”的上下文,且忽略距离“山川”2个词以上的词,那么“山川”的上下文就能够用下属向量表示:rest
(0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0)
这表明“山川”和词二、三、五、6分别共同出现一次,而和其他词共同出现0次。通常地,向量中的第i个份量,对应着字典中的第i个词。在这个例子里面,咱们只有13个词,所以咱们的字典规模仅为13,字典的顺序刚好是上面这句话的词语顺序,而上下文向量也只有13个份量。在真正的工程中,字典规模则是上百万的。
在数十年的研究历程中,固然存在着更加复杂的上下文表达方式,例如考虑使用,如tf-idf[ii],互信息[iii]等种种更有说服力的指标来代替共现频率;又如将词二、三、五、6和“山川”之间的语义关系考虑在内,将附加了不一样语义关系的同一个词看做不一样的词[iv]……幸运的是,不一样的上下文表达万变不离其宗,都脱不出用周边语境元素表达语义,“云动见风”的范畴。使用上面的简单例子,已经足够咱们进行下面的讨论了。
1.2 基本语义类似度计算
咱们已经了解到,一个词能够用其所处语境来描述其语义,而语境又可经过向量空间来形式化。咱们假设经过统计,发现一个词u在不一样的地方出现过n次,进而造成了n个上下向量U1…Un,那么咱们就能够用集合Su={U1…Un}来表示w的语境。
如今,咱们又发现词v的语境能够用集合Sv={V1…Vm}来表示,那么接下来,如何判断u和v在语境上,进而在语义上是否类似呢?
在这个问题上,咱们面临着两种选择,对应着对向量空间的两种不一样的理解:
a) 欧氏向量空间
在欧氏向量空间里,向量被解释为一组坐标,标定了空间中的一个点,而向量自己,就是从空间原点指向该点的向量。
在这种设定之下,语义的类似度,亦即向量之间的类似度大多具备几何意义。例如余弦类似度:
以及欧氏距离:
其中N为字典规模。事实上,余弦类似度衡量的是两个向量的夹角,夹角越小,方向就越一致,类似度就越高;欧氏距离衡量的是两个向量终点的距离,距离越近,类似度越高。
b) 几率向量空间
在几率向量空间里,向量被解释为一个几率分布,描述了一个词以多大的几率与另外一个词共同出现。
在这种设定之下,通常采用几率分布之间的差别性来衡量向量类似度。例如:K-L距离:
以及其对称平滑版本——Jensen-Shannon距离:
有了距离度量,还剩下另一个问题:咱们用了一组向量来表示一个词的语境,那么计算类似度的时候到底要用其中哪些向量,仍是所有使用呢?这个问题就引出了语义类似度计算中的两种重要实践:
a) 原型(prototype)方法
对于Su={U1…Un},原型方法将全部向量取平均,造成一个向量使用。
b) 范例方法
对于Su={U1…Un}和Sv={V1…Vm}两组向量范例方法保留全部向量,两个集合Su、Sv间的类似度采用向量两两间类似度的均值,或者最小值/最大值表示。
范例方法的计算开销较大,但好处是保留了第一手的原始信息,后期则能够灵活处理,这有点像照相机的RAW格式。
其实范例方法最大的优点是在解决问题2时,更加驾轻就熟一些,咱们下面简要介绍一下面临问题2,有哪些办法可用。
所谓约束,能够这样理解:人们在讨论不一样事物的时候,即便用词有重叠,使用的整个语境也是有差别的。例如人们讨论苹果手机和苹果牛仔裤,确定不会用一套“切口”。可是如何描述其中的某一套切口呢?方法很简单,用一个关键词就能够搞定了[2]。在上面的例子中,“手机”和“牛仔裤”就是很是合适的关键词。
有了关键词,一个简单的想法就是构建一个词,如“苹果”的上下文时,只从关键词的周围选。很惋惜,这样作计算开销太大了。所以,技术工做者们发展出了一系列折衷的办法。例如在范例方法中,只选择集合S中和关键词k类似度大于某个阈值的向量使用[v]:
又如对S中的向量先聚聚类,而后选择最有可能包含关键词(和关键词最类似)的聚类使用[3][2],如图1所示。
在原型方法中,则能够对目标词v的向量V和关键词k的向量K执行某种混合运算,例如份量相加,或者相乘[[vi]]。
另一种方法是利用向量的交运算来模拟“只从关键词的周围选上下文”这一过程。定义向量的交为:
其中N为字典规模。这样一来,咱们就能够利用词u、v各自的交向量来计算类似度了。
很不幸地,这个实践引出了问题3。因为求交后向量变得稀疏,使得不少原本类似的词因为共享份量太少,变得不类似了,这个时候应该怎么办呢?
图1 多原型方法示意图,摘自文献[6]。
向量的稀疏问题致使了问题3,亦即不显著共享语境元素的词语义上依旧有多是类似的。这个问题不仅存在于上述求交运算中,像语言模型同样,基于上下文统计的实践大多均可以从平滑中获益。在原形方法中,所谓平滑,是指用一个词的类似词来表明它自己[4]。具体地,对一个目标向量V,不论它是原始的上下文向量,抑或是处理(求交、聚类、筛选,等等)过的向量,以下处理:
其中Simk(V)表示V的top-k类似词集合,而sim()是当前使用的类似度度量方法。
这样作的实际效果如何呢?笔者在一个大规模网页文本(4.7T)上作过实验,实验选择了半径为5的文本窗口(见1.1节)来统计上下文,而上下文的权重(见1.1节)则使用了折扣过的点互信息[5] [3]。笔者选用了原形方法(见1.2节),使用欧氏向量空间上的余弦类似度来计算语义距离。在计算带约束的语义类似度时,使用求交运算。限于篇幅和精力,这里只给一个例子,图2显示了“刘德华”老师在不一样设定下的前20类似词及类似度。
平滑算法所起到的增长召回的做用在此没有显示,但事实上不少未平滑时因为向量稀疏算不出类似度的词,平滑后变得能够计算了,有的类似度还不低。另外,咱们还能够看到约束词的做用,当约束刘老师为歌手/演员时,对应的类似词结果是不一样的,并且平滑的计算结果在排序上要略好于非平滑结果(噪音排下去了)。
首先,实验固然还不完备,只可以预览到预期的效果,还没法造成有说服力的结论。另外,除去向量空间模型以外,近年来研究领域也尝试使用几率模型来描述语义和语境。几率模型的基本思想是用有线的N个潜语义来表明全部平常交流中的语义,利用几率生成过程来模拟人们的语义交流过程。其中不可免俗地引入了Topic Model,感兴趣的读者,能够参考文献[7-9][[vii]][[viii]][[ix]]。
图2刘德华”老师在不一样设定下的前20类似词及类似度
[题注] 本文旨在向不了解词语语义类似度计算的同窗简要介绍该领域中的基本概念与方法,以及做者本身对其中一些基本问题的理解。在行家里手眼里,就未免显得太粗浅了。
[1]依我的看法不一样,不排除有异议的可能。
[2]固然这个词要足够关键才行,咱们在这里暂不讨论这个问题。
[3]这种方法又叫作“多原型”方法。
[4]范例方法的状况留给读者本身发挥。
[5]权重计算的选择并不影响本质。
参考文献
`i` Zellig. S.Harris. 1968. Mathematical Structures of Language. Wiley, New York, NY, USA.
`ii` Joseph Reisinger and Raymond J. Mooney. 2010. Multi-prototype vector-space models of word meaning. In Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics (HLT ‘10). Association for Computational Linguistics, Stroudsburg, PA, USA, 109-117.
`iii` Patrick Andre Pantel. 2003. Clustering by Committee. Ph.D. Dissertation. University of Alberta, Edmonton, Alta., Canada. Advisor(s) Dekang Lin. AAINQ82151.
`iv` Dekang Lin. 1998. Automatic retrieval and clustering of similar words. In Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics – Volume 2 (ACL ‘98), Vol. 2. Association for Computational Linguistics, Stroudsburg, PA, USA, 768-774. DOI=10.3115/980691.980696 http://dx.doi.org/10.3115/980691.980696
`v`Katrin Erk and Sebastian Padó. 2010. Exemplar-based models for word meaning in context. In Proceedings of the ACL 2010 Conference Short Papers (ACLShort ‘10). Association for Computational Linguistics, Stroudsburg, PA, USA, 92-97.
`vi`Jeff Mitchell and Mirella Lapata. 2008. Vector-based models of semantic composition. In Proceedings of ACL-08: HLT. 236-244
`vii` Georgiana Dinu and Mirella Lapata. 2010. Measuring distributional similarity in context. InProceedings of the 2010 Conference on Empirical Methods in Natural Language Processing(EMNLP ‘10). Association for Computational Linguistics, Stroudsburg, PA, USA, 1162-1172.
`viii` Diarmuid Ó Séaghdha and Anna Korhonen. 2011. Probabilistic models of similarity in syntactic context. In Proceedings of the Conference on Empirical Methods in Natural Language Processing(EMNLP ‘11). Association for Computational Linguistics, Stroudsburg, PA, USA, 1047-1057.
`ix` T im Van de Cruys, Thierry Poibeau, and Anna Korhonen. 2011. Latent vector weighting for word meaning in context. In Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP ‘11). Association for Computational Linguistics, Stroudsburg, PA, USA, 1012-1022
by sunshuqi