综述 | 知识图谱实体链接:一份“由浅入深”的综述

 

PaperWeekly

PaperWeekly是一个推荐、解读、讨论和报道人工智能前沿论文成果的学术平台,致力于让国内外优秀科研工作得到更为广泛的传播和认可。社区:http://paperweek.ly | 微博:@PaperWeekly

本文转载自公众号:PaperWeekly

 

作者丨Nicolas

单位丨追一科技 AI Lab 研究员

研究方向丨信息抽取、机器阅读理解

本文介绍实体链接(Entity Linking)这一技术方向,会先从最基础的概念讲起,然后对 EL 中的三个主要模块做一个清晰的梳理。在此基础上,选取三篇比较有代表性的论文,详述其中的核心方法和思想。

EL入门

1. 任务定义

实体链接,就是把文本中的 mention 链接到 KG 里的 entity 的任务。如下图所示 [1]:

▲ Entity Linking示意图

有些读者可能对知识图谱的概念不甚了解,这边先解释一下图谱里常用的一些概念。

Knowledge Graph(知识图谱):一种语义网络,旨在描述客观世界的概念实体及其之间的关系,有时也称为 Knowledge Base(知识库)。

  • 图谱由三元组构成:<实体1,关系,实体2> 或者 <实体,属性,属性值>;
  • 例如:<姚明,plays-in,NBA>、<姚明,身高,2.29m>;
  • 常见的KB有:Wikidata、DBpedia、YOGO。

Entity(实体):实体是知识图谱的基本单元,也是文本中承载信息的重要语言单位。

Mention(提及):自然文本中表达实体的语言片段。

回过头再看,上面的这个图中,“乔丹”、“美国”、“NBA”这些蓝色的片段都是 mention,其箭头所指的“块块”就是它们在图谱里对应的 entity。

2. 几个应用

EL 有什么用呢?一般有 KB 的地方就离不开 EL。以下是 EL 的几个应用 [2]:

Question Answering:EL 是 KBQA 的刚需,linking 到实体之后才能查询图数据库;

Content Analysis:舆情分析、内容推荐、阅读增强; 

Information Retrieval:基于语义实体的搜索引擎,google 搜索一些实体,右侧会出现 wikipedia 页面;

Knowledge Base population:扩充知识库,更新实体和关系。

3. Taxonomy

▲ Taxonomy

大体来说,EL 的工作可以分为两类 [3]:

End-to-End:先从文本中提取到实体 mention(即 NER),对应到候选实体,然后将提取到的 entities 消除歧义,映射到给定的 KB 中。

Linking-Only:与第一种方法对比,跳过了第一步。该方法直接将 text 和 mention 作为输入,找到候选实体并消除歧义,映射到给定的 K B中。

由于端到端的工作比较少,且 NER 也没太多可讲的。本文着重介绍 Linking-Only 的相关技术方向和工作。

EL的三大模块

EL 的工作非常有挑战性,主要有两个原因:

1. Mention Variations:同一实体有不同的 mention。(<科比>:小飞侠、黑曼巴、科铁、蜗壳、老科)

2. Entity Ambiguity:同一 mention 对应不同的实体。(“苹果”:中关村苹果不错;山西苹果不错)

针对上述两个问题,一般会用 Candidate Entity Generation (CEG) 和 Entity Disambiguation (ED) 两个模块 [2] 来分别解决:

1. Candidate Entity Generation:从 mention 出发,找到 KB 中所有可能的实体,组成候选实体集(candidate entities);

2. Entity Disambiguation:从 candidate entities 中,选择最可能的实体作为预测实体。

下面我们来讲讲这两个模块里都有些啥东西。其中,CEG 的方法都比较朴素,没什么可讲的,笔者会把重点放在 ED 上。 

1. Candidate Entity Generation (CEG) 

最重要的方法:Name Dictionary ( {mention: entity} )

哪些别名:首字母缩写、模糊匹配、昵称、拼写错误等。

