https://arxiv.org/abs/2002.07982
充分利用上下文的NMT
Github(无代码 只有介绍):https://github.com/Blickwinkel1107/Toward-Making-the-Most-of-Context-in-Neural-Machine-Translation
论文提出了一个文档级NMT框架,对每个句子的本地上下文、源语言和目标语言文档的全局上下文建模,能够处理包含任意数量的句子的文档,比sota baseline高2.1个BLEU score。传统文档级NMT的缺点有:不能完全利用上下文,深层使得模型对环境中的噪声更加敏感;由于深度混合hybrid需要全局文档上下文作为额外的输入,不能翻译单个句子。
新框架在源语句中独立地编码本地上下文,而不是从一开始就将它与全局上下文混在一起,因此当全局上下文很大且有噪声时,这个框架是健壮的。此外,架构将部分生成的文档翻译作为目标全局上下文进行逐句翻译,从而允许本地上下文控制单句文档的翻译过程。
模型结构
- 给定一个源文档,编码器为每个句子构建本地上下文local encoding,然后从整个源文档的全局上下文得到句子之间的依赖关系--global encoding,并形成融合的上下文表示。单句翻译时动态禁用全局编码,直接将本地上下文输入解码器。
- 解码器得到源文档的本地和全局编码后,根据当前源句的表征、翻译过的目标全局上下文以及部分翻译的本地局部上下文,生成以句子为基础的目标文档。
Encoder
(1)Lexical and Positional Encoding
第k句第i个词的表征包括词向量E[xk,i] ,每个句子共享的词位置向量Ei^w,第k句子的seg向量Ek^s:
(2)Local Context Encoding
以第k个源句xk为例,local encoder通过N - 1个相同的层堆叠,得到句子表征:
(3)Global Context Encoding
在局部上下文编码的顶层增加了一个层,通过segment-level relative attention从整个文档中检索全局上下文,通过门控上下文融合机制输出基于混合局部和全局上下文的最终表征。
(4)Segment-level Relative Attention
将相对注意力从token级扩展到segment级,对句子间的全局上下文进行建模
令xk,i为query,其上下文表示zk,i如下;α是xk,i到xk,j的注意力权重,γ是第k句和第κ句之间相对距离的参数向量,提供inter-sentential信息;WQ、WK和WV分别是queries、keys和values的线性映射矩阵;使用相对句子距离计算相应的注意力logit e:
(5)Gated Context Fusion
得到全局上下文后采用门控机制,通过融合局部和全局上下文获得最终的编码器表征h:
Decoder
通过将之前生成句子作为目标全局上下文来逐句生成译文,存储之前翻译的隐藏状态,并允许解码器的自注意机制访问这些隐藏状态作为extended history context。
把每个句子都看作一个“片段”,为当前的句子Transformer-XL based decoder与cross-attention检索time-dependent源上下文。给定两个连续的句子,yk和yk−1,解码器的第l层首先在extended history context中使用自注意力:
其中SG(.)是stop-gradient,Rel-SelfAttn(Q, K, V)是自注意力的词级相对位置编码 [Dai et al., 2019],从编码器表征hk获取源上下文的交叉注意力模块计算为:
根据最后一个解码器层sk^N的最终表征,令y<k表示在yk之前的历史翻译句子,x-k表示除了当前第k个源句x之外的其余源句,计算当前目标语句yk的输出概率为:
实验结果
文档级翻译
句子级翻译
结论
双语上下文很重要;上下文数量越多越好(上限20句);缺少文档级平行数据,迁移学习可以在一定程度上缓解数据缺乏的问题;模型可以利用文档上下文来部分解决上下文无关模型无法处理的话语不一致性问题。