1 一个新颖的关系元组抽取级联二元标记框架(A Novel Cascade Binary Tagging Framework for Relational Triple Extraction)
1.1 引言
1.2 背景
首先作者提出了问题,传统的关系抽取是不能很好的解决三元组重叠,上图:
从图中可以发现,传统的关系抽取针对Normal类型的数据还是可以的,但是针对EPO和SEO的情况就不怎么行了,首先说下EPO,可以看出同一对实体,在传统的关系抽取下只能抽取出一种关系,比如:要么是Act in 或者 Direct movie的关系,然后说下SEO,按说传统的关系抽取也可以,但是数据分布不均衡,比如有的关系标签很多,有的很少,有的正例很多,有的负利很多,这样导致传统模型不能很好的进行学习。尽管像这样的问题已经有人做了很多研究,但是仍然存在很多的问题,他们都把每个实体对的关系看作离散的,这样导致会导致模型学习很困难,原因有两点:第一点,也是上面所说的,数据分布不均衡,第二点, 针对重叠的标签,如果在训练数据很少的情况下,分类器很难去正确的分类。
1.3 The CASREL Framework
-
以前的工作都没有:都是单独定义关系和实体,没有在三元组层次上集成
-
最大化目标函数(1):公式2:概率的链式法则;公式3:利用了一个事实,所有与s相关的关系必然有o,而其他关系则无o。
-
∏ j = 1 ∣ D ∣ [ ∏ ( s , r , o ) ∈ T j p ( ( s , r , o ) ∣ x j ) ] = ∏ j = 1 ∣ D ∣ [ ∏ s ∈ T j p ( s ∣ x j ) ∏ ( r , o ) ∈ T j ∣ s p ( ( r , o ) ∣ s , x j ) ] = ∏ j = 1 ∣ D ∣ [ ∏ s ∈ T j p ( s ∣ x j ) ∏ r ∈ T j ∣ s p r ( o ∣ s , x j ) ∏ r ∈ R \ T j ∣ s p r ( o ∅ ∣ s , x j ) ] . \begin{aligned} & \prod_{j=1}^{|D|}\left[\prod_{(s, r, o) \in T_j} p\left((s, r, o) \mid x_j\right)\right] \\ =& \prod_{j=1}^{|D|}\left[\prod_{s \in T_j} p\left(s \mid x_j\right) \prod_{(r, o) \in T_j \mid s} p\left((r, o) \mid s, x_j\right)\right] \\ =& \prod_{j=1}^{|D|}\left[\prod_{s \in T_j} p\left(s \mid x_j\right) \prod_{r \in T_j \mid s} p_r\left(o \mid s, x_j\right) \prod_{r \in R \backslash T_j \mid s} p_r\left(o_{\varnothing} \mid s, x_j\right)\right] . \end{aligned} ==j=1∏∣D∣⎣⎡(s,r,o)∈Tj∏p((s,r,o)∣xj)⎦⎤j=1∏∣D∣⎣⎡s∈Tj∏p(s∣xj)(r,o)∈Tj∣s∏p((r,o)∣s,xj)⎦⎤j=1∏∣D∣⎣⎡s∈Tj∏p(s∣xj)r∈Tj∣s∏pr(o∣s,xj)r∈R\Tj∣s∏pr(o∅∣s,xj)⎦⎤.
-
该公式的优点:
- 该似然是开始于三元组级别的,优化也是在三元组级别上
- 对于复数三元组如何在句中共享实体没有假设,通过设计来处理三元组问题
- 公式3分解而来的启发:先得到s,再对关系r,找到其对应的o
- 这种模式:允许一次性提取多个三元组
1.3.1 BERT Encoder
输入嵌入分别是token embeddings( W s W_s Ws),segmentation embeddings 和position embeddings( W p W_p Wp)的总和。
h 0 = S W s + W p h α = Trans ( h α − 1 ) , α ∈ [ 1 , N ] \begin{aligned} \mathbf{h}_0 &=\mathbf{S} \mathbf{W}_s+\mathbf{W}_p \\ \mathbf{h}_\alpha &=\operatorname{Trans}\left(\mathbf{h}_{\alpha-1}\right), \alpha \in[1, N] \end{aligned} h0hα=SWs+Wp=Trans(hα−1),α∈[1,N]
1.3.2 Cascade Decoder
首先,我们从输入的句子中检测主语。然后,对于每个候选主语,我们检查所有可能的关系,看看是否有关系可以将句子中的宾语与该主语关联起来。对应于这两个步骤,级联解码器由两个模块组成,如图2所示:一个主题标记器;以及一组特定于关系的对象标记器。
主题标记器:底层标记模块通过直接解码n层BERT编码器产生的编码向量hN来识别输入句子中所有可能的主语,更精确地说,它采用两个相同的二进制分类器分别检测主题的开始位置和结束位置,为每个标记分配一个二进制标记(0/1)
p i start-s = σ ( W start x i + b start ) p i end-s = σ ( W end x i + b end ) \begin{array}{r} p_i^{\text {start-s }}=\sigma\left(\mathbf{W}_{\text {start }} \mathbf{x}_i+\mathbf{b}_{\text {start }}\right) \\ p_i^{\text {end-s }}=\sigma\left(\mathbf{W}_{\text {end }} \mathbf{x}_i+\mathbf{b}_{\text {end }}\right) \end{array} pistart-s =σ(Wstart xi+bstart )piend-s =σ(Wend xi+bend )
其中,xi是输入序列中第i个token的编码表示,即xi =hN[i]。主体标记器优化了以下似然函数识别句子x中主体s的跨度:
p θ ( s ∣ x ) = ∏ t ∈ { start-s end-s } ∏ i = 1 L ( p i t ) I { y i t = 1 } ( 1 − p i t ) I { y i t = 0 } . \begin{aligned} & p_\theta(s \mid \mathbf{x}) = \prod_{t \in\{\text { start-s end-s }\}} \prod_{i=1}^L\left(p_i^t\right)^{\mathbf{I}\left\{y_i^t=1\right\}}\left(1-p_i^t\right)^{\mathbf{I}\left\{y_i^t=0\right\}} . \end{aligned} pθ(s∣x)=t∈{ start-s end-s }∏i=1∏L(pit)I{yit=1}(1−pit)I{yit=0}.
Relation-specific Object Taggers:
该模块同时识别客体以及与上一模块识别出的主体的相关关系,包含一组特定关系的客体标记器,与直接对hN解码的主体标记器不同,客体标记器还考虑了主体的特征:
p i start-o = σ ( W start r ( x i + v sub k ) + b start r ) p i end-o = σ ( W end r ( x i + v sub k ) + b end r ) \begin{array}{r} p_i^{\text {start-o }}=\sigma\left(\mathbf{W}_{\text {start }}^r\left(\mathbf{x}_i+\mathbf{v}_{\text {sub }}^k\right)+\mathbf{b}_{\text {start }}^r\right) \\ p_i^{\text {end-o }}=\sigma\left(\mathbf{W}_{\text {end }}^r\left(\mathbf{x}_i+\mathbf{v}_{\text {sub }}^k\right)+\mathbf{b}_{\text {end }}^r\right) \end{array} pistart-o =σ(Wstart r(xi+vsub k)+bstart r)piend-o =σ(Wend r(xi+vsub k)+bend r)
多个token组成,为了使式(9)(10)中xi和vsub相加,需要保持两个向量维度一致。为此,作者取第k个主体开始token和结束token的平均向量表示作为vsub.
标记器优化了以下似然函数,以确定给定句子表示x和主体s的客体的跨度。
p ϕ r ( o ∣ s , x ) = ∏ t ∈ { start-o,end-o ∏ i = 1 L ( p i t ) I { y i t = 1 } ( 1 − p i t ) I { y i t = 0 } \begin{aligned} & p_{\phi_r}(o \mid s, \mathbf{x}) =& \prod_{t \in\{\text { start-o,end-o }} \prod_{i=1}^L\left(p_i^t\right)^{\mathbf{I}\left\{y_i^t=1\right\}}\left(1-p_i^t\right)^{\mathbf{I}\left\{y_i^t=0\right\}} \end{aligned} pϕr(o∣s,x)=t∈{ start-o,end-o ∏i=1∏L(pit)I{yit=1}(1−pit)I{yit=0}
1.3.3 Data Log-likelihood Objective
对式(3)取对数:
∑ j = 1 ∣ D ∣ [ ∑ s ∈ T j log p θ ( s ∣ x j ) + ∑ r ∈ T j ∣ s log p ϕ r ( o ∣ s , x j ) + ∑ r ∈ R \ T j ∣ s log p ϕ r ( o ∅ ∣ s , x j ) ] . \begin{aligned} \sum_{j=1}^{|D|} & {\left[\sum_{s \in T_j} \log p_\theta\left(s \mid \mathbf{x}_j\right)+\sum_{r \in T_j \mid s} \log p_{\phi_r}\left(o \mid s, \mathbf{x}_j\right)\right.} &\left.+\sum_{r \in R \backslash T_j \mid s} \log p_{\phi_r}\left(o_{\varnothing} \mid s, \mathbf{x}_j\right)\right] . \end{aligned} j=1∑∣D∣⎣⎡s∈Tj∑logpθ(s∣xj)+r∈Tj∣s∑logpϕr(o∣s,xj)+r∈R\Tj∣s∑logpϕr(o∅∣s,xj)⎦⎤.
1.4 Results
在两个公共数据集上NYT,WebNLG评估这个框架。将句子分为Normal, EPO, SEO。
作者在BERT上实例化了CASREL框架,结合新的标记模式和预先学习的知识以获得更好的性能。
为了评估引入Transfomer对BERT模型的影响,设置了一组消融实验:CASRELrandom是BERT所有参数随机初始化;CASRELLSTM是在LSTM结构上实例化的框架;CASREL使用了预先训练好的BERT权值。
1.5 总结
本文从关系三元组抽取的一个公式出发,提出了一个新的级联二元标记框架(CASREL)。作者没有将关系建模为实体对的离散标签,而是将关系建模为将主体映射到客体的函数,这为重叠三元组提取提供了一个新的视角。作为结果,该模型可以同时从句子中提取多个关系三元组,而不会出现重叠问题。在两个广泛使用的数据集上进行了大量的实验,以验证提出的CASREL框架的有效性。实验结果表明,CASREL在不同的场景下,尤其是在重叠关系三元组的提取上,压倒性地优于最先进的基线。