论文笔记--Effective Modeling of Encoder-Decoder Architecture for Joint Entity and Relation Extraction
1. 文章简介
- 标题:Effective Modeling of Encoder-Decoder Architecture for Joint Entity and Relation Extraction
- 作者:Tapas Nayak, Hwee Tou Ng
- 日期:2020
- 期刊:AAAI
2. 文章导读
2.1 概括
文章设计了两种方法进行实体-关系提取:第一种方法WDec的Decoder每个时刻生成一个单词,最终生成可变长度的实体名称和关系;第二种方法PNDec每个时刻生成一个实体关系元组而非一个单词,实体长度可变,但关系只有一个。
下图为文行两种方法都整体架构:左边为WDec的编解码架构,右边为PNDec的解码块架构
2.2 文章重点技术
2.2.1 Word Decoding(WDec)模型
三元组表达方法
文章介绍的第一种方法为WDec。首先定义实体关系的表达方法为“entity1 ; entity2 ; relation”,即通过";“分隔实体三元组。如果两个实体之间可能存在多个关系,则通过”/“分隔。多个三元组之间由”|“分隔。三元组的通用表达形式为" e n t i t y 11 ; e n t i t y 112 ; r e l a t i o n 11 / r e l a t i o n 12 ∣ e n t i t y 21 ; e n t i t y 22 ; r e l a t i o n 21 ∣ … entity_{11} ; entity1{12}; relation{11}/relation{12} | entity{21} ; entity{22} ; relation{21} | \dots entity11;entity112;relation11/relation12∣entity21;entity22;relation21∣…”。这种方式使得模型可以方便地从生成的结果中提取出三元组信息。
词表
编码器、解码器使用相同的词典 V V V,包含所有的句子中的分词和关系集合 V V V。词典包含上述定义的分隔符,即“;”和"|",此外词典还包括3个特殊分词SOS, EOS, UNK分别表示句子的开始、结束和未知分词。在训练过程中,模型平等对待特殊tokens和其它tokens。模型的任务就是生成实体,然后找到实体之间的关系,并且生成实体和关系之间的分隔符使得生成结果满足上述三元组表达方式。
Word-Level Embedding 词嵌入层
(1) 单词级别嵌入:文章选择用Word2Vec初始化每个单词的嵌入,得到
E
w
∈
R
∣
V
∣
×
d
w
E_w \in \mathbb{R}^{|V|\times d_w}
Ew∈R∣V∣×dw,其中
d
w
=
300
d_w=300
dw=300为每个词嵌入的维度,
∣
V
∣
|V|
∣V∣为词表的大小。
(2) 字符级别嵌入:文章用CNN提取每个单词的字符级别特征向量。首先生成每个字符的嵌入
E
c
∈
R
∣
A
∣
×
d
c
E_c \in \mathbb{R}^{|A|\times d_c}
Ec∈R∣A∣×dc,其中
A
A
A表示所有句子包含的字符表,
d
c
d_c
dc表示字符嵌入向量的维度大小。再通过CNN得到每个单词的字符级别表示
d
f
=
50
d_f=50
df=50(每个单词最多考虑10个字符)。
(3) 分词嵌入:将上述词向量和字符向量拼接得到每个输入分词的最终表示:
x
=
V
w
∣
∣
V
c
∈
R
d
w
+
d
f
x = V_w||V_c \in \mathbb{R}^{d_w + d_f}
x=Vw∣∣Vc∈Rdw+df。
(4) 句子嵌入:将句子
S
=
x
1
,
…
,
x
n
S = x_1, \dots, x_n
S=x1,…,xn中所有的分词表示
x
i
x_i
xi输入到一个Bi-LSTM中,得到句子的向量表示。
解码器
解码器每次生成一个分词,直至生成EOS结束任务。使用LSTM作为解码器,LSTM在 t t t时刻会基于前 t − 1 t-1 t−1个分词的嵌入和隐藏状态预测当前词嵌入 e t e_t et对应的解码输出,得到当前时刻的隐藏状态 h t D h_t^D htD,其中 e t e_t et可由attention机制获得。再通过线性层+softmax得到最终输出 o t o_t ot,表示所有单词的输出概率,最终选择概率最大的单词作为当前时刻的生成单词。 h t D = L S T M ( e t ∥ t − 1 , h t − 1 D ) o ^ t = W v h t D + b v o t = s o f t m a x ( o ^ t ) h_t^D = LSTM(e_t\Vert {t-1}, h_{t-1}^D)\\ \hat{o}_t = W_v h_t^D + b_v\\ o_t = softmax(\hat{o}_t) htD=LSTM(et∥t−1,ht−1D)o^t=WvhtD+bvot=softmax(o^t)
推断
推断过程会将所有原句中未出现的单词的value设为
−
∞
-\infty
−∞,从而对应的softmax为0,不会被选中。但另一方面模型可以输出未知的单词UNK,如果是这种情况则将UNK替换为原句中Attention Score最大的分词。这是为了防止模型生成的实体不属于当前句子。
最后,我们通过预定义的三元组结构从生成的结果中提取三元组,并移除relation不在预置关系集合
R
R
R中的三元组或重复的三元组(两个实体均相同则视为重复)。
2.2.2 Pointer Network-Based Decoder(PNDec)
基本设定
不同于WDec,PNDec旨在识别到每个实体在句子中的起始位置和结束位置。在2.2.1的概念基础上,PNDec移除词表中的特殊字符分词和关系分词。在嵌入层只考虑单词级别嵌入而不考虑字符级别嵌入。为了得到实体之间的关系,我们采用一个关系嵌入矩阵 E r ∈ R ∣ R ∣ × d r E_r \in \mathbb{R}^{|R|\times d_r} Er∈R∣R∣×dr,其中 ∣ R ∣ |R| ∣R∣表示关系集合中的关系个数, d r = 300 d_r=300 dr=300表示关系向量的维度。此外,在关系集合 R R R中增加一个特殊的关系字符EOS表示生成过程结束。
解码
解码的
t
t
t时刻生成元组
y
t
y_t
yt表示两个实体的起始位置和二者关系。特别地,
y
0
=
0
⃗
y_0=\vec{0}
y0=0表示句子的开始,是一个dummy tuple,
y
m
y_m
ym为EOS时停止生成过程。
解码器由一个LSTM、两个指针神经网络和一个分类网络构成:在时刻
t
t
t,输入编码结果(词嵌入向量)
e
t
e_t
et和前
t
−
1
t-1
t−1时刻的隐藏状态及输出值,得到当前时刻的隐藏状态:
h
t
D
=
L
S
T
M
(
e
t
∥
y
p
r
e
v
,
h
t
−
1
)
,
y
p
r
e
v
=
∑
j
=
0
t
−
1
y
j
h_t^D = LSTM(e_t \Vert y_{prev},h_{t−1}), y_{prev} = \sum_{j=0}^{t-1} y_j
htD=LSTM(et∥yprev,ht−1),yprev=j=0∑t−1yj,其中每个
y
j
y_j
yj值均为一个五元组(start1, end1, relation, start2, end2)。
实体位置及关系提取
将解码过程生成的隐藏状态和编码过程的隐藏状态拼接传入Bi-LSTM,并分别传入到两层FFN+Softmax得到两个
0
1
0~1
0 1之间的值,其中Softmax被应用在原句每个分词中。两个Softmax分数分别代表当前词为第一个实体的start和end到概率。上述过程为第一个指针神经网络。类似地,我们构造第二个神经网络,得到第二个实体的start和end位置。
最后我们将得到的两个实体的向量表示传入到另一个FFN+Softmax,得到
R
R
R中每个关系的概率,选择概率最大的关系作为输出,直至预测的关系为EOS为止。
推断过程中,我们基于start和end的概率乘积最大原则选择第一个实体的开始结束位置,然后类似地选择第二个实体的开始结束位置,但要保证第二个实体不能与第一个实体重合。
损失函数
最小化单词生成部分的neg log-likelihood和关系提取以及实体起始位置提取的neg log-likelihood。
3. 文章亮点
文章设计了两种方法进行实体-关系提取
- WDec在单个模型上表现出了有竞争力的F1分值;PNDec在多个模型集成时表现效果最好(5次训练结果集合)
- 相比于PNDec,WDec训练成本高得多。这是由于WDec的softmax需要在词表中所有单词上进行计算,而PNDec只需在当前句子的每个单词进行计算即可。
- PNDec生成的每个元组都包含两个长度可变的实体和二者关系;WDec基于字符生成,很可能含有多个关系。
4. 原文传送门
Effective Modeling of Encoder-Decoder Architecture for Joint Entity and Relation Extraction