nslookup解析结果不同_如何用Seq2Seq预训练增强AMR解析

论文题目: Improving AMR Parsing with Sequence-to-Sequence Pre-Training [EMNLP 2020]
导言:抽像语义表示 (Abstract Meaning Representation, AMR) 最近几年已经成为自然语言处理领域最为广泛研究的语义表示语言. AMR相关的语言处理任务主要是两个:AMR解析(AMR parsing) 和AMR文本生成(AMR-to-Text). 最近我们在AMR解析这个任务上做了一项新的工作, 基本思想很简单: 应用Transformer进行sequence-to-sequence (Seq2Seq) 预训练, 再用得到的预训练模型初始化基于Transformer的AMR解析器. 最终效果很明显: 在标准数据集AMR2.0上取得了目前最好的性能效果 (80.2%). 此外, 通过对预训练数据的调整, AMR解析的效果能进一步达到 81.4%. 相关工作被EMNLP2020录用.
简介:
构建AMR解析器的方法总的来说可以分为四类, 包括基于图 (graph-based) 的方法, 基于转移 transition-based) 的方法, 序列到序列 (sequence-to-sequence, Seq2Seq) 方法, 以及序列到图 (sequence-to-graph) 方法. 其中Seq2Seq的方法因为实现简单而且性能显著, 是一种比较流行的方法框架. 在用Seq2Seq构建AMR解析器时只要需要将目标端的AMR图进行序列化就可以套用标准的Seq2Seq模型 (例如Transformer), 如下图所示

3f6d9186ef4951d254c3f59e16332616.png


与大多数NLP任务类似, AMR解析的性能依赖于标注数据集的规模,而目前AMR2.0的训练集仅包含3万多点句子. 为了解决标注数据受限这一问题, 常用的方法是引入预训练模型. 但是像ELMO和BERT这样的预训练模型却又不是很适用Seq2Seq模型, 原因有两点: 1) Seq2Seq做AMR解析时往往要求原端和目标端共享词汇表 (先前工作表明共享词汇表可以获得更好的性能); 2) 像BERT这样基于auto-encoding思想设计的预训练方法不是特别适用于生成任务. 因此本文工作的动机是能否设计有大量训练数据的Seq2Seq任务得到Seq2Seq预训练模型, 然后再将该预训练模型用于初始化Seq2Seq AMR解析器. 本文提了三个不同的预训练任务并且考虑了几个预训练任务的融合, 此外也讨论了参数精调 (fine-tuning) 的不同方法. 最终我们的系统实现依然简单 (始终只用到标准的Transfomer), 同时获得显著的性能的提升.
方法描述 (没有公式!):
基准系统: 本文采用的基准系统实际上就是常规的Seq2Seq AMR解析器的方法实现, 包括对训练数据中的AMR图进行预处理和序列化; 用Transfomer学习Seq2Seq生成模型; 得到AMR序列以后再经过后处理操作恢复得到AMR图. 细节不再展开描述, 可以参考论文.
预训练方法:
本文提出三个不同的预训练方法, 分别是用双语语料进行学习的机器翻译方法 (PTM-MT), 基于Seq2Seq的句法分析任务 (PTM-SynPar), 以及基于Seq2Seq的AMR解析任务 (PTM-SemPar). 因为本文AMR解析的实验是基于英文的AMR语料来做的, 所以这里构建翻译模型的训练数据采用了英文-德文的双语语料, 构建句法分析模型的训练数据则是基于第三方句法分析器自动分析得到的silver 树库 (利用句法分析器对翻译数据中的英文句子进行自动解析得到), 而构建语义分析预训练模型的训练数据则是应用AMR解析基准系统对英文句子进行自动解析得到.
基于上面的预训练方法和相应的训练数据, 我们可以分别得到三个预训练模型. 不难想到的是, 这些预训练任务之间彼此可能有互补性, 因此我们还可以进一步将这些预训练任务整合在一起进行联合学习, 得到联合预训练模型. 联合学习的方法我们借用了多语言机器翻译的技术, 通过不同预训练任务数据的目标端打上相应的区分用的标记, 然后将几个任务的数据放在一起进行迭代式学习. 例如先学习任务1数据的一个batch, 然后学习任务2数据的一个batch, 再学习任务3数据的一个batch, 如此持续迭代, 最终得到联合预训练模型.
这里需要注意的一个点是共享词汇表, 共享词汇表很重要. 我们采用的策略是在学习预训练模型时, 把三个预训练任务的所有数据的源端, 目前端全整合在一起, 在此基础上得到一个大一统的, 被所有预训练任务所共享的词汇表. 不管是单预训练任务学习还是联合预训练任务的学习都始终使用同一个词汇表.
最后还需要考虑的一个问题是在得到预训练模型以后, 对AMR 解析模型进行参数初始化以后如何进行fine-tuning. 常规的fine-tuning 方法是进行参数初始化以后就在 gold训练数据上, 采用一个相对更小的学习率进一步进行模型参数的更新, 这个过程与预训练模型不再有关联, 这是常规的做法 vanilla fine-tuning. 本文还提出了另一种fine-tuning的方法, 基本思想是在AMR解析模型进行参数fine-tuning的时候, 我们是否可以保持预训练模型本身的性能不要下降. 基于这个思想, 我们采用了多任务学习方法进行参数fine-tuning, 即在AMR解析模型进行参数fine-tuning的时候, 预训练模型也在相应的数据继续进行参数的学习, 其学习目标是使预训练模型自身的输出不要有太大的变化. 这个fine-tuning方法我们称之为MTL fine-tuning.
实验
实验设置:
主实验所采用双语语料是WMT14评测中的英-德数据, 基规模大概在3.9M句对. 同时我们在这个双语语料中的英文句子上进行自动句法分析和自动语义分析, 得到PTM-SynPar和PTM-SemPar的预训练语料. 而本文所采用的gold AMR语料分别是ARM1.0和AMR2.0两个版本的数据集, 两者的开发集和测试集相同, 训练集不同.
实验的参数设置 (模型超参, BPE学习步数等) 见论文中的详细说明,这里就不再赘述了.
实验结果:
主实验结果包括两部分, 一部分是不同预训练模型 (单预训练模型和联合预训练模型) 以及不同的fine-tuning方法结合所得到的性能; 另一部分是本文的系统性能与一系列相关工作的一个对比. 从下表结果可以看出, 三个预训练模型单独使用都可以使基准系统有一个明显的性能提升, 其中NMT提升最明显. 此外, 联合预训练确实可以融合几个预训练方法以得到进一步的性能提升. 最后一项观察是MTL fine-tuning方法要比常规的fine-tuning方法稳定的好. 通过与相关工作的性能对比我们可以看到, 我们的最优系统是目前在这个任务上最好的系统之一, 最重要的是我们并没有使用很复杂的方法.

