源和目标语句不再独立,联合表示更能提升机器翻译性能

源和目标语句不再独立,联合表示更能提升机器翻译性能

作者 | 李炎洋

目前,神经机器翻译模型主要基于编码器-解码器框架,其中编码器把源语句编码成一个连续表示,解码器把这个连续表示解码成目标语。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 1编码器-解码器框架

可以看到,编码器-解码器框架的一个明显缺陷在于它把源语句跟目标语句分开进行处理,因此不能直接建模源语句跟目标语句之间的关系。比如,编码器只把源语句作为输入,而解码器只把目标语句作为输入。最近提出的注意力机制通过桥接编码器跟解码器可以部分解决这个问题。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 2注意力机制

当翻译“intensive“这个词的时候,注意力机制计算这个目标词与每个源语词之间的关系,从而直接建模了源语句与目标语句之间的关系。但是我们也可以看到,注意力机制只计算了一个目标词与源语句之间的关系,它并不能捕捉整个目标句与源语句之间的关系,而这种句子级的联系是我们希望翻译模型能够建模的,它能在作出下一步决策的时候更好的考虑源语与目标语句子的关系。

联合表示

解决这个问题的一个自然想法就是使用大小为 的表示而不是 (编码器)或 (解码器)这么大的表示,其中 是源语句子长度, 是目标语句子长度。这也是我们使用的“联合表示“(Joint Representation)。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 3联合表示

这样一个表示为当前输入的源语句子和目标语句子里任意一个源语词和目标语词的组合都赋予了一个单独的表示。通过关联两个句子里任意两个词,联合表示可以建模句子与句子之间的关系。

Reformer-base

那么如何构建一个基于联合表示的注意力翻译模型呢?它主要分为三部分:

1)如何构造一个基于联合表示的输入(词嵌入)?

2)如何在联合表示上做注意力的操作?

3)如何从联合表示中预测目标语句子?

词嵌入

直接构造一个基于联合表示的词嵌入矩阵会产生一个大小为 的参数矩阵,其中 是源语词表大小, 是目标语词表大小。这样一个矩阵包含非常多的参数。而我们知道,在没有上下文的情况下,一个源语词在语义上几乎独立于一个随机采样出来的目标语词。因此,我们使用词的表示的组合作为词的组合的表示:

源和目标语句不再独立,联合表示更能提升机器翻译性能

类似的,基于联合表示的位置表示也可以用相同的思想计算得到。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 4基于联合表示的词嵌入

当计算(我,I)这个词的组合的表示,我们可以通过把“我“和”I“这两个词各自的表示相加得到。

可分离注意力

直接在联合表示上做注意力是非常耗时的。可以看到,标准的注意力机制在联合表示上的复杂度高达 ,尽管它有着仅使用 层即可访问到任意位置的表示这样的优势。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 5标准的注意力机制

相应的,我们提出可分离注意力(Separable Attention)。它由两部分组成:目标注意力(Target Attention)和源注意力(Source Attention)。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 6可分离注意力(训练)

其中,目标注意力只沿着联合表示的目标语维度进行注意力操作,而源注意力只沿着源语维度进行注意力操作:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 。这样,对于目标注意力而言,它的复杂度只有 ,而源注意力的复杂度只有 。因此,可分离注意力整体的复杂度 ,而它只需要 层的操作即可访问到任意位置的表示。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 7可分离注意力(解码)

解码的时候,因为同一层的表示的计算是相互独立的,因此,在计算第 时刻的输出的时候,目标注意力只需要关注前 个词,而源注意力只需要关注当前第 时刻输入里的目标语词。

降维

给定一个联合表示,如何从中预测目标语句子?我们知道联合表示的大小为 ,而一般翻译模型的解码器预测使用的表示大小为 ,其中每一个元素对应着预测出来的目标语句子的每一个词。

那么自然的想法就是通过降维操作把 大小的联合表示变成 大小再进行预测。这里压缩联合表示的源语维度所使用的降维(Reduction)模块的结构本质上是一个基于特征的注意力,也就是它操作的粒度是单个特征而不是单个词。它工作的方式类似于源注意力,除了它使用一个可学习的权重 作为query而不是当前产生的输入:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 是词嵌入的大小。

整体架构

有了词嵌入,可分离注意力和降维,基于联合表示的一个注意力模型实例Reformer-base的整体结构如下:首先通过词嵌入构建联合表示输入,然后使用由注意力机制组成的层来进行多次变换,得到的联合表示输出的源语维度会通过降维操作被压缩掉,最后从被压缩过的联合表示中预测目标语句子。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 8 Reformer-base

其中,模型使用的层由四个子层构成:目标注意力,前馈神经网络,源注意力和另一个前馈神经网络。需要注意的是,注意力操作后紧跟着Dropout1d,而前馈神经网络后紧跟着Dropout2d。

