Page 69 - 《软件学报》2021年第10期
P. 69
徐东钦 等:基于多任务预训练的 AMR 文本生成研究 3041
型的解码器(decoder)进行训练,以提高解码器的文本生成能力.类似地,该预训练任务的目标端与
AMR 文本生成任务的目标端是相匹配的.该预训练任务能够提高文本生成的能力;
(3) 基于自动标注数据的 AMR 文本生成(AMR-to-text,简称 A2T).利用大规模自动标注的 AMR 语料,预
训练 AMR 文本生成任务.为了获取大规模自动标注的 AMR 语料,本文借助 Ge 等人 [38] 实验中 AMR
解析基准模型作为 AMR 分析器,利用该 AMR 分析器获得大规模自动标注的 AMR 语料,经过后处理,
即可成为本文实验中所需要的自动标注 AMR 语料.有关详细内容,可参阅 Ge 等人的论文 [38] .
值得注意的是,预训练任务和微调任务使用相同的词表.
3.3 多任务预训练
通常来说,模型可以通过训练不同的任务来获得捕获不同语言特征的能力.为了使模型在预训练过程中得
到更加充分的训练,本文组合了多个单任务预训练,从而提出了多任务预训练方法.受多语言神经机器翻译中零
次学习(zero-shot) [39] 方法的启发,见表 1,为了区分不同的预训练任务,本文在源端与目标端序列前加入不同的序
列起始符号.
在序列中加入序列起始符号后,多任务预训练可以简单地使用 Transformer 模型依次迭代每个任务的批次
数据,实现同时进行多个任务的训练.例如:模型在训练完第 1 个任务一个批次后,更新模型参数,再训练第 2 个任
务一个批次,并更新模型参数,如此迭代.通过该方法,可以获取 4 种多任务预训练模型,分别为 DAE(S)+DAE(T)、
DAE(S)+A2T、DAE(T)+A2T 和 DAE(S)+DAE(T)+A2T.
Table 1 Symbols of beginning of sentence for the three proposed pre-training tasks
表 1 多任务预训练设置的源端和目标端起始符号
预训练任务 源端起始符 目标端起始符
DAE(S) AMR_BOS AMR_BOS
DAE(T) TXT_BOS TXT_BOS
A2T AMR_BOS TXT_BOS
3.4 基于预训练模型的微调
本文使用的两种微调方法分别是朴素微调方法(vanilla fine-tuning,简称 Vanilla 微调)和多任务微调方法
(multi-task-learning fine-tuning,简称 MTL 微调).
Vanilla 微调方法是基于预训练模型,通过直接在 AMR 训练语料上进行训练、优化模型的参数,获取 AMR
文本生成模型.微调会对模型的共享参数进行调整,令 AMR 文本生成更具有区分性.该方法通常会使用较低的
学习率,间接保留预训练模型所捕获到的某些语言特征信息.然而,受限于 AMR 语料的规模,Vanilla 微调方法在
AMR 训练语料上训练、优化预模型的参数时,存在着潜在的过拟合问题.
受 Li 和 Hoiem [14] 的启发,本文提出一种基于多任务的微调方法 MTL,能够在准确优化 AMR 文本生成任务
的同时,维持预训练模型在预训练任务上的性能.在该方法中,维持预训练模型在预训练任务上的性能可以看作
是模型对 AMR 文本生成训练的正则化处理.与多任务预训练方法相似,MTL 方法利用序列起始符号区分不同
任务,结合 AMR 文本生成与多个预训练任务,依次迭代每个任务的数据对模型进行训练微调.如图 3 所示(以多
任务预训练为例),为了对 DAE(S)+DAE(T)+A2T 预训练模型的 MTL 微调方法的示例,在微调 DAE(S)+DAE(T)+
A2T 预训练模型时,首先训练 DAE(S)任务一个批次的数据,并更新模型的参数,接着再训练 DAE(T)任务一个批
次的数据并更新模型的参数,最后训练 A2T 任务(即 AMR 文本生成人工标注数据)一个批次的数据并更新模型
的参数.如此对 3 个任务进行依次迭代,直至模型收敛,即可获得一个拥有较好性能的 AMR 文本生成模型.
特别地,由于 AMR 文本生成预训练任务与微调的下游任务是相同的,本文的 MTL 方法不适用于该预训练
任务.例如:在使用 MTL 方法进行微调预训练模型 DAE(S)+DAE(T)+A2T 时,仅会保持训练 DAE(S)和 DAE(T)
的预训练任务,而 A2T 任务替换为原本的 AMR 文本生成任务.此外,在使用 MTL 微调模型进行 AMR 文本生成
推理时,源端的输入起始符必须为AMR_BOS、目标端的输入起始符必须为TXT_BOS,与 AMR 文本生成预
训练任务一致.