实体链指技术研究进展
2014-04-29郭宇航秦兵刘挺李生
郭宇航 秦兵 刘挺 李生
摘 要:实体链指是近些年提出的一项自然语言处理任务。本文从实体链指的概念出发,介绍了实体链指的研究目的和意义,评测和语料,以及实体链指的主要方法。本文将实体链指与相关研究进行对比分析,将实体链指分为候选生成和候选排序两个部分分别阐释,并重介绍了实体链指的几种常见的排序方法。最后本文给出了实体链指技术的发展趋势。
关键词:候选生成;候选排序;知识库;实体链指
中图分类号:TP391.2 文献标识号:A 文章编号:2095-2163(2014)04-
Research Progress of Entity Linking
GUO Yuhang, QIN Bing, LIU Ting, LI Sheng
(School of Computer Science and Technology, Harbin Institute of Technology, Harbin, 150001, China)
Abstract: Entity Lining is a natural language processing task proposed recently. To begin with, this paper introduces the concept of entity linking, then the aim and the meaning of this research, as well as the evaluation and corpus, then gives the methods of entity linking. After that, the paper compares entity linking with related works and divides the task into two parts, candidate generation and candidate ranking. Furtherly,The paper also describes several common ranking methods for entity linking. At last, this paper provides some future trends of this task.
Keywords: Candidate Generation; Candidate Ranking; Knowledge Base; Entity Linking
0 引 言
实体链指(Entity Linking),或称实体链接,是近几年提出的有关自然语言处理的一项新任务。实体链指将用于出现在文章中的名称链接到其所指代的实体上去。在自然语言当中,多个实体可能共有同一个名称。也就是,名称可能具有歧义。比如“华盛顿”这个名字既可以指代美国的第一任总统,也可以指代美国的华盛顿州、华盛顿特区,甚至是美国政府。一般情况下,一个名称出现在上下文当中,其指代的对象即是明确的。而根据上下文来自动确定名称所具体指代的哪个实体也就成为实体链指技术的主要实现目的。
若将实体链指与命名实体识别(Named Entity Recognition)这一传统的自然语言处理任务相比可知,虽然两者的研究对象都是实体,但其主要区别则在于,命名实体识别只需区分实体的类别(如人名,地名和机构名等),而实体链指则需要找到所指代的具体对象。例如,“他去年搬到了华盛顿。”这句话。在名命名实体识别任务中只需要知道“华盛顿”指代的是一个地点即可,而在实体链指任务中则需知道“华盛顿”具体指的是华盛顿州、还是华盛顿特区或者是其他什么地方。实体链指的主要难点即在于如何消解字面的歧义,在这一点上,实体链指和词义消歧(Word Sense Disambiguation)又较为类似。简单来说,词义消歧也是一项传统的自然语言处理任务,其主要目的在于自动给出多义词在上下文中的词义。但由此即可推知词义消歧和实体链指的区别主要在于,前者处理的对象是多义词,比如bank在上下文中指“银行”还是“河岸”,而后者则是针对有歧义的实体名称。更进一步地,实体链指专注于找寻名称背后的指代对象,在这一点上实体链指与共指消解(Coreference Resolution)却又表现了一定的相关性。共指消解的目的是找到一篇文章中指代同一个对象的多个指称。在此,可将共指消解和实体链指的区别总结概括为,前者相当于将指代同一个对象的指称聚成一类,而后者则需要指出这个对象是什么,具体地,实体链指需要给出指代对象在知识库(Knowledge Base)中的对应项。
实体链指对许多自然语言处理和信息检索任务都能产生积极的助力作用。从实体链指的结果中可以直接得到实体的类型以及共指的指称项,因此可以用来改善命名实体分类和共指消解的结果。实体链指还将有助于机器翻译的最佳实现。诸如,在一门语言里同名的两个实体,在另一门语言中却可能具有不同的翻译。比如“Rice”指农作物时应该翻译成“大米”,指人名时,则应该翻译成“赖斯”。应用实体链指技术找到这个词在当前上下文中的指代对象,就可以直接根据知识库中的跨语言链接而真正获得目标语言的准确翻译。此外,实体链指还可以应用到自动问答当中。在问答当中,所涉及的实体表述很有可能会具有歧义。例如,问“美洲豹的奔跑速度最快能达到多少?”,问答系统搜集的文本可能包含了“美洲豹牌汽车”的最高时速信息,返回这样的信息答案自然是不正确的。而应用实体链指技术,即可清楚识别出在这样文本中出现的“美洲豹”并不是问题所关心的那个哺乳动物实体“美洲豹”,从而避免类似的错误发生。
在本文接下来的内容当中,将分别介绍实体链指的定义,评测方法,数据,以及实体链指的主要方法。
1 实体链指的定义和评测方法
1.1 实体链指的定义
实体链指的输入为一段自然语言文本,称为查询文档。查询文档中则包含了人们感兴趣的实体名称,可称为查询名称,和查询名称的上下文。实体链指系统即需要从一个知识库中找到查询名称所指代的实体,此时则称为目标实体。如果知识库中没有收录目标实体,系统将返回空(NIL)标记。其中知识库可以是和DBpedia、YAGO同样的由实体构成的结构化信息的数据库,也可以是Wikipedia一样的半结构信息形式的百科全书。而当链指知识库为Wikipedia时,实体链指任务也称作维基化(Wikification)。
1.2 实体链指的评测方法
实体链指的评测方式主要是准确率(Accuracy)。包括全部查询实例的准确率(All-Accuracy),目标实体包含在知识库中的查询(称作InKB型查询)实例的准确率(InKB-Accuracy)和目标实体在知识库外的查询(称作NIL型查询)实例的准确率(NIL-Accuracy)。这三种准确率的定义分别如下:
(1)
(2)
(3)
其中, 为查询实例集合, 为InKB型查询实例集合, 为NIL型查询实例的集合。令 和 分别表示查询实例 的真实目标实体和系统给出的目标实体, , ,则评价积分为:
(4)
从上述公式可以看出,实体链指系统的准确率即是系统标注正确的结果占所考察查询实例集合的比例。
2实体链指的数据
实体链指的数据包括知识库和标注语料两部分。实体链指中最常用的知识库就是Wikipedia。具体来说,Wikipedia是一个由互联网用户志愿编辑的在线百科全书,其内容涵盖了政治、经济、历史、文化、科技、教育等众多领域,并且大多数著名人物、机构、地区、事件在维基百科中都已著有相应条目。维基百科的开放协作式编辑机制和文章编辑规范保证了其内容质量,同时也使得其规模仍在不断增长中。截至2014年,英文版维基百科的文章数已经超过了450万篇,中文维基百科的文章数也超过了74万篇。研究中除了Wikipedia,常用的实体链指知识库还包括DBpedia、Freebase、YAGO等在内结构性信息的知识库。
通过分析可知,Wikipedia的文章包含了大量人工标注过的链接文本,这些文本即可用作实体链指的训练和评测语料。此外,除了从Wikipedia中收集标注语料,还可以使用研究者公布的数据,包括MSNBC、AQUAINT、ACE、IITB和AIDA。
3实体链指的主要方法
查询实例是实体链指的主要对象和依据。查询实例分为查询文档和查询名称两部分。查询文档是目标实体所在的文章,查询名称则是目标实体在查询文档中的表述字符串。此处给出了一个查询实例的例子,具体表述如下:
华盛顿被尊称为美国国父。
其中“华盛顿被尊称为美国国父。”这整句话就是查询文档(为了简化描述,这里的查询文档只有一个句子),“华盛顿”是查询名称,“被尊称为美国国父。”是查询名称的上下文,“乔治·华盛顿”即是这个查询实例的目标实体。
查询名称可以给出目标实体一个相对明确的范围。这是因为查询名称自然地标定了目标实体所在的范围是以查询名称命名的实体,没有这个名称的实体不可能是目标实体。比如给出“华盛顿”作为查询名称,则目标实体可能是“乔治·华盛顿”,也可能是“华盛顿州”,但不可能是“比尔·克林顿”,因为没人把“比尔·克林顿”称作“华盛顿”。
相比查询名称而言,查询文档能够限定的目标实体的范围更为宽泛一些。这是因为还没有什么规则能够明确地限定哪些实体“适合”作为上下文的查询文档。比如在“被尊称为美国国父”这段上下文与“乔治·华盛顿”和“比尔·克林顿”这两个概念都是相关的,无论语法还是语义也都是“适合”的,尽管把后者作为目标实体逻辑上不通。由此可见,查询文档并不能明确地排除哪个实体不可能是候选实体。查询名称和目标实体之间的联系是静态的,而查询文档和目标实体之间的联系却是动态的。
基于查询名称和查询文档这两条线索,目前大部分实体链指方法都可以分为候选生成和候选排序两个步骤。其中,候选生成部分主要根据查询名称圈定一个候选实体集合,将不可能是目标实体的其他实体排除在外。候选排序部分则主要分析候选集合中的哪些实体“适合”查询文档,并把最“适合”的实体返回作为目标实体。下面将分别介绍候选生成和排序的主要方法。
3.1 候选生成方法
目前主要的候选生成方法大多依赖于Wikipedia。Mihalcea和Csomai[1],Milne和Witten[2]从Wikipedia中抽取以查询名称为锚文本的文本片段,并进一步找到超链接目标页面对应的实体作为候选。Bunescu和Pasca[3],Cucerzan[4]则为候选生成专门构造了命名实体词典。其主要思路是从Wikipedia中抽取实体和实体名称的对应关系。比如实体“华盛顿哥伦比亚特区”在Wikipedia中可能以“华盛顿特区”,“华盛顿哥伦比亚特区”,“华府”和“华盛顿”这些名称的形式出现,挖掘这些实体和名称的对应关系就可构造实体-名称词典。从Wikipedia的锚文本和超链接,重定向页,消歧义页和标签页中均可挖掘得到实体和名称的对应关系[3-4]。在得到实体-名称词典后,经过逆向索引,就可以得到名称-实体词典,从而得到了每个名称对应的候选实体集合。
从名称-实体词典中可以直接得到候选体集合,只是这样得到的候选集合可能会很大。比如,在英文Wikipedia中,仅仅是Washington的消歧义页面就列出了超过100个实体,而且还未包括从其他来源能够挖掘出的候选实体。对于这样庞大的候选集合,通常需要实行一些过滤操作。
Wacholder等[5]指出,在一篇文章中,一个实体通常在某处以一种较长而典型的名称出现(比如 George W. Bush),而在其他位置却以较短的形式出现(比如 Bush)。这种情况下,长一些的名称则比短名称的歧义要更小一些。Cucerzan[4]首先在查询文档内进行共指消解,用较长的名称代替短名称作为查询名称,从而缩小了候选实体的范围。许多时候缩写查询名称的歧义都会很大,但上下文中却很可能包含了缩写的全称。Cucerzan[4]和Varma等[6]从上下文中搜索缩写名称的全称,再用全称替代缩写作为查询名称。而为了减少全称搜索带来的错误,Zhang等[7]还用分类器对潜在的缩写全称进行了筛选。这种对查询名称改写的操作也称作查询扩展[8]。
尽管Wikipedia规模很大,但也无法保证从中获得实体的全部名称,因此有些名称变形也将无法从命名实体词典中得到相应的候选实体集合。在精确匹配的基础上,Varma等[6]加入了部分匹配,Lehmann等[9]加入了模糊匹配的方式,用以提高候选生成的召回率。
3.2 候选排序方法
实体链指可以分别从查询名称及其周围的上下文两个部分入手,相应地可将其分为基于实体流行度的方法和基于上下文相关性的方法两类。
3.2.1基于实体流行度的方法
该方法的基本假设是流行程度(Popularity)越高的候选实体作为目标实体的可能性越大。例如,Michael Jordan这个名字既可能指向一位前NBA著名球员,也可能专指一位机器学习领域的教授。二者相比,那位NBA球员的知名度更高,提及其的文章也会更多。因此随机一篇文章中出现Michael Jordan(NBA球员)的可能性就将比出现Michael Jordan(教授)的可能性要大。而基于实体流行度的方法即根据流行程度对候选实体进行排序,并将流行度最高的候选作为链指结果。
衡量实体流行度的方法包括实体在Wikipedia页面的描述文本长度、地点实体的面积或人口总数、实体频度和查询名称到实体超链的频度等。
基于实体流行度的方法的优点在于实现简单,训练语料也相对容易获得。有些查询名称的词义分布相对集中,在大多数情况下的含义也都是最常见词义,只是针对这些查询名称,该种方法较为有效。基于实体流行度的方法的缺点在于没有考虑上下文。这就使得无论查询名称的上下文是什么,这种方法都会给出一样的答案,而当目标实体不是最流行实体时就会出错。此外,这种方法在统计实体流行度的时候多会依赖于Wikipedia这样的训练语料,得到的是训练语料上的实体流行度分布,而标注语料的实体流行度分布却并不一定和训练语料彼此一致,因此也会引入标注错误的风险。
3.2.2 基于上下文相关性的方法
Miller和Charles发现含义相似的词也经常出现在相似的上下文中[10]。大部分现有的候选排序技术都对实体的上下文与查询名称周围上下文进行了比较。候选排序的目的就是从候选集合中选择最“适合”上下文的实体的过程,而排序的重点就在于如何计算这种“适合”程度。基于上下文相关性的方法则主要是从字面相似度(Surface Form Similarity)、文本相似度(Text Similarity)和实体相关度(Entity Relatedness)这三个方面考察候选实体和查询上下文的“适合”程度。下面分别对其加以介绍和阐述。
(1)基于字面相似度的方法。主要比较查询名称和候选实体名称的相似度。一个实体可能有多个名称,因此目标实体的查询名称与其在知识库中的名称可能不是同一个。有些查询名称是目标实体的部分名称。比如美国前总统小布什的名字是George W. Bush,但在有些地方写作George Bush或Bush。而有些查询名称却又是目标实体的别名或者另外的拼写方式。比如澳门的名称Macau也拼作Macao。一个候选实体和查询名称的字面相似度越接近,这个候选实体能够成为目标实体的可能性也也越大。通常,计算字面相似度的方法主要有编辑距离(Edit Distance)、Dice系数(Dice coefficient)和Jaccard相似度(Jaccard Similarity)等几种。
(2)基于文本相似度的方法。主要比较查询名称的上下文和候选实体上下文的相似度。一个候选实体的上下文和查询文档越是相关,这个候选实体成为目标实体的可能性也就越大。通常计算文本相似度的方法有余弦相似度(Cosine Similarity)、相对熵或KL散度(Kullback–Leibler Divergence)和概率模型相似度(Probabilistic Model Similarity)等几种。
首先,余弦相似度是一种常用的文本相似度计算方法。这种方法将待比较的两篇文本表示成词空间中的向量,每一维对应一个单词。通常,向量中对应这个单词的维度值为该单词在这篇文档中的tfidf值,或者是这个单词在这篇文档中出现的频度,也或者如果文档中出现了这个单词,维度值则为1,没有出现,维度值将为0。余弦相似度的计算公式如下:
(5)
式中, 是文本向量 和 的内积,而 和 则分别是这两个向量的长度。两个向量的余弦相似度越高,说明这两篇文本越相似。
其次,相对熵或KL散度就是用于计算两个分布 和 之间的差异。其含义是在 的分布下编码 的样本平均所需的额外比特数。具体公式如下:
(6)
从公式可以看出,分布 和 越接近,相对熵就越小。通过计算相对熵,可以得到两篇文档中单词分布的差异。这种差异越小,说明这两篇文档越相似。
再有,概率模型相似度就是用于计算文档在概率模型下生成的概率。在实体链指中,人们用这种生成概率来表示查询文档和实体概率模型之间的相似度。实体链指中用到的概率模型主要有一元语言模型和主题模型。其中,一元语言模型即是根据单词或词组在实体上下文中的分布来估计查询文档的生成概率。而主题模型则假设一个文本集合包括了多个主题,每个主题对应了词的一种分布形式,每篇文本又是由多个主题混合而成的。语言模型可以看作是文本在词上的分布,主题模型则是文本在主题上的分布,而主题也是词的分布。因此,文本的主题模型可以看作是一种分布的分布。主题模型在低维度的主题空间中表示了高维的词空间的稀疏数据,这种降维方式就可以起到特征泛化的作用。
(3)基于实体相关度的方法。主要比较上下文中的实体与候选实体的相关度。与上下文实体相关度高的候选实体是目标实体的可能性就会较大。比如在一篇包含NBA,公牛队等实体的文章中,Michael Jordan指代那位著名篮球运动员的可能性就比指代那位大学教授的可能性更高。基于实体相关度的方法主要包括两种,一种是基于图的连接度,另一种是基于M&W相似度。在此即概略分析这两种方法的实现原理。
首先,基于图连接度的方法可将上下文构造成为一个图。图中的节点为候选实体与上下文中的实体及其指称。如果候选实体的Wikipedia页面包含了一个上下文指称,就从此候选实体节点向上下文指称节点引一条有向边;如果上下文实体的Wikipedia页面包含了候选实体,就从此上下文节点向候选实体引一条有向边。基于图连接度的方法将选择出度或入度最大的候选实体作为链指结果。
其次,M&W相似度源自M&W距离,是Milne和Witten[11]提出的一种基于Wikipedia的语义距离度量方法。M&W距离类似于规范化的Google距离(Normalized Google Distance)[12],是用两个实体在Wikipedia中被同一页面引用的次数以及这两个实体各自被引用的次数来共同计算语义距离。M&W距离的计算公式可表达为:
(7)
式中, 是实体 和 的M&W距离, 和 分别是Wikipedia中包含这两个实体的页面的集合, 则是Wikipedia中所有页面的集合。从这个公式可以看出,两个实体共现的页面越多,单独出现的页面越少,这两个实体的M&W距离就越短,相关度也就越高。再做如下的变换,即得到了M&W相似度,其计算公式为:
利用M&W相似度可以计算出候选实体与上下文中其他实体的相关性,从而得到候选实体与全文主题的一致程度。与全文主题一致程度越高的实体,就越有可能是目标实体。
许多实体链指系统都采用了上述多个方法的组合,并通过启发式或机器学习的方式获得各个方法的权重[1,2,9],。Hoffart等[13]通过研究发现,单独使用基于上下文相似度的方法即可获得不错的结果,而在此基础上只是简单地融合了实体流行度和实体相关度的方法却都不能带来性能上的改进。而基于实体相关度的方法在上下文存在充足实体的情况下则能够发挥一定的作用。然而当上下文中的实体较少时,这种方法的作用就比较有限。于是研究者们进一步通过健壮性测试技术对每个查询实例判断是采用组合方法还是回返到基于上下文相似度方法,由此而得到了不错的结果。
4 结论与展望
实体链指是近些年提出的一项自然语言处理任务。本文介绍了实体链指的研究目的和意义,评测和语料,以及实体链指的主要方法。通过对比实体链指技术与相关研究,可以看出实体链指是一种深层的语义分析技术,对多个自然语言处理任务和实际应用都具有明确的推动作用。本文将实体链指分为候选生成和排序两个部分加以阐释,并总结了现有排序的主要方法,包括基于实体流行度的方法和基于上下文相关性的方法。基于上下文相关性的方法又可以分为字面相似度,文本相似度和实体相关度等排序指标。目前大多数实体链指系统都可以看做是上述这些方法的组合。在这些方法当中,基于文本相似度方法的地位和作用最为重要。现在的实体链指系统均以单语,长文本为主,未来的实体链指技术将在向跨语言,短文本方向发展,并以此为契机而推广到更多的应用场景中去。
参考文献:
[1] MIHALCEA R, CSOMAI A. Wikify!: linking documents to encyclopedic knowledge[C]// CIKM 07: Proceedings of the sixteenth ACM conference on Conference on information and knowledge management, New York, NY, USA, ACM,2007:233-242.
[2] MILNE D, WITTEN I H. Learning to link with wikipedia[C]//CIKM 08: Proceeding of the 17th ACM conference on Information and knowledge management, New York, NY, USA, ACM,2008:509-518.
[3] BUNESCU R C, PASCA M. Using encyclopedic knowledge for named entity disambiguation[C]//EACL. The Association for Computer Linguistics, 2006.
[4] CUCERZAN S. Large-scale named entity disambiguation based on Wikipedia data[C]//Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL), Prague, Czech Republic, Association for Computational Linguistics, June 2007:708-716.
[5] WACHOLDER N, RAVIN Y, CHOI M. Disambiguation of proper names in text[C]//Proceedings of the Fifth Conference on Applied Natural Language Processing, ANLC 97, Stroudsburg, PA, USA, Association for Computational Linguistics,1997:202-208.
[6] VARMA V, BHARAT V, KOVELAMUDI S, et al. Iiit hyderabad at tac 2009[C]//Proceedings of the Second Text Analysis Conference (TAC 2009), Gaithersburg, Maryland, USA, November 2009.
[7] ZHANG Wei, SIM Y C, SU Jian, et al. Entity linking with effective acronym expansion, instance selection, and topic modeling. WALSH T, editor, IJCAI 2011[C]//Proceedings of the 22nd International Joint Conference on Artificial Intelligence, Barcelona, Catalonia, Spain, July 16-22, 2011:1909–1914.
[8] GOTTIPATI S, JIANG Jing. Linking entities to a knowledge base with query expansion[C]//Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing, Edinburgh, Scotland, UK., Association for Computational Linguistics, July 2011:804-813.
[9] LEHMANN J, MONAHAN S, NEZDA L, et al. Lcc approaches to knowledge base population at tac 2010[C]// Proceedings of the Text Analysis Conference, Gaithersburg, MD, USA, 2010.
[10] MILLER G A, CHARLES W G. Contextual correlates of semantic similarity[J]. Language and Cognitive Processes, 1991,6(1):1–28.
[11] MILNE D, WITTEN L H. An effective, low-cost measure of semantic relatedness obtained from wikipedia links. WIKIAI08, Chicago, I.L., 2008.
[12] RUDI L, CILIBRASI, VITANYI P M B. The google similarity distance[J]. IEEE Trans. on Knowl. and Data Eng., March 2007,19:370–383.
[13] HOFFART J, YOSEF M A, BORDINO I, et al. Robust disambiguation of named entities in text[C]//proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing, Edinburgh, Scotland, UK., Association for Computational Linguistics, July 2011: 782–792.