一、Introduction
实体和关系的抽取是信息抽取的一项基本任务。例子如图一所示,输入是非结构化文本,输出是实体以及实体之间的关系。实体与关系之间又很强的依赖关系,关系与关系之间也是如此。比如已知“Live_In” 关系,那么其关联的实体类型分别是Person和Location,反之亦然。并且,(John,Live_In,California)的关系可以通过(John,Live_In,Los Angeles)和(Los Angeles,Loc_In,California)推导出。
二、Motivation
- pipeline方法忽略了两个子任务的相关性;
- joint方法可以分为基于统计机器学习的方法和基于神经网络的方法。基于统计的方法严重依赖于特征工程并且难以利用全局特征;基于神级网络的方法可以自动学习到非局部特征,并且得到SOTA结果。但是大多数方法通过参数共享分开抽取实体及其关系,而不是共同decoding。这会导致输出的实体和关系的信息未能完全利用,因为没有显示的特征来建模输出之间的依赖。Zheng et al. [2017]是唯一的另外,设计了一个新颖的标注机制将联合抽取任务转换为序列标注问题。但是该方法仅间接捕获输出结构对应关系,并且无法解决关系重叠问题。
为了解决上述问题,作者通过设计一个有向图机制将联合抽取任务转换为一个有向图问题,使用基于转换的解析框架来解决。
三、Model
这里先介绍一下图机制。有向图的每个节点对应句子中的每个单词。有向弧可以分为两类:实体弧表示实体的内部结构;关系弧表示实体间的关系,头结点表示关系的第一个实体,modifier节点表示关系的第二个实体。为了解决关系重叠问题,图中的节点可以有多个头结点。例子如图一所示。
3.1 Transition System
作者受到[Choi and McCallum, 2013]基于列表的弧形搜索算法的启发,提出了一种新的基于转换的神经网络方法。有两类转换动作:实体动作,用于识别实体;关系动作,用于识别实体间的关系。
我们使用
(
σ
,
δ
,
e
,
β
,
R
,
E
)
(\sigma,\delta,e,\beta,R,E)
(σ,δ,e,β,R,E)表示每个状态,
σ
\sigma
σ表示保存已处理过实体的堆栈,
δ
\delta
δ表示保存那些被
σ
\sigma
σ pop出但将来会push回去的实体,e是存储部分实体块的堆栈,
β
\beta
β是一个保存未处理单词的缓冲区,R是关系弧集合,E是实体弧集合。使用索引表示单词
w
i
w_i
wi,实体
e
i
e_i
ei。A用于存储历史动作。
所有的动作如表一所示。前七个动作用于生成关系,后三个动作用于生成实体。特别地,
L
E
F
T
l
−
R
E
D
U
C
E
LEFT_l-REDUCE
LEFTl−REDUCE表示从
e
j
e_j
ej到
e
i
e_i
ei用标签
l
l
l 添加一个关系弧,并且从
σ
\sigma
σ中pop出
e
i
e_i
ei。
R
I
G
H
T
l
−
S
H
I
F
T
RIGHT_l-SHIFT
RIGHTl−SHIFT表示从
e
i
e_i
ei到
e
j
e_j
ej用标签
l
l
l 添加一个关系弧,将
δ
\delta
δ中的所有实体和
e
j
e_j
ej push 到
σ
\sigma
σ中。
N
O
−
S
H
I
F
T
NO-SHIFT
NO−SHIFT将
δ
\delta
δ中的所有实体和
e
j
e_j
ej push 到
σ
\sigma
σ中。
N
O
−
R
E
D
U
C
E
NO-REDUCE
NO−REDUCEpop出
σ
\sigma
σ中的
e
i
e_i
ei。
L
E
F
T
l
−
P
A
S
S
LEFT_l-PASS
LEFTl−PASS表示从
e
j
e_j
ej到
e
i
e_i
ei用标签
l
l
l 添加一个关系弧,将
e
i
e_i
ei移到
σ
\sigma
σ的最前面。
R
I
G
H
T
l
−
P
A
S
S
RIGHT_l-PASS
RIGHTl−PASS表示从
e
i
e_i
ei到
e
j
e_j
ej用标签
l
l
l 添加一个关系弧,将
e
i
e_i
ei移到
δ
\delta
δ的最前面。
N
O
−
P
A
S
S
NO-PASS
NO−PASS简单地将
e
i
e_i
ei移到
σ
\sigma
σ的最前面。注意所有的关系动作是禁止的,当
β
\beta
β中的第一个元素是单词时。
O
−
D
E
L
E
T
E
O-DELETE
O−DELETEpop出
β
\beta
β中的
w
j
w_j
wj。
G
E
N
−
S
H
I
F
T
GEN-SHIFT
GEN−SHIFT将
w
j
w_j
wj从
β
\beta
β移入e。
G
E
N
−
N
E
R
(
y
)
GEN-NER(y)
GEN−NER(y) pop出e顶部的所有项形成一个块,用标签y表示,将该块的表示push进
β
\beta
β中,将该实体加到E中。所有的实体动作是禁止的,当
β
\beta
β中的顶部元素是实体时。
每个动作都需要满足一定的先决条件,以确保实体和关系的良好形式的有向图的属性,如表2所述。为了生成多个头指向实体的弧,我们设计了
L
E
F
T
l
−
∗
LEFT_l-*
LEFTl−∗和
R
I
G
H
T
l
−
∗
RIGHT_l-*
RIGHTl−∗的前置条件,所有头和modifier的依赖可以形成,即使modifier已经有一个头。另外,我们希望每个词在reduce之前可以找到该词的所有头和children。最后,我们在
∗
−
R
E
D
U
C
E
*-REDUCE
∗−REDUCE前置条件中设置了头部确认,确保
e
i
e_i
ei没有额外的头在缓冲区
β
\beta
β中。
3.2 Search Algorithm
基于上述的转移系统,对于给定一个句子,我们的解码器查找一个最优的动作序列。系统初始化为将所有的单词和表示反向push进
β
\beta
β中,所以
β
\beta
β中顶部的元素是第一个单词。
σ
,
δ
,
e
和
A
\sigma,\delta,e 和A
σ,δ,e和A为空栈。每一步中,系统会计算一个综合表示(由当前的
β
,
σ
,
δ
,
e
和
A
\beta,\sigma,\delta,e 和A
β,σ,δ,e和A决定),用于预测要采取的动作。当
β
\beta
β和e都为空时解码结束。如图三所示。模型在时刻t的状态表示为:
m
t
=
m
a
x
{
0
,
W
[
s
t
;
b
t
;
p
t
;
e
t
;
a
t
]
+
d
}
m_t=max\{0,W[s_t;b_t;p_t;e_t;a_t]+d\}
mt=max{0,W[st;bt;pt;et;at]+d}
模型状态
m
t
m_t
mt用于计算时刻t候选动作的概率:
g
z
g_z
gz表示转移动作z的向量,
q
z
q_z
qz表示bias。集合A(S,B)表示当前状态可能采取的正确动作集合。
m
t
m_t
mt编码了所有之前决策的信息,任意正确的转移动作序列的概率可以通过如下公式计算得到:
E
∗
E^*
E∗是最优的输出实体,
R
∗
R^*
R∗是最优的关系。
3.3 Input Representation
- Embedding 层:每个单词
t
i
t_i
ti,由可学习的词向量
w
i
w_i
wi和固定的词向量
w
i
~
\widetilde{w_i}
wi
拼接表示得到。
x i = m a x { 0 , V [ w ~ ; w ] + b } x_i=max\{0,V[\widetilde{w};w]+b\} xi=max{0,V[w ;w]+b} - BiLSTM 层:给定输入序列 x = ( x 1 , . . . , x n ) x=(x_1,...,x_n) x=(x1,...,xn),通过双向LSTM捕捉上下文信息。
3.4 State Representation
如图三所示,为了更好地捕捉非局部上下文信息,我们使用stack-LSTM来表示每个状态的不同部分信息。对一个传统的LSTM,新的输入总会加到最右边;但在stack-LSTM中,当计算新的存储器单元内容时,堆栈指针的当前位置确定LSTM中的哪个单元提供 c t − 1 c_{t-1} ct−1和 h t − 1 h_{t-1} ht−1。为了从最右边的位置移动堆栈指针,stack-LSTM提供了一个pop操作,它将堆栈指针移动到前一个元素。
3.5 Composition Functions
为了建模实体-关系和关系-关系的依赖信息,我们的方法将实体信息和相应的关系信息递增地集成到基于转移的模型中。
- Entity Chunks 当执行GEN-NER(y)动作时,pop出e中的单词序列形成一个块,移入 β \beta β中。为了计算该序列的向量,我们在组成单词的词向量和块类型中使用双向LSTM。
- Relation Labels 递归神经网络模型使复杂短语能够在组成和关系方面进行组合表示。给定一个有向的关系弧,从头结点h指向modifier节点m,我们结合head-modifier对和modifier-head对,使用该组合分别更新头结点和modifier节点的向量。对于head-modifier对,我们有,
c = t a n h ( W h [ H ; M ; R ] + e h ) c=tanh(W^h[H;M;R]+e^h) c=tanh(Wh[H;M;R]+eh)
对于modifier-head对,我们有,
c = t a n h ( W t [ M ; H ; R ] + e t ) c=tanh(W^t[M;H;R]+e^t) c=tanh(Wt[M;H;R]+et)
四、Experiment
- Dataset : 公开数据集NYT
- 评价指标 Precision、Recall、F1 score。在计算最终的F1分数时不考虑实体类型。
- 实验结果 与pipeline、joint、end-to-end方法对比。从实验结果看,我们的方法比最好的联合抽取方法高了4.6个点,比最优的端到端序列标注方法高了1.4个点,足以证明我们方法的有效性。
通过多任务学习的联合方法要优于pipeline方法,端到端的方法优于大多数联合方法。这个结果表明联合解码的重要性,它具有更强大的功能,可以利用实体和关系之间的依赖关系,以及句子中的关系标签之间的依赖信息。
值得注意的是,与所有其他方法相比,我们的方法的精度要高得多。 我们将成功归因于对实体和关系的特征表示进行建模的强大能力,以及联合解码。
- 消融实验
五、Conclusion
- 作者提出了一种直观的图机制来共同表示实体和关系,以便端到端关系提取可以很容易地转换为类似解析的任务;
- 基于图机制,作者提出了一种新的转换系统来生成有向图。 此外,作者还设计了一个特殊的递归神经网络,以更好地模拟底层实体-关系和关系-关系依赖关系。
- 作者在NewYork Times(NYT)语料库上进行实验,结果显示作者的方法优于最先进的端到端方法。