实体链指(3)EL:End-to-End

前面已经由一篇综述大致了解了Entity Linking的定义和任务框架,以及对Disambiguation-Only 的2篇具有代表性的论文进行了介绍,本篇主要介绍End-to-End的两篇代表性论文。

PAPERCONFCODE
End-to-End Neural Entity LinkingCoNLL 2018https://github.com/dalab/end2end_neural_el
Efficient One-Pass End-to-End Entity Linking for QuestionsEMNLP 2020https://github.com/facebookresearch/BLINK/tree/main/elq

1 End-to-end neural entity linking

Motivation

这是一篇2018年的end2end的文章,处于前BERT时期。首先说下作者的动机:当前EL系统大致分为2个子任务:MD/NER和ED(MD:mention detection,ED:entity disambiguation),通常情况下,解决这2个子任务是独立进行的,那么作者认为拆开独立进行这2个子任务有什么问题呢:

  1. 作者认为MD和ED这2个子任务互相是有依赖关系的,而这一点被忽略掉了。这种相互依赖可以这么理解:
    (1)MD阶段产出的多个不同的可链接的span可以为ED阶段提供更多的上下文线索
    (2)在特定的上下文中找到真正的实体,实体带着KB中丰富的信息,又能进一步激励模型检测gold mention的边界,尤其是对于多字mention。
  2. MD阶段如果出现了实体识别错误,这种错误会传递到ED阶段,影响link的正确性,并且这种错误无法修复
  3. 需要对query中每个mention进行消歧,候选生成和消歧都会进行多次,无法实现one-pass
  4. 不符合人的思维习惯

出于以上这些考虑,作者提出端到端的实体链指模型。接下来就从下到上,来看下作者是如何搭建这个end2end的模型的。

Neural Joint Mention Detection and Entity Disambiguation

Our global model architecture

Word and Char Embeddings(context-independent embs)

最底层的word embedding使用的是预训练好的word2vec,char embedding 是基于字符LSTM,使用前向LSTM的word的最后1个字符的隐向量,和后向LSTM的word的第1个字符的隐向量,2个隐向量进行拼接即为char embedding: [ h L f ; h 1 b ] [h_L^f;h_1^b] [hLf;h1b],其中word w = { z 1 , . . . , z L } w=\{z_1,...,z_L\} w={z1,...,zL} z i z_i zi 为word w w w的第i个字符:
h t f = F W D − L S T M ( h t − 1 f , z t ) h_t^f = FWD-LSTM(h_{t-1}^f, z_t) htf=FWDLSTM(ht1f,zt)
h t b = B K W D − L S T M ( h t + 1 b , z t ) h_t^b = BKWD-LSTM(h_{t+1}^b, z_t) htb=BKWDLSTM(ht+1b,zt)
最后将word embedding和char embedding拼接在一起,就组成了token w w wcontext-independent word and char embedding,记为 { v k } k ∈ 1 , T ‾ \{v_k\}_{k\in \overline{1,T}} {vk}k1,T

Mention Representation(context-aware word embs)

在前面word-char embedding的基础上接一个BiLSTM,然后每个word的前向LSTM和后向LSTM拼接得到context-aware word emb,记为 x k x^k xk。在此基础上又得出mention的表征:即对于每个mention,将mention的first word embedding、last word embedding、以及“soft head” embedding 拼接在一起,再过一个投影层,即得到mention表征,记为 g m = [ x q ; x r ; x ^ m ] g_m=[x_q;x_r;\hat x^m] gm=[xq;xr;x^m],其中 x ^ m \hat x^m x^m为“soft head” embedding,其计算就是在mention的words embedding上做了一个attention机制:

score: α k = < w α , x α > \alpha_k=<w_\alpha,x_\alpha> αk=<wα,xα>
weight: α k m = exp ⁡ ( α k ) ∑ t = q r exp ⁡ ( α t ) \alpha_k^m=\frac{\exp(\alpha_k)}{\sum_{t=q}^r\exp(\alpha_t)} αkm=t=qrexp(αt)exp(αk)
attn: x ^ m = ∑ k = q r α k m ⋅ v k \hat{x}^m=\sum_{k=q}^r \alpha_k^m \cdot v_k x^m=k=qrαkmvk

实验发现soft head embedding只能带来细微的提升,可能是由于大部分mention都不超过2个words的长度。所以为了学习到各个字向量之间的非线性关联,又增加了一个投影层: x m = F F N N 1 ( g m ) x^m=FFNN_1(g^m) xm=FFNN1(gm),并且投影层还能将m投影到和entity表征的相同size大小。

