ACL 2021 | 腾讯AI Lab、港中文杰出论文:用单语记忆实现高性能NMT

2024-04-13 20:08

本文主要是介绍ACL 2021 | 腾讯AI Lab、港中文杰出论文:用单语记忆实现高性能NMT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:机器之心本文约3200字,建议阅读7分钟 在 ACL 2021 的一篇杰出论文中,研究者提出了一种基于单语数据的模型,性能却优于使用双语 TM 的「TM-augmented NMT」基线方法。

自然语言处理(NLP)领域顶级会议 ACL 2021 于 8 月 2 日至 5 日在线上举行。据官方数据, 本届 ACL 共收到 3350 篇论文投稿,其中主会论文录用率为 21.3%。腾讯 AI Lab 共入选 27 篇论文(含 9 篇 findings)。

在不久之前公布的获奖论文中,腾讯 AI Lab 与香港中文大学合作完成的《Neural Machine Translation with Monolingual Translation Memory》获得杰出论文。本文作者也受邀参与机器之心举办的 ACL 2021 论文分享会,感兴趣的同学可以点击阅读原文查看回顾视频。

下面我们来看一下这篇论文的具体内容。

论文地址:

https://arxiv.org/abs/2105.11269

先前的一些工作已经证明翻译记忆库(TM)可以提高神经机器翻译 (NMT) 的性能。与使用双语语料库作为 TM 并采用源端相似性搜索进行记忆检索的现有工作相比,该研究提出了一种新框架,该框架使用单语记忆并以跨语言方式执行可学习的记忆检索。该框架具有一些独特的优势:

  • 首先,跨语言记忆检索器允许大量的单语数据作为 TM;

  • 其次,记忆检索器和 NMT 模型可以联合优化以达到最终的翻译目标。

实验表明,该研究提出的方法获得了实质性的改进。值得注意的是,即使不使用额外单语数据,这种方法也要优于使用双语TM的 「TM-augmented NMT」基线方法。由于能够利用单语数据,该研究还证明了所提模型在低资源和领域适应场景中的有效性。

方法

该研究首先将翻译任务转化为两步过程:检索和生成,并在论文中描述了跨语言记忆检索模型和记忆增强型(memory-augmented)翻译模型的模型设计。最后,该论文展示了如何使用标准最大似然训练联合优化这两个组件,并通过交叉对齐预训练解决了冷启动(cold-start)问题。

该方法的整体框架如图 1 所示,其中 TM 是目标语言中句子的集合。给定源语言中的输入 x,检索模型首先会根据相关函数,选择一些来自 Z 的可能有用的句子,其中。然后,翻译模型以检索到的集合和原始输入 x 为条件,使用概率模型来生成输出 y。

值得注意的是,相关性分数也是翻译模型输入的一部分,它能够鼓励翻译模型更多地关注更相关的句子。在训练期间,该研究借助翻译参考的最大似然改进了翻译模型和检索模型。

检索模型

检索模型负责从大型单语 TM 中为源语句选出最相关的语句。这可能涉及测量源语句和数百万个候选目标语句之间的相关性分数,带来了严重的计算挑战。为了解决这个问题,该研究使用一个简单的双编码器框架(Bromley 等, 1993)来实现检索模型,这样最相关句子选择可以利用最大内积搜索实现(MIPS, Maximum Inner Product Search)。借助高性能数据结构和搜索算法(例如 Shrivastava 和 Li,2014;Malkov 和 Yashunin,2018),可以高效地进行检索。具体来说,该研究将源语句 x 和候选语句 z 之间的相关性分数 f(x, z) 定义为它们的密集向量表征的点积:

翻译模型

给定一个源语句 x、相关 TM 的小型集合、相关性分数,翻译模型会定义一个如下形式的条件概率

该翻译模型建立在标准的编码器 - 解码器 NMT 模型上:(源)编码器将源语句 x 转换为密集向量表征,解码器以自回归方式生成输出序列 y。在每一个时间步(time step)t,解码器都会处理先前生成的序列和源编码器的输出,生成隐藏状态 h_t。然后隐藏状态 h_t 通过线性投影转换为 next-token 概率,接着会有一个 softmax 函数操作,即

为了容纳额外的记忆输入,该研究使用记忆编码器扩展了标准的编码器 - 解码器 NMT 框架,并允许使用从解码器到记忆编码器的交叉注意力机制。具体来说,记忆编码器对每个 TM 语句 z_i 单独进行编码,从而产生一组上下文 token 嵌入,其中 L_i 是 token 序列 z_i 的长度。研究者计算了所有 TM 语句的交叉注意力:

为了使从翻译输出到检索模型的梯度流有效,该研究将注意力分数与相关性分数进行了偏置处理,重写了等式(1)如下所示:

训练

该研究在负对数似然损失函数中使用随机梯度下降来优化模型参数 θ 和 φ,其中指参考翻译。 

然而,如果检索模型从随机初始化开始,那么所有 top TM 语句 z_i 可能都与 x 无关(或无用)。这导致检索模型无法接收有意义的梯度并进行改进,翻译模型将学会完全忽略 TM 输入。为了避免这种冷启动问题,该研究提出了两个交叉对齐任务来热启动检索模型。

