CopyRE关系抽取

CopyRE

模型包括编码器和解码器两部分
编码器:将输入的句子(源句子)转换为固定长度的语义向量
解码器:读取该矢量并直接生成三元组

Encoder

编码器使用Bi-RNN对输入句子进行编码。

Decoder

解码器会直接生成三元组。

  • 1、 解码器生成三元组的关系

  • 2、解码器采用copy mechanism 从源句子中复制第一个实体(头实体)

  • 3、解码器采用copy mechanism 从源语句中复制第二个实体(尾实体)

  • 4、重复这个过程,解码器可以生成多个三元组。当生成了所有有效的三元组时,解码器会生成NA三元组,代表“停止”,NA三元组由NA关系和NA实体对组成

CopyRE公式表示

如图所示,解码器按照模块可分为:

  1. Predict Relation:关系预测
  2. EntityCopy (Copy the First Entity、Copy the SecondEntity):实体复制(头实体、尾实体)
  3. EXtracted triplets:三元组抽取

CopyRE关系抽取_第1张图片

Encoder

如上图所示,编码器使用Bi-RNN对输入句子进行编码。
o t E , h t E = B i R N N ( x t , h t − 1 E ) o_{t}^{E} , h_{t}^{E} = BiRNN(x_{t}, h_{t-1}^{E}) otE,htE=BiRNN(xt,ht1E)
s = [ h n E → ; h n E ← ] s = [\overrightarrow{h_{n}^{E} } ;\overleftarrow{h_{n}^{E} }] s=[hnE ;hnE ]

Decoder

如上图所示,解码时,每三个时间步为一个循环提取一个三元组,依次生成三元组的关系(Predict Relation)、从原句中复制第一个实体(Copy the First Entity)、从原句中复制第二个实体(Copy the Second Entity),构成完整的三元组。解码器不断重复上面三步生成多个三元组,生成了所有有效的三元组时,解码器生成NA三元组,停止。
o t D , h t D = g ( u t , h t − 1 D ) o_{t}^{D} , h_{t}^{D} = g(u_{t}, h_{t-1}^{D}) otD,htD=g(ut,ht1D)
h 0 D ← s h_{0}^{D}{\leftarrow} s h0Ds
u t = [ v t ; c t ] ⋅ W u u^{t} = [v^{t};c^{t}] \cdot W^{u} ut=[vt;ct]Wu
CopyRE关系抽取_第2张图片

Predict Relation

q r = s e l u ( o t D ⋅ W r + B r ) q^{r} = selu(o_{t}^{D}\cdot W^{r}+B^{r}) qr=selu(otDWr+Br)
q N A = s e l u ( o t D ⋅ W N A + B N A ) q^{NA} = selu(o_{t}^{D}\cdot W^{NA}+B^{NA}) qNA=selu(otDWNA+BNA)
p r = s o f t m a x ( [ q r ; q N A ] ) p^{r} = softmax([q^{r};q^{NA}]) pr=softmax([qr;qNA])
p r p^{r} pr作为下一时间步的 v t + 1 v^{t+1} vt+1输出到一阶段

EntityCopy

Copy the First Entity

q i e = s e l u ( [ o t D ; o i E ] ⋅ w e ) q^{e}_{i} = selu([o_{t}^{D};o_{i}^{E}]\cdot w^{e}) qie=selu([otD;oiE]we)
p e = s o f t m a x ( [ q e ; q N A ] ) p^{e} = softmax([q^{e};q^{NA}]) pe=softmax([qe;qNA])
p e p^{e} pe作为下一时间步的 v t + 1 v^{t+1} vt+1输出到一阶段

Copy the Second Entity

M i = { 1 , i ≠ k 0 , i = k M_{i} =\left\{\begin{matrix} 1, i≠k \\0,i=k \end{matrix}\right. Mi={1,i=k0,i=k

p e = s o f t m a x ( [ M ⊗ q e ; q N A ] ) p^{e} = softmax([M\otimes q^{e};q^{NA}]) pe=softmax([Mqe;qNA])
p e p^{e} pe作为下一时间步的 v t + 1 v^{t+1} vt+1输出到一阶段

EXtracted triplets

符号声明

X = [ x 1 , x 2 , . . . , x n ] X = [x_{1},x_{2},...,x_{n}] X=[x1,x2,...,xn]

符号 含义
X = [ x 1 , x 2 , . . . , x n ] X = [x_{1},x_{2},...,x_{n}] X=[x1,x2,...,xn] 输入句子s转换成的词向量矩阵
t ( 0 ≤ t ≤ n ) t(0\le t\le n) t(0tn) 表示当前位置(时间步长)
B i R N N ( ) BiRNN() BiRNN() 双向RNN模型
n n n 输入句子的长度
M M M 掩码矩阵
q r q^{r} qr 有效关系的置信向量
q e q^{e} qe 原句子中所有词汇的置信向量
q N A q^{NA} qNA NA关系或实体的置信向量
o t D o_{t}^{D} otD 时间步长为t时的解码器输出
h t D h_{t}^{D} htD 时间步长为t时的解码器隐状态输出
c t c_{t} ct 注意力向量
v t v_{t} vt 复制的实体嵌入

参考:
CopyRE: Extracting Relational Facts by an End-to-End Neural Model with Copy Mechanism, ACL 2018
NLP中实体关系三元组抽取模型范式总结

你可能感兴趣的:(知识基础,NLP基础,人工智能,机器学习,算法)