预训练和微调,例如BERT,通过将知识从资源丰富的预训练任务转移到资源低/零资源的下游任务,在语言理解方面取得了巨大成功。然而,由于在神经机器翻译(NMT)中,由于双语任务的训练目标与单语预训练模型相差很大的问题,微调的改进相对较少。那么如何利用预训练模型来增强机器翻译呢?
首先现有的方法大致可分为两类,第一类是更好地利用预训练模型,一类是设计新的预训练任务,主要是预训练Seq2Seq模型。
ICLR2020上的一篇论文作者首先分析了目前将BERT应用于NMT的方法,主要是微调或将BERT最后一层的输出作为NMT模型的embedding,作者进行实验后发现使用预训练的BERT模型初始化NMT模型的编码器,效果并没有明显的改善,与微调相比,将BERT的最后一层作为NMT模型的embedding效果更好,于是作者从这个探索出发,提出了BERT融合NMT的算法。
在该算法中,将BERT的表示馈入所有层而不是仅作为输入嵌入来利用它。使用注意力机制来自适应地控制每一层如何与表示交互,同时能够处理BERT模块和NMT模块可能使用不同的分词规则,从而导致不同的序列(即表示)长度的情况。与标准NMT相比,除了BERT之外,还有两个额外的注意模块,即BERT编码器注意和BERT解码器注意。首先将输入序列转换为由BERT处理的表示形式。然后