jianlingl / paper_reading

reading notebook
1 stars 0 forks source link

75 languages, 1 model: parsing universal dependencies universally #4

Open jianlingl opened 3 years ago

jianlingl commented 3 years ago

作者:Dan Kondratyuk and milan straka 澳大利亚查尔斯大学和德国萨尔大学

abstract 我们展示了UDify——一种多语言多任务模型,可以在75种语言对应的124个依存树库上同时进行词性标注,形态特征,词元和依存树等多项任务。通过利用在104种语言上预训练的M-BERT的self-attention模型,我们发现,对对于每个UD任务用简单的softmax分类器连接数据集,然后再微调模型,可以达到或者超过最先进的UPOS,UFeat,Lemmas,尤其是UAS和LAS分数,不需要任何周期性的或者特定语言的组件。 对于多语言学习UDify的评测,我们发现,low-resource语言可以从跨语言的注释中获得有用信息。我们也对zero-shot进行学习评测,结果展示多语言训练即使对于不在UDify和BERT中出现的词也有很强的预测作用。

jianlingl commented 3 years ago

introduction 类似地,学习一门新语言可以提高使用者先前语言的熟练度,一个获取多语言能力的模型可以在语言之间学习泛化,这是单语言数据无法实现的。多语言模型不仅可以提升模型的性能,而且可以减少训练多种语言的开销。同时扩展到更多语言也是有问题的,如果没有语言所对应的充分数据,就很难较好的泛化,特别是语言之间的相似性很少。 BERT很牛逼,且随着多语言版M-BERT的发布,预训练用了维基百科前104种语言的全部语言资源,BERT被证明非常有能力捕获大量跨语言句法信息。非常方便的是,这104种语言几乎完全与UD树库支持的语言重叠,我们讲用M-BERT来演示将句法解析扩展到75种以上语言的能力。 通用UD框架提供了统一的跨语言的句法标注体系,这使得该数据集成为句法知识迁移的一个绝佳选择。UD提供了适合多任务学习的标记句子,包括词元,特定树库的词性标签,通用词性标签,形态特征,以及每个句子的依赖边和标签。  我们提出UDify,一个半监督多任务的子注意力模型,预测UD支持的任一语言的注释,为了完成这个,我们做了以下工作: 1.我们把所有的句子都输入预训练的M-BERT中输出上下文向量,引入任务相关的层(类似于ELMO),并且同时用softmax classifier来解码每个UD任务。

  1. 我们对BERT应用了大量的正则化,包括输入掩藏,增加dropout,权重冻结以及微调、层dropout.
  2. 我们通过把所有可用的训练集整合在一起的大数据集,来训练和微调我们的模型
jianlingl commented 3 years ago
我们用UDPipe Future来评测我们的模型,UDPipe是CoNLL 2018的其中一个获胜者。除此之外,我们分析了多语言训练实现提升最多的语言,并且测试了我们模型在zero-shot learning中的表现,例如没有树库的一个训练集。 最后我们提供了我们实验的的证据还有相关工作,来帮助解释为了预训练的子注意力模型擅长多语言依存分析任务。
我们的工作使用了基于Pytorch的AllenNLP库。code发布在https://github.com/hyperparticle/udify
jianlingl commented 3 years ago
我们用UDPipe Future来评测我们的模型,UDPipe是CoNLL 2018的其中一个获胜者。除此之外,我们分析了多语言训练实现提升最多的语言,并且测试了我们模型在zero-shot learning中的表现,例如没有树库的一个训练集。 最后我们提供了我们实验的的证据还有相关工作,来帮助解释为了预训练的子注意力模型擅长多语言依存分析任务。
我们的工作使用了基于Pytorch的AllenNLP库。code发布在https://github.com/hyperparticle/udify
jianlingl commented 3 years ago

2.multilingual multi-task learning 本节解释多语言训练设置和UDify多任务模型框架。

2.1 Multilingual Pretraining with BERT 我们使用多语言区分大小写的BERT版本,其自注意力网络有12层,每层有12个头,隐藏维度768. 模型通过预测Wikipedia的前104种语言的全部随机影藏的词来训练模型,BERT使用一个词片标记器,将文本分割称非规范化的字词单元。

2.2 cross-lingual training lssues UD树库拥有160万个token;为了避免词表膨胀问题我们直接用词片作为输入,UD期望沿着单词边界进行预测,因此我们采用最简单的方法,即UD提供的分割标记器来应用到每个单词。对于预测,我们使用每个单词对于的第一个词的BERT输出,忽略其余(我们发现词片的最后,最大,或评价词池没有比较好的结果甚至更差) 此外,XPOS注释不是跨语言的通用注释,甚至不是跨树库的通用注释,由于每个树库都有不同的XPOS注释方案,从而减缓了推断的速度,因此,我们在实验中省略了对XPOS的训练和评估。

