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

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time