链接:https://arxiv.org/pdf/1808.06876.pdf
动机
Szegedy 在 14 年发现,对于图像分类问题的神经网络,若是在输入中人为的添加很小尺度的扰动,会让已经训练好的神经网络做出错误的判断,并且可能以很高的置信度输出。很多人将这个性质的原因归结为深层神经网络的⾼度⾮线性以及过拟合。Goodfellow则给出了不同的看法。他认为即使是线性模型,也有这种现象。在高维空间中,即使是很小的扰动,也会对最终的输出值产生很大的影响。⽽对于神经⽹络⽽言,很多神经网络为了节省计算上的代价,都被设计成了线性的形式,这使得他们更容易优化,但是这样"廉价"的⽹络也导致了对于对抗扰动的脆弱性。除了生成对抗样本来攻击神经⽹络以外,对抗训练神经网络从⽽有效防⽌对抗样本的攻击也是⼀一个值得考虑的问题。之后大家开始尝试将对抗训练(AT)用于 NLP 领域,如文本分类问题。本文尝试将AT加入到实体识别和关系抽取的联合模型中,观察AT对联合模型的效果。
亮点
文章的亮点主要包括:
(1)提出了命名实体识别和关系抽取的联合模型,可以同时识别实体和实体间的关系,并且对于实体间存在的多关系也可以一次性提取出来;
(2)在训练过程中添加了对抗训练(AT),提升联合模型的鲁棒性和范性。
相关工作
一.实体和关系抽取的联合模型:
最初的联合模型是基于人工提取的特征,用于同时执行命名实体识别和关系提取子任务。这些方法依赖于NLP工具(例如POS标记器)的可用性,或者手工设计的特性,会导致额外的复杂性。之后神经网络的方法用来克服这一特征设计问题,通常涉及到RNNs和CNNs。特别是,Miwa和Bansal以及Li等人将双向树状结构的RNNs应用于不同的上下文以捕获语法信息(使用外部依赖分析器)。Gupta等人则使用各种手工提取的特性应用到RNNs中。Adel提出了解决简单问题的实体分类(EC,假设给出实体边界),与NER不同的是,他们复制实体周围的环境,将实体对喂给关系提取层。Katiyar和Cardie在研究带 attention 的RNNs时,没有考虑到关系标签并不是相互排斥的。最后,Bekoulis等人在联合模型中使用LSTMs一次只提取一个关系,但增加了NER部分的复杂性。
我们的基准模型支持从相同的输入同时提取多组关系。然后,我们使用对抗式训练进一步扩展了这个强大的基线。
二.对抗性训练(AT):
对抗训练(AT)是通过对训练数据产⽣生对抗噪声来规范分类算法的⼀一种⼿手段。它⿎鼓励神经⽹络对未经修改的例⼦子和扰动的例子进⾏正确的分类来实现深层模型,这实际上不仅增强了神经⽹络的鲁棒性,⽽且提高了它的普遍性。Szegedy的⽂章表明将对抗样本和普通样本一起训练模型训练,可使模型稍微正则化。训练对抗样本和平常的训练样本数增加不一样:通常我们通过对数据进⾏变形来增加数据,这样变形后的数据是可能出现在测试集⾥的。⽽对抗样本这种数据通常不可能⾃然地出现在测试集中,但是它们可以揭露出模型的缺陷。
在NLP环境中,针对不同的任务,如文本分类、关系提取和词性标注,AT有几种不同的变体。AT被认为是一种正则化方法。与其他引入随机噪声的正则化方法(dropout,word - dropout)不同,AT产生的扰动是模型容易误分类的样本的变体。
模型
文中设计的联合抽取模型如下:
基本模型从下往上依次为:
(1)输入层:输入是一个句子的序列 tokens。我们使用character embeddings来隐式捕获形态学特征(例如,前缀和后缀),通过一个vector(embedding)表示每个字符,将character embeddings 嵌入到BiLSTM中,以获得单词的基于字符的表示。另外也使用预训练过的word embeddings。
(2)BiLSTM层:word 和character embeddings 连接起来形成最终的token 表示,然后将其输入到BiLSTM层以提取顺序信息。
(3)实体识别层:对于NER任务,我们采用BIO (Beginning,Inside, Outside) 编码方案。对于实体标记的预测,我们使用:(i) softmax方法进行实体分类(EC)任务(假设给定的实体边界),或 (ii) CRF方法,这样我们同时识别每个实体的类型和边界。在解码过程中,在softmax设置中,我们贪婪地检测token的实体类型。虽然独立的类型分布对于EC任务来说是合理的,但是当相邻标签之间有很强的相关性时就不是这样了。例如,BIO编码方案在NER任务中强加了几个约束(例如,B-PER和I-LOC标记不能连续)。基于这种直觉,我们使用线性链CRF来完成NER任务。在CRF设置中,对于解码,我们使用Viterbi算法。在训练过程中,对于EC (softmax)和NER任务(CRF),我们将交叉熵损失L(NER)最小化。
(4)关系抽取层:实体标签作为label embeddings输入到关系提取层,与Bi提取的句子表示一起做关系抽取。其中假设实体类型的知识有助于预测相关实体之间的关系。
以上为完整的基本模型。若是在该联合模型的输入层中,针对embedding人为的添加小尺度的扰动η,就可以进行对抗训练(AT)。具体的η计算过程如下。
对于联合模型来说,有实体识别和关系抽取的联合损失函数 Ljoint:
接下来生成一个对抗的输入样本,通过添加最坏扰动ηadv加入到输入的embedding中,来最大化损失函数:
对于ηadv直接在神经网络中求解是比较繁琐复杂,所以一般取其近似值为:
其中ε为定义的超参数,和输入层的 word embedding 的维度相关。如 word embedding 为100时,ε 可以近似取值为 0.01。g 为联合损失函数在 w 方向的梯度,也正是为了说明添加的扰动对于神经网络来说是最坏的情况。
之后训练的输入为原始和对抗样本的混合,所以最终求得的损失函数为:
实验
我们使用 github 代码基中的代码,在四个数据集中评估模型。特别地,我们遵循 Miwa 和 Bansal 为 ACE04 数据集定义的 5 倍交叉验证。对于CoNLL04EC任务(假设给定边界),我们使用与 Gupta 等人相同的分割。我们还使用10倍交叉验证对NER任务的模型进行评估,类似于Miwa和Sasaki在同一数据集中使用的模型。对于荷兰房地产分类信息DRECdataset,我们使用了Bekoulis等人的训练测试分割。对于不良药物事件ADE,我们进行了10倍的交叉验证,类似于Li等人。为了获得不受输入嵌入影响的类似结果,我们使用了之前作品的嵌入。我们在所有的实验中都采用了早停的方法。我们使用Adam优化器并修复超参数验证集。选择缩放参数α的范围为{ 5 e−2,1e−2、1 e−3、1 e−4 }。更大的α值在我们早期的实验导致一致的性能降低。这可以从一个事实来解释,添加更多的噪音可以改变句子的内容,改变的词向量的语义。
我们使用三种类型的评估,即:(1)S(trict):如果实体边界和实体类型都是正确的,则我们将实体得分为正确(ACE04,ADE, CoNLL04, DREC);(2)B(oundaries):如果只有实体边界是正确的,而不考虑实体类型,则我们将实体得分为正确(DREC);(3)R(elaxed):如果将至少一种正确的类型分配给组成该实体的tokens(假设边界已知),则认为multi-token实体分类是正确的。在所有情况下,当关系类型和参数实体都正确时,关系被认为是正确的。实验结果表明我们的联合模型取得了当前最好的效果。
另外当有AT加入到输入层时,可以让训练更快速度的达到收敛。
总结
本文执行一个大规模的实验研究在这个联合模型任务上,使用了不同的语境和语言的数据集。建立了一个强大的基线,它的性能优于所有以前的模型;而且模型依赖于自动提取的特性,实现了最先进的性能。另外与基线模型相比,在训练过程中应用AT可以让联合抽取的效果持续增加。
论文笔记整理:余海阳,浙江大学硕士,研究方向为知识图谱、自然语言处理。
OpenKG.CN
中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
转载须知:转载需注明来源“OpenKG.CN”、作者及原文链接。如需修改标题,请注明原标题。
点击阅读原文,进入 OpenKG 博客。