Entity Embeddings(fixed continuous entity representations)

entity embedding则是提前预训练好,训练方式:对每个entity 使用如下的exponential model来近似word-entity 的先验条件分布 p ^ ( w ∣ e ) \hat{p}(w|e) p^(we),该分布可通过word co-occurrence counts获得(即基于字词共现、类似于共现矩阵等统计特征获得):
exp ⁡ ( ⟨ x w , y e ⟩ ) ∑ w ′    ∈    W exp ⁡ ( ⟨ x w ′ , y e ⟩ ) ≈ p ^ ( w ∣ e ) \frac{\exp(\langle x_w,y_e \rangle)}{\sum_{w\prime \; \in \;W \exp(\langle x_{w^\prime},y_e \rangle)}}\approx \hat{p}(w|e) wWexp(⟨xw,ye⟩)exp(⟨xw,ye⟩)p^(we)

其中 x m x_m xm是fixed pre-trained word vectors, y e y_e ye则是需要通过训练得到的entity embedding。

Final Local Score(context-aware entity-mention score)

对于每个span mention,最多选择s个实体候选,然后计算基于mention侧和entity侧context表征的相似度打分(点乘),以捕获对MD和ED决策有用的信息。除此之外还会结合一个log-prior probability(经验条件分布 log ⁡ p ( e j ∣ m ) \log p(e_j|m) logp(ejm)可以从wiki等数据集中通过统计计算得到),然后接上一个浅层前馈网络FFNN ,以得到最终的context-aware entity-mention score:
Ψ ( e j , m ) = F F N N 2 ( [ log ⁡ p ( e j ∣ m ) ; ⟨ x m , y j ⟩ ] ) \Psi(e_j,m)=FFNN_2([\log p(e_j|m);\langle x^m,y_j\rangle]) Ψ(ej,m)=FFNN2([logp(ejm);xm,yj⟩])

喂入 F F N N 2 FFNN_2 FFNN2的出了上述两个特征外,这里还可以考虑引入Long Range Context Attention: 一般是context words w i w_i wi对候选实体 e j e_j ej的soft attention score。

Training