构建方法:

  • Wikipedia (Redirect pages, Disambiguation pages, Hyperlinks);
  • 基于搜索引擎:调 google api,搜 mention。若前 m 个有 wiki entity,建立 map;
  • Heuristic Methods;
  • 人工标注、用户日志。

CEG 这部分,最主流也最有效的方法就是 Name Dictionary,说白了就是配别名。虽然 CEG 很朴素,但作为 EL 任务中的第一道门槛,其重要性不言而喻。对于每一个 entity,紧凑而充分地配置别名,才能保证生成的 candidate entites 没有遗漏掉 ground truth entity。

具体的,要配置哪些别名,要用什么构建方法,往往取决于 EL 的使用场景。比如做百科问答或是通用文本的阅读增强,就很依赖于 wikipedia 和搜索引擎;但如果是某个具体的行业领域,就需要通过一些启发式的方法、用户日志、网页爬取,甚至人工标注的方法来构建 Name Dictionary。

2. Entity Disambiguation (ED) (手动划重点) 

Features:

  • Context-Independent Features:
    • LinkCount: #(m->e),知识库中某个提及 m 指向实体 e 的次数;
    • Entity Attributes: Popularity, Type;
  • Context-Dependent Features:
    • Textual Context: BOW, Concept Vector
    • Coherence Between Entities: WLM, PMI, Jaccard Distance

实体消歧时,不同场景的特征选取是非常重要的。总的来说,实体消歧的特征分为,context 独立和 context 不独立的。

特征里,独立的有:mention 到实体的 LinkCount、实体自身的一些属性(比如热度、类型等等)。其中,LinkCount 作为一个先验知识,在消歧时,往往很有用,比如当我们在问“姚明有多高?”时,大概率都是在问<篮球运动员姚明>,而不是其他不为人知的“姚明”。

虽然 context 中完全没有包含篮球运动员这一信息,但大多数情况下,根据“姚明”到<篮球运动员姚明>的 LinkCount 最高,选其作为实体进行查询,都会是一个不错的答案。

不独立的有:文本的 context、实体间的 coherence(一致性)。这部分,可深入挖掘的东西比较多,文本 context 可以用一些深度学习的方法去深度理解文本的语义,从而实现消歧;实体间的一致性更加有趣,由于文本包含的所有的 mention 都没有确定,所以全局地进行 entities 的消歧实际上是一个 NP-hard 的问题。因此,如何更加快速有效地利用一致性特征,是一个非常有趣的方向。

基于这些常用的特征,消歧的方法可以大致分为以下几种:

Learning to Rank Methods: Point-wise、Pair-wise、List-wise。由于 ED 任务 ground truth 只有一个实体,一般都是用 point-wise 来做。输入是文本的 context、mention、某个 entity 的一些 attributes,输出 mention 指向该 entity 的置信度,以此 rank,选出最可信的 entity;

Probabilistic Methods: Incorporate heterogeneous knowledge into a probabilistic model。结合不同信息,得到条件概率 P(e|m,c),其中 c 是输入文本,e 为实体, m 是 mention。比如用归一化的 LinkCount 信息,作为先验概率 P(e|m);

Graph-Based Approaches: maximize coherene between entities。利用图特征(entity embedding、relation),在消歧时,考虑全局消歧后实体的一致性;

一般来说,现在的 ED 工作都会综合以上的方法来设计,后面我们会具体介绍几篇近期的论文,大家可以对照这三类方法看看。

3. 还有个小问题:Unlinkable Mention Prediction 

除了上面的两大模块,还有一个小问题,就是如何拒识掉未知实体,毕竟你不可能建立一个能穷举万物的 KB。这就涉及到 Unlinkable Mention Prediction,不是很复杂,一般就三种做法:

NIL Threshold: 通过一个置信度的阈值来卡一下; 

Binary Classification: 训练一个二分类的模型,判断 Top-rankeded Entity 是否真的是文中的 mention 想要表达的实体;

Rank with NIL: 在 rank 的时候,在候选实体中加入 NIL Entity。

一般就阈值卡一下就好了,不是太大的问题。但如果具体的场景是做 KB Population 且实体还不是很全的时候,就需要重点关注一下了。

