NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

关于机器翻译,看这一篇就够了

  • 2020-02-15
  • 本文字数:3682 字

    阅读完需:约 12 分钟

关于机器翻译,看这一篇就够了

机器翻译技术的发展一直与计算机技术、信息论、语言学等学科的发展紧密相随。从早期的词典匹配,到词典结合语言学专家知识的规则翻译,再到基于语料库的统计机器翻译,随着计算机运算能力的提升和多语言信息资源的爆发式增长,机器翻译技术逐渐走出象牙塔,开始为普通用户提供实时便捷的翻译服务。


本文将简单介绍机器翻译技术的发展,包含机器翻译的演进历史与基本思想、端到端的神经翻译网络内部细节、技术落地过程中的部分实践经验,以及对翻译技术未来发展方向的一些思考。

一、发展历程

机器翻译的研究历史可以追溯到 20 世纪三四十年代。走过六十年的风风雨雨,机器翻译经历了一条曲折而漫长的发展道路,学术界一般将其划分为如下四个阶段:

1.1 开创期(1947-1964)

1954 年,美国乔治敦大学(GeorgetownUniversity) 在 IBM 公司协同下, 用 IBM-701 计算机首次完成了英俄机器翻译试验,向公众和科学界展示了机器翻译的可行性,从而拉开了机器翻译研究的序幕。


从 20 世纪 50 年代开始到 20 世纪 60 年代前半期,机器翻译研究呈不断上升的趋势。美国和前苏联两个超级大国出于军事、政治、经济目的,均对机器翻译项目提供了大量的资金支持,而欧洲国家由于地缘政治和经济的需要也对机器翻译研究给予了相当大的重视,机器翻译一时出现热潮。这个时期机器翻译虽然刚刚处于开创阶段,但已经进入了乐观的繁荣期。

1.2 受挫期(1964-1975)

1964 年,为了对机器翻译的研究进展作出评价,美国科学院成立了语言自动处理咨询委员会(AutomaticLanguage Processing Advisory Committee,简称 ALPAC 委员会),开始了为期两年的综合调查分析和测试。


1966 年 11 月,该委员会公布了一个题为《语言与机器》的报告(简称 ALPAC 报告) ,该报告全面否定了机器翻译的可行性,并建议停止对机器翻译项目的资金支持。这一报告的发表给了正在蓬勃发展的机器翻译当头一棒,机器翻译研究陷入了近乎停滞的僵局。

1.3 恢复期(1975-1989)

进入 70 年代后,随着科学技术的发展和各国科技情报交流的日趋频繁,国与国之间的语言障碍显得更为严重,传统的人工作业方式已经远远不能满足需求,迫切地需要计算机来从事翻译工作。


同时,计算机科学、语言学研究的发展,特别是计算机硬件技术的大幅度提高以及人工智能在自然语言处理上的应用,从技术层面推动了机器翻译研究的复苏,机器翻译项目又开始发展起来,各种实用的以及实验的系统被先后推出。

1.4 新时期(1990 至今)

随着 Internet 的普遍应用,世界经济一体化进程的加速以及国际社会交流的日渐频繁,传统的人工作业的方式已经远远不能满足迅猛增长的翻译需求,人们对于机器翻译的需求空前增长,机器翻译迎来了一个新的发展机遇。


二、什么是翻译引擎,如何训练?

当我们拥有充足的平行语料数据时,如何去构建一个机器翻译系统来实现翻译任务?



基本实现:调序+翻译=解码器,基于规则或统计的方法,我们可以确定目标语言的语法或习惯如何组织译文的句子结构,然后选择最佳的译词进行句子成分的填充,中间过程少不了各式各样的平滑及消歧手段。



优化实现:基于短语的统计翻译,基本的翻译单元调整到了短语级别,短语不一定具有任何语法意义,在歧义消除、局部排序、解码效率上有一定的优势,减少了机器翻译系统所要面对的复杂度,表现出较好的模型健壮性,常作为统计机器翻译系统研究的基线。



平滑实现:由人工神经网络拟合各个模块的决策,替代人工规则或者统计频率。



什么是语言模型?


语言模型 P(.)可以用于描述一段序列出现的合理性。



利用语言模型可以生成句子



首先起一个开头,然后对已有文本进行符号化处理,得到一个离散的符号序列,对序列中最后 n 个单词或整个序列进行建模,得到词表中每一个符号作为下一个词的概率,取概率最大的符号作为下一个词。



将生成的词加入原句,然后重复上述步骤反复迭代,不断生成之后的每一个词。



