Adversarial Learning for NER

本周看的两篇论文是关于对抗学习在命名实体识别迁移学习任务上的应用,分别是18年《Adversarial Transfer Learning for Chinese Named Entity Recognition with Self-Attention Mechanism》,提出了用于NER的多任务的对抗迁移学习方法;以及19年《Dual Adversarial Neural Transfer for Low-Resource Named Entity Recognition》,将对抗训练用于NER的跨领域迁移任务。

博客地址:https://ian-peace.github.io

The first paper, multi-task learning

《Adversarial Transfer Learning for Chinese Named Entity Recognition with Self-Attention Mechanism》

问题

  1. 中文NER标注数据量很少,但中文分词任务的标注数据量很多。很直觉地想法就是利用中文分词任务的词边界信息去提升中文NER任务的表现,之前就有这样的研究,但依旧存在问题。例如:

    example

    对于“希尔顿”、“离开”,两个任务有相同的边界,但对于“休斯顿机场”,实体识别任务的边界更加地粗粒度。而之前的工作只考虑了两个任务可以共享的信息,忽略了任务各自特有的信息,使得分词任务为实体识别任务带来了噪声。如何解决?

  2. 我们都知道实体识别需要使用上下文信息乃至全局信息,作者认为句子中任意字符都可以提供信息,而包括BiLSTM在内的很多模型,都无法建立句子任意两个字符之间的联系。如何捕捉全局的依赖关系?

解决方法

  1. 针对噪声,使用对抗学习,即提出了对抗迁移学习结构,来过滤分词任务独有的信息。

  2. 针对长距离依赖,使用self-attention。

模型结构

  • Embedding使用Word2vec在百度百科和微博文本语料上预训练得到。

  • 特征提取部分使用BiLSTM,分为任务私有BiLSTM和共享的BiLSTM。私有的部分与各任务原有的部分一致,共享部分的公式表达见公式(4),k代表当前的任务。公式(5)是私有部分的公式表示。

  • 之后将它们的输出放入多头Self-attention中,这个没什么可说的,输出就是H‘,见公式(7)(8)。

  • 然后在各自任务部分,将self-attention层的输出放入两个任务的CRF层中。要注意的是,CRF层的输入是两个部分的拼接,见公式(9)。

  • 对抗学习体现在中间这部分的任务判别器上,它用来判断当前句子属于哪个任务。公式(17)是这部分的损失函数,max是尽可能地使任务判别器判断正确,而min是通过梯度反转层来实现尽可能地使判别器无法区分两个任务。这样做来保证任务本身的特性不会参与到共享网络中,以至于影响其他任务的性能。

    model

训练过程

总的Loss函数见公式(18),LNERL_{NER}LCWSL_{CWS}是两个任务各自的loss。在每次迭代中,轮流选择任务,然后按批采样所选任务的数据去更新模型参数。由于两个任务收敛速度不一致,所以按实体识别任务的性能来选择是否完成训练。

实验结果:

  • 在weiboNER和SighanNER两个数据集上都有明显提升。
  • 这篇论文并没有考虑跨领域的因素,仅仅是任务上信息的迁移。

The second paper, cross-domain ner

《Dual Adversarial Neural Transfer for Low-Resource Named Entity Recognition》

问题

  1. 跨领域Representation之间的差异

    在判别器部分和上一篇论文的意思相差不多,只是将两个任务换成了两个领域,判别器用来判断当前句子属于哪个领域,被称作资源对抗判别器

    • 两个领域各自的目的是希望判别器能够判断正确,而判别器部分也是增加了剃度反转层来尽可能地使BiLSTM部分的输出更具有资源不可知性,简单说就是让判别器无法区分两个领域的数据。
    • 这么做的目的是在于,作者认为,当前NER任务的迁移学习方法都没有考虑跨领域的表示层的差异,只是强制实现了跨领域的特征表示,作者想通过这种方式,增加所提取信息的通用性和鲁棒性。具体地,作者提出了两种模型结构。

    model

    • 一种是将BiLSTM单元分解为共享组件和与资源相关的组件,类似于上一篇论文,如图b所示,不过只是在判别器部分使用了self-attention;

    • 另一种是,所有的BiLSTM单元都由两个资源共享,不同资源的word embedding是完全不同的,如图c所示。

    • 代码实现,就是使用一个还是三个LSTM层的区别

  2. 领域资源数据量不平衡

    另外,作者还认为低资源领域NER任务还存在资源数据不平衡的问题,由于低领域数据量小,梯度下降会让模型更加偏向高领域。为此,作者在两个领域资源上添加了权重α\alpha来平衡它们对模型的影响。

    但就算添加了权重,实验显示,高资源中的易分类样本依旧构成了大部分损失并主导了梯度。所以作者在资源对抗判别器基础上提出了广义资源对抗判别器(GRAD),公式(1)是GRAD的损失函数,它添加了γ\gamma值来表示来自hard samples和easy samples的损失贡献的比值。公式(2)是整个模型的损失函数。

对抗训练

  • 在原始样本的char 和 word embedding上增加扰动,生成对抗样本的embedding,xadv=x+ηxx_{adv}=x+\eta_x

    (计算扰动的方式,同15年第一次提出对抗训练的论文,见文末reference[3],可以自行去看)

  • 对分类器进行原始样本和对抗样本的混合训练,提高模型的泛化能力;

  • 例如:对于含有word embedding WSW_S的源数据,对抗训练的损失可以定义为:

    lAT=l(Θ;WS)+l(Θ;WS,adv)l_{AT}=l(\Theta;W_S)+l(\Theta;W_{S,adv}),其中WS,adv=WS+ηWSW_{S,adv}=W_S+\eta_{W_S}

实验结果

这篇论文其实做了跨领域实体识别和跨语言实体识别两个任务,分别通过提出的两个模型进行了实验。实验得出,对于极低资源的跨语言迁移和跨领域迁移,DATNet-F可以获得更好的性能;对于具有相对较多训练数据的跨语言迁移,则应选择DATNet-P模型。

分析

论文分析DATNet-F模型在跨领域迁移任务上性能好的原因是,由于跨领域迁移使用相同的语言,两个领域很多信息是共有的,所以需要更多的共享隐藏特性来承载这些知识。

Reference

[1] Adversarial Transfer Learning for Chinese Named Entity Recognition with Self-Attention Mechanism. https://www.aclweb.org/anthology/D18-1017.pdf

[2] Dual Adversarial Neural Transfer for Low-Resource Named Entity Recognition. https://openreview.net/pdf?id=HkGzUjR5tQ

[3] Explaining and Harnessing Adversarial Examples. https://arxiv.org/pdf/1412.6572.pdf

Author: Ian
Link: http://ian-peace.github.io/2020/03/17/Adversarial%20Learning%20for%20NER/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
微信订阅号