流程:
数据清洗:分析并处理
去除重复数据(原始语料存在6.56%重复,删除重复语料)
删除过长句子对(对源句子与目标句子长度比例进行统计,超过一定阈值时对其删除)
删除漏译严重的句子对(语料有对齐错误,使用giza++对数据对齐 获得双语词典。使用双语词典对平行语料进行漏译检测,对于得分较高的删除)
数据增广:
回译(understanding back-translation at scale)【训练了一个由目标语言到源语言的翻译模型,使用原始语料中文部分生成新的平行语料。为了避免新语料与原始语料的重复问题,在解码端加入随机噪声】
交换 将原始语料的英文语料的相邻的词交换一遍。增强模型的降噪能力,同时扩充实验数据。
(他们给出的一个结论是两种方法同时使用,效果不如使用一种好)
模型的改进:
分词方法:tensor2tensor默认的分词方式,基于character级别的分词和使用sentencepiece的分词(后两种有1的bleu的提升)
baseline是transformer。
relative transformer【self-attention with relative position representation】 big_model参数下提升了0.3bleu。
基于transformer提出的新的模型结构【layer-attention】big_model参数下提升了0.9bleu。(没有单独使用,用在了rerank)
原始原料有300w的语料包含上下文信息,为此引入了contextual transformer【improving the transformer translation model with document-level context】在base_model条件下有了0.5bleu的提升。
finetune 使用少量语料进行预训练模型的微调。使用的finetune语料是与测试集相似的句子,在现有模型上微调。
rerank