本篇博客主要基于微软亚洲研究院段楠老师的《智能问答》第三章 实体链接 进行整理。
1. 简介
实体链接(entity linking)是指将自然语言文本中出现的实体提及(entity mention)关联到对应知识图谱实体上去的任务。实体链接是很多自然语言处理任务的基础,例如知识图谱构建、信息/事件抽取、语意搜索和智能问答等。按照自然语言文本长度的不同,该任务可以进一步分为长文本实体链接和短文本实体链接两类:长文本实体链接任务的输入通常是一篇文档(例如一篇 Wikipedia文章),短文本实体链接任务的输入通常是一个句子(例如一个自然语言问题)。由于传统实体链接研究大都围绕长文本开展,因此这里将对长文本实体链接的典型方法进行系统介绍,并针对每类典型方法说明如何将其用于智能问答系统完成短文本实体链接任务。对于无法直接用于智能问答的实体链接方法,只做简要说明,不会展开介绍。
本章将典型的实体链接系统分为如下三个子模块:
- 候选实体生成(candidate entity generation)模块,负责从输入文本中检测出实体提及集合M(包括输入文本中提到的所有实体),并从给定知识图谱中找到每个实体提及 m ∈ M m\in M m∈M可能对应的候选实体集合 E m E_m Em,常用的候选实体生成方法包括词典匹配方法、表层形式扩展法和统计模型法;
- 候选实体排序(candidate entity ranking)模块(实体消歧),负责对(每个实体提及m对应的)候选实体集合 E m E_m Em中多个候选实体打分和排序,并输出得分最高的候选实体作为m的实体链接结果。常用的候选实体排序方法包括基于监督学习的方法和基于非监督学习的方法;
- 无链接指代预测(unlinkable mention prediction),负责预测输入文本中哪些实体提及是无法被链接到知识图谱中去的。这种情况通常是由知识图谱本身的不完备性导致的,即输入文本中提及的实体尚未被现有知识图谱覆盖(在知识图谱中找不到对应的实体)。
下图给出在知识图谱问答场景下的一个实体链接示例。对于自然语言问题where was President Obama born,实体链接系统将问题单词Obama作为一个实体提及,并将其映射到(链接到)知识图谱实体 Barack Obama 上去。
2. 候选实体生成
候选实体生成(candidate entity generation)任务的目标是从输入文本中检测出实体提及集合M,并从给定知识图谱中找到每个实体提及 m ∈ M m\in M m∈M可能对应的候选实体集合 E m E_m Em.接下来将介绍两种最常见的方法:词典匹配方法和统计学习方法。
2.1 词典匹配方法
词典匹配方法使用预先抽取的词典完成候选实体生成任务。该类方法使用的词典由N个<实体提及,知识图谱实体>对 { m i , e i } i = 1 N \{m_i,e_i\}_{i=1}^N {mi,ei}i=1N组成, m i m_i mi表示一个实体提及, e i e_i ei表示 m i m_i mi对应的一个知识图谱实体。给定一段自然语言文本,词典匹配方法使用词典中的实体提及集合 { m i } i = 1 N \{m_i\}_{i=1}^N {mi}i=1N,检测文本中出现的实体提及(检测文本中是否出现了某个/某些实体提及),并通过对应关系找到每个实体提及可能对应的全部知识图谱实体候选。注意,同一个实体提及可能对应多个不同的知识图谱候选实体,这是因为不同的知识图谱实体可以共享同一个名称。例如,实体提及 Micheal Jordan 既可以链接到篮球运动员Micheal Jordan,也可以链接到机器学习专家Micheal Jordan,这就需要实体链接系统按照输入文本的内容对不同候选实体进行消歧。关于对不同候选实体进行打分和排序的方法将在之后描述。接下来,首先介绍词典匹配方法中最重要的匹配词典抽取方法,即抽取<实体提及,知识图谱实体>对构建词典。
最常见的匹配词典抽取方法是利用维基百科网站中实体标题、重定向页、消歧页、加粗短语以及超链接之间的内在连接抽取<实体提及,知识图谱实体>。下表给出基于不同类型数据进行词典构建的具体方法。由于维基百科和包括Freebase 在内的很多其他知识图谱都存在很好的对应关系,因此通过上述方法获取的词典能够很好地用于基于其他知识图谱的实体链接任务。
知识图谱是抽取<实体提及,知识图谱实体>对的另一个数据来源。例如在Freebase 中,绝大多数实体通过谓词 common.topic.alias 可以找到其对应的别名集合。每个别名与当前的知识图谱实体构成一个<m,e>对。
首字母缩写经常出现在自然语言文本中,例如 IBM 表示 International Business Machines.针对首字母缩写进行实体链接对自然语言处理任务十分重要。常用的抽取首字母缩写及对应知识图谱实体的方法可以分为启发式规则方法和监督学习方法两类:基于启发式规则的方法采用预先定义好的模板从大规模语料中抽取首字母缩写及其对应的知识图谱实体全称。常用的模板包括"缩写(全称)”和“全称(缩写)”。拿第一个模板为例,满足该模板的文本片段由缩写和全称两部分组成,缩写部分由大写字母组成,全称部分中每个单词第一个字母连接起来正好等于缩写部分,这样可以抽取出<缩写,全称>构成一个《实体提及,知识图谱实体》对。例如,维基百科文本中出现的片段“···HP(Hewlett-Packard)…”可以成功匹配上述第一个模板,因此可以将首字母缩写 HP 与 Hewlett-Packard 对应起来;基于启发式规则的方法无法处理首字母发生调序的情况,例如,CCP和 Communist Party of China 对应的首字母序列CPC并不相同(上述模版匹配不到这种情况)。基于监督学习的方法可以很好地处理这类问题。例如,Zhang等人从文本中抽取构建<缩写,全称>正负样本,并采用包括字符串相似度和词性标注等在内的特征训练SVM分类器,用来对给定缩写和某个全称候选进行分类(二者是否对应)[1].
此外,还有一些研究工作提出基于搜索引擎查询日志的词典构建方法。例如,Chakrabarti等人[2]和 Cheng等人[3]从搜索引擎日志中识别出能够很好表示知识图谱实体的网页url集合,然后从这些url对应的用户点击查询中抽取实体可能对应的不同别名,并利用一系列统计特征从中选择高质量的别名与当前知识图谱实体构成<m,e>对。Taneva 等人从用户共同点击查询(co-clicked queries)集合中抽取首字母缩写词对应的全称(例如 CMU 和 Carnegie Mellon University)[4].这样,首字母缩写词与实体类型全称构成一个<m,e>对。还可以将输人文本中抽取出来的实体提及和它所在的上下文作为查询发送到通用搜索引擎[5-8]或维基百科站内搜索[9],如果搜索引擎返回结果中包含来自维基百科的页面,那就将该页面对应的知识图谱实体与当前实体提及组成一个<m,e>对。
构建好匹配词典后,基于匹配词典对输入文本进行实体提及识别的方式主要有两种:
- 第一种采用完全匹配(exact match)方法,即文本中每个实体提及一定要准确出现在匹配词典中。完全匹配方法易于实现,但对词典实体提及集合的覆盖度要求较高。一旦某个实体提及发生变化,匹配过程就会失败。
- 第二种采用模糊匹配(fuzzy match)方法,即允许文本中每个实体提及和词典中对应的实体提及在字面上存在一定的差异。常见的模糊匹配机制包括:1. 如果文本中某个实体提及被词典中某个实体提及完全包含或它完全包含词典中某个实体提及,那么这两个实体提及模糊匹配成功;2. 如里文本中某个实体提及和词典中某个实体提及存在一定程度的单词重叠,那么这两个实体提及模糊匹配成功;3. 如果文本中某个实体提及和词典中某个实体提及基于字符串相似度算法(例如 character Dice score,skip bigram Dice score,Hamming distance,编辑距离等)具有很高的相似性,那么这两个实体提及模糊匹配成功[10-14]。
2.2 统计学习方法
词典匹配方法采用预先抽取好的实体提及集合对输入文本进行实体提及检测。一旦某些实体提及并未出现在匹配词典抽取的语料中,那么该类方法就无法处理。针对这个问题,本小节将介绍基于统计学习的实体提及检测方法。该类方法通过从标注数据上抽取特征学习统计模型,可以用来检测之前并未见过的实体提及(具有较好的泛化性)。该任务在自然语言处理领域有一个专门的名称:命名实体识别(named entity recognition,NER) (实体抽取).
早期 NER 主要基于词典和规则方法。随着机器学习理论的发展,基于条件随机场(CRF)的模型[15]在 NER 方法中占据了主导地位。该方法将NER看做是一种序列标注任务:
x
=
(
x
1
,
.
.
.
,
x
n
)
x=(x1,...,x_n)
x=(x1,...,xn)表示输入文本对应的单词序列,
y
=
(
y
1
,
.
.
.
,
y
n
)
y=(y_1,...,y_n)
y=(y1,...,yn)表示输入序列x对应的NER 标注序列。该序列通常采用BIO形式的标注策略,标注为B的单词表示该单词是某个实体提及的第一个单词,标注为I的单词表示该单词是某个实体提及除第一个单词以外的其他单词,标注为O的单词表示该单词并不属于任何实体提及。在基于CRF的NER方法中,第i个单词
x
i
x_i
xi对应的标注结果
y
i
y_i
yi不仅和
x
i
x_i
xi相关,还和前一个单词
x
i
−
1
x_{i-1}
xi−1对应的标注结果
y
i
−
1
y_{i-1}
yi−1相关(CRF可以考虑每个输出标签之间的关联,添加一些约束,最简单的如I标注不能出现在B前面,I标注不能作为第一个单词的标注等)。上述两个因素分别采用特征
f
l
(
y
i
,
x
,
i
)
f_l(y_i,x,i)
fl(yi,x,i)和特征
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y_{i-1},y_i,x,i)
fk(yi−1,yi,x,i)进行刻画。基于CRF的
NER模型采用随机梯度下降算法训练模型参数。解码阶段采用维特比(viterbi)算法从输入序列中寻找使得P(y|x)最大化的最优标注序列
y
^
\hat{y}
y^作为命名实体识别的结果。
近年来,深度学习技术兴起进一步推动了 NER技术的发展。Huang等人[16]中提出基于Bi-LSTM+CRF的NER方法。给定输入文本
x
=
(
x
1
,
.
.
.
,
x
n
)
x=(x1,...,x_n)
x=(x1,...,xn),Bi-LSTM层首先将x转化为对应的隐状态向量序列
(
h
1
,
.
.
.
,
h
n
)
(h_1,...,h_n)
(h1,...,hn),其中,每个隐状态向量
h
i
h_i
hi,通过连接单词
x
i
x_i
xi对应的正反向两个隐状态向量得到。然后,基于
h
i
h_i
hi,通过softmax 函数可以获得单词
x
i
x_i
xi在全部可能NER标记(标签集合)上的分布
P
i
P_i
Pi,其中,
P
i
,
t
a
g
j
P_{i,tag_j}
Pi,tagj表示单词
x
i
x_i
xi对应的NER标记是
t
a
g
j
tag_j
tagj的概率。CRF层定义输入文本x的某个标注结果y对应的得分为s(x,y):
A表示CRF层中的状态转移参数矩阵(标签转移概率矩阵),
A
y
i
−
1
,
y
i
A_{y_{i-1},y_i}
Ayi−1,yi表示从状态
y
i
−
1
y_{i-1}
yi−1转移到状态
y
i
y_i
yi的概率(可以理解为上一个单词标注为
y
i
−
1
y_{i-1}
yi−1,当前单词标注为
y
i
y_i
yi的转移概率,B->I应该很高,I->B应该很低,从而添加一些约束),该矩阵(可以随机初始化)然后通过模型训练得到(训练完成就可以学习到一些约束)。每种NER标注结果y的概率通过下述归一化方式计算:
该模型涉及的参数通过在训练数据上最大化log[p(y|x)](最小化负对数似然损失)进行调优,解码采用动态规划技术寻找满足条件
y
∗
=
arg
max
y
′
∈
H
(
x
)
s
(
x
,
y
′
)
y^* = \arg \max_{y' \in H(x)} s(x,y')
y∗=argmaxy′∈H(x)s(x,y′)的实体标注序列
y
∗
y^*
y∗。下图给出基于 Bi-LSTM+CRF的NER方法的框架图[16,18-19]。
更多关于BiLSTM-CRF模型在序列标注(NER)上的原理和应用可以查看我的另外几篇博客序列标注。
3. 候选实体排序
给定实体提及m及其对应的候选实体集合 E m E_m Em,候选实体排序(candidate entity ranking)/实体消歧任务的目标是对 E m E_m Em中全部候选实体进行打分和排序,并尽可能保证m对应的正确候选实体得分最高。按照使用机器学习算法的不同,候选实体排序方法分为监督学习方法和无监督学习方法两类。监督学习方法基于标注数据训练排序模型对不同候选实体进行打分,常用方法包括二分类法、排序学习法、概率法和基于图的方法等;无监督学习方法无须标注数据,而是基于实体提及和候选实体的上下文相似度对不同候选实体进行打分。常用方法包括向量空间模型和信息检索法。
3.1 监督学习方法
监督学习方法使用的特征分为上下文无关特征和上下文相关特征两大类。
上下文无关特征(context-independent feature)仅基于实体提及和候选实体本身对不同候选实体进行打分和排序。常用的上下文无关特征包括:
- 实体提及和候选实体的名称是否完全匹配;
- 实体提及(或候选实体)是否以候选实体(或实体提及)作为前缀或后缀;
- 实体提及(或候选实体)是否完全包含候选实体(或实体提及);
- 实体提及所包含单词的首字母序列是否和候选实体所包含首字母序列相同;
- 实体提及和候选实体共同包含的单词数目;
- 候选实体流行度
P
o
p
(
e
i
,
m
)
Pop(e_i,m)
Pop(ei,m)特征,表示实体提及m链接到候选实体
e
i
e_i
ei的先验概率:
c o u n t m ( e i ) count_m(e_i) countm(ei)表示实体提及m在某一语料中(例如维基百科)链接到实体 e i e_i ei的次数; - 实体提及和候选实体之间的类型匹配特征。该特征对比实体提及的NER 类型(例如 People,Location、Organization 等)与候选实体在知识图谱中的类型是否一致。
上下文相关特征(context-dependent feature)基于实体提及和候选实体所在上下文之间的相关度对不同候选实体进行打分和排序。常用的上下文相关特征包括:
- 词袋特征,通过将实体提及和候选实体分别表示为向量形式,计算二者之间的相似性。实体提及向量等于该实体提及所在上下文对应的词袋向量表示。 候选实体向量根据实体的来源不同,生成的方式也不同:对于来自维基百科的候选实体,该向量等于该实体维基百科页面对应的词袋向量表示;对于来自知识图谱的候选实体,该向量等于与该实体直接相连的知识图谱实体和谓词对应的词袋向量表示。
- 概念向量特征,专门针对基于维基百科的实体链接任务。对于每个候选实体,基于该实体维基百科页面中的重定向、锚文本、关键词、InfoBox 等信息生成一个概念向量,并计算其与实体提及上下文对应词袋向量之间的相似度。
- 同一文本中不同实体提及对应的候选实体之间的关联性也可以用于候选实体打分和排序任务。常用的关联性特征包括:Wikipedia Link-based Measure特征
C
o
h
G
(
u
1
,
u
2
)
Coh_G(u_1,u_2)
CohG(u1,u2)、Point-wise Mutual Information 特征
C
o
h
P
(
u
1
,
u
2
)
Coh_P(u_1,u_2)
CohP(u1,u2)和Jarccard Distance特征
C
o
h
J
(
u
1
,
u
2
)
Coh_J(u_1,u_2)
CohJ(u1,u2)等。
上式中, u 1 , u 2 u_1,u_2 u1,u2表示维基百科对应的两个知识图谱实体, U 1 , U 2 U_1,U_2 U1,U2表示链接到 u 1 , u 2 u_1,u_2 u1,u2的维基页面集合,WP是维基百科全部文档集合。
基于上述特征可以利用多种机器学习算法,训练候选实体排序模型。基于朴素贝叶斯[20]、最大熵[21]或支持向量机[22-25]可以训练二分类器,用来决定实体提及m和候选实体e间是否存在链接关系。如果一个实体提及有多个候选实体被分类器标注为1,可以基于分类器打分设定一个阈值,用来选择置信度最高的候选实体作为实体链接结果。基于排序学习同样可以训练统计模型,对实体提及m对应的候选实体集合进行打分,该类模型的训练准则通常可以定义为:
∀
m
,
∀
e
i
−
≠
e
+
∈
E
m
:
S
c
o
r
e
(
e
+
)
−
S
c
o
r
e
(
e
i
−
)
≥
k
\forall m, \forall e_i^-\neq e^+ \in E_m : Score(e^+) - Score(e_i^-) \geq k
∀m,∀ei−=e+∈Em:Score(e+)−Score(ei−)≥k
其表达的含义是:排序模型对m正确候选实体
e
+
e^+
e+的打分
S
c
o
r
e
r
(
e
+
)
Scorer(e^+)
Scorer(e+)要高于任意一个错误候选实体的打分
S
c
o
r
e
(
e
i
−
)
Score(e_i^-)
Score(ei−),k是一个正数 表示上述得分之间的距离。
3.2 无监督学习算法
为了减少实体链接系统对标注数据的需求,可以将无监督学习方法用于候选实体排序任务。常用的方法包括基于向量空间模型的方法和基于信息检索的方法。
基于向量空间模型的方法[5,10,26]首先将实体提及m和m对应的某个候选实体 e i e_i ei分别转化为向量表示。然后,通过计算这两个向量表示之间的距离对不同候选实体进行排序。实体提及和候选实体的不同向量表示生成方法对应了不同的工作。
基于信息检索的方法[20,23,27]将每个知识图谱实体对应的维基百科文档作为该实体的表示,并基于该类文档对全部知识图谱实体建立索引。给定输入文本中的一个实体提及m,该类方法首先从输入文本中找到包含m的全部句子集合,并通过去停用词等过滤操作生成一个查询语句。然后,使用该查询语句从知识图谱实体对应的索引中查找得到相关性最高的知识图谱实体,作为m的实体链接结果。
无监督学习方法通常适用于长文本实体链接任务,这是由于短文本无法很好地生成实体提及对应的向量表示或查询语句。
4. 无链接提及预测
由于知识图谱的不完备性,并不是每个实体提及在知识图谱中都能够找到对应的实体。对于这类实体提及,实体链接系统通常将其链接到一个特殊的“空实体(用符号 NIL 表示)”上去,该任务就是无链接提及预测(unlinkable mention prediction).
无链接提及预测任务常用的策略有三种:
- 如果一个实体提及对应的候选实体生成结果是空集,那么该实体提及的链接结果是NIL;
- 如果一个实体提及对应排名最高的候选实体得分低于一个预先设定的阈值,那么该实体提及的链接结果是 NIL.这里用到的阈值通常根据系统在标注数据上的表现进行预设;
- 给定一个实体提及及其对应排名最高的候选实体,使用二分类器对其进行分类。如果分类结果是1,则返回候选实体作为实体链接结果。否则,该实体提及的链接结果是 NIL. 此外,也可以将NIL 作为一个特殊的实体直接加到每个实体提及对应的候选实体集合中进行打分和排序。
5. 总结
实体链接任务对智能问答系统而言非常重要。成功识别问题中提到的知识图谱实体不仅有助于问答系统对问题的理解、辅助问答系统完成对问题和答案类型的判断,还能将该实体作为桥梁从知识图谱中找到更多的相关信息帮助答案排序或答案生成任务。
在智能问答场景中,由于真实问题的长度通常较短、知识图谱内容不完备、实体链接对应标注数据集有限等原因,实体链接任务目前依然存在许多问题和挑战。未来的研究需要更大规模和更高覆盖度的标注数据,用于训练更加鲁棒(robust)的实体链接系统。此外,实体链接任务需要和智能问答系统进行整合,进行端到端的训练,这样有助于避免子模块可能产生的错误传递问题。
6. 参考
[1]Wei Zhang,Yan Chuan Sim,Jian Su,etc.Entity Linking with Effective Acronym Expansion,Instance Selection and Topic Modeling[C].
IJCAI,2011.
[2] Kaushik Chakrabarti,Surajit Chaudhuri,Tao Cheng,etc.A Framework for Robust Discovery of Entity Synonyms[C].SIGKDD,2012.
[3]Tao Cheng,Hady W.Lauw,Stelios Paparizos.Entity Synonyms for Structured Web Search[C].TKDE,2011.
[4]Bilyana Taneva,Tao Cheng,Kaushik Chakrabarti,etc.Mining Acronym Expansions and Their Meanings Using Query Click Log[C].WWW,2013.
[5]Xianpei Han,Jun Zhao.NLPR_KBP in TAC 2009 KBP Track:A Two-Stage Method to Entity Linking[C].TAC Workshop,2009.
[6]J.Lehmann,S.Monahan,L.Nezda,etc.Lcc approaches to knowledge base population at tac 2010[C].TAC Workshop,2010.
[7]s.Monahan,J.Lehmann,T.Nyberg,etc.Cross-lingual cross-document coreference with entity linking[C].TAC Workshop,2011.
[8] M.Dredze,P.McNamee,D. Rao,etc.Entity disambiguation for knowledge base population[C].COLING,2010
[9]W.Zhang,J.Su,C.L.Tan,etc.Entity linking leveraging automatically generated annotation[C].COLING,2010
[10]Zheng Chen,Suzanne Tamang,Adam Lee,etc.CUNY-BLENDER TAC-KBP2010 Entity Linking and Slot Filling System Description
oesa[C].TAC Workshop,2010.
[11]J.Lehmann,S.Monahan,L.Nezda,etc.LCC approaches to knowledge base population at tac 2010[C].TAC Workshop,2010.
[12]W.Zhang,J.Su,B.Chen,etc.I2r-nus-msra at tac 2011:Entitylinking[C].TAC Workshop,2011.
[13]M.Dredze,P.McNamee,D.Rao,etc.Entity disambiguation for knowledge base population[C].COLING,2010.
[14]P.McNamee.Hltcoe efforts in entity linking at tac kbp 2010[C]. TAC Workshop,2010.
[15]Lafferty J,McCallum A,Pereira F.Conditional random fields:Probabilistic models for segmenting and labeling sequence data[C].ICML,2001.
[16]Zhiheng Huang,Wei Xu,Kai Yu.Bidirectional LSTM-CRF Models for Sequence Tagging[C].arXiv,2015.
[17] Lample G,Ballesteros M,Subramanian S.Neural Architectures for Named Entity Recognition[C].NAACL,2016.
[18]Xuezhe Ma,Eduard Hovy.End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF[C].ACL,2016.
[19]Chiu J P C,Nichols E.Named entity recognition with bidirectional LSTM-CNNs[C].arXiv,2015.
[20]Vasudeva Varma,Vijay Bharath Reddy,Sudheer K,etc.IIIT Hydera-bad at TAC 2009[C].TAC Workshop,2009.
[21]S.Monahan,J.Lehmann,T.Nyberg,etc.Cross-lingual cross-document coreference with entity linking[C].TAC Workshop,2011.
[22]W.Zhang,J.Su,C.L.Tan,etc.Entity linking leveraging automatically generated annotation[C].COLING,2010.
[23]Wei Zhang,Yan Chuan Sim,Jian Su,etc.NUS-I2R:Learning a Combined System for Entity Linking[C].TAC Workshop,2010.
[24]Z.Chen,H.Ji.Collaborative ranking:A case study on entity linking[C].EMNLP,2011.
[25]A.Pilz,G.PaaB.From names to entities using thematic context distance[C].CIKM,2011
[26] Silviu Cucerzan.Large-Scale Named Entity Disambiguation Based on Wikipedia Data[C].EMNLP.2007
[27]Swapna Gottipati,Jing Jiang.Linking Entities to a Knowledge Base with Query Expansion[C].EMNLP,2011