EMNLP21 - Data Augmentation for Cross-Domain Named Entity Recognition

Chen S, Aguilar G, Neves L, et al. Data Augmentation for Cross-Domain Named Entity Recognition[J]. EMNLP 2021.
Github:https://github.com/RiTUAL-UH/style_NER

摘要

本文提出了一个新的神经网络框架,可以把 high-source 领域的数据表示迁移到 low-source 领域。

主要思想是:通过学习文本的模式进行迁移

这篇文章既做了领域迁移,也有数据增强部分。在训练时候采用领域迁移的方法,使得模型能够用一个领域的数据生成另一领域的数据,用生成的数据补充 low-source,从而实现数据增强的目的。

介绍

不同领域内容形式有所不同,例如新闻领域的文本长而且规范,社交领域文本短、有很多拼写错误等。虽然文本形式有所不同,作者认为文本的语义还是可以迁移的。

本文提出一个跨领域encoder,可以抽取文本的模式,不同领域在特征空间上共享文本模式。

本文主要贡献:

  1. 提出一个新的神经网络框架可以抽取文本模式,有效的迁移 high-source 到 low-source 中
  2. 系统的评估了模型的有效性
  3. 在 low-source 中的实验经验上证明了对 low-source NER 任务的有效性

方法

  • encoder:Bi-LSTM
  • decoder:LSTM
  • discriminator:a linear layer
数据预处理

将每个词的标签放在词前面,线性化操作可以让模型更好的学习到词和标签的关系。 w = [ w 1 , . . . , w n ] w=[w_1, ..., w_n] w=[w1,...,wn] l = [ l 1 , . . . , l n ] l=[l_1, ..., l_n] l=[l1,...,ln],线性化之后为 x = [ l 1 , w 1 , . . . , l n , w n ] x = [l_1, w_1, ..., l_n, w_n] x=[l1,w1,...,ln,wn]

增加输入扰动

对输入数据加入一些噪音,可以让模型更好的抽取出输入的特征。一句话添加的噪音如下:

  1. 打乱词顺序
  2. 丢弃一个词
  3. mask 一个词
去噪重构 Denoising Reconstruction

请添加图片描述

损失函数:
L noise  ( x ^ , x ) = − ∑ i = 1 N x i ⋅ log ⁡ x ^ i \mathcal{L}_{\text {noise }}(\hat{x}, x)=-\sum_{i=1}^{N} x_{i} \cdot \log \hat{x}_{i} Lnoise (x^,x)=i=1Nxilogx^i

从源域和目标域取两个不同的句子作为输入,给这两个句子做预处理并加噪音。这两个输入使用不同的 embedding lookup table 但是共享模型的 encoder 和 decoder 参数。encoder 采用 Bi-LSTM模型,输出句子的隐向量表示。在 decode 阶段还原句子。

这一阶段流程其实就是,给输入加噪音,encode,decode 尽量还原加噪音前的句子。两个不同领域的输入共享参数,是为了让模型能同时学得两个领域的输入表示。

转换重构 Detransforming Reconstruction

请添加图片描述

损失函数:
L trans  ( x ^ , x ) = − ∑ i = 1 N x i ⋅ log ⁡ x ^ i \mathcal{L}_{\text {trans }}(\hat{x}, x)=-\sum_{i=1}^{N} x_{i} \cdot \log \hat{x}_{i} Ltrans (x^,x)=i=1Nxilogx^i

这一阶段的任务是将一个领域的句子转换成另一领域的句子。同样输入两个不同领域的句子,encode 步骤和去噪重构一样,但是在 decode 的时候要转换成另一领域的句子。

领域分类 Domain Classification

作者还训练了一个判别器,用来区分 encoder 生成的隐向量是来自源域还是目标域。输入的两个句子映射的向量,不告诉判别器来自哪里,让判别器做预测,就是一个二分类任务。判别器首先在去噪重构中训练,然后在转换重构中微调。

损失函数:
L a d v ( z ^ i , z i ) = − ∑ i = 1 N z i log ⁡ z ^ i + ( 1 − z i ) log ⁡ ( 1 − z ^ i ) \mathcal{L}_{a d v}\left(\hat{z}_{i}, z_{i}\right)=-\sum_{i=1}^{N} z_{i} \log \hat{z}_{i}+\left(1-z_{i}\right) \log \left(1-\hat{z}_{i}\right) Ladv(z^i,zi)=i=1Nzilogz^i+(1zi)log(1z^i)

最终训练目标

将三个任务的loss通过超参数组合起来:
L final  ( θ ) = λ 1 L noise  + λ 2 L trans  + λ 3 L a d v \mathcal{L}_{\text {final }}(\theta)=\lambda_{1} \mathcal{L}_{\text {noise }}+\lambda_{2} \mathcal{L}_{\text {trans }}+\lambda_{3} \mathcal{L}_{a d v} Lfinal (θ)=λ1Lnoise +λ2Ltrans +λ3Ladv

训练过程

因为迁移的好坏取决于去噪重构和转换重构,所以作者分了两个阶段来训练,第一阶段:只训练去噪重构和转换重构任务,保留迭代中最好的模型,投入第二阶段;第二阶段:三个任务一起训练。

实验

在做上述任务的时候,模型的度量指标用的 perplexity(困惑度)。

perplexity(困惑度) 用来度量一个概率分布或者概率模型预测样本的好坏程度。它也可以用来比较两个概率分布或概率模型。

从 Ontonotes5.0 和 Temporal Twitter 中选取了六个领域的数据,以NW和SM分别作为源域,其他作为目标域,训练模型:

  • Broadcast Conversation(BC)
  • Broadcast News (BN)
  • Magazine (MZ)
  • Newswire (NW)
  • Web Data (WB)
  • Social Media (SM)

请添加图片描述

NER任务

用NER任务来测试生成数据的效果。模型选择:BERT+一层线性层。

用源域数据的效果作为下界,目标域的效果作为上界。因为我们是以目标域作为训练目标,所以生成的数据可能会介于上下界之间,但也有可能生成了一堆没用的数据。实验效果如图。

请添加图片描述

对比前人的方法,数据增强的效果最好
请添加图片描述

局限性

  1. 生成数据的最大长度设置成和输入的长度一样了。实际上短句子有可能生成另一领域的长句子,这样设置不是很合理。
  2. 原数据集是 unparalleled,生成的两个句子不能保证是 unparalleled。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值