论文阅读:Cross-Domain Transfer Learning for Dependency Parsing
文章目录
-
摘要:
-
关键词:
-
一、简介:
-
- 1.1 作者要讨论的问题
- 1.2 作者提出的解决方法
-
- 1.2.1 迁移学习
- 1.2.2 预训练与协同训练
- 1.2.3 作者的模型
-
二、相关工作
-
- 2.1 Token Level Dependency Parsing
-
三、Proposed System
-
- 3.1 概述
- 3.2 Token Mask Based Parsing Inference
- 3.3 Training Objective in Tri-training
-
四、任务以及训练的一些细节
-
五、主要结果
-
六、Ablation Study
-
七、结论
摘要:
近年来,依赖分析的研究重点是提高域内数据的准确性,并取得了显著的进展。然而,现实世界与单个场景数据集不同,后者充满了无数未被数据集覆盖的场景,即域外的场景。因此,在域内数据上执行良好的解析器在域外数据上的性能通常会显著下降。因此,为了使已有的具有良好性能的域内解析器适应新的域场景,跨域迁移学习技术是解决解析中的域问题的关键。在本文中,我们研究了两种跨域迁移学习场景:半监督和无监督跨域迁移学习。
具体来说,我们采用预训练的语言模型BERT对源域(域内)数据进行子词级别的训练,并针对两种场景引入两种三训练变体方法,以达到跨域迁移学习的目的。基于本文的系统参与了NLPCC-2019-sharedtask的跨域依赖解析,并在“subtask3- un-open”和”subtask4-semi-open”子任务中获得了第一名,说明了所采用方法的有效性。
关键词:
跨域、迁移学习、依赖分析
一、简介:
依存分析是理解文本内容的关键任务,通过分析语言成分的依赖关系来揭示其句法结构,其结果可以帮助下游任务模型更好地理解输入文本。
1.1 作者要讨论的问题
由于依存语法是一种人工定义的语言结构,制作高质量的标记数据依赖于人工分析,这是非常耗时和痛苦的。虽然大多数依存项解析器目前表现出非常好的性能,但现有的标记依赖项解析数据在领域方面非常有限,这意味着目前性能良好的解析器只有很少的领域可处理。如果将现有域数据训练出来的模型直接应用到新域,性能会大大降低。He等人表明,高精度依赖语法可以帮助下游任务,而低精度依赖语法不仅没有帮助,甚至会损害性能。因此,跨域依赖句法分析已成为将句法分析结果应用于实际下游自然语言处理系统的主要挑战。
1.2 作者提出的解决方法
1.2.1 迁移学习
迁移学习是指利用源域D_S和源任务T_S来提高目标域D_T和目标任务T_T的效果,即将D_S和T_S的信息传递给D_T和T_T。
1.2.2 预训练与协同训练
近年来,随着自然语言迁移学习的发展,有两种典型的方法被证明是非常有效的:预训练语言模型和协同训练。预训练语言模型已被证明对一些NLP任务非常有用,如词性标注、名称实体识别(NER)、成分解析、依赖解析和机器阅读理解(MRC)。预训练语言模型方法使用大规模的无监督(标记)文本语料库数据来训练一个语言模型,然后使用监督目标任务数据(标签)整合语言模型和培训目标模型的同时,使整合语言模型更强调语言信息包含在特定的任务。协同训练方法旨在使用自举方法从未标记的数据中提取一些高质量的自动标记训练实例。Ruder和Plank[15]发现,经典bootstrapping算法:协同训练,为无监督迁移学习提供了更强的基线,其结果甚至比目前在同一领域训练的最先进的系统更好。
1.2.3 作者的模型
在本文中,我们报告了我们的系统参与NLPCC-2019-sharedtask。我们的系统在子词层进行依存解析训练,使用预先训练好的语言模型BERT作为编码器,Biaffine attention作为依赖弧和关系的记分器,使用基于图的依存树搜索算法和token掩码得到最终的单词层依赖树。其中,我们使用预先训练的语言模型BERT从大规模的无标记语料库(维基百科等)中迁移学习语言特征。采用协同训练变量法,使用域内未标注数据进行迭代训练,在模型迭代时使用提供的开发集进行模型选择。对于无监督子任务,我们只使用域内无标记数据进行协同训练,而对于半监督子任务,则使用域内训练数据和自动解析数据混合进行训练。
总而言之,作者的贡献可归纳如下:
- 对于中文依赖解析,作者需要在第一步做分词(CWS)。由于不同域的新词集合不同,不同域的词典差异较大,影响了域迁移学习的效果。为了减少这一问题,我们在中文子词级进行依赖解析,提出了一种基于token掩码的子词级依赖树搜索算法,可以在词级恢复依赖树结构。
- 提出了协同训练变体方法,结果表明,它们比原来的依赖解析方法更有效。
- 官方评测结果显示,我们的系统在“subtask3-un-open”和”subtask4-semi-open”子任务上取得了最先进的结果,证明了我们方法的有效性。
(子任务“subtask1-un-closed”和“subtask2-semi-closed”不是我们的焦点。由于我们的基线解析框架是基于BERT的,子任务1和2禁止使用BERT和其他外部资源,所以我们只使用BERT的transformer结构,而没有使用BERT预训练的权值进行初始化。BERT的transformer网络非常深,目前提供的训练数据集太小,无法很好地训练深度网络,所以我们只能得到与其他参与者比较的结果。这说明深度神经网络需要足够的数据进行训练。)
二、相关工作
2.1 Token Level Dependency Parsing
传统的依存分析通常是在词级上定义的。(如下图1所示)

对于中文和类似语言,分词是依存分析的初步预处理步骤。然而,针对中文和其他类似语言的流水线(pipeline)解析方式会受到一些限制,如错误传播和词汇表外(OOV)问题。因此,一些研究者研究了基于更细粒度的词法单元(标记),如子词、字符等的依赖解析。(图1的底部是字级别的依赖项解析示例)
Hatori等人首先提出了一个基于转移的汉语分词、词性标注和依赖解析模型,在词内部引入伪字符间弧。Zhang等进一步扩展了Hatori模型,将单词中字符之间的内在联系视为一个真实存在的依赖弧,从而将这种依赖划分为词间依赖和词内依赖。Kurita是已知的第一个用于全联合中文分析的神经方法,可以防止pipeline模型的误差传播问题。Yan等提出了一个统一的汉字分词和依存句法分析模型,在一个基于Biaffine图的句法分析模型中,通过添加一个真实的字符间依存关系,将这两个任务集成在一起。
三、Proposed System
3.1 概述

图2展示了作者参与nlpcc -2019共享任务的子字级依存解析系统的架构。我们的系统基于基于图的biaffine依赖解析器,包括三个部分:编码器,biaffine打分器和解码器。
- 对于编码器,我们使用BERT预训练权值和子词嵌入的Transformer编码器进行初始化,而不是使用预训练词嵌入作为输入的随机初始化的BiLSTM;为了防止错误传播,我们不使用任何其他信息,如POS标签,除了子词,这减少了模型的依赖性。
- 对于我们系统中详细的任务定义,我们使用BERT模型中定义的作为虚拟的“ROOT ”节点进行依赖解析,并使用“[SEP] ”作为一句话的结束标记,并创建一个新的具有“ROOT ”关系的依赖弧,从”[CLS] “(ROOT)指向到”[SEP] “。此外,我们按照[18]添加一个“app ”表示依赖关系的依赖关系(inter-character)这个词,我们把subword结束一个词的节点(如果一个词没有subwords,我们定义subword结束这个词本身),这个词产生依赖与句话说,如图1所示。
- 解码器:在原始的单词级依赖解析器中,使用MST算法作为搜索(推理)算法,以确保在测试时依赖树是良好格式的。由于子词级具有词内(字符间)依赖弧,为了保证任务的原始分割(即最终依赖树恢复到原始词级),我们提出了一种基于token掩码的MST搜索算法。
- 对于supervised three -training阶段的训练目标:在supervised three
-training阶段,由于我们需要将golden labelled data和auto-parsed data混合在一起,因此我们对数据设置不同的置信值来控制训练的损失。
3.2 Token Mask Based Parsing Inference
由于任务定义粒度的变化(从单词到子单词),测试阶段的树搜索算法也需要相应的改变。如果使用原词级MST算法在依赖树中搜索子词级依赖图,可能会产生不正确的词内(字符间)依赖关系和词间依赖关系,导致无法恢复定义良好的词级依赖树。因此,有必要对图边的评分(权值)做一些硬约束。(对于训练阶段,根本不需要考虑这个问题。与其他基于图的模型一样,训练时的预测树是每个单词都与其得分最高的头相关的树,包括单词内部依赖关系和单词之间依赖关系。)
由于我们有了原始的分词信息,我们可以利用分词信息来获取词内部和词之间的标记范围,以便使用掩码去除非法头部。图3是一个典型的例子,说明了三种重要类型的mask:
-
单词没有subwords:其有效的选择是subword结束所有单词除了本身,像”大众“在例子中。