EL的近期工作

为了让读者能更清楚地了解 EL,笔者在这里选取了三篇近两年出的,比较有代表性的工作 [4] [5] [6],给大家具体讲讲:

1. Deep Joint Entity Disambiguation with Local Neural Attention. (Ganea and Hofmann, 2017, EMNLP)

2. Improving entity linking by modeling latent relations between mentions. (Le et al., 2018, ACL)

3. DeepType: multilingual entity linking by neural type system evolution. (Raiman et al., 2018, AAAI)

1. Deep Joint Entity Disambiguation with Local Neural Attention 

早期的 EL 工作都非常依赖 manually-designed 的特征,这篇文章是 EL 领域第一篇不依赖特征工程,用深度学习来学习基础特征的工作。主要的创新点和关键部件有三个:

  • Entity Embeddings: 用到了知识库里实体的 embedding;
  • Context Attention: 用 attention 机制来获得 context 的表征;
  • Collective Disambiguation: 考虑实体间的 coherence,联合消歧。

给定文本 D,其中有一堆 mention   对应的实体为  ,对应的 context 为  ,对应的候选实体集为  。文章提出了两种模型:Local model、Global model。local 只考虑 mention 的 context;global 还需要考虑实体间的一致性,联合消歧。

Local model: 令   为local score function,local model 要解决的问题即:

Global model: 除了 context,还考虑实体间的 coherence(为了简化,只考虑两元一致性)。令   为实体之间的 pair-wise coherence score function, ,全局搜索:

Local and pair-wise score function 的计算方法如下:

其中,   是实体   的 embedding,  是对角矩阵。  是在上下文 上取 attention 后的表征,具体的 attention 计算如下图所示:

▲ Local Model里的Attention机制

这里是用 candidate entity embeddings 做 key,context word embeddings 做 value,得到 score matrix 之后,按列取 max,如果某个 word 的 score 较高表示这个 word 至少和一个 entity 相关度高。为了去除 stop words 的影响,作者只取了 top R 的 score,剩下的置为负无穷。

得到 score 后,还会结合 m 到 e 的 LinkCount 先验概率,计算出最终各个实体的概率。该工作在 AIDA 数据集上取得了 SOTA ( local: 88.8、global: 92.22)。

2. Improving entity linking by modeling latent relations between mentions 

上一篇论文开创性地在 EL 中引入 entity embedding 作为信息,很自然的,我们会思考一个问题,KB 中还有别的可利用的信息吗?参考本文一开始的那张图片,“乔丹”、“美国”、“Nike”这些实体之间还有着“公民”、“赞助商”等关系信息,显然,若加以利用,一定能成大器。

于是 Le et al. 在 Ganea and Hofmann 工作的基础上,增加了隐关系信息。假定图谱中有 K 个关系,令   之间为关系 k 的置信度为  ,上文中的 pair-wise coherence score function 可以写成:

其中,  都是用来表示关系 k 的对角矩阵(类似于关系 k 的 embedding),   为归一化因子,  为将   映射到 的函数。这样一来,我们就隐式地添加了关系 k,丰富了计算全局实体一致性时所参考的信息。

看起来很 fancy!但是有一个问题,这个归一化因子我们要咋算呢?作者提供了两种思路:

1. Rel-norm: Relation-wise normalization。就是以关系 k 维度来 norm;

2. Ment-norm: Mention-wise Normalization。就是以实体 j 维度来 norm。

▲ 两种norm方式的示意图

看一下上面这张图,就很清晰了。该工作在 AIDA 数据集上得到了新的 SOTA (global: 93.07)。

3. DeepType: multilingual entity linking by neural type system evolution 

前两篇论文都是在联合消歧的这个角度,做了一定的工作。DeepType 这篇文章则另辟蹊径,从优化知识库的 type 系统来做。文章很重要的一个观点是:当我们能预测出实体 mention 的 type,消歧这个任务就做的差不多了。EL 系统主要分成三个模块:

