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 文本生成预
                 训练任务一致.
   64   65   66   67   68   69   70   71   72   73   74