实体链接(Entity Linking,EL)是指将自由文本中已识别的实体对象(例如:人名、地名、机构名等),无歧义的正确的指向知识库中目标实体的过程。
通俗的讲,就是自由文本中的实体对象到底是个啥,找到知识库中最符合该实体的目标项。
如果有对应的实体,则返回该实体;如果没有,则将该实体标记为NIL。
单实体消歧相对简单,但会损失一些实体与实体之间的联系所带来的信息量。而多实体联合消歧的复杂度相对较高。
Step1:指称识别:命名实体识别,识别出文本中有哪些实体。
Step2:查询扩展:根据识别的指称项,将其更多的同义信息项,显式的表达出来。更多的是解决多样性的问题。
Step3:候选实体生成:根据扩展之后的指称项(集合),在知识库中查找到所有相关的候选实体项。(候选实体召回)
Step4:特征抽取:根据指称项和候选实体集,提取尽可能反应实体本质的表层特征和深层特征,以便相似性计算。
Step5:排序:根据抽取的特征,做对应的相似性计算,最后对候选实体集中的实体进行评分,排序后取出Top1,即为链接的内容。
其实指称识别的工作是NER任务,并不是EL任务所聚焦的点,所以整个实体识别的流程可以分为两个阶段:候选实体集合的生成(候选实体生成),链接实体的选择(候选实体排序)。
NIL,无可以链接的实体,可以分为两种情况:
因为实体链接的任务分为实体生成和实体排序两个阶段,所以分两个方面进行阐述。
候选实体集的生成是根据文本中已有的指称项,去知识库中召回与之相关尽可能多的实体,该过程要求较高的召回率。
词表的构造,一般需要规则或人工的方式进行。维护的词表有:同义词表、缩写全称映射表和别名词表。
这里所说的同义词表指的是,名字大致相同的情况。注意与别名词表的区分。
别名词表,内容大致为名称不太相同,但是意义一致的内容。如:鲁迅与周树人。
给定指称项,根据指称项计算知识库中实体与指称项的编辑距离,小于阈值则可以召回。
编辑距离:是指两字字符串A、B的字面相似度。是指字符串A到字符串B,所需的最少编辑操作次数:
都算作一次操作。
根据文本训练词向量,将指称项的词向量与文本中的词向量计算余弦相似度,设定阈值(0.5)。大于阈值的即可算作指称项的同义词。
c o s i n e _ s i m ( x , y ) = x ⋅ y ∣ x ∣ ⋅ ∣ y ∣ cosine\_sim(x,y)=\frac{x\cdot y}{|x|\cdot|y|} cosine_sim(x,y)=∣x∣⋅∣y∣x⋅y
上式中的x,y分别代表不同的词向量。
根据,上述的方法,将一个指称项进行扩展,得到一个指称项集合m。跟据集合m中的元素,可用基于倒排的方式从知识库中检索的到相关的候选实体集合。至此就完成了第一阶段候选实体生成的任务。
实体指称项和候选实体之间的链接,只根据实体本身(名称)所含的信息量是不足以完成实体链接的工作。所以,实体链接的工作是根据指称项上下文信息和候选实体的上下文信息进行计算相似度,而得到最终的链接结果。
基本假设为:候选实体的流行程度越高,候选实体作为目标实体的可能性就越大。
衡量流行度的方法:
这种方法是根据文本信息表层含义去度量相似度,根据指称项上下文和候选实体的上下文构建词袋模型。BOW用TF-IDF值表示,然后根据创建好的文本向量 T m T_m Tm(指称项文本向量)和 T e T_e Te(候选实体文本向量)计算相似度,一般性的计算余弦相似度,公式
c o s i n e _ s i m ( T m , T e ) = T m ⋅ T e ∣ T m ∣ ⋅ ∣ T e ∣ cosine\_sim(T_m,T_e)=\frac{T_m\cdot T_e}{|T_m|\cdot|T_e|} cosine_sim(Tm,Te)=∣Tm∣⋅∣Te∣Tm⋅Te
LDA:是主题模型,通过该模型可以构造一个与文档主题相关的词袋模型。由于得到的词袋模型是刻画主题词的概率分布的情况,所以通过JS散度或者是KL散度来计算两个文本之间的相似度。JS和KL散度公式如下:
J S ( P ∣ ∣ Q ) = 1 2 K L ( P ( x ) ∣ ∣ P ( x ) + Q ( x ) 2 ) + 1 2 K L ( Q ( x ) ∣ ∣ P ( x ) + Q ( x ) 2 ) JS(P||Q)=\frac{1}{2}KL(P(x)||\frac{P(x)+Q(x)}{2})+\frac{1}{2}KL(Q(x)||\frac{P(x)+Q(x)}{2}) JS(P∣∣Q)=21KL(P(x)∣∣2P(x)+Q(x))+21KL(Q(x)∣∣2P(x)+Q(x)) K L ( P ∣ ∣ Q ) = ∑ P ( x ) l o g P ( x ) Q ( x ) KL(P||Q)=\sum P(x)log\frac{P(x)}{Q(x)} KL(P∣∣Q)=∑P(x)logQ(x)P(x)
其中P、Q分别代表不同的分布。
与Word2Vec类似,Doc2Vec是描述文档级别的向量,根据上下文信息,构造Doc2Vec向量然后计算余弦相似度即可。
将上下文本的所有Word2Vec直接求和或者求平均,会得到一个向量,这个向量是同样是描述上下文的语义信息的向量。
(1) 对于每个词汇的Word2Vec的值都可以统计出当前文本中该词汇的TF-IDF值。将TF-IDF值作为权重与当前的词向量相乘,并与整个文章的向量相加即可得到对应的文档级别的Embedding。计算余弦相似度即可。
d o c _ e m b = ∑ T F − I D F ( w o r d i ) ⋅ W o r d 2 V e c ( w o r d i ) doc\_emb=\sum TF-IDF(word_i)\cdot Word2Vec(word_i) doc_emb=∑TF−IDF(wordi)⋅Word2Vec(wordi)
(2) 除了TF-IDF可以做权重,也可以将指称项上下文的词与指称项的相似度做权重,当作指称项上下文词汇与候选实体上下文词汇的权重。具体公式如下:
S i m ( m , e ) = 1 n × l ∑ i = 1 n ∑ j = 1 l s i m ( v ( m c i ) , v ( m c j ) ) × s i m ( v ( m ) , v ( m c i ) ) Sim(m,e)=\frac{1}{n\times l}\sum_{i=1}^{n}\sum_{j=1}^{l}sim(v(mc_i),v(mc_j))\times sim(v(m),v(mc_i)) Sim(m,e)=n×l1i=1∑nj=1∑lsim(v(mci),v(mcj))×sim(v(m),v(mci))其中m代表指称项,e代表候选实体, m c i mc_i mci代表指称项上下文第i个词汇, m c j mc_j mcj代表候选实体上下文第j个词汇。
可以根据编辑相似度、字符相似度,实体的类别相似度、实体在指称项上下文共现特征等构建特征,利用LTR训练模型去对候选实体进行排序。