训练时最小化目标:
θ ∗ = arg min ⁡ θ ∑ m ∈ M ∑ e ∈ C ( m ) V ( Ψ θ ( e , m ) ) \theta^*=\argmin_\theta \sum_{m\in M}\sum_{e\in C(m)}V(\Psi_\theta (e,m)) θ=θargminmMeC(m)V(Ψθ(e,m))
其中 V V V可以是各种loss,能够加强gold pairs的得分,以使得正例pair和负例尽可能线性可分(联想到SVM的间隔最大化):
V ( Ψ θ ( e , m ) ) = { max ⁡ ( 0 , γ − Ψ θ ( e , m ) ) , i f ( e , m ) ∈ G max ⁡ ( 0 , Ψ θ ( e , m ) ) , i f    o t h e r w i s e V(\Psi_\theta (e,m))=\begin{cases} \max(0,\gamma-\Psi_\theta (e,m)), &if(e,m)\in G\\\max(0,\Psi_\theta (e,m)),&if \; otherwise \end{cases} V(Ψθ(e,m))={max(0,γΨθ(e,m)),max(0,Ψθ(e,m)),if(e,m)Gifotherwise

Inference

  1. 选择所有可能链接的token spans: M = m ∣ ( C ( m ) > = 1 ) M={m|(C(m)>=1)} M=m(C(m)>=1) C ( m ) C(m) C(m)为mention m m m的候选集和;
  2. 只有e-m pair final score大于阈值 δ \delta δ的pair才会保留下来,其他会淘汰掉。阈值 δ \delta δ是在验证集上确定的,由验证集的micro F1 metric最大化选定;
  3. 最后确定span时是基于贪心策略,即只有与之前产出的span(得到更高分的)不重合的span才会被继续选择。

Global Disambiguation

全局消歧(Global Disambiguation)指对于一段文本中的多个 mention 同时进行消歧,认为同一段文本中的实体具有较强的相互关联,全局策略能进一步利用此信息 。则对应的global score记为 G ( e j , m ) G(e_j,m) G(ej,m),则global final score可改写为:
Φ ( e j , m ) = F F N N 3 ( [ Ψ ( e j , m ) ; G ( e j , m ) ] ) \Phi(e_j,m)=FFNN_3([\Psi(e_j,m);G(e_j,m)]) Φ(ej,m)=FFNN3([Ψ(ej,m);G(ej,m)])
此时最小化目标改写为local final score和global final score共同最小化:
θ ∗ = arg min ⁡ θ ∑ d ∈ D ∑ m ∈ M ∑ e ∈ C ( m ) V ( Ψ θ ( e , m ) ) + V ( Φ ( e , m ) ) \theta^*=\argmin_\theta \sum_{d\in D} \sum_{m\in M}\sum_{e\in C(m)}V(\Psi_\theta (e,m))+V(\Phi(e,m)) θ=θargmindDmMeC(m)V(Ψθ(e,m))+V(Φ(e,m))

Experiments & Results

实验使用的数据集AIDA/CoNLL是目前开放的最大的EL数据集,训练集包含1.8w个mention和946个文章,测试集包含231文章的4,485个 mentions。实验分别在 强匹配(strong mating)弱匹配(weak matching) 标准上进行。强匹配是指必须精准预测出mention span的边界以及对应的entity,弱匹配是指预测出的mention span和gold mention中间有交集就算预测正确,但必须链指到正确的entity上。实验结果如下:

EL strong matching results

EL weak matching results

从上面两个表可以看出:

  1. 无论是在强匹配还是弱匹配,我们的模型大都能在各个数据集上表现的最好(红色)或次好(蓝色)
  2. 此外还可以观察到:弱匹配 EL 结果与强匹配结果相当,表明本文的方法非常擅长检测提及边界。

作者实验的不同版本的模型:

  1. Base model:对应模型图的FFNN2,但是只使用了mention local score和 log-prior,没有Long Range Context Attention
  2. Base model + att:Base Model + Long Range Context Attention
  3. Base model + att + global:加了全局消歧score,对应完整的模型图
  4. ED base model + att + global Stanford NER:模型运行在Stanford NER system上(直接使用其产出的NER结果代替模型mantion span产出过程?)

2 Efficient one-pass end-to-end entity linking for questions

Present Situation

这是一篇2020年的文章,处于后BERT时代,主要针对解决问答任务。作者首先分析了当前EL任务现状的一些问题:

  1. 真实世界的文本数据总是不规范的(脏数据、格式不标准、忽略大小写、没有标点等),这给entity link带来了极大挑战;
  2. 大部分entity link聚焦在 ED的子任务,即前提是给出gold mention,而不是end2end;
  3. 很多系统SOTA是在很长的、格式良好的长文档上评测的,例如新闻、而不是在有噪声的短文本上,例如搜索系统的query;
  4. 大部分先前的工作只注重提升识别的准确率,而忽略了性能;

所以作者提出了在像问答、检索等这种noisy的短文本上,实现一个快速的、高效的、准确的EL 模型,作者主要使用了Bi-encoder的框架,接下来看看是如何建模的。

ELQ Model

Overview of our end-to-end EL system

首先是question侧和entity侧的context表征:

  • question representations:
    [ q 1 . . . q n ] T = B E R T ( [ C L S ] q 1 . . . q n [ S E P ] ) ∈ R n × h [\bm{q}_1...\bm{q}_n]^T=\rm{BERT}([CLS]q_1...q_n[SEP])\in \mathbb{R}^{n\times h} [q1...qn]T=BERT([CLS]q1...qn[SEP])Rn×h
  • entity representations:
    x e = B E R T [ C L S ] ( [ C L S ] t ( e i ) [ E N T ] d ( e i ) [ S E P ] ) ∈ R h \bm{x}_e=\rm{BERT}_{[CLS]}([CLS]t(e_i)[ENT]d(e_i)[SEP]) \in \mathbb{R}^h xe=BERT[CLS]([CLS]t(ei)[ENT]d(ei)[SEP])Rh

其中q表示question、t(ei)实体的wiki页面的title信息,d(ei)实体的wiki页面的描述信息(Wikipedia article的前128个token)。

Mention Detection

Mention候选是指question中所有长度至多为 L L L的spans [ i , j ] [i, j] [i,j],那么一个即span candidate能成为一个mention的得分即为 p ( [ i , j ] ∣ q u e s t i o n ) p([i,j]|question) p([i,j]question)
p ( [ i , j ] ) = σ ( S s t a r t ( i ) ) + σ ( S e n d ( j ) ) + ∑ t = i t S m e n t i o n ( t ) p([i,j])=\sigma(S_{start}(i))+\sigma(S_{end}(j))+\sum_{t=i}^t S_{mention}(t) p([i,j])=σ(Sstart(i))+σ(Send(j))+t=itSmention(t)
其中 σ ( S s t a r t ( i ) ) \sigma(S_{start}(i)) σ(Sstart(i))为该span的第一个字是一个mention的开头的得分, σ ( S e n d ( j ) ) \sigma(S_{end}(j)) σ(Send(j))为该span的最后一个字是一个mention的结尾的得分,除此之外还计算了span中每个字是mention的一部分的得分 ∑ t = i t S m e n t i o n ( t ) \sum_{t=i}^t S_{mention}(t) t=itSmention(t),然后三者相加得到mention probability p ( [ i , j ] ) p([i,j]) p([i,j])

Entity Disambiguation

消歧/链指阶段需要计算mention span候选表征和entity候选的相似度打分,前面基于question侧的表征$ [ q 1 . . . q n ] [\bm{q}_1...\bm{q}_n] [q1...qn],可以计算mention span的表征 y i , j y_{i,j} yi,j

y i , j = 1 j − i + 1 ∑ t = i j q t ∈ R h \bm{y}_{i,j}=\frac{1}{j-i+1}\sum_{t=i}^j \bm{q}_t\in \mathbb{R}^h yi,j=ji+11t=ijqtRh

即对mention候选span的各个token的表征取平均: a v g ( q i , ⋅ ⋅ ⋅ , q j ) avg(q_i,···,q_j) avg(qi,⋅⋅⋅,qj)。然后基于mention和entity表征计算相似度打分:
s ( e , [ i , j ] ) = x e T y i , j s(e,[i,j])=\bm{x}_e^T\bm{y}_{i,j} s(e,[i,j])=xeTyi,j

基于这个打分再计算整个候选实体集上的条件似然概率分布 p ( e ∣ [ i , j ] ) p(e|[i,j]) p(e[i,j]),即所有候选实体的softmax:
p ( e ∣ [ i , j ] ) = exp ⁡ ( s ( e , [ i , j ] ) ) ∑ e ′ ∈ E exp ⁡ ( s ( e ′ , [ i , j ] ) ) p(e|[i,j])=\frac{\exp(s(e,[i,j]))}{\sum_{e^{\prime}\in E} \exp(s(e^{\prime},[i,j]))} p(e[i,j])=eEexp(s(e,[i,j]))exp(s(e,[i,j]))

Training

上述2个子任务分别得到2个概率分布:mention probabilities p ( [ i , j ] ) p([i, j]) p([i,j])likelihood distribution overall entities p ( e ∣ [ i , j ] ) p(e|[i,j]) p(e[i,j]),训练时相当于是MD和ED的一个联合训练任务,loss是2个任务的loss之和:.
(1) L M D L_{MD} LMD:所有mention candidates的二值交叉熵损失,如果 [ i , j ] [i, j] [i,j]是gold mention span,则 y [ i , j ] = 1 y[i,j] = 1 y[i,j]=1否则为0, 其中N是mention span candidates总数:
L M D = − 1 N ∑ 1 ≤ i ≤ j ≤ min ⁡ ( i + L − 1 , n ) ( y [ i , j ] log ⁡ p ( [ i , j ] ) + ( 1 − y [ i , j ] ) log ⁡ ( 1 − p ( [ i , j ] ) ) ) L_{MD}=-\frac{1}{N}\sum_{1\le i\le j \le \min(i+L-1,n)} (y_{[i,j]}\log p([i,j])+(1-y_{[i,j]})\log (1-p([i,j]))) LMD=N11ijmin(i+L1,n)(y[i,j]logp([i,j])+(1y[i,j])log(1p([i,j])))

(2) L E D L_{ED} LED:负对数似然(极大似然法),其中 e g e_g eg是mention span [ i , j ] [i, j] [i,j]的gold entity:
L E D = − log ⁡ p ( e g ∣ [ i , j ] ) L_{ED}=-\log p(e_g|[i,j]) LED=logp(eg[i,j])

L = L M D + L E D L = L_{MD}+L_{ED} L=LMD+LED

Inference

  1. 给定一个输入question q,使用MD模型获得mention span 候选集和:
    M = [ i , j ] : 1 ≤ i ≤ j ≤ m i n ( i + L − 1 , n ) , p ( [ i , j ] ) > γ M = {[i, j] : 1 ≤ i ≤ j ≤ min(i+L−1, n), p([i, j]) >γ} M=[i,j]:1ijmin(i+L1,n),p([i,j])>γ,其中 γ γ γ是阈值(超参);

  2. 然后为每个mention span计算联合概率:
    p ( e , [ i , j ] ) = p ( e ∣ [ i , j ] ) p ( [ i , j ] ) p(e, [i, j]) = p(e|[i, j])p([i, j]) p(e,[i,j])=p(e[i,j])p([i,j])

  3. 实际计算中,因为Wikipedia中Entity数量太多,Softmax不好计算,所以会设计参数来对entity候选数进行限制,例如只计算每个保留下来的mention的top10个最近的Entity来计算softmax。

Experiments & Results

评估采用的是弱匹配,即entity要是完全正确的,mention只需要span和gold span有交集: [ m s , m e ] ∩ [ m ^ s , m ^ e ] ≠ ∅ [m_s, m_e] \cap [\hat{m}_s, \hat{m}_e] \ne \varnothing [ms,me][m^s,m^e]=

评估指标:
p = ∣ C ∣ ∣ T ^ ∣ , r = ∣ C ∣ ∣ T ∣ , F 1 = 2 p r p + r p=\frac{|C|}{|\hat{T}|},r=\frac{|C|}{|T|},F_1=\frac{2pr}{p+r} p=T^C,r=TC,F1=p+r2pr

其中 T T T是gold entity-mention tuples的集和, T ^ \hat{T} T^是predicted entity-mention tuples的集和。

第1个实验使用的是基于2个QA数据集:WebQSP 和 GraphQuestions构建的一个EL的标注数据集:WebQSPEL and GraphQEL ,其中每个question的groundtruth是 ( e , [ m s , m e ] ) (e, [m_s,m_e]) (e,[ms,me])pair的列表。

Table2 Results on WebQSP_{EL} and GraphQ_{EL} test data

从Table2 可以看到本文基于BERT的Bi-encider模型在效果和运行时间上都远远优于当前其他SOTA模型。此外在 WebQSPEL 的情况下,本文ELQ模型比 TAGME 好 2.3 倍。在运行时间上,本文的ELQ模型(one-pass)比BLINK(multiple pass)要快近2倍,但是比TAGME要慢,不过TAGME是非神经网络的模型。

第2个实验是QA相关的实验,为了证明本文搭建的EL对 QA任务准确性的影响,作者使用 GraphRetriever 对文本开放域问答任务进行了实验(Gretriever在完成QA任务的检索过程中有使用EL去召回文章)。 原始的Gretriever使用的是TAGME作为其EL部分,作者将ELQ替换它原始的TAGME并保持其他组件不变,同时也将TF-IDF这类在检索中常用的基础方法也作为baseline,结果看表3:

Table3:QA result

可以看到文本提出的模型在3个QA数据集上都表现优异,特别是在WebQuestions (WQ) 和 Natural Questions (NQ),这2个数据集主要来自 Web 查询,数据基本都是由简短、嘈杂的question组成,这符合我们最初想要解决的问题出发点,可以看到使用 ELQ 替换 TAGME 能显著提高性能,其中在 WQ 和 NQ数据集上 的绝对改进分别为 5.9% 和 3.9%。

虽然在 Wikipedia 上训练的 ELQ 总体上取得了不错的效果,但在 WebQSPEL 上进一步微调会在 WQ 上获得额外收益。这表明,如果同一领域中有实体链接的标注数据可用,那么使用它们来微调 ELQ 可以带来进一步的收益。

最后一个实验作者是训练好的bi-encoder拆分成2个独立的组件,然后去分别比较他们各自的能力,这里作为基线的BLINK也拆分成2个组件进行比较,结果看表4:

Table 4:Analyzing the performance of the MD and EL respectively

从上表可以看出,即使拆分开,单独的MD和EL也是要优于基线的,这表明作者一开始的设想得到了验证:即MD和EL这2个子任务是相互依赖的,并且通过联合训练能进一步使得模型利用这种依赖,而促使2个子任务互相获益。

ELQ这种端到端的模型需要事先提供mention边界,例如枚举所有可能的mention span,但对于question和query这种数据来说,尤其是WebQSP这种非常简短的问句,枚举所有可能的mention的代价是可以承受的。况且实际训练和infer时也会采取一些策略,来淘汰不可能的mention候选,尽可能缩小复杂度,例如设置一些阈值等。


[1] Kolitsas, Nikolaos, Octavian-Eugen Ganea, and Thomas Hofmann. “End-to-end neural entity linking.” arXiv preprint arXiv:1808.07699 (2018).
[2] Li, Belinda Z., et al. “Efficient one-pass end-to-end entity linking for questions.” arXiv preprint arXiv:2010.02413 (2020).
[3] Tagme Documentation解读


如果需要其他NLP相关内容请移步至: 我的github:https://github.com/qingyujean/Magic-NLPer,求赞求星求鼓励~~~

最后:如果本文中出现任何错误,请您一定要帮忙指正,感激~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值