对于目标注意力,它的Dropout1d会沿着源语维度对特征(神经元)进行掩盖,而源注意力的Dropout1d则沿着目标语维度对特征进行掩盖。前馈神经网络的Dropout2d会同时沿着源语和目标语维度对特征进行掩盖。这样做的原因在于其中源语/目标语维度的特征会在另外一个维度上存在重复。

如图9所示,在做目标注意力的时候,关于源语词的特征会沿着目标语的维度重复,因此在使用Dropout掩盖源语词特征的时候,我们需要沿着目标语维度同时掩盖所有可能的的重复特征,否则被丢弃的特征可以在其他时刻的表示中被重新获取到,使得Dropout鼓励特征独立的目标失效。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 9特征重复(目标注意力)

Reformer-fast

权衡效率和有效性

从表1可以看到,对比标准的注意力,可分离注意力拥有着能以路径长度(层数)访问任意位置的表示的优势,但是可分离注意力自身的复杂度要比标准注意力高。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 1各操作的复杂度和路径长度

通过观察Reformer-base,我们可以发现它有两个问题导致它需要堆叠大量的高复杂度的可分离注意力才能获得优异的性能:

1)重复计算:Reformer-base在解码的每一时刻都需要从词嵌入开始计算,因此当模型需要一些抽象的信息,特别是源语的信息的时候,它都需要重新进行计算;

2)计算分配:在解码每一时刻,输入的源语词的数目是远多于输入的目标语词的数目,因此它天然的就需要更多关于源语端的操作。

PreNet

为了解决这个问题,我们在Reformer-base的基础上引入了PreNet这个模块,得到了我们的Reformer-fast模型。这个模型首先把输入的源语端的词嵌入送到PreNet,然后PreNet的输出当成原始的源语端的词嵌入的替代送到Reformer-base里面进行后续的处理。PreNet的结构类似标准的的Transformer编码器。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 10 Reformer-fast

PreNet的引入成功减少了可分离注意力的数目,并且它本身的复杂度非常低,因此提高了模型整体的效率。然而,PreNet损害了Reformer-base的理论有效性。相比于Reformer-base可以以 路径长度访问任意源语词,Reformer-fast只能以 路径长度访问任意源语词,其中 是PreNet的深度。

模型调优

在实际应用当中,我们通常需要在大数据集上使用更大的模型。但是使用网格搜索在大数据集上寻找合适的大模型配置是非常耗时的,而在Transformer当中常用的技巧如增大词嵌入大小或者是更宽的前馈网络对Reformer并不好用。

为了解决这个问题,我们把这样一个超参数调优过程看作是在当前网络配置的宽度和深度基础上对它们进行梯度下降,以取得最优的校验集性能,同时使用的参数量不超过规定:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 是调整超参数(宽度 、深度 )使用的步长, 是校验集性能, 是模型的参数量, 是手工设定的参数量限制。从这样的角度出发,优化的目标可以看作是在固定参数量下寻找能取得最好的校验集性能的模型配置。

为了计算梯度下降中使用的梯度,我们使用了梯度的定义来进行估计。其中关于深度的梯度计算如下:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 是手工设定的一个小数。类似的我们可以得到关于宽度 的梯度。整个调优过程如下:首先估计梯度 ,然后根据手工设定的参数量限制 ,计算得到最佳的步长 ,从而得到最佳的模型配置。

实验

我们在IWSLT15 (Vi-En), IWSLT14 (De-En, En-De) 和NIST12 (Zh-En)四个数据集上进行验证,如表2所示:

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 2实验结果

可以看到,Reformer-base/fast在所有测试集上都比标准的Transformer基线表现要好,并且这两个模型的性能相近,但是Reformer-fast要比Reformer-base要快。需要注意的是,Reformer-base在Vi-En这个任务上要比基线差一些,这可能是因为Reformer-base在设计上要求源语句子和目标语句子长度相近,而Vi句子通常比它对应的En翻译要长很多。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 3消融实验

在表3的消融实验中可以看到,Dropout1/2d可以提升模型的泛化能力,而PreNet则可以提升模型的效率。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 3消融实验

更进一步地,如果我们仅仅为Reformer-fast增加两层以及50%的前馈网络宽度,它就可以超过Transformer-big,同时参数量只有一半。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 11长度统计

图11的左图告诉我们,Reformer模型比Transformer更加倾向于生成长的翻译。而图11的右图告诉我们,Reformer模型对比基线的优势会在长句子翻译上更加明显。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 12准确率统计

图12告诉我们,无论是从目标语词的位置或者是词频的角度,Reformer模型的准确率都要比标准的Transformer基线要高不少。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 13注意力分布例子

最后,图13的例子展示了在输入不同的源语词或者目标语词的情况下,可分离注意力对同一的输入产生的分布是不同的。这说明了联合分布的必要性。

结论

