2018/4/25 16:01:00
神经机器翻译的技术——编码-解码框架
今天乐文翻译公司带你了解下神经机器翻译的技术之一编码-解码框架。
编码-解码框架如上图所示其中<EOS> - W的左侧为编码器,它的右侧为解码器。A,B,C,<EOS>表示的源语言的输入序列,X,Y,Z,<EOS>表示的是翻译机器给出的目标语言输出序列。<EOS>表示的是一句话的终结符。W为编码器对输入的语言序列A,B,C,<EOS>的编码向量。图中的每一个框表示的是一个时刻展开的RNN(Recurrent Neural Network或者LSTM)神经网络。
这种编码-解码结构模拟了人类大脑翻译的过程,就是先将听到的语言存储在脑子里,然后再根据脑子中的理解给出目标语言的输出。在这里,W向量就模拟了大脑中存储的读取源语言对应的向量。
这种架构还将语言理解和语言模型联合到了一起,最终实现了端到端的机器翻译。另外,这种编码-译码结构还极其具有灵活性,它可以应用到图像标注、视频、词语等任务中。另外,这种架构还可以很好地结合外部语料,具有很好的可扩展性。
- 编码器
这张图展示了编码器的详细架构。在这里从下到上有三个层,第一层是词向量嵌入,它可以根据输入的单词向量通过查找编码表得到压缩维度的单词表征向量(第二层),之后输入给第三层,这是RNN递归单元的状态。
-
解码器
接下来,在让我们看解码端。在这里最底层紫色的节点表示由编码端计算出来的隐含层节点状态,它就相当于是对输入的源语言的编码向量。之后,我们将这个信息输入给解码器的RNN单元,之后到第二层,解码器会根据RNN单元计算概率向量。即对于目标语言单词表上的每一个单词的概率是多少。最后,在第三层,我们再根据这个计算得到的概率采样生成目标语言。
然而,当我们回顾整个编码-解码过程就会发现,机器翻译的本质就是先将源语言的句子编码成一个向量,然后再将这个向量映射为目标语言,然而这种编码是将句子压缩成向量,显然会损失很多信息。于是,我们便需要引入新的机制来解决这个问题。