Skip to content

最初RNN神经翻译简略笔记

📅 发表于 2017/10/02
🔄 更新于 2017/10/02
👁️ 次访问
📝 0 字
0 分钟
自然语言处理
#机器翻译
#自然语言处理
#深度学习

只是一个Seq2seq的在机器翻译中的简略笔记

Basic

背景知识

传统翻译是以词为核心一词一词翻译的,这样会切断句子本身的意思,翻译出来也很死板,不像我们人类说的话。

Encoder-Decoder

现在采用Encoder-Decoder架构模型。如下图

Encoder会利用整个原始句子生成一个语义向量,Decoder再利用这个向量翻译成其它语言的句子。这样可以把握整个句子的意思、句法结构、性别信息等等。具体框架可以参考Encoder-Decoder框架

举个翻译的例子,原始句子X=(x1,x2,,xm) ,翻译成目标句子Y=(y1,y2,,ym)

Encoder对X 进行非线性变换得到中间语义C

C=Γ(x1,x2,,xn)

Decoder根据语义C 和生成的历史信息y1,y2,,yi1 来生成第i 个单词 yi

yi=Ψ(C,y1,y2,,yi1)

当然,在Attention Model 中,Decoder生成Y的时候每个单词对应的C不一样,记作Cj,j[1,n]Cj 就是体现了源语句子中不同的单词对目标句子中不同的单词的注意力概率分布。即各个单词的对齐的概率,也就是student对"学生"更重要,而对"我"不那么重要。这个在后续会用到。

Encoder-Decoder是个创新大杀器,是个通用的计算框架。Encoder和Decoder具体使用什么模型,都可以自己选择。通常有CNN,RNN,BiRNN,GRU,LSTM, Deep LSTM。比如编码CNN-解码RNN, 编码BiRNN-解码Deep LSTM等等。

上面的内容任意组合,只要得到的效果好,就是一个创新,就可以毕业了。(当然别人没有提出过)

NMT模型选择

有3个维度需要选择。

  • 方向性。是单向还是双向
  • 深度:是一层还是多层
  • 网络选择:encoder和decoder具体分别选什么

在本文的实现中,我们选择单向的、多层的、LSTM。基于这篇论文。如下图。

总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2025