2.3 Multi-task learning with UD  为了预测UD注释,我们采用了UDPipe Future多任务网络,但是所有的向量,编码器,和隐射层被用BERT替代。其余组件包括每个任务的预测层和层注意力,然后我们对输出对计算softmax交叉熵损失来训练网络。 UPOS 作为神经网络tagging的标准,我们在每个词输入上应用了一个softmax层,计算词汇表的分布,来预测注释字符串。 UFeats 跟UPOS预测相同,我们将每个UFeat字符串作为词表中的一个单独的token。我们发现这种可以生成比每个形态特征单独预测的更高准确率。只有形态特征的完全笛卡尔积的一小子集是有效的,消除了无效组合。 Lemmas 我们将lemmatization简化为序列标记问题——通过预测编辑标记的类。等价于将序列的特征操作为将词形式转换为词元。为了预先计算标签,我们首先找到词元和form之间的最长公共子序列,然后计算醉倒编辑脚本,使用Wagner Fischer 算法将form前缀后缀转化为词元的前缀和后缀。 在预测编辑脚本后,我们应用编辑操作到词的form,来生成最终的lemma。我们不使用seq2seq架构,因为其降低了训练效率。 Deps 我们用基于图的Biaffine注意力解析器,替代双向lstm组合BERT。最终的向量被通过arc-head和arc-dep来隐射,其用biaffine注意力来联合,最终生成每个词的arc-heas的分布概率。我们然后用Chu-Liu算法来解码每个树。

jianlingl commented 3 years ago

3 Fine-tunning BERT on UD Annotations 对于BERT在UD任务上的微调 我们用了多种策略,发现 归一化对于高分书网络非常重要。

3.1 层attention 实验结果显示,微调BERT的时候,联合最后一些层的输出 比 只引言最后一层的输出 对于下游任务有更高的提升。我们没有将模型限制在任何层的子集中,二十设计了一种简单的分层点积注意力——其中每个token用相同权重 来计算 12BERT层的中间输出。这类似于ELMO混合多个循环层的输出。 更形式化些,让wi作为BERT向量BERTij,在第i层的的位置j上的token的 的一个可训练的标量,c是一个可训练的标量,我们计算上下文向量e(task) 。 为了预防在任一单一层上UD分类器对于信息 过拟合,我们计算layer dropout,其在每一个训练步中,我们设置wi偏向于无穷大的可能性为0.1. 这有效重分配概率到其他的层,使得网络能引入所有BERT层的信息,我们给每个任务计算层注意力,对于每一个UPOS,UFeats,Lemmas和Deps任务 各用一组c,w参数。

3.2 Transfer Learning with ULMFiT ULMFiT策略在一个预训练语言模型定义了一组fine-tuning的策略。我们使用同样的方法,有些许小的调整。 我们把参数分了两组,即BERT参数和其他参数。我们使用有判断力的微调——设置了BERT基础学习率为5e-5,而其他地方1e-3。 我们也在第一个epoch冻结BERT参数,来提高训练的稳定性。 而ULMFit,建议warmup之后学习率线性衰减,我们发现这容易在自注意力网络中训练中,梯度消失和不拟合。相反的,我们使用一个在机器翻译中用到的 线性warmup 平方根反比学习率衰减。

3.3 输入mask BERT作者建议在网络微调时,不要直接mask词。但是我们发现,mask可以通过强制网络依赖上下文周围的词,来以此降低BERT分类器的过拟合。这个word dropout策略在其他NLP任务和工作观测并证明。

jianlingl commented 3 years ago

4 experiments(GTX1080 Ti上训练了25天) 我们在每个树库的每个测试集上评测我们的UDify。我们用gold segmentation和生成的结果重新训练了UDPipe Future模型——因为其架构和UDify相似且性能强。注意UDPipe Future本身没有使用BERT。

4.1 datasets 对于所有的实验,我们都用在LINDAT上可用的UD v2.3语料库进行。我们省略了没有训练标签的数据集的评测,即Arabic NYUAD (ar nyuad),English ESL (en esl), French FTB (fr ftb), HindiEnglish HEINCS (qhe heincs), and Japanese BCCWJ (ja bccwj). 为了训练多语言模型,我们将所有可用训练集连接在一起,在每个epoch之前,我们会打乱所有的句子,混合批量输入网络,每个批次可用包含来自任何语言或者树库的句子,总共有80个epoch。

4.3 probing for syntax Hewitt和Manning 2019年提出了一个结构化的探测器——用于在上下文词向量中识别依存结构。这种方法评测是否能够用网络上下文词向量的线性变换——将句法树很容易的抽取作为向量空间的全局特性。这种prob训练基于BERT的上下文向量的一个权重临接矩阵,来判断一个线性的转换器。我们使用Hewitt和Manning默认超参数在未修改微调的BERT上进行结构探测,以评测在依赖树上受微调BERT的表示是否会更接近这些树结构。

5 results 我们展示了用CoNLL2018的shared task评测脚本来评测UPOS,UFeats 和 Lemma的准确性分数,还有未标记和有标记的附件分数(UAS和LAS)。

jianlingl commented 3 years ago

6 discussion 6.1 model performance UDify在low-resource语言上表现大幅度超过其他语言,而在Lemmas和Universal Features方面,UDPipe表现更好,因为其使用了character-level embedding。_而_在一些low-resource上表现很不好,推测远远可能是使用了混合batch的训练集不均衡,使得模型预测更倾向于更大的树库。而若我们用BERT权重只对这些树库微调,也能改善性能,减少差距。 UDify利用UD其他树库得到了很好的性能,在资源不足情况下,BERT在所有树库上微调的结果比在单语言上微调要好得多。而对UDify的BERT权值对单个树库进行二轮微调可进一步改善性能,特别是对于那些低于基线性能的语言树库。然而对于已经性能很好的语言,我们发现其在各评测指标上性能都不高。这显示对于这些高性能语言 多语言微调优于单语言微调。误差减少了20%。