第一个任务是句子级的交叉对齐。具体来说,该研究在每个训练 step 上对训练语料库采样 B 个源 - 目标对。设 X 和 Z 分别对应由 E_src 和 E_tgt 编码的源向量和目标向量的 (B×d) 矩阵。是一个相关性分数的 (B×B) 矩阵 ,其中每一行对应一个源语句,每列对应一个目标语句。当 i = j 时,任何对都应该对齐。目标是最大化矩阵对角线上的分数,然后减小矩阵中其他元素的值。损失函数可以写成:

第二个任务是 token 级交叉对齐,其目的是在给定源语句表征的情况下预测目标语言中的 token,反之亦然。该研究使用词袋损失:

其中表示第 i 个源(目标)语句中的 token 集,token 概率由线性投影和 softmax 函数计算。

实验结果

该研究在三种设置下进行了实验:

(1)可用的 TM 仅限于双语训练语料库的常规设置;

(2)双语训练对很少,但用单语数据作为额外 TM 的低资源设置;

(3)基于单语 TM 的非参数域自适应设置。

常规设置

为了研究每个模型组件的效果,研究人员实现了一系列的模型变体(如表 2 中的 #1 - #5):

如上表 2 所示,可以观察到:

(1)该研究使用异步索引刷新训练的完整模型(模型  #5),在四个翻译任务的测试集上获得了最佳性能,比 non-TM 基线(模型 #1)平均高出 3.26 个 BLEU 点,最高可达 3.86 个 BLEU 点( De⇒En)。这一结果证实了单语 TM 可以提高 NMT 的性能。

(2)端到端学习检索器模型是大幅提高性能的关键,使用预训练的固定跨语言检索器只能提供中等的测试性能,微调 E_src 和固定 E_tgt 显著提高了性能,同时微调 E_src 和 E_tgt 则能获得最强的性能(模型 #5 > 模型 # 4 > 模型 #3)。

(3)跨语言检索(模型 #4 和模型 #5)可以获得比源相似性搜索(模型 #2)更好的结果。

低资源设置

图 2 为在测试集上的主要结果,所有实验的一般模式都是一致的,由结果可得:TM 越大,模型的翻译性能越好。当使用所有可用的单语数据 (4/4) 时,翻译质量显著提高。未经重新训练的模型的性能与经过重新训练的模型的性能相当,甚至更好。此外,该研究还观察到,当训练对非常少时(只有 1/4 的双语对可用),小型 TM 甚至会影响模型的性能,这可能是出于过拟合的原因。该研究推测,根据不同的 TM 大小调整模型超参数将获得更好的结果。

该研究还与反向翻译 (BT)进行了比较,这是一种将单语数据用于 NMT 的流行方法。该研究使用双语对训练目标到源的 Transformer Base 模型,并使用得到的模型翻译单语语句以获得额外的合成并行数据。如表 3 所示,该研究所用方法在 2/4 双语对上比 BT 表现得更好,但在 1/4 双语对上表现较差。 最令人惊喜的是,结果表明两种方法是互补的,他们的结合使翻译性能取得了进一步的巨大提升。

非参数领域自适应

由下表 4 可得,当仅使用双语数据时,与 non-TM 基线相比,TM 增强模型在数据较少的域中获得更高的 BLEU 分数,但在其他域中的分数略低。然而,当研究者将 TM 切换到特定域的 TM 时,所有域的翻译质量都得到了显著提升,将 non-TM 基线平均提高了 1.85 个 BLEU 点,在 Law 上提高了 2.57 个 BLEU 点,在 Medical 上提高了 2.51 个 BLEU 点。

该研究还尝试将所有特定领域的 TM 合并成一个 TM,并将其用于所有域(如表 4 最后一行所示),但实验结果并没有获得明显的改进。这表明域外数据不能提供帮助,因此较小的域内 TM 就足够了。

运行速度

FAISS in-GPU 索引能够让搜索数百万个向量变得非常高效(通常在几十毫秒内完成)。在该研究中,记忆搜索的执行速度甚至比原生的 BM25 还要快。对于表 2 中的结果,以普通的 Transformer Base 模型(模型 #1)为基线模型,该研究模型(包括模型 #4 和模型 #5)的推断延迟大约是基线的 1.36 倍(所有模型都使用一个 Nvidia V100 GPU)。

至于训练成本,模型 #4 和模型 #5 每个训练 step 的平均时间成本分别是基线的 2.62 倍和 2.76 倍,与传统的 TM-augmented 基线相当(模型 #2 是 2.59 倍)( 全部使用两个 Nvidia V100 GPU),实验结果如下表 5 所示。此外,该研究还观察到,就训练 step 而言,记忆增强型模型的收敛速度比普通模型快得多。

原文链接:

https://mp.weixin.qq.com/s/sFGm8m5Sb-bZeJTop8i0hA

编辑:王菁

校对:林亦霖

这篇关于ACL 2021 | 腾讯AI Lab、港中文杰出论文:用单语记忆实现高性能NMT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901100

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal