github: https://github.com/luheng/lsgn
最近的基于BIO标记的神经语义角色标注模型具有很高的性能,但是假定正确谓词作为输入的一部分,并且不能合并域级别的特征。我们提出了一种端到端方法来共同预测所有谓词,参数范围以及它们之间的关系。该模型对每个可能的单词跨度对之间的关系(如果有的话)做出独立的决策,并学习上下文的跨度表示形式,为每个决策提供丰富的共享输入特征。实验表明,这种方法在没有正确谓词的情况下在PropBank SRL上树立了新的技术水平。
语义角色标注(SRL)捕获谓词和参数关系,如,“谁对谁做了什么”。最近的高性能SRL模型是一个BIO标记器,其用于标注一次跨一个谓词的参数(如图1所示)。它们通常仅使用正确谓词进行评估,并且必须使用易于出错的谓词识别模型。 我们提出了一种端到端方法来预测所有谓词及其参数跨度。我们的模型建立在最近的共指消歧模型的基础上,通过集中使用学习的上下文关联表示法。我们使用这些表示来直接在文本范围内预测SRL图。通过独立地预测在每个可能的文本跨度对之间扮演哪个角色(如果有的话)来标识每个边缘,同时使用beam修剪来提高效率。最终的图只是预测的SRL角色(边)及其关联的文本范围(节点)的并集。 我们的跨度图形式克服了基于半马尔可夫和基于BIO的模型的关键局限性:它可以对同一输出结构中不同谓词之间的重叠跨度进行建模(见图1)。跨度表示法还泛化了基于BIO的模型中的字符级表示法,让模型可以动态决定要包括的跨度和角色,而无需使用以前的标准语法特征。 据我们所知,这是第一个基于跨度的SRL模型,它不假定已给出谓词。在这个必须预测谓词的更加现实的环境中,我们的模型在PropBank上实现了最先进的性能。它还提高了类似的用于共指消歧的这种跨度嵌入方法的模型性能,这表明这种样式的模型可以用于其他跨度关系任务,例如句法解析,关系提取和QA-SRL。
我们认为可能的谓词空间是输入句子中所有的字符,而参数空间则是所有连续的跨度。我们的模型决定了每个谓词-参数对之间存在什么关系(包括不存在关系)。 形式上,给定一个序列 X = w 1 , . . . , w n X = w_1,...,w_n X=w1,...,wn,我们希望预测一组标记的谓词-参数关系 Y ⊆ P × A × L Y\subseteq \mathcal{P}× \mathcal A× \mathcal L Y⊆P×A×L,其中 P = { w 1 , . . . , w n } \mathcal P =\{ w_1,...,w_n\} P={w1,...,wn}是所有字符(谓词)的集合, A = { ( w i , . . . , w j ) ∣ 1 ≤ i ≤ j ≤ n } \mathcal A =\{(w_i,...,w_j)|1≤i≤j≤n\} A={(wi,...,wj)∣1≤i≤j≤n}包含所有跨度(参数), L \mathcal L L是语义角色标签的空间,包括表示无关系的空标签 ϵ \epsilon ϵ。最终的SRL输出将是所有非空关系 { ( p , a , l ) ∈ Y ∣ l ≠ ϵ } \{(p,a,l)∈Y|l\not= \epsilon\} {(p,a,l)∈Y∣l=ϵ}。 然后,我们定义一组随机变量,其中每个随机变量 y p , a y_{p,a} yp,a对应于谓词 p ∈ P p∈P p∈P和参数 a ∈ A a∈A a∈A,并从离散标签空间 L \mathcal L L中获取值。随机变量 y p , a y_{p,a} yp,a在给定输入 X X X的条件上是相互独立的: P ( Y ∣ X ) = ∏ p ∈ P , a ∈ A P ( y p , a ∣ X ) ( 1 ) P(Y | X) = \prod_{p∈\mathcal P,a∈\mathcal A} P(y_{p,a} | X) \qquad(1) P(Y∣X)=p∈P,a∈A∏P(yp,a∣X)(1) P ( y p , a = l ∣ X ) = e x p ( ϕ ( p , a , l ) ) ∑ l ′ ∈ L e x p ( ϕ ( p , a , l ′ ) ) ( 2 ) P(y_{p,a} = l | X) = \frac{exp(\phi(p, a, l))}{\sum_{l'∈L}exp(\phi(p, a, l'))}\qquad (2) P(yp,a=l∣X)=∑l′∈Lexp(ϕ(p,a,l′))exp(ϕ(p,a,l))(2) 其中 ϕ ( p , a , l ) \phi(p,a,l) ϕ(p,a,l)是可能组合(谓词,自变量,标签)的打分函数。 ϕ \phi ϕ被分解为谓词和参数的两个一元分数(在第3节中定义),以及该关系标签的特定分数: ϕ ( p , a , l ) = Φ a ( a ) + Φ p ( p ) + Φ r e l ( l ) ( a , p ) ( 3 ) \phi(p, a, l) = \Phi_a(a) + \Phi_p(p) + \Phi^{(l)}_{rel}(a, p) \qquad(3) ϕ(p,a,l)=Φa(a)+Φp(p)+Φrel(l)(a,p)(3) 空标签的分数设置为常数: ϕ ( p , a , l ) = 0 \phi(p,a,l)= 0 ϕ(p,a,l)=0,类似于逻辑回归。 (1)学习 对于每个输入 X X X,我们将正确结构 Y ∗ Y^{∗} Y∗的负对数可能性最小化: J ( X ) = − l o g P ( Y ∗ ∣ X ) ( 4 ) \mathcal J (X) = − log P(Y^{∗}| X) \qquad(4) J(X)=−logP(Y∗∣X)(4) (2)集束裁剪 由于我们的模型处理 O ( n 2 ) O(n^2) O(n2)可能的参数范围和 O ( n ) O(n) O(n)可能的谓词,因此需要考虑 O ( n 3 ∣ L ∣ ) O(n^3 |\mathcal L |) O(n3∣L∣)可能的关系,这在计算上是不切实际的。为了克服这个问题,我们定义了两个集束 B a B_a Ba和 B p B_p Bp分别用于存储候选参数和谓词。每个集束中的候选对象按其一元分数( ϕ a \phi_a ϕa或 ϕ p \phi_p ϕp)进行排名。集束的大小受到 λ a n λ_an λan和 λ p n λ_pn λpn的限制。 从集束中舍弃的元素不参与计算边缘因子 Φ r e l ( l ) ( a , p ) \Phi^{(l)}_{rel}(a, p) Φrel(l)(a,p),从而将模型评估的关系因子的总数减少为 O ( n 2 ∣ L ∣ ) O(n^2 |\mathcal L |) O(n2∣L∣)。我们还将跨距的最大宽度限制为固定的数W(例如W = 30),从而将计算出的一元因子的数量进一步减少为 O ( n ) O(n) O(n)。
我们的模型基于BiLSTM的输出(图2)来构建参数跨度 a a a和谓词 p p p的上下文表示,并使用前馈网络计算第2节(图3)中描述的 ϕ ( p , a , l ) \phi(p,a,l) ϕ(p,a,l)中的因子得分。 (1)词级别上下文 底层由预训练的词嵌入和基于字符的表示组成,即,对于每个字符 w i w_i wi,我们有 x i = [ W O R D E M B ( w i ) ; C H A R C N N ( w i ) ] xi = [WORDEMB(w_i);CHARCNN(w_i)] xi=[WORDEMB(wi);CHARCNN(wi)]。然后,我们使用具有高速连接的m层双向LSTM将每个 x i x_i xi关联起来,我们将其表示为 x ˉ i \bar{x}_i xˉi。 (2)参数和谓词表示 我们为所有候选参数 a ∈ A a∈\mathcal A a∈A和谓词 p ∈ P p∈\mathcal P p∈P构造上下文表示。参数表示包含以下内容:BiLSTM输出的两个端点 ( x ˉ S T A R T ( a ) , x ˉ E N D ( a ) ) (\bar{x}_{START}(a),\bar{x}_{END}(a)) (xˉSTART(a),xˉEND(a)),soft head词 x h ( a ) x_h(a) xh(a)和嵌入的跨度宽度特征 f ( a ) f(a) f(a)。谓词表示形式只是在位置 I N D E X ( p ) INDEX(p) INDEX(p)上的BiLSTM输出。 g ( a ) = [ x ˉ S T A R T ( a ) ; x ˉ E N D ( a ) ; x h ( a ) ; f ( a ) ] ( 5 ) g ( p ) = x ˉ I N D E X ( p ) ( 6 ) g(a) =[\bar{x}_{START}(a);\bar{x}_{END}(a);x_h(a);f(a)]\qquad (5)\\ g(p) =\bar{x}_{INDEX}(p)\qquad(6) g(a)=[xˉSTART(a);xˉEND(a);xh(a);f(a)](5)g(p)=xˉINDEX(p)(6) soft head表示 x h ( a ) x_h(a) xh(a)是参数跨度中输入词 x x x的一种注意力机制,其中权重 e ( a ) e(a) e(a)是通过BiLSTM输出 x ˉ \bar{x} xˉ上的线性层来计算的。 x h ( a ) = x S T A R T ( a ) : E N D ( a ) e ( s ) ⊤ ( 7 ) e ( a ) = S O F T M A X ( w e ⊤ x ˉ S T A R T ( a ) : E N D ( a ) ) ( 8 ) x_h(a) = x_{START(a):END(a)}e(s)^{\top}\qquad(7)\\ e(a) = SOFTMAX(w_e^{\top} \bar{x}_{START(a):END(a)})\qquad (8) xh(a)=xSTART(a):END(a)e(s)⊤(7)e(a)=SOFTMAX(we⊤xˉSTART(a):END(a))(8) (3)打分 打分函数 Φ Φ Φ基于谓词和参数表示形式g通过前馈网络实现: Φ a ( a ) = w a ⊤ M L P a ( g ( a ) ) ( 9 ) Φ p ( p ) = w p ⊤ M L P p ( g ( p ) ) ( 10 ) Φ r e l ( l ) ( a , p ) = w r ( l ) ⊤ M L P r ( [ g ( a ) ; g ( p ) ] ) ( 11 ) Φ_a(a) =w^{\top}_aMLP_a(g(a))\qquad (9)\\ Φ_p(p) =w^{\top}_pMLP_p(g(p))\qquad (10)\\ Φ^{(l)}_{rel}(a, p) =w^{(l)\top}_r MLP_r([g(a); g(p)]) \qquad(11) Φa(a)=wa⊤MLPa(g(a))(9)Φp(p)=wp⊤MLPp(g(p))(10)Φrel(l)(a,p)=wr(l)⊤MLPr([g(a);g(p)])(11)