当代表句子终止的符号被模型选择出来之后,停止迭代过程,并进行反符号化处理,得到自然语句。


将人工神经网络引入语言模型,连续的向量可以相对平滑的概率替代粗糙的频率。



神经语言模型相比传统统计模型更能处理好常见词和罕见词的表示。



语言模型的变体:条件+语言模型=翻译模型



不同于语言模型生成器,一般的翻译模型拥有完整的源语言句子,我们将整个源文本进行符号化处理,并以一个固定的特殊标记作为翻译模型的开始符号。之后同样地,对这两个序列进行联合建模,得到概率最大的下一个译词。



同样地,将生成的词加入译文序列,然后重复上述步骤反复迭代,不断生成之后的每一个译词。



当代表句子终止的符号被模型选择出来之后,停止迭代过程,并进行反符号化处理,得到自然语句译文。

三、前沿进展

3.1 人工神经网络处理时序信息

循环神经语言模型可以适应任意长度的句子,模型的推导时间和句子长度正相关。


把句子中的词语想象为不连续的信号,随着信号的不断输入,网络会作出递归式的处理:不断累积信息并形成有价值的上下文记忆。



循环网络作为序列到序列预测模型内部的向量化机制。



左(单个 GRU 单元)、中(复用 GRU 单元在时序上建模)、右(端到端的翻译框架)

3.2 加入注意力机制

注意力机制源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。



上图形象化展示了人类在看到一副图像时是如何高效分配有限的注意力资源的,其中红色区域表明视觉系统更关注的目标,很明显对于上图所示的场景,人们会把注意力更多投入到人的脸部,文本的标题以及文章首句等位置。


深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。



获取每个编码器隐藏状态的分数



通过 softmax 层归一化所有分数



将每个编码器隐藏状态乘以其 softmax 归一化权重



总结对齐向量作为上下文向量送到解码器,生成下一个词


下图可视化地展示了在英语-德语翻译系统中加入 Attention 机制后,Source 和 Target 两个句子每个单词对应的注意力分配概率分布。


3.3 注意力机制的推广

Transformer 使得注意力机制应用在更广泛的模型上,并在翻译质量上取得了 State of the Art 的效果。



Self-attention 机制使得源序列或目标序列中的每一个 token 可以和自己所在序列的其他 token 计算相似度并提取必要的关联特征,整个过程是可以在句子维度上并行的。


四、实践经验

Transforer 性能优化


在模型推理阶段,目前主流的自回归翻译模型都是 Step by Step 预测的。每一个 Step 都需要前一个,数个或全部人工神经元状态。Transformer 的解码器的每一步运算都需要在之前的状态上做大量重复计算。


保留部分已计算的状态,在内存开销和计算开销中做 TradeOff,实现加速


Tensor2Tensor 给出了谷歌官方最初的 Transformer 开源实现,其中 vanilla-transformer 的推理 Cache 加速便是沿用了上述思想在长句推理上获得了将近 2 倍的提速。


是否使用 Cache 对 Transforer 性能的影响(数据来自 Tensor2Tensor 相关 Issue,考量了 BatchSize、SentenceLength、BeamSize 三个维度)





但是随着 Transformer 的改进版的出现,Cache 加速的 Trick 并没有及时推广到各个变种模型中去。实验发现,相对位置编码对于机器翻译的质量有一定提升作用,所以针对相对位置编码的变种 Transformer 实现 Cache 加速对于最终的模型迭代落地非常重要,在确保模型精度不变的前提下,线上的平均推理延迟经验证可降至 50%左右,相关的 PR 以及可视化方案已被合并入 Tensor2Tensor 的主分支。

五、不足与改进

目前的机器翻译技术尚不成熟,无论是文本翻译还是口语翻译,机器翻译的质量远没有达到令人满意的水平。


错翻,漏翻和重复翻译的情况在名称缩写、格式不统一、口语化表达等翻译场景时出现频率高,难以统一处理。


实现篇章级别的指代消解困难,如“美伊两国”可能会被模型识别为美国和伊拉克。


缺乏足够的在线优化能力,无法通过用户的有限反馈解决同一类问题,数据闭环效率低下。


但是,机器翻译依然能够替代那些任务重复性较大,翻译难度较低的任务,如:天气预报查询,旅馆预订服务,交通信息咨询等翻译。


为解决机器翻译过程中关键信息(如日期时间人名邮箱等)的准确翻译问题,我们在基本的机器翻译流程之上设计了外层 Pipeline。