1. Type System: 一组正交的 type 轴和一个 type 标注函数;

 

  • type 轴:一组互斥的 type 集合 A (e.g. {IsHuman} ∩ {IsPlant} = {})
  • type 标注函数:
  • 举个例子,假定一个包含两个轴 {IsA, Topic} 的 type 系统,<追一科技>对应的就是 {公司,人工智能}

2. Type Classifier: 给定 mention 和 text,输出 mention 对应实体的 type;

3. Entity Prediction Model: 给定 mention、text 和候选实体,预测概率最高的实体(文中直接用的 LinkCount)。

很显然,这三个模块的核心点在于 Type System 的构建。由于 Entity Prediction Model 是直接用的 LinkCount,实际上整个 EL 系统就只有两组参数,一组是 Type System 的离散参数 A,一组是 Type Classifier 的连续参数 θ。给定 text 及其所含的 mention:

其中   为 ground truth 的实体,  为候选实体集,令   为 EL 系统的消歧准确率,则我们的问题可以定义为:

其中:

这个 entity score 可以看成是给定 m 后,EL 系统给出的置信度,后面会给具体公式。

同步优化两组参数很耗时,因此文章分成 Type System 和 Type Classfier 两个部分独立优化。

a. Discrete Optimization of Type System: 

为了避免同时训练 Type System 和 Type Classifier,我们得先固定 classifier,然后优化 Proxy Objective  ,这里我们假设两个 classifier model 的极端:

1. Oracle(极端优秀):假设 Type Classifier 开了天眼,不管 A 咋变,都能预测对 mention 的 type,然后从该 type 对应的候选实体集的子集中选 LinkCount 最高的,令:

2. Greedy(极端蠢):不预测 type,直接从候选实体集中选 linkcount 最高的。

最简单的思路直接   其实就完事了,但是我们要考虑到真正的 classifier 并没有开天眼,假设 classifier 的 Learnability(学习能力)是 l(A),那么更合理的目标函数应该是:

但是怎么才能不依赖 A 去计算学习能力呢,如果是用 softmax 多分类,那就糟了,每换一次 A,就得重新训练一个 classifier。因此作者巧妙的用二元分类器代替了多分类,令:

这样就只需要最开始计算一次就好了,如下图所示:

▲ a为训练type系统时的classifier,b为后面真正用的classifier

b. Type Classifier 

就按照上图 b 优化就是了,没什么可说的。

c. Inference 

在训练完 Type System 和 Type Classifier 之后,我们就可以计算我们上面说的 EntityScore 了:

其中   是 k 个 type 组成 type 轴,α,β∈(0,1) 是 smoothing 系数。最终在 AIDA 数据集上取得了新的 SOTA(94.88)。

4. 三篇论文效果对比和思考

前两篇都是联合消歧的,而 DeepType 其实是个 Local 模型。这么看来,如果考虑联合消歧的话,应该还会有提升。

总结

Entity Linking 其实算是个很复杂的技术领域,因为优化过程中,不仅要考虑 text 的文本信息、KB 的信息、消歧后的一致性,还需要根据具体的业务场景采用不同的方案,同时也不能为了效果去暴力搜索 NP-hard 的离散优化问题。在具体实施的过程中不可能面面俱到,需要一定程度的 trade-off。总结起来,四大特征:LinkCount、Context、Attributes、Coherence。方法千千万,大家灵活运用。

Appendices

数据集:

1. Knowledge Base:Wikipedia, YAGO, DBpedia, Freebase;

2. EL 监督数据:

  • 中文:
https://www.biendata.com/competition/ccks_2019_el/data/
  • 英文:
    • TAC KBP 2010 EL: 
https://catalog.ldc.upenn.edu/LDC2019T02
    • AIDA CoNLL-YAGO: 
https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/aida/downloads/

一个不错的多因子消歧总结:

https://cloud.tencent.com/developer/article/1491361

ccks实体链接第一名方案:

https://github.com/panchunguang/ccks_baidu_entity_link

DeepType原作博客(有一些可玩的插件):