238cf84798b2ec8c4059bb0f6741e570.png


实验分析:
我们进行了一系列的结果分析, 这里列举两个比较有代表性的. 其中一个是对BERT预训练模型效果的实验分析. 为了将BERT预训练模型引入到Seq2Seq AMR解析器中, 我们构建了一个新的Seq2Seq的基准系统, 主要修改是将源端与目标的词汇表分拆开, 不再共享同一个词汇表. 另外这里也对引入BERT的几种方式都做了实验, 包括以BERT做初始化, BERT直接作为encoder取代Transformer的encoder, BERT作为额外的特征进行融入, 以及BERT作为额外的encoder. 结果如下表所示:

01fd884efa865ba67791b47a4f8d4c1d.png


我们可以看到, 把词汇表拆开以后的基准系统性能是下降了的. 另外引入BERT的效果不是特别稳定, 和引入方式有比较大的关系.
我们还要讨论的另一个实验分析是引入更多的, 而且有差异的预训练数据, 系统性能是否还会继续提升. 做这个分析的主要动机是考虑到主实验中的自动句法分析数据和自动语义分析数据都是用的英-德双语语料中的英文部分句子获得. 我们猜测在做联合预训练时, 几个预训练任务之间的互补作用比较小的原因就在于数据. 如果我们在不同的英文句子集上做自动句法分析和自动语义分析, 从而得到一个不同的 silver数据集, 在这样的数据集上做PTM-SynPar和PTM-SemPar预训练是否可以与原来的PTM-MT形成更的多的互补. 这个动机是成立的, 毕竟双语语料不好扩展, 单语的英文句子是相对容易获得的. 分析实验的结果如下图所示, 其中WMT14B是主实验中所用的双语语料, 而WMT14M是从WMT14评测的一个单语数据集中随机抽样得到的, 与WMT14B同等规模的英文句子集合 (注: WMT14B的英文句子与WMT14M的句子不存在人为的数据重叠).

bf45ab80c7f4943cf2c83f7fe61e1eeb.png


从结果可以看出 (第三行), 做了数据处理以后,我们的系统性能最好的可以直接提升到了81.4%. 这是一个非常高的性能了.
总结:
以下对本文模型的总结,
(1) 纯Seq2Seq Transformer模型, 没有使用Seq2Graph等复杂模型;
(2) 不需要预先对句子进行POS、NER等操作;
(3) 不使用BERT, 仅利用WMT机器翻译语料;
(4) 最高达到81.4% Smatch值 , SOTA性能.
Arixv论文和相应的代码在这:
论文地址: https://arxiv.org/abs/2010.01771
论文源码: https://github.com/xdqkid/S2S-AMR-Parser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值