利用翻译模型注意力机制产生的中间结果设计了一套辅助指针网络来实现占位符翻译引擎,将关键信息按照词性分类替换后输入模型得到的译文极大地减少了这类信息的漏译和错译率。


随着技术框架的不断成熟,如何更高效得利用资源成为了学术和工业界新的挑战,包括低资源的学习、高并发或实时模型的设计、多语种大规模系统的建立等。同时,机器翻译技术的快速迭代也引发、带动了更多的思考与研究,包括上游模型的支持、下游应用的拓展、先验常识或领域知识的融合等,形成的一系列方法论不断地推动着人工智能在自然语言处理任务上的加速落地与完善。


作者介绍


俞谦,携程度假大数据研发部算法工程师,主要负责机器翻译的研究与应用,目前专注于自然语言处理在垂域下的成熟解决方案。


本文转载自公众号携程技术(ID:ctriptech)。


原文链接


https://mp.weixin.qq.com/s/AaaLSmIflM1wWy3bQ2ZDdw


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-02-15 17:451743

评论

发布
暂无评论
发现更多内容

JavaScript获取元素的宽高

空城机

JavaScript 5月月更

Java Core「5」自定义注解编程

Samson

学习笔记 5月月更 Java core

搜狐全员遭诈骗,暴露哪些问题?

Authing

身份云 信息 统一身份认证 mfa

编写实用有效的产品帮助文档,提升客户满意度

小炮

帮助文档

英特尔宣布加入OpenCloudOS操作系统社区

OpenCloudOS

密码学系列之:使用openssl创建私有CA

程序那些事

密码学 程序那些事 5月月更

寻找智能精灵:出海与创新时代的开发者之需

脑极体

虎符Hoo重点布局合规 打造安全稳定交易环境

区块链前沿News

国际化 Hoo 合规

7 款最棒的 React 移动端 UI 组件库 - 特别针对国内使用场景推荐

蒋川

UI 前端框架 React 移动端 组件库

云启资本宣布加入 OpenCloudOS 操作系统社区,将自身在开源领域近十年的经验贡献社区

OpenCloudOS

千万奖金的首届昇腾AI创新大赛来了,OpenI启智社区提供开发环境和全部算力

OpenI启智社区

人工智能 昇腾AI大赛

OpenCloudOS 云原生演进之路

OpenCloudOS

《银行保险机构消费者权益保护管理办法》,如何影响行业与个人?

易观分析

金融消费

多个平台显示IP地址:如何看待互联网实名制

石头IT视角

阿里云“大算力”支持嬴彻自动驾驶仿真提速 20 倍

阿里巴巴云原生

阿里云 容器 云原生 ACK 客户案例

十二、云原生安全趋势

穿过生命散发芬芳

云原生安全 5月月更

flask框架关于静态文件及其模板生成

恒山其若陋兮

5月月更

IP归属地火了,IP地址黑灰产浮出水面 要如何预防?

郑州埃文科技

网络安全 IP地址 网络灰黑产

全国超市区域分布分析-数据分析学习笔记-1

清林情报分析师

数据分析 学习笔记 数据处理 数据可视化 知识图谱

上证数据可视化分析展示-数据分析学习笔记-2

清林情报分析师

数据分析 学习笔记 数据处理 证券 上市公司

LinkedHashMap 源码分析-访问

zarmnosaj

5月月更

中兴通讯宣布加入OpenCloudOS操作系统社区,为自主操作系统做出重要贡献

OpenCloudOS

中科曙光加入OpenCloudOS操作系统社区,携手共建应用生态体系

OpenCloudOS

AiTalk创始人梁宇淇:镜像连接虚拟与现实的纽带

阿里云弹性计算

vr XR 数字人

基线监控:基于依赖关系的全链路智能监控报警

字节跳动数据平台

监控 SLA 基线检查

内网穿透的实现原理(附源码)

风斩断晚霞

Java Go 网络编程 Netty 内网穿透

【LeetCode】括号的分数Java题解

Albert

LeetCode 5月月更

云原生架构及演进

云智慧AIOps社区

云原生 k8s 构架

面试题:关于HDFS,你的沉淀是什么?

Joseph295

AIRIOT物联网低代码平台如何配置Modbus RTU协议?

AIRIOT

驱动配置

勇往直前,做全能开发者,华为伙伴暨开发者大会2022精彩活动正式解锁!

华为云开发者联盟

云计算 量子计算

关于机器翻译,看这一篇就够了_技术管理_俞谦_InfoQ精选文章