天天看点

Adversarial training for multi-context joint entity and relation extraction【论文笔记】一、Background二、Motivation三、Model四、Experiment五、Conclusion

一、Background

  最近许多神经网络方法在各种自然语言处理(NLP)任务中大展身手,比如语义解析、POS、关系抽取、翻译。然而,Szegedy et al.(2014)观察到对这些模型的输入的有意的小规模扰动(比如,对抗性的例子)可能导致不正确的决定(高置信度)。Goodfellow et al.(2015)提出的对抗训练(AT)(用于图像识别)作为正则化方法,其使用清洗和对抗性示例的混合来增强模型的稳健性。虽然AT最近已应用于NLP任务,比如文本分类(Miyato et al., 2017),但这篇论文在作者看来是第一次尝试研究AT在两个相关任务的联合训练中的正则化效果。

  先前提出的模型展示了基于神经网络的baseline方法克服的几个问题:我们的模型自动提取特征,无需额外的解析器或手工特征(Gupta et al. (2016);Miwa

and Bansal (2016);Li et al. (2017));一次提取所有实体和句子内的对应关系,而不是一次检查一对实体(Adel and Schutze (2017));关系抽取是多标签的,允许每个实体有多个关系(Katiyar and Cardie (2017)。本文的核心贡献是使用AT作为联合提取任务训练过程的扩展。

二、Motivation

  在作者看来这篇论文是第一次尝试研究AT在两个相关任务的联合训练中的正则化效果。一般来说论文的动机是要解决什么问题的,但是在这篇论文中并没有说要解决什么问题,所以在我看来,作者的动机就是通过大量实验检验AT在联合抽取有没有作用。

三、Model

3.1 Joint learning as head selection

  作者引用了自己上一篇论文的模型作为baseline,模型结构图如图一所示。模型的目标在于检测实体类型和边界以及实体之间的关系。模型的输入是一个序列 w = w 1 , . . . , w n w=w_1,...,w_n w=w1​,...,wn​。我们使用了字符级的Embedding来捕捉形态特征(前缀、后缀),每个字符用向量表示。字符向量通过双向LSTM得到词的基于字符的表示。模型使用预训练的词向量,词和字符的向量拼接在一起作为最终的表示,然后通过双向LSTM提取序列信息。

  对于NER任务,我们采用BIO(Begining,Inside,Outside)标注机制。对于实体标签的预测,有两种方法:使用softmax进行实体分类(假设给定实体边界);使用CRF同时预测实体类型和实体边界。在解码阶段,如果使用的是softmax方法,那么就直接独立地预测实体类型。尽管EC任务的类型的独立分布是合理的,但是当相邻标签之间存在强相关性时,情况并非如此。例如,BIO编码方案在NER任务中施加了若干约束,B-PER后面不能接I-LOC。考虑到这个问题,我们使用线性链CRF解决NER任务。在解码阶段使用维特比算法。在训练过程中,对EC(softmax)和NER(CRF)任务,我们最小化交叉熵损失 ζ N E R \zeta_{NER} ζNER​,然后实体标签喂给关系抽取层作为label Embedding。假设实体类型的知识有利于预测所涉及实体之间的关系。

  我们将关系抽取任务建模为一个多标签头选择问题。在我们的模型中,每个词 w i w_i wi​可能与其它词有多个关系。比如图一的句子,‘Smith’可能与头实体‘California’存在‘lives in’关系,同时也存在其它关系(Works for,Born In和其他对应的实体)。任务的目标是对于每一个词 w i w_i wi​,预测头实体向量 y ^ i \hat y_i y^​i​和关系向量 r ^ i \hat r_i r^i​,计算分数 s ( w j , w i , r k ) s(w_j,w_i,r_k) s(wj​,wi​,rk​)。相对应的概率定义为: P ( w j , r k ∣ w i ; θ ) = σ ( s ( w j , w i , r k ) ) P(w_j,r_k|w_i;\theta)=\sigma(s(w_j,w_i,r_k)) P(wj​,rk​∣wi​;θ)=σ(s(wj​,wi​,rk​))。训练期间,最小化交叉熵损失 ζ r e l \zeta_{rel} ζrel​:

∑ i = 0 n ∑ j = 0 m − l o g P ( y i , j , r i , j ∣ w i ; θ ) \sum_{i=0}^n\sum_{j=0}^m-logP(y_{i,j},r_{i,j}|w_i;\theta) i=0∑n​j=0∑m​−logP(yi,j​,ri,j​∣wi​;θ)

  其中m是每个单词 w i w_i wi​的相关头部(以及关系)的数量。解码期间,使用基于阈值的预测来选择最可能的头部和关系。联合任务的最终目标函数为: ζ J O I N T ( w ; θ ) = ζ N E R + ζ r e l \zeta_{JOINT}(w;\theta)=\zeta_{NER}+\zeta_{rel} ζJOINT​(w;θ)=ζNER​+ζrel​,其中 θ \theta θ是训练参数。在多个单词组成的实体中,只有实体的最后一个词可以作为另一个实体的头,以此消除冗余关系。如果实体不涉及任何关系,我们预测“N”关系标签和实体本身作为头。

3.2 Adversarial training (AT)

  我们利用AT作为一种正则化方法,使我们的模型对输入扰动具有鲁棒性。特别地,我们通过在拼接的词表示中添加一些噪音来生成原始数据的变体。我们通过在原来词向量 w w w上加上最坏的扰动 η \eta η来生成每个对抗样本,以此最大化损失函数:

η a d v = arg ⁡ max ⁡ ∣ ∣ η ∣ ∣ ≤ ϵ ζ J O I N T ( w + η ; θ ^ ) \eta_{adv}=\mathop{\arg\max}_{||\eta||\leq\epsilon}\zeta_{JOINT}(w+\eta;\hat\theta) ηadv​=argmax∣∣η∣∣≤ϵ​ζJOINT​(w+η;θ^)

  考虑到公式直接求解有点棘手,我们使用近似定义: η a d v = ϵ g / ∣ ∣ g ∣ ∣ \eta_{adv}=\epsilon g/||g|| ηadv​=ϵg/∣∣g∣∣, g = ∇ w ζ J O I N T ( w ; θ ^ ) g=\nabla_w\zeta_{JOINT}(w;\hat\theta) g=∇w​ζJOINT​(w;θ^),其中 ϵ \epsilon ϵ是作为超参处理的小有界范数。与Yasunaga et al. (2018)相似,令 ϵ = α D \epsilon=\alpha\sqrt D ϵ=αD

​,其中D是词向量的维度。混合原始样本和对抗性样本进行训练,最终的损失函数为: ζ J O I N T ( w ; θ ^ ) + ζ J O I N T ( w + η a d v ; θ ^ ) \zeta_{JOINT}(w;\hat\theta)+\zeta_{JOINT}(w+\eta_{adv};\hat\theta) ζJOINT​(w;θ^)+ζJOINT​(w+ηadv​;θ^)

Adversarial training for multi-context joint entity and relation extraction【论文笔记】一、Background二、Motivation三、Model四、Experiment五、Conclusion

四、Experiment

五、Conclusion

  对抗训练(AT)是一种正则化方法,可以通过在训练数据中添加小扰动来提高神经网络方法的鲁棒性。个人觉得对抗训练更像是一种训练词向量的方法。

继续阅读