
paper: Deep Joint Entity Disambiguation with Local Neural Attention
https://github.com/dalab/deep-ed
文章目录:
Abstract
Introduction
Contributions and Related Work
Learning Entity Embeddings
Local Model with Neural Attention
Document-Level Deep Model
Experiments
-
什么是实体链接? 所谓实体链接就是将文本的mention指向现有知识库中已存在实体的过程。如为匹配到实体,标记为NIL。
- 实体连接三个模块(该论文主要介绍候选实体排序):
- 候选实体生成
- 候选实体排序
- 无法链接预测
-
候选实体如何排序?
- 局部实体消歧:关注上下文窗口范围内的文本信息
- 全局实体消歧:关注整个文档中实体间的一致性
这里简单提及模型用到的相关技术
-
Entity Embedding
- 参考word2vec的word嵌入和某某的entity嵌入,但有所区别
- 区别:不用知道实体间的共现次数,通过实体页面和超链接标注的上下文内容
- 使用的是预训练的word和entity嵌入
-
Context Attention(局部模型)
-
Collective Disambiguation(全局模型)
- 使用条件随机场(CRF),由于是NP-hard问题,优化为循环信念传播(LBP)【这块说实话较为难懂】
这部分是介绍如何进行嵌入
-
这部分我先不写;由于自己也没太搞明白这里的公式

这里就是局部模型的讲解

-
橙色框表示:可学习的嵌入矩阵A,B
-
红色框从左至右分别表示:word embedding和entity embedding
大致流程(可以结合图看):
- Mention-entity 先验 : p^(e∣m)
- 每个mention生成的候选实体集合: Γ(m), 每个mention对应上下文词的集合: c
- 计算上下文中每个词的得分: u(w)=maxe∈Γ(m)xe⊤Axw
- 计算完后裁剪,得到topR得分最高的词:cˉ={w∈c∣u(w)∈topR(u)}
- 使用softmax attention 权重:β(w)={∑v∈cˉexp[u(v)]exp[u(w)]0 if w∈cˉ otherwise
- 计算实体和mention上下文的得分:Ψ(e,c)=∑w∈cˉβ(w)xe⊤Bxw
- 最终拼接先验的得分:Ψ(e,m,c)=f(Ψ(e,c),logp^(e∣m))
损失函数构造:
θ∗=argminθ∑D∈D∑m∈D∑e∈Γ(m)g(e,m)
g(e,m):=[γ−Ψ(e∗,m,c)+Ψ(e,m,c)]+
-
每个文档包含的mention :m=m1,m2,...mn,每个mention对应的上下文词 :c=c1,c2,...cn
-
定义联合概率分布,通过计算边缘概率为文档中的每个mention选择一个entity Γ(m1)×…×Γ(mn)∋e
使用CRF模型
-
定义:g(e,m,c)=∑i=1nΨi(ei)+∑i<jΦ(ei,ej), 目的是最大化g(e,m,c),所谓的找到得分最高的实体。
- 其中:Φ(e,e′)=n−12xe⊤Cxe′
-
由于训练和预测CRF模型是一个NP-hard问题(复杂度呈指数增长),使用循环信念神经网络【LBP】(在较低的复杂度下获得原问题的近似解)。
-
针对论文中所提到的信念网络以及消息传递(message passing),结点间具体如何进行消息传递,可以参考以下文章,个人觉得说的还可以了

橙色框表示:局部得分
红色框表示:全局得分
消息更新规则
-
mi→jt+1(e)=e′∈Γ(mi)max{Ψi(e′)+Φ(e,e′)+k=j∑mˉk→it(e′)⎭⎬⎫
-
mention i 对mention j 的投票 :mˉi→jt(e)=log[δ⋅softmax(mi→jt(e))+(1−δ)⋅exp(mˉi→jt−1(e))
大致流程(与局部方法类似)
- 经过T次迭代后的信念(边缘):μi(e)=Ψi(e)+∑k=imˉk→iT(e)
- 归一化:μˉi(e)=∑e′∈Γ(mi)exp[μi(e′)]exp[μi(e)]
- 拼接先验计算全局得分:ρi(e):=f(μˉi(e),logp^(e∣mi))
损失函数构造(与局部方法类似)
L(θ)h(mi,e)=D∈D∑mi∈D∑e∈Γ(mi)∑h(mi,e)=[γ−ρi(ei∗)+ρi(e)]+
-
数据集

-
实验SOTA效果