我们提出了两种基于联合分布的注意力模型的实现。这两个模型在不同数据集或配置上均取得比基线优异的性能。目前基于联合分布的模型设计仍然非常原始,我们期望将来有更多的工作来改善它们。

AAAI 2020 报道:

新型冠状病毒疫情下,AAAI2020 还去开会吗?

美国拒绝入境,AAAI2020现场参会告吹,论文如何分享?

AAAI 最佳论文公布

AAAI 2020正式开幕,37%录用论文来自中国,连续三年制霸榜首

一文全览,知识图谱@AAAI 2020

Hinton AAAI2020 演讲全文:这次终于把胶囊网络做对了

AAAI 2020 论文集:AAAI 2020 论文解读会 @ 望京(附PPT下载)

AAAI 2020上的NLP有哪些研究风向?

微软 6 篇精选 AAAI 2020 论文

京东数科 6 篇精选AAAI 2020 论文

AAAI 2020 论文解读系列:

01. [中科院自动化所] 通过识别和翻译交互打造更优的语音翻译模型

02. [中科院自动化所] 全新视角,探究「目标检测」与「实例分割」的互惠关系

03. [北理工] 新角度看双线性池化,冗余、突发性问题本质源于哪里?

04. [复旦大学] 利用场景图针对图像序列进行故事生成

05. [腾讯 AI Lab] 2100场王者荣耀,1v1胜率99.8%,腾讯绝悟 AI 技术解读

06. [复旦大学] 多任务学习,如何设计一个更好的参数共享机制?

07. [清华大学] 话到嘴边却忘了?这个模型能帮你 | 多通道反向词典模型

08. [北航等] DualVD:一种视觉对话新框架

09. [清华大学] 借助BabelNet构建多语言义原知识库

10. [微软亚研] 沟壑易填:端到端语音翻译中预训练和微调的衔接方法

11. [微软亚研] 时间可以是二维的吗?基于二维时间图的视频内容片段检测

12. [清华大学] 用于少次关系学习的神经网络雪球机制

13. [中科院自动化所] 通过解纠缠模型探测语义和语法的大脑表征机制

14. [中科院自动化所] 多模态基准指导的生成式多模态自动文摘

15. [南京大学] 利用多头注意力机制生成多样性翻译

16. [UCSB 王威廉组] 零样本学习,来扩充知识图谱(视频解读)

17. [上海交大] 基于图像查询的视频检索,代码已开源!

18. [奥卢大学] 基于 NAS 的 GCN 网络设计(视频解读)

19. [中科大] 智能教育系统中的神经认知诊断,从数据中学习交互函数

20. [北京大学] 图卷积中的多阶段自监督学习算法

21. [清华大学] 全新模型,对话生成更流畅、更具个性化(视频解读,附PPT)

22. [华南理工] 面向文本识别的去耦注意力网络

23. [自动化所] 基于对抗视觉特征残差的零样本学习方法

24. [计算所] 引入评估模块,提升机器翻译流畅度和忠实度(已开源)

25. [北大&上交大] 姿态辅助下的多相机协作实现主动目标追踪

26. [快手] 重新审视图像美学评估 & 寻找精彩片段聚焦点

27. [计算所&微信AI] 改进训练目标,提升非自回归模型翻译质量(已开源)

28. [中科院&云从科技]:双视图分类,利用多个弱标签提高分类性能

29. [中山大学] 基于树状结构策略的渐进强化学习

30. [东北大学] 基于联合表示的神经机器翻译(视频解读)

31. [计算所]引入评估模块,提升机器翻译流畅度和忠实度(视频解读)

32. [清华大学]用于少次关系学习的神经网络雪球机制(视频解读)

33. [计算所]非自回归机器翻译,基于n元组的训练目标(视频解读)

34. [清华大学] 司法考试数据集(视频解读,附下载链接)

35. [自动化所] 弱监督语义分割(视频解读)

36. [自动化所] 稀疏二值神经网络,不需要任何技巧,取得SOTA精度(视频解读)

37. [华科&阿里] 从边界到文本—一种任意形状文本的检测方法

38. [上交大&云从科技] DCMN+ 模型:破解「阅读理解」难题,获全球领先成绩

39. [自动化所&微信AI] 双通道多步推理模型,更好解决视觉对话生成问题

40. [ETH Zurich] 反向R?削弱显著特征为细粒度分类带来提升

41. [中科大] RiskOracle: 一种时空细粒度交通事故预测方法

45. [商汤] 新弱监督目标检测框架

46. [第四范式] 优化NAS算法,速度提高10倍!

47. [牛津大学] 利用注意力机制,实现最优相机定位(视频解读)

48. [天津大学] DIoU和CIoU:IoU在目标检测中的正确打开方式

49. [宁夏大学] 面向大规模无标注视频的人脸对齐方法

50. [商汤] KPNet,追求轻量化的人脸检测器(视频解读)

源和目标语句不再独立,联合表示更能提升机器翻译性能


分享到:


相關文章: