Multi-Task Identification of Entities, Relations, and Coreference for Scientific Knowledge Graph Construction
本文提出了一种基于共享span表示进行多任务分类的框架(实体分类、关系分类、共指消解),将科学文献摘要抽取成知识图。
Accepted by: EMNLP 2018
Paper link:http://ssli.ee.washington.edu/~luanyi/YiLuan_files/EMNLP2018_YL_sciIE.pdf
Challenge
- 尽管搜索引擎取得了进步,但仍然很难确定新技术及其与之前技术存在的关系
- 科学文本的注释需要领域专业知识,这使得注释成本高昂并限制了资源
- 大多数关系提取系统都是针对句内关系而设计的,但是从科学文章中提取信息需要提取句子之间的关系
Contribution
- 开发了一个统一的学习模型(科学信息提取器框架, SCIIE),用于提取科学实体、关系和共指消解
- 创建了SCIERC数据库,包含科学名词、关系类别以及共指链接的标注(500个标注的科学摘要)
- 6种实体
- 7种关系
- 共指链接在实体间的标注
Dataset
该论文提出了SCIERC数据集,包括了500个科学摘要,标记了其中的实体类型、实体间的关系以及共指关系。
下载链接:http://nlp.cs.washington.edu/sciIE/
Model
主要思想
在低级别任务间共享参数,将三个任务看成共享span表示的多项分类问题
问题定义
输入:单词序列 D = w 1 , . . . , w n D = {w_1, ...,w_n} D=w1,...,wn;
所有可能的句内词序列span S = s 1 , . . . , s N S = {s_1, ... , s_N} S=s1,...,sN
输出:所有Span(即S)的实体类型E;
S × S S \times S S×S的关系R;
S中所有span的共指关系C
模型定义
将多任务学习定义为条件概率分布: P ( E , R , C ∣ D ) P(E,R,C|D) P(E,R,C∣D)
为了高效地训练和推理,将该分部拆分成:
P
(
E
,
R
,
C
∣
D
)
=
P
(
E
,
R
,
C
,
S
∣
D
)
=
∏
i
=
1
N
P
(
e
i
∣
D
)
P
(
c
i
∣
D
)
∏
j
=
1
N
P
(
r
i
j
∣
D
)
P(E,R,C|D) = P(E,R,C,S|D) = \prod^N_{i=1} P(e_i |D) P(c_i | D)\prod^N_{j=1}P(r_{ij}|D)
P(E,R,C∣D)=P(E,R,C,S∣D)=∏i=1NP(ei∣D)P(ci∣D)∏j=1NP(rij∣D)
其中每个随机变量的条件概率是独立标准化的:
P
(
e
i
=
e
∣
D
)
=
e
x
p
(
Φ
E
(
e
,
s
i
)
)
∑
e
′
∈
L
E
e
x
p
(
Φ
E
(
e
′
,
s
i
)
)
P(e_i= e|D) = \frac{exp(\Phi_E (e,s_i))} {\sum_{e' \in L_E} exp(\Phi_E(e',s_i))}
P(ei=e∣D)=∑e′∈LEexp(ΦE(e′,si))exp(ΦE(e,si))
P
(
r
i
j
=
r
∣
D
)
=
e
x
p
(
Φ
R
(
r
,
s
i
,
s
j
)
)
∑
r
′
∈
L
R
e
x
p
(
Φ
R
(
r
′
,
s
i
,
s
j
)
)
P(r_{ij}= r|D) = \frac{exp(\Phi_R (r,s_i,s_j))} {\sum_{r' \in L_R} exp(\Phi_R(r',s_i,s_j))}
P(rij=r∣D)=∑r′∈LRexp(ΦR(r′,si,sj))exp(ΦR(r,si,sj))
P
(
c
i
=
j
∣
D
)
=
e
x
p
(
Φ
C
(
s
i
,
s
j
)
)
∑
j
′
∈
{
1
,
.
.
.
,
i
−
1
,
ϵ
}
e
x
p
(
Φ
E
(
e
′
,
s
i
)
)
P(c_i= j|D) = \frac{exp(\Phi_C (s_i,s_j))} {\sum_{j' \in \{1,...,i-1,\epsilon \}} exp(\Phi_E(e',s_i))}
P(ci=j∣D)=∑j′∈{1,...,i−1,ϵ}exp(ΦE(e′,si))exp(ΦC(si,sj))
目标函数
给定一组所有文档D,模型损失函数被定义为所有三个任务的负对数似然丢失的加权和:
− ∑ ( D , R ∗ , E ∗ , C ∗ ) ∈ D { λ E l o g P ( E ∗ ∣ D ) + λ R l o g P ( R ∗ ∣ D ) + λ C l o g P ( C ∗ ∣ D ) } -\sum_{(D,R^*,E^*,C^*) \in D} \{\lambda_E logP(E^* |D) + \lambda_R logP(R^*|D) + \lambda_C log P(C^*|D)\} −(D,R∗,E∗,C∗)∈D∑{λElogP(E∗∣D)+λRlogP(R∗∣D)+λClogP(C∗∣D)}
R ∗ , E ∗ , C ∗ R^*, E^*, C^* R∗,E∗,C∗ 为goal。
令 C i ∗ C_i^* Ci∗ 为span i里所有正确的祖先。即:
l o g P ( C ∗ ∣ D = ∑ i = 1... N l o g ∑ c ∈ C i ∗ P ( c ∣ D ) ) log P(C^*|D = \sum_{i=1...N}log\sum_{c \in C^*_i} P(c|D)) logP(C∗∣D=i=1...N∑logc∈Ci∗∑P(c∣D))
打分结构
-
在共享跨度表示g上使用前馈神经网络(FFNN)来计算一组跨度和成对跨度的分数。
- ϕ e ( s i ) \phi_e(s_i) ϕe(si):一个跨度 s i s_i si有一个实体类型e的可能性;
- ϕ m r ( s i ) \phi_{mr}(s_i) ϕmr(si)跨度 s i s_i si在一个关系r中被提到的可能性;
- ϕ m c ( s i ) \phi_{mc}(s_i) ϕmc(si)跨度 s i s_i si在一条共指链接中被提到的可能性
- ϕ r ( s i , s j ) \phi_r(s_i,s_j) ϕr(si,sj)两个跨度与一个关系相结合的可能性;
- ϕ c ( s i , s j ) \phi_c(s_i,s_j) ϕc(si,sj)两个跨度与一条共指链接相结合的可能性
- g i g_i gi: s i s_i si的向量表示 (ELMo):连接来自BiLSTM的输出的 s i s_i si的左端点和右端点,基于注意力的软词条,嵌入span的宽度特征
- span打分以及成对的span打分的计算方式:
ϕ x ( s i ) = w x F ˙ F N N x ( g i ) ϕ y ( s i , s j ) = w y F ˙ F N N y ( [ g i , g j , g i ⊙ g j ] ) \phi_x(s_i) = w_x \dot FFNN_x(g_i) \phi_y(s_i,s_j)=w_y \dot FFNN_y([g_i,g_j,g_i \odot g_j]) ϕx(si)=wxF˙FNNx(gi)ϕy(si,sj)=wyF˙FNNy([gi,gj,gi⊙gj])
-
这些分数被用于计算最终打分:
Φ E ( e , s i ) = ϕ e ( s i ) \Phi_E (e,s_i) = \phi_e(s_i) ΦE(e,si)=ϕe(si)
Φ R ( r , s i , s j ) = ϕ m r ( s i ) + ϕ m r ( s j ) + ϕ r ( s i , s j ) \Phi_R (r,s_i,s_j) = \phi_{mr}(s_i) + \phi_{mr}(s_j) + \phi_r(s_i,s_j) ΦR(r,si,sj)=ϕmr(si)+ϕmr(sj)+ϕr(si,sj)
Φ C ( s i , s j ) = ϕ m c ( s i ) + ϕ m c ( s j ) + ϕ c ( s i , s j ) \Phi_C (s_i,s_j) = \phi_{mc}(s_i) + \phi_{mc}(s_j) + \phi_c(s_i,s_j) ΦC(si,sj)=ϕmc(si)+ϕmc(sj)+ϕc(si,sj)
推理和剪枝
使用波束搜索,根据打分排序减少训练和测试中成对的span的数量以将计算复杂度降低到 O ( n ) O(n) O(n).
使用 B C B_C BC修剪共指消解任务中的span,使用 B R B_R BR修剪关系抽取任务中的span。
使用span score ϕ m c \phi_{mc} ϕmc和 ϕ m r \phi_{mr} ϕmr对波束中的span进行排序,波束的大小用 λ C n \lambda_Cn λCn和 λ R n \lambda_Rn λRn进行约束。span的最大宽度为W。
KG Construction
为了构建整个语料库中的知识图,先将SCIIE用于单个文档(摘要),再将多个文档中的实体和关系集成。
-
结点(实体)抽取
-
句子被启发式地标准化
- 利用共指链接,将不通用词汇替换为通用词汇
- 采用字符长度最长的实体名称(使用全名替代首字母缩略)
- 使用单数标准化所有复数
-
计算整个语料库中的实体出现频率
- 出现频率>k的实体为它分配结点
- 将频繁出现的、为子字符串的剩余实体进行合并
-
-
边(关系)分配
- 在整个语料库中计算一对实体间的关系出现频率,选择频率最大的关系