https://openai.com/blog/discovering-types-for-entity-disambiguation/

References

[1] 韩先培,实体链接:从文本到概念:

https://docs.huihoo.com/infoq/baidu-salon51-entity-links.pdf

[2] Wei Shen, Jiawei Han: Entity Linking with a Knowledge Base: Issues, Techniques, and Solutions.

http://dbgroup.cs.tsinghua.edu.cn/wangjy/papers/TKDE14-entitylinking.pdf

[3] Sebastian Ruder: NLP Progress of Entity Linking.

https://github.com/sebastianruder/NLP-progress/blob/master/english/entity_linking.md

[4] Ganea and Hofmann, 2017, EMNLP: Joint Entity Disambiguation with Local Neural Attention.

https://arxiv.org/abs/1704.04920Deep

[5] Le et al., 2018, ACL: Improving entity linking by modeling latent relations between mentions.

https://arxiv.org/abs/1804.10637

[6] Raiman et al., 2018, AAAI: DeepType: multilingual entity linking by neural type system evolution.

https://arxiv.org/abs/1802.01021

– End –

推荐阅读:

技术动态 | 知识图谱上的实体链接

论文浅尝 | 知识图谱中的链接预测:一种基于层次约束的方法

论文浅尝 | 用于知识图中链接预测的嵌入方法 SimplE

 

OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

闫峻 | 知识就是力量,让机器站在巨人的肩膀上

本文转载自公众号微软研究院AI头条,作者为微软亚洲研究院资深研究员闫峻博士。


编者按:人类社会的进步,尤其是科技的进步,大多是站在前人的肩膀上一步一步发展起来的。在人工智能领域,当前很多统计机器学习算法都是从零开始学习数据,而可计算知识的引入则能够让机器读取已知的知识,并以此为基础进行新的学习,在巨人的肩膀上迅速实现进步。

知识对于认知计算的重要性不言而喻,当前聚焦于知识领域的研究和探索也非常丰富。本文中,微软亚洲研究院资深研究员闫峻博士将结合实际案例为大家详解知识领域的“四大问题”,回答你心中有关可计算知识的小疑惑。

 

继续阅读“闫峻 | 知识就是力量,让机器站在巨人的肩膀上”

漆桂林 | 知识图谱之语义网络篇

本文转发自漆桂林老师的知乎专栏:知识图谱和智能问答。


开篇还是从我在情报工程发表的一篇论文的前言开始讲起。

知识图谱(Knowledge Graph)的概念由谷歌 2012 年正式提出,旨在实现更智能的搜索引擎,并且于 2013 年以后开始在学术界和业界普及,并在智能问答、情报分析、反欺诈等应用中发挥重要作用。知识图谱本质上是一种叫做语义网络(semantic network)的知识库,即具有有向图结构的一个知识库,其中图的结点代表实体(entity)或者概念(concept),而图的边代表实体/概念之间的各种语义关系,比如说两个实体之间的相似关系。语义网络[1]是 20 世纪 50 年代末 60 年代初提出,代表性人物有 M. Ross Quillian 和 Robert F. Simmons。语义网络可以看成是一种用于存储知识的数据结构,即基于图的数据结构,这里的图可以是有向图,也可以是无向图。使用语义网络,可以很方便地将自然语言的句子用图来表达和存储,用于机器翻译[2]、问答系统[3]和自然语言理解[4]。下面就举一个例子,比如说,要表示 John gave a book to Mary 这样一句话,可以用下面这样的一个语义网络来表示:

继续阅读“漆桂林 | 知识图谱之语义网络篇”

领域应用 | 开启证券资讯 3.0 时代——证券知识图谱

