Abstract
最近的工作将实体关系抽取任务放到一个结构化的预测框架中,通过联合模型进行多任务学习。然而,本文提出了一种流水线的方法用于实体和关系提取,并且在三个数据集上达到了新的SOTA。由于是流水线方法,本文对两个子任务构造了两个独立的编码器,并且只使用实体模型来构造关系模型的输入。经过大量的试验,表明了关系模型早期融合实体信息和纳入全局上下文的重要性。
1.Instruction
长期以来,人们一直相信联合模型可以更好地捕获实体和关系之间的交互,并且能够帮助缓解错误传播问题。在这项工作中,本文重新研究了这个问题,并提出了一种简单的方法,该方法学习了两个建立在BERT上的编码器。这两个模型为实体模型和关系模型,是独立训练的。关系模型只依赖于实体模型来提供输入特征。实体模型建立在span-level表示之上,关系模型建立在特定于给定的一对span的上下文表示之上。
作者在大量的实验中发现:
- 实体和关系模型的上下文表示本质上捕获了不同的信息,因此共享它们的表示会影响性能。
- 在关系模型的输入层融合实体信息(包括边界和类型)是至关重要的。
- 利用跨句信息在两个任务中是有用的。
作者也提出了模型的缺点:
- 需要对每一对实体运行一次关系模型。
解决方法:提出了一种新颖且有效的替代方案,通过在推理时对不同组实体对的计算进行近似和批处理。这种近似在略微降低精度的情况下实现了8-16倍的加速比。
2. Model
问题的输入是一个句子 X X X,它由n个token x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn表示。设 { s 1 , s 2 , . . . , s m } \{s_1,s_2,...,s_m\} {s1,s2,...,sm}是 X X X中最大长度为L的所有可能span,并且 S T A R T ( i ) START(i) START(i) 和 E N D ( i ) END(i) END(i)表示开始和结束索引。
2.1 NER
让
ε
\varepsilon
ε表示一组预定义的实体类型。对于每个span
s
i
∈
S
s_i\in S
si∈S,预测实体类型
y
e
(
s
i
)
∈
ε
y_e(s_i)\in \varepsilon
ye(si)∈ε or
y
e
(
s
i
)
=
ϵ
y_e(s_i)=\epsilon
ye(si)=ϵ 表示span
s
i
s_i
si 不是一个实体。
任务的输出为
Y
e
=
{
(
s
i
,
e
)
:
s
i
∈
S
,
e
∈
ε
}
Y_e=\{(s_i,e):s_i\in S, e\in \varepsilon\}
Ye={(si,e):si∈S,e∈ε}
2.2 RE
设
R
R
R表示一组预定义的关系类型。任务是,对每一对span
s
i
∈
S
,
s
j
∈
S
s_i\in S, s_j\in S
si∈S,sj∈S,预测关系类型
y
r
(
s
i
,
s
j
)
∈
R
y_r(s_i,s_j)\in R
yr(si,sj)∈R,或者他们之间没有关系
y
r
(
s
i
,
s
j
)
∈
ϵ
y_r(s_i,s_j)\in \epsilon
yr(si,sj)∈ϵ
任务的输出为:
Y
r
=
{
(
s
i
,
s
j
,
r
)
:
s
i
,
s
j
∈
S
,
r
∈
R
}
Y_r=\{(s_i,s_j,r):s_i,s_j\in S,r\in R\}
Yr={(si,sj,r):si,sj∈S,r∈R}
2.3 Approach
如图1所示,实体模型首先获取输入句子并预测实体类型,对于每个独立的span,本文通过插入额外的标记来突出显示subject和object及其类型,从而独立的处理关系模型中的每一对候选实体。
2.3.1 Entity Model
首先使用BERT类获得每个输入token
X
t
X_t
Xt 的语境化表示
x
t
x_t
xt。给定span
s
i
∈
S
s_i\in S
si∈S,span表示
h
e
(
s
i
)
h_e(s_i)
he(si)被定义为:
h
e
(
s
i
)
=
[
X
S
T
A
R
T
(
i
)
;
X
E
N
D
i
;
ϕ
(
s
i
)
]
h_e(s_i)=[X_{START_{(i)}};X_{END_{i}};\phi(s_i)]
he(si)=[XSTART(i);XENDi;ϕ(si)]
其中
ϕ
∈
R
d
F
\phi \in R^{d_F}
ϕ∈RdF表示学习的span宽度特征的嵌入。然后将span表示
h
e
(
s
i
)
h_e(s_i)
he(si)馈送到前馈网络以预测实体类型
e
∈
ε
∪
{
ϵ
}
:
P
e
(
e
∣
s
i
)
e\in \varepsilon \cup \{\epsilon\}:P_e(e|s_i)
e∈ε∪{ϵ}:Pe(e∣si)的概率分布。
2.3.2 Relation Model
将一对span
s
i
,
s
j
s_i, s_j
si,sj作为输入,预测关系类型。本文不同于以前的方法(重复使用span表示
s
i
,
s
j
s_i,s_j
si,sj来预测两者之间的关系),本文假设这些表示只捕获每个单独实体周围的上下文信息,并且可能无法捕获这对span之间的依赖关系。例如,在figure1中的单词 is a 对于理解 morpa和 parser 之间的关系是至关重要的,但对于 morpa 和 text-to-speech的转换却不是。
本文的关系模型独立的处理每对span,并在输入层插入键入的标记,以突出显示subject和object以及类型。
对于给定输入句子
X
X
X和一堆主宾跨度,本文将文本token定义为
<
S
:
e
i
>
,
<
/
S
:
e
i
>
,
<
O
:
e
j
>
,
<
/
O
:
e
j
>
<S:e_i>,</S:e_i>,<O:e_j>,</O:e_j>
<S:ei>,</S:ei>,<O:ej>,</O:ej>,并将它们插入到主语好宾语span前后的输入句子中。使用
X
∧
\overset{\wedge}{X}
X∧表示修改后的序列:
X
∧
=
.
.
.
<
S
:
e
i
>
,
x
S
T
A
R
T
(
i
)
,
.
.
.
,
x
E
N
D
(
i
)
,
<
/
S
:
e
i
>
,
.
.
.
,
<
O
:
e
J
>
,
x
S
T
A
R
T
(
j
)
,
.
.
.
,
x
E
N
D
(
j
)
,
<
/
O
:
s
j
>
,
.
.
.
\overset{\wedge}{X}=...<S:e_i>,x_{START_{(i)}},...,x_{END_{(i)}},</S:e_i>,...,<O:e_J>,x_{START_{(j)}},...,x_{END_{(j)}},</O:s_j>,...
X∧=...<S:ei>,xSTART(i),...,xEND(i),</S:ei>,...,<O:eJ>,xSTART(j),...,xEND(j),</O:sj>,...
本文在
X
∧
\overset{\wedge}{X}
X∧上应用第二个BERT编码器,并用
x
∧
t
\overset{\wedge}{x}_t
x∧t表示输出表示。本文将两个起始位置的输出表示连接起来,获得span对表示:
h
r
(
s
i
,
s
j
)
=
[
X
∧
S
T
A
R
T
∧
(
i
)
;
X
∧
S
T
A
R
T
∧
(
j
)
]
h_r(s_i,s_j)=[\overset{\wedge}{X}_{\overset{\wedge}{START}_{}(i)};\overset{\wedge}{X}_{\overset{\wedge}{START}_{}(j)}]
hr(si,sj)=[X∧START∧(i);X∧START∧(j)]
其中
[
X
∧
S
T
A
R
T
∧
(
i
)
[\overset{\wedge}{X}_{\overset{\wedge}{START}_{}(i)}
[X∧START∧(i) 和
X
∧
S
T
A
R
T
∧
(
j
)
]
\overset{\wedge}{X}_{\overset{\wedge}{START}_{}(j)}]
X∧START∧(j)]是
<
S
:
e
i
>
<S:e_i>
<S:ei>和
<
O
:
e
j
>
<O:e_j>
<O:ej>在
X
∧
\overset{\wedge}{X}
X∧中的索引。
这种使用额外标记来突出主语和宾语的想法并不是本文提出来的。然而,在大多数分类任务中只关注输入句子中给定的一对主语和宾语,并且其有效性还没有在需要对多个实体提及之间的关系进行分类的端到端环境中进行评估。本文发现,在输入层注入类型信息非常有助于在试图理解关系之前区分实体类型。
2.3.3 Cross-sentence context
跨句子信息可以帮助预测实体类型和关系,特别是对于代词提及。由于期望BERT能够捕获长期依存关系,因此本文只需要将句子扩展到实体和关系模型的固定窗口大小为W,即可纳入跨句上下文。具体的说,给定一个有n个单词的输入句子,分别用来自左侧上下文和右侧上下文的 ( w − n ) / 2 (w-n)/2 (w−n)/2个单词来扩充输入。
2.3.4 Training
对于关系模型的训练,本文只考虑训练集中的gold entity
S
G
∈
S
S_G \in S
SG∈S,并用gold entity 标签作为关系模型的输入
在推理过程中,首先使用
y
e
(
s
i
)
=
a
r
g
m
a
x
e
∈
ε
∪
{
ϵ
}
P
e
(
e
∣
s
i
)
y_e(s_i)=argmax_{e\in \varepsilon \cup \{\epsilon\}P_e(e|s_i)}
ye(si)=argmaxe∈ε∪{ϵ}Pe(e∣si)来预测实体
2.4 Efficient Batch Computations
由于对每一对实体都要运行一次关系模型,为了缓解这个问题,本文提出了一种新颖而有效的关系模型替代方案。
本文提出了一个近似模型,首先不是将实体标记直接插入到原始句子中,而是将标记的位置嵌入与相应的span开始和结束标记进行绑定:
P
(
<
O
:
e
i
>
)
,
P
(
<
/
O
:
e
i
>
)
:
=
P
(
x
S
T
A
R
T
(
i
)
)
,
P
(
x
E
N
D
(
i
)
)
P(<O:e_i>),P(</O:e_i>):=P(x_{START_{(i)}}),P(x_{END_{(i)}})
P(<O:ei>),P(</O:ei>):=P(xSTART(i)),P(xEND(i))
P
(
<
O
:
e
i
>
)
,
P
(
<
/
O
:
e
i
>
)
:
=
P
(
x
S
T
A
R
T
(
j
)
)
,
P
(
x
E
N
D
(
j
)
)
P(<O:e_i>),P(</O:e_i>):=P(x_{START_{(j)}}),P(x_{END_{(j)}})
P(<O:ei>),P(</O:ei>):=P(xSTART(j)),P(xEND(j))
其中
P
(
⋅
)
P(\cdot)
P(⋅)表示token的位置id。figure 1,如果相对morpa和parse之间的关系进行分类,第一个实体标记
<
S
:
M
E
T
H
O
D
>
<S:METHOD>
<S:METHOD>与token mor共享嵌入位置。这样做,原始的token位置嵌入将不会发生改变。通过attention机制强制模型只关注text token而不管制标记token,而实体标记token可以关注与相同span对相关联的所有文本token和所有4个标记token。
这导致推理的加速比很大,而性能只有很小的下降。
3. Experiments
4. 启示
- 在联合实体关系抽取横流的今天,仍然能反其道而行之证明了pipline方法的有效,确实厉害。
- 不管是论文写作,还是实验部分的验证,我感觉这是我读了一百多篇科研论文中,思维最缜密,最具有专业性的论文之一。
- 可以利用关系抽取模型的机制作为创新点,与其他任务相结合。