Cross-Domain NER using Cross-Domain Language Modeling论文阅读
NER模型的训练依赖于有标记的数据,有标记数据的质量会决定NER模型最终的表现。但很多领域的标记数据较少,成为了NER任务的瓶颈。现存的很多方法,都会充分利用源领域和目标领域的标记数据进行监督学习。然而这种方法的缺点就在于,目标领域必须要有标记数据才可以训练。而这篇文章使用跨领域的语言模型(cross-domain LM)作为跨域训练NER的桥连,并设计了一种新颖的参数生成网络。结果表明,该方法有效地抽取出了跨领域的语言模型的差异,允许该网络在没有标记数据的情况下无监督地完成NER任务。该方法还可以在有监督的情况下达到现有NER任务的state-of-the-art结果。
- 论文地址:https://www.aclweb.org/anthology/P19-1236.pdf
- 论文代码:https://github.com/jiachenwestlake/Cross-Domain_NER
引言
无论是进行多任务学习,还是进行预训练,Language Model任务都已被证实是有助于NER任务的。究其原因,是因为在LM训练过程中可以捕获名词的实体以及上下文的句式,而这些信息都对NER任务有所助益。所以,我们自然会问——同领域的LM任务对NER是有帮助的,但跨领域的LM训练是否会对跨领域的NER仍然有用呢?图1为一个图例,其中新闻领域的有标记数据量较大,但目标领域中没有标记数据或只有少量标记数据。我们感兴趣的是,使用新闻领域和目标领域大量未标记数据进行LM的无监督训练,将新闻领域的NER知识迁移到目标领域中去。
图1 模型图
如图1,这幅图简单介绍了本文的思想——我们可以沿红线的方向来达到我们跨领域迁移学习的目的——首先,是在同一领域(源领域)的跨任务迁移;其次,是同一任务(LM任务)下的跨领域知识迁移,最后,再进行一次同领域的跨任务迁移。为了达成这个目标,我们引进一个参数生成网络 ,其中包含了三部分内容——一个可变参数组W,一组task-embedding向量
,还有一组domain-embedding向量
。而领域和任务之间的相关度就可以通过这两个向量进行计算。
本文作者提到了本工作的两个“first”:本文首次使用跨领域的LM训练来无监督地进行NER跨领域学习;本文也是首次实现了,在两个实体类别完全不相同的NER领域之间进行迁移学习(对本文而言,是从新闻领域到医疗领域)。
相关工作
常见的NER架构
常见的NER架构分别有word-CNN+CRF、LSTM+softmax、char-CNN+CRF以及Bi-LSTM+CRF。本文采用的是Bi-LSTM+CRF。
跨领域的NER任务
处理跨领域的NER任务,监督学习(意味着必须在源领域和目标领域都有足量的标记数据)主要有两种方案——特征转移方案和参数转移方案:
- 特征转移的几种方案:
- 建立源领域和目标领域的实体标签空间之间的联系;
- 将标签进行embedding作为特征,而不是将实体本身作为特征,输入NER模型;
- 通过Bi-LSTM,基于文本的表示学习,将含有标签知识的表示作为特征加入跨领域的NER模型中
- 参数转移的几种方案:(其本质都是将源领域的参数输入目标领域的模型作为初始化,然后利用目标领域的标记数据进行fine-tune)
- 将目标领域和源领域的NER模型放在一起训练,共享参数;
- 在已有的网络(源领域NER模型)上加一层“自适应层(adaptation layer)”,融入目标领域学到的知识;
本文解决跨领域NER任务的思路:本文与之前的模型一样,都使用了相关领域的NER数据,但本文还使用了大量无标记数据,这使得本文所提的模型可以进行无监督的0样本学习。
学习task-embedding向量
在多任务学习中,已有一些工作使用task向量来扩充词向量的输入。但本文是通过task-embedding和domain-embedding向量来学习并生成特定的参数,而不是将它们直接作为特征输入模型。本文这样做的主要动机,是想要探究出跨领域或跨任务的、可迁移的模块化知识。该灵感源自于多语言机器翻译Platanios et al. (2018)
方法
图2 模型架构
如图2,本文模型主要由以下几部分组成——最底层为输入层,是本任务所使用的数据,它又被不同的领域和不同的任务分割为4部分;其次是共享的embedding层,四部分数据形成模式相同的词表示;再次则是Bi-LSTM层,抽取来自词表示层的信息,其参数由参数生成器提供;最顶部是输出层,不同的任务分别对应CRF层或负采样softmax层。
输入层
输入层由4部分数据组成,分别是两个领域的NER标记数据 、
,以及两个领域的用于LM训练的无标记数据
、
(m,n,p,q分别为各数据集的样本量)。对于每个词,将其word-embedding和经过CNN处理过的char-embedding拼接起来,就得到了每个词的词表示法,具体公式如下:
参数生成网络
某一特定领域的特定任务的Bi-LSTM参数表示为 ,它可以被表示为:
其中,三个组分的维度分别是 ,
。这个式子的含义,即,相对于某一领域特定任务的Bi-LSTM的参数
,是可以分解为以下三部分、并由以下三部分决定的,它们分别是——特定的task-embedding、特定的domain-embedding,以及针对特定任务和领域知识的一套特定的可变参数W。
而在给定了Bi-LSTM参数 ,以及词表示向量v(v=[v1,v2,...,vn])的情况下,每个Bi-LSTM的正反两方向的隐状态就可表示为:
输出层
NER任务的输出层是CRF。在给定隐状态h的情况下,假设标签序列有 ,则对应的每个标签的输出概率可以用以下公式计算:
考虑到不同领域的实体标签很可能有区别,所以这里模型采取了两套参数不同的CRF层,分别是CRF(S)和CRF(T)。
LM任务的输出层本应是softmax层,但为了降低计算复杂度,本文在这里采用了负采样softmax,具体公式不再赘述,详情可见(Mikolov et al., 2013)。
训练的目标函数
对于NER任务而言,在给定标签集合 的情况下,句子层面的负对数似然损失函数为:
对于LM任务而言,在给定无标记数据集 的情况下,负采样softmax的损失函数为:
其中,负样本即按照词频采集自无标记数据集
最终,我们将NER任务和LM任务的损失函数放在一起,得到最终的目标函数
多任务学习的具体流程
如算法流程所示,图中带*的,说明该数据可以为空;若当该数据为空时,进行的就是非监督迁移学习。
这个多任务学习流程具体分为4部分,它们分别是4个不同领域的不同任务,分别是4-5行,
7-8行,11-12行与15-16行,其中进行非监督学习时15-16行跳过。在每个训练步骤的最后,参数生成器所需的W, ,以及各自任务输出层的参数一同更新。
实验结果
数据描述
源领域的NER数据来自 CoNLL-2003,源领域的LM任务数据使用来自路透社的377592条句子。目标领域的数据来自三部分:生物医药领域的 BioNLP13PC(13PC) 和 BioNLP13CG(13CG) 还有一份自己收集标注的科技领域的数据集。
超参数设定
本文的超参数实验是在NCRF++基础上进行的,有些参数有改动: batch size变为 30;单任务使用学习率为 0.001 的 RMSprop 优化器,多任务模型使用学习率为 0.015 的 SGD 优化器。领域向量和任务向量维度均为8。词向量使用预训练的 100 维 GloVe 向量,然后在训练过程中会进行fine-tune,字符向量是随机初始化的。
实验结果
图3 学习曲线
如图所示,为本模型和其他模型在数据集BioNLP13CG(13CG)上的表现,横坐标为迭代次数,纵坐标为F1-score。图中几条曲线的含义如下:
- STM-Target:使用使用目标领域(13CG)的有标记数据集直接训练的NER模型;
- FineTune:使用源领域(CoNLL)有标记的数据集训练NER模型,再用目标领域(13CG)的数据进行fine-tuning;
- MultiTask:使用源领域的NER标注数据与目标领域的NER数据一起训练NER模型,训练方式取决于源领域和目标领域数据集的标签集合是否能相互映射(若可以相互映射,则共享全部模型,最终在最顶层加上不同的标签映射层,将相同的CRF输出映射成不同的标签;若无法相互映射,则共享除了CRF层以外的所有底层模型和参数,最后两个CRF层分别单独进行标签预测);
- STM+ELMo:与STM-Target的唯一差别在于,将word-embedding从Glove换成ELMo,作者认为这是一种不同于Fine-tuning和MultiTask的迁移学习方式。
从图中结果可见,所有的迁移学习方案都比STM-Target的表现好,这说明源领域的数据的确是对NER结果有好处的;而本文的模型同时使用了源领域的标记数据与目标领域的无标记数据,始终在图中给出了最佳的F1-score表现。
图4 在数据集13PC和13CG上的F1-score表现
如图4,为在数据集13PC和13CG上的F1-score表现。本次实验,是要检测从数据集CoNLL迁移至13PC和13CG数据集上之后的NER任务的表现。
首先,与其他监督学习的迁移学习方案相比(STM-Target、FineTune、MultiTask(NER)、STM+ELMo),本文模型是要优于已有的方案的。需要注意的是FineTune方法,其结果并不是总比不引入其他领域数据的STM-Tartget结果更好。这表明,在没有引入domain-embedding向量时,领域之间数据集的差异可能反而会使模型效果变差,即类似于“邯郸学步”;
对于多任务学习的方案(MultiTask(NER+LM)),具体的训练方案源自于Collobert and Weston, 2008——将多领域的LM和NER共4个单独的任务一同训练且共享参数,得到的结果远低于其他baseline模型。这也说明了跨领域和跨任务的挑战,尤其是在面对风格迥异以及包含相互冲突的信息的时候;
图5 消融实验示意图
如上图5所示,我们还在本模型的现有基础上进行了消融实验(Ablation experiments)。其中Co-LM,代表不引入源领域数据,即使用本文模型进行一个纯粹的跨任务学习(LM -> NER);Co-NER,则是删除了LM任务,只用本文模型进行跨领域的NER知识迁移任务(新闻领域 -> 医疗领域);对于Mix-Data,代表在原领域和目标领域使用了相同的数据。从图4可见,我们的模型超越了以上二者,说明我们的模型学习到了领域和任务之间的差别,帮助了NER任务进行提升。
最后,与现有的state-of-the-art结果(Crichton et al., 2017)相比,sota结果使用了协同学习的序列标注手段。本文得到的结果在该数据集中,是现有文献报道中最佳的。
如图所示,当目标领域的NER标记数据数量是0时,本文的迁移学习就变成了一个无监督任务,从图中可见,随着NER标记数量的增加,结果也会不断上升。但在同样无监督的情况下,本文的方法F1-score上领先达到20.5%(但也可见成绩其实也只有0.6)当标记数据量达到3000句时,本文方法仍然从LM的迁移学习中得到了额外的3.3%的F1-score收益
如图所示,在与单任务模型(STM-TARGET),微调模型(FINE-TUNE)以及多任务学习模型(MultiTask,具体训练方式取决于目标领域和源领域的标签之间是否可以互相映射,具体参照于Yang et al. 2017)的对比下,我们可以清晰看出,本文的方法可以使得NER在每个实体类别上的F1-score上都是最佳的。
总结
文章通过未标注文本抽取领域知识来完成 NER 领域自适应任务。通过参数生成网络跨领域语言建模,分别得到任务向量和领域向量。实验表明,有监督时,这种领域适应方法十分有效,在无监督时,也能取得一定效果。