机器翻译(machine translation, MT)是用计算机来实现不同语言之间翻译的技术。被翻译的语言通常称为源语言(source language),翻译成的结果语言称为目标语言(target language)。机器翻译即实现从源语言到目标语言转换的过程,是自然语言处理的重要研究领域之一。

早期机器翻译系统多为基于规则的翻译系统,需要由语言学家编写两种语言之间的转换规则,再将这些规则录入计算机。该方法对语言学家的要求非常高,而且我们几乎无法总结一门语言会用到的所有规则,更何况两种甚至更多的语言。因此,传统机器翻译方法面临的主要挑战是无法得到一个完备的规则集合。

为解决以上问题,统计机器翻译(Statistical Machine Translation, SMT)技术应运而生。在统计机器翻译技术中,转化规则是由机器自动从大规模的语料中学习得到的,而非我们人主动提供规则。因此,它克服了基于规则的翻译系统所面临的知识获取瓶颈的问题,但仍然存在许多挑战:1)人为设计许多特征(feature),但永远无法覆盖所有的语言现象;2)难以利用全局的特征;3)依赖于许多预处理环节,如词语对齐、分词或符号化(tokenization)、规则抽取、句法分析等,而每个环节的错误会逐步累积,对翻译的影响也越来越大。

近年来,深度学习技术的发展为解决上述挑战提供了新的思路。将深度学习应用于机器翻译任务的方法大致分为两类:1)仍以统计机器翻译系统为框架,只是利用神经网络来改进其中的关键模块,如语言模型、调序模型等(见图1的左半部分);2)不再以统计机器翻译系统为框架,而是直接用神经网络将源语言映射到目标语言,即端到端的神经网络机器翻译(End-to-End Neural Machine Translation, End-to-End NMT)(见图1的右半部分),简称为NMT模型。

图1. 基于神经网络的机器翻译系统
效果展示
以中英翻译(中文翻译到英文)的模型为例,当模型训练完毕时,如果输入如下已分词的中文句子:

这些 是 希望 的 曙光 和 解脱 的 迹象 .

如果设定显示翻译结果的条数(即柱搜索算法的宽度)为3,生成的英语句子如下:

0 -5.36816   These are signs of hope and relief . <e>
1 -6.23177   These are the light of hope and relief . <e>
2 -7.7914  These are the light of hope and the relief of hope . <e>

左起第一列是生成句子的序号;左起第二列是该条句子的得分(从大到小),分值越高越好;左起第三列是生成的英语句子。另外有两个特殊标志:e 表示句子的结尾,unk表示未登录词(unknown word),即未在训练字典中出现的词。
编码器-解码器框架
编码器-解码器(Encoder-Decoder)框架用于解决由一个任意长度的源序列到另一个任意长度的目标序列的变换问题。即编码阶段将整个源序列编码成一个向量,解码阶段通过最大化预测序列概率,从中解码出整个目标序列。编码和解码的过程通常都使用RNN实现。

注意力机制

在“编码器—解码器(seq2seq)”⼀节⾥,解码器在各个时间步依赖相同的背景变量(context vector)来获取输⼊序列信息。当编码器为循环神经⽹络时,背景变量来⾃它最终时间步的隐藏状态。将源序列输入信息以循环单位状态编码,然后将其传递给解码器以生成目标序列。然而这种结构存在着问题,尤其是RNN机制实际中存在长程梯度消失的问题,对于较长的句子,我们很难寄希望于将输入的序列转化为定长的向量而保存所有的有效信息,所以随着所需翻译句子的长度的增加,这种结构的效果会显著下降。

与此同时,解码的目标词语可能只与原输入的部分词语有关,而并不是与所有的输入有关。例如,当把“Hello world”翻译成“Bonjour le monde”时,“Hello”映射成“Bonjour”,“world”映射成“monde”。在seq2seq模型中,解码器只能隐式地从编码器的最终状态中选择相应的信息。然而,注意力机制可以将这种选择过程显式地建模。

注意力机制框架

Attention 是一种通用的带权池化方法,输入由两部分构成:询问(query)和键值对(key-value pairs)对于一个query来说,attention layer 会与每一个key计算注意力分数并进行权重的归一化,输出的向量 o o o则是value的加权求和,而每个key计算的权重与value一一对应。

为了计算输出,我们首先假设有一个函数 α \alpha α 用于计算query和key的相似性,然后可以计算所有的 attention scores a 1 , … , a n a_1, \ldots, a_n a1​,…,an​ by

a i = α ( q , k i ) . a_i = \alpha(\mathbf q, \mathbf k_i). ai​=α(q,ki​).

我们使用 softmax函数 获得注意力权重:

b 1 , … , b n = softmax ( a 1 , … , a n ) . b_1, \ldots, b_n = \textrm{softmax}(a_1, \ldots, a_n). b1​,…,bn​=softmax(a1​,…,an​).

最终的输出就是value的加权求和:

o = ∑ i = 1 n b i v i . \mathbf o = \sum_{i=1}^n b_i \mathbf v_i. o=i=1∑n​bi​vi​.

不同的attetion layer的区别在于score函数的选择,在本节的其余部分,我们将讨论两个常用的注意层 Dot-product Attention 和 Multilayer Perceptron Attention;随后我们将实现一个引入attention的seq2seq模型

引入注意力机制的Seq2seq模型

本节中将注意机制添加到sequence to sequence 模型中,以显式地使用权重聚合states。下图展示encoding 和decoding的模型结构,在时间步为t的时候。此刻attention layer保存着encodering看到的所有信息——即encoding的每一步输出。在decoding阶段,解码器的 t t t时刻的隐藏状态被当作query,encoder的每个时间步的hidden states作为key和value进行attention聚合. Attetion model的输出当作成上下文信息context vector,并与解码器输入 D t D_t Dt​拼接起来一起送到解码器:

F i g 1 具 有 注 意 机 制 的 s e q − t o − s e q 模 型 解 码 的 第 二 步 Fig1具有注意机制的seq-to-seq模型解码的第二步 Fig1具有注意机制的seq−to−seq模型解码的第二步

下图展示了seq2seq机制的所以层的关系,下面展示了encoder和decoder的layer结构

F i g 2 具 有 注 意 机 制 的 s e q − t o − s e q 模 型 中 层 结 构 Fig2具有注意机制的seq-to-seq模型中层结构 Fig2具有注意机制的seq−to−seq模型中层结构

机器翻译/注意力机制相关推荐

  1. 机器翻译注意力机制及其PyTorch实现

    前面阐述注意力理论知识,后面简单描述PyTorch利用注意力实现机器翻译 Effective Approaches to Attention-based Neural Machine Translat ...

  2. DL之Attention:Attention注意力机制的简介、应用领域之详细攻略

    DL之Attention:Attention注意力机制的简介.应用领域之详细攻略 目录 Attention的简介 1.Why Attention? 2.Attention机制的分类 3.Attenti ...

  3. 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

    可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)   序列到序列模型是深度学习模型,在机器翻译.文本摘要和图像字幕等任务中取得了很大的成功.谷歌翻译在2016年底开始在生产中使用这样的模型 ...

  4. 05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)

    文章目录 作业1:机器翻译 1. 日期转换 1.1 数据集 2. 用注意力模型进行机器翻译 2.1 注意力机制 3. 可视化注意力 作业2:触发词检测 1. 数据合成:创建语音数据集 1.1 听一下数 ...

  5. 《Effective Approaches to Attention-based Neural Machine Translation》—— 基于注意力机制的有效神经机器翻译方法

    目录 <Effective Approaches to Attention-based Neural Machine Translation> 一.论文结构总览 二.论文背景知识 2.1 ...

  6. 不用看数学公式!图解谷歌神经机器翻译核心部分:注意力机制

    乾明 编译整理 量子位 出品 | 公众号 QbitAI 注意力(Attention)机制,是神经机器翻译模型中非常重要的一环,直接影响了翻译的准确度与否. 可以这么说,没有注意力机制,机器翻译的水平只 ...

  7. 机器翻译 MXNet(使用含注意力机制的编码器—解码器,即 Encoder编码器-Decoder解码器框架 + Attention注意力机制)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  8. 深度学习与自然语言处理教程(6) - 神经机器翻译、seq2seq与注意力机制(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  9. 【笔记3-7】CS224N课程笔记 - 神经网络机器翻译seq2seq注意力机制

    CS224N(七)Neural Machine Translation, Seq2seq and Attention seq2seq神经网络机器翻译 历史方法 seq2seq基础 seq2seq - ...

最新文章

  1. GraLSP | 考虑局部结构模式的GNN
  2. Microsoft公司的匈牙利法命名规则
  3. 并发数据结构-1.1 并发的数据结构的设计
  4. c语言最短延时程序,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  5. Android仿人人客户端(v5.7.1)——应用主界面之左侧面板UI实现
  6. Android打包出多个dex文件,一个APK中包含多个dex方法
  7. oracle-3-子查询和常用函数
  8. POJ 1472 Instant Complexity
  9. c语言程序设计基础考点,c语言程序设计知识点
  10. storage 主机集群共享卷数据不同步_codis 高可用集群跳过nginx 代理
  11. android免费离线讯飞语音合成
  12. C++Primer第五版——习题答案详解(六)
  13. 如何根据离散点自动绘制等值线(等高线)之 客观分析
  14. 【译】SQ3R学习法则
  15. word设置奇偶页不同但页码连续
  16. php获取本机IP地址
  17. 2021年茶艺师(中级)考试题及茶艺师(中级)模拟考试
  18. 食堂老板给北大教授上的MBA课
  19. 论文中文翻译——VulDeePecker: A Deep Learning-Based System for Vulnerability Detection
  20. svn基于mysql认证_Svn基于mysql做登陆认证

热门文章

  1. Spring 自定义Enable注解以及Enable注解扩展
  2. js 基本类型与引用类型的区别(我觉得很棒的一篇文章)
  3. 拷贝构造函数与深拷贝和浅拷贝
  4. android相册功能 实现,Android开发实现的保存图片到相册功能示例
  5. 寒假Python第三天作业
  6. 2018华为新影像大赛征稿结束,华为手机摄影魅力征服全球用户
  7. APP设备数据的特征衍生与模型应用
  8. 腾讯测试中台实践与交流活动圆满结束
  9. 如何保障自己的邮件安全
  10. python url安全转码