Seq2Seq系列(二):Sequence to Sequence

论文链接Sequence to Sequence Learning with Neural Networks

这是介绍Seq2Seq系列的第二篇文章,主要介绍Seq2Seq的基本模型。与第一篇论文Encoder-Decoder之间具有很强的连续性,内容较少。在这篇论文中,作者将Seq2Seq模型用于英译法的翻译任务中。
模型
Seq2Seq的基础是Encoder和Decoder模型,同样地,Seq2Seq也有Encoder和Decoder模块。
同样地,作者先贴出了RNN的计算公式:

inputs:(x1,...,xT)

outputs:(y1,...,yT)

hiddenstates:ht=sigm(Whxxt+Whhht1)

yt=Wyhht

实际上,在作者的模型中使用的是LSTM,因为LSTM在处理长序列的时候没有普通的RNN中存在的梯度消失和梯度爆炸的问题。更加适合句子翻译中可能遇到的长句子。
模型图如下:
这里写图片描述
图中的LSTM单元应该分成两块,以EOS为输入,W为输出的LSTM单元左侧的LSTM单元是Encoder部分按时序展开的,其右侧的单元(包括它本身)是Decoder部分按时间顺序展开的。在实现上,Encoder和Decoder可以是同一个RNN,但是通常情况下,Encoder和Decoder是不同的RNN(它们的功能不同)。
{A,B,C}是一个倒置的英文句子(原句子为C,B,A),因为论文中说输入的句子倒置的话要比不倒置的效果要好,但是作者也不知道为什么会这样,只是提出了一些观点。
当原文按单词依次逐个输入Encoder中后,最后输入对应的隐层状态(单词C对应的隐层状态)会被认为编码了整个原文,而作为Decoder的初始化隐层状态。
字符 <EOS> <script type="math/tex" id="MathJax-Element-26"> </script>(end of sentence)类似于 <UNK> <script type="math/tex" id="MathJax-Element-27"> </script>(unknown),是加入词表(vocabulary)中的特殊字符。意味着句子的结束,在Decoder端的输出,若取值概率最大的是 <EOS> <script type="math/tex" id="MathJax-Element-28"> </script>着意味着Decoder结束(译文结束)。同时,它还有一个功能就是Decoder的初始化输入。在Decoder部分,第一个输出是由初始化隐层状态和初始化输入决定的。
Decoder部分使用的是常规的LSTM(或者是RNN):
除了初始化时刻外,每一时刻的输出仅有 本时刻的输入(即上一时刻的输出),以及当前的隐层状态决定。

与Encoder-Decoder模型相区别的是,Seq2Seq的Encoder编码的向量只是作为Decoder的初始化隐层状态,而在Encoder-Decoder模型中,Encoder编码的向量会作为Decoder每一时刻的额外的输入。
本文完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值