这个世界充斥着无数的结构化数据(wiki)和非结构化数据(web),然而,如何将两者有效地集成仍然是个非常困难的问题。
作者丨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、实体自身的一些属性(比如热度、类型等等)。其中ÿ