-
Subwords不是一个词结束的subword,依存关系Subwords必须它的继任者subword,像“首”,“# #当”、“# #其”。
-
Subword结束:Subword是一样的一句话结尾没有subwords,像“# #冲”。
因此,我们将模型预测的评分矩阵与掩码矩阵相乘,以确保一个词级定义良好的依赖树。
3.3 Training Objective in Tri-training
对模型进行训练,使其在给定句子x时,对依存树y的概率P_θ(y|x)进行优化,可公式表示为:

这里θ表示可学习参数,l表示要处理句子的长度,y_i^{arc}和y_i^{rel}代表的是节点x_i最高得分和依存关系。它被实现为最小化负对数似然损失\mathscr{L}。

在监督训练中使用组合标记和自动解析的数据进行训练,目标是最大化似然(最小化负似然损失):

这里α是自动解析数据的置信度,根据协同训练的迭代的次数而变化。
四、任务以及训练的一些细节
根据任务需求,closed任务中的参与者系统不能使用任何外部资源。如前所述,子任务1和子任务2不是我们的重点,因此这里的训练细节只针对子任务3和子任务4。对于在源域训练的模型的超参数,由预训练语言模型初始化的编码器:中文简体BERT和12层传统BERT,768个隐藏层,12个头,110M个参数。如果没有特别说明,我们的模型使用:100维弧空间和128维关系空间。我们遵循[6]中的下游任务微调设置,学习速率lr = 5e−5。训练的最大epoch数被设置为30。而对于三训练finetune过程中的模型,学习率降低到2e−3,finetune epoch设为3。

对于无监督和半监督域适应(DA),我们使用了算法中给出的略微不同的协同训练变量。与传统的协同训练方法不同,我们不从自动解析的数据中选择数据,而是将所有自动解析的数据与源域数据和目标域数据合并(半监督域适应)。金标数据和解析数据被赋予不同的权重(置信度),以实现域适应的目标。
(由于协同训练迭代训练过程,未标记数据将比金标数据大得多。为了平衡模型的训练过程,我们重复黄金数据以达到与未标记数据相同的数据量,然后在训练过程中进行数据洗牌)
在算法中,我们使用t_{s;k}表示金标数据集,d_{s;k}表示相应领域上的开发数据集,s表示源领域(BC), k表示目标领域。u_k指示目标域中未标记的数据,a_k表明auto-parse数据,h_k表示目标域中的混合数据,m_i表示带有随机种子random_i的第i次迭代训练模型。
我们设迭代协同训练的步骤数N=20。在每个模型训练或微调过程中,我们使用开发数据集上的(LAS)分数来选择模型,只将得分较高的模型保存在相应目标域的开发数据集上,以备后续使用。(每次模型运行的初始分数设置为0,因此每次训练至少会保存一个模型)
当迭代次数i小于10时,我们设a为0.2,i大于等于10时候,a为0.5。
五、主要结果

六、Ablation Study
为了验证协同训练的效果,我们记录了基于子task3设置的三次训练过程的LAS结果,结果如图4所示。从趋势可以看出,我们采用的协同训练确实是有效的。

为了说明子词在解析域适配中的作用,我们还根据子词和字的级别进行了额外的实验性能比较,如表2所示。从对比结果来看,子词在场迁移中可以起到一定的作用,但对于某些区域,效果可能不是很明显,特别是在半监督设置下。

七、结论
本文介绍了参与nlpcc2019共享任务的系统。官方评估结果表明,作者提出的方法在跨域依赖解析方面可以产生显著改善的结果。
参考文献特别推荐:
