机器翻译

  • 机器翻译, 将一段文本从一种语言自动翻译为另一种语言。其 输出为单词序列。
处理步骤
  • 数据预处理
  • 分词
  • 建立词典
  • 输入模型
  • Encodr-Decoder
  • Sequence to Sequence

注意力机制

看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对<X,Y>。 --------(思考:<X,Y>对很通用,X是一个问句,Y是答案;X是一个句子,Y是抽取的关系三元组;X是汉语句子,Y是汉语句子的英文翻译。等等),我们的目标是给定输入句子X,期待通过Encoder-Decoder框架来生成目标句子Y。X和Y可以是同一种语言,也可以是两种不同的语言。而X和Y分别由各自的单词序列构成:

机器翻译的算法 机器翻译的原理_机器翻译


Encoder顾名思义就是对输入句子X进行编码,将输入句子通过非线性变换转化为中间语义表示C:

机器翻译的算法 机器翻译的原理_编码器_02


对于解码器Decoder来说,其任务是根据句子X的中间语义表示C和之前已经生成的历史信息y1,y2….yi-1来生成i时刻要生成的单词yi :

机器翻译的算法 机器翻译的原理_编码器_03


每个yi都依次这么产生,那么看起来就是整个系统根据输入句子X生成了目标句子Y。 ------(思考:其实这里的Encoder-Decoder是一个序列到序列的模型seq2seq,这个模型是对顺序有依赖的。)

引入注意力机制的Seq2seq模型

下图展示encoding 和decoding的模型结构,在时间步为t的时候。此刻attention layer保存着encodering看到的所有信息——即encoding的每一步输出。在decoding阶段,解码器的 t 时刻的隐藏状态被当作query,encoder的每个时间步的hidden states作为key和value进行attention聚合. Attetion model的输出当作成上下文信息context vector,并与解码器输入 Dt 拼接起来一起送到解码器:

机器翻译的算法 机器翻译的原理_机器翻译_04


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

机器翻译的算法 机器翻译的原理_三元组_05

Transformer
  • 基于编码器-解码器结构
  • 主要的区别:
    Transformer blocks:将seq2seq模型重的循环网络替换为了Transformer Blocks,该模块包含一个多头注意力层(Multi-head Attention Layers)以及两个position-wise feed-forward networks(FFN)。对于解码器来说,另一个多头注意力层被用于接受编码器的隐藏状态。
    Add and norm:多头注意力层和前馈网络的输出被送到两个“add and norm”层进行处理,该层包含残差结构以及层归一化。
    Position encoding:由于自注意力层并没有区分元素的顺序,所以一个位置编码层被用于向序列元素里添加位置信息。

机器翻译的算法 机器翻译的原理_三元组_06