摘要:互联网+时代的到来标志着互联网从一个工具变成了一个基础性的设施,在互联网+时代,万物通过互联网进行互联,互联网的基础性地位日显重要,已经渗透到包括金融、物流、电子商务、工业生产等各个领域。互联网以信息作为其载体及表现形式的特性,与金融行业具有天然的融合性。金融证券行业对信息的分析与处理方法的探索从来没有停止过。从早期报业时代的人力分析,发展到了目前以信息技术手段进行海量金融数据分析,其分析方法、分析手段发生了翻天覆地的变化。然而上述对信息的分析方法仍然存在着缺陷。大数据处理中的数据孤岛问题、作用链传递的问题仍然突出。而证券资讯 3.0 时代正是为了解决这一问题应运而生。证券时代资讯 3.0 到来的表现形式为——证券知识图谱在证券行业的应用。2012 年,Google 正式发布了“知识图谱”(Knowledge Graph)——可以将搜索结果进行知识系统化,任何一个关键词出发都能获得完整的知识体系。建立证券行业的知识图谱通过对海量证券结构与非结构化数据进行知识抽取与分析,建立证券行业专业知识互连图,为证券行业智能分析、程序化交易、市场监管等活动打下了坚实的基础。

关键字:互联网+;知识图谱;证券资讯 3.0

继续阅读“领域应用 | 开启证券资讯 3.0 时代——证券知识图谱”

肖仰华 | 当知识图谱“遇见”深度学习

本文转载自中国人工智能学会通讯 2017 第 4 期,排版转自公众号 PaperWeekly。

大数据时代的到来,为人工智能的飞速发展带来前所未有的数据红利。在大数据的“喂养”下,人工智能技术获得了前所未有的长足进步。其进展突出体现在以知识图谱为代表的知识工程以及深度学习为代表的机器学习等相关领域。随着深度学习对于大数据的红利消耗殆尽,深度学习模型效果的天花板日益迫近。另一方面大量知识图谱不断涌现,这些蕴含人类大量先验知识的宝库却尚未被深度学习有效利用。融合知识图谱与深度学习,已然成为进一步提升深度学习模型效果的重要思路之一。以知识图谱为代表的符号主义、以深度学习为代表的联结主义,日益脱离原先各自独立发展的轨道,走上协同并进的新道路。

继续阅读“肖仰华 | 当知识图谱“遇见”深度学习”

漆桂林等 | 知识图谱研究进展

本文节选自《情报工程》2017 年第 1 期,知识图谱专题稿件,转发自公众号 PaperWeekly

本文首先简要回顾知识图谱的历史,探讨知识图谱研究的意义。其次,介绍知识图谱构建的关键技术,包括实体关系识别技术、知识融合技术、实体链接技术和知识推理技术等。然后,给出现有开放的知识图谱数据集的介绍。最后,给出知识图谱在情报分析中的应用案例。

继续阅读“漆桂林等 | 知识图谱研究进展”

邹磊 | 浅谈知识图谱数据管理

本文转自北京大数据研究院 BIBDR 公众号。
近年来随着“人工智能”概念的再度活跃,除了“深度学习”这个炙手可热的名词以外,“知识图谱”无疑也是研究者、工业界和投资人心目中的又一颗“银弹”。简单地说,“知识图谱”就是以图形(Graph)的方式来展现“实体”、实体“属性”,以及实体之间的“关系”。 继续阅读“邹磊 | 浅谈知识图谱数据管理”

鲍捷 | Web的50年——从Tim Berners-Lee的图灵奖说起

本文作者为文因互联 CEO 鲍捷,首发于文因互联公众号。

Tim Berners-Lee 昨天拿到了2016年度的计算机科学最高奖:图灵奖。他获得这个奖,实至名归。领域中人一直都认为他得奖只是时间问题。

Tim 的一生有两个伟大的贡献(当然,他还有很多其他的贡献):一、互联世界的文档,即万维网(Web)的发明及其规模化的努力,包括 W3C 的工作;二、互联人类知识的努力,包括语义网(Semantic Web)、互联数据(Linked Data)、开放数据(Open Data)、知识图谱(Knowledge Graph)等。第一个贡献已经广为人知,第二个贡献还在发展中,知道的人不多。但是我以为,第二个贡献将会是比第一个贡献更大的贡献。

继续阅读“鲍捷 | Web的50年——从Tim Berners-Lee的图灵奖说起”