深度学习笔记(33):从seq2seq到注意力模型

seq2seq

首先我们要明白,seq2seq是在读入一个序列,生成一个序列。他的思想是encode和decode的思想,即先通过一组RNN进行编码将语言吃进来产生一个整体的语义,然后再不断通过刚刚产生的y值和解读出来的语义再通过一组RNN进行解码将语言序列翻译成另一组序列。
抽象看就是如下公式:
X = (x1,x2,x3,x4,…xm)
Y = (y1,y2,y3,y4…yn)
C = F(x1,x2,…xm)
yi = G(C,y1,y2,…yi-1)
其中X是输入序列,Y是输出序列,C是中传信息,yi是Y中每一个单词,递归生成
在这里插入图片描述

Attention Model

但是这么做的问题在于,我们的注意力实际上是均等的。当我们从yi到yi+1,从yi+1再到yi+2实质上使用的是同一个C值。即原序列的x对于每一个y的影响力都是一样的,没有区别。(实际上对于RNN反而是越往后面的单词权重越大)而这样是不对的,对于某一个词,当我们我们要翻译它时应该给予他更多的权重,否则对于那些足以让这个词沉没在句子中的长句子来讲,翻译效果一定是不好的,抑或是要付出很高昂的额外的代价。
怎么解决这个问题的思考引导出了注意力机制的发现。
比如:
"Tom chase Jerry"这么一句话里面,我们可以发现,当我们翻译到Jerry成为杰瑞时,我们想要给予Jerry更多的权重,比如这时候我们要把C分成2:3:5其中5分都在Jerry上。那么我们怎么获得这个权重值呢?
以翻译汤姆的时候为例,事实上我们是这么获得C的,其中f(Tom),f(Jerry)等都是RNN传递的隐藏值,a是训练的权重矩阵。
在这里插入图片描述
我们接下来来谈谈概率权重矩阵的获得,实际上如下图,当我们想要获得yi时,我们使用Hi-1和之前的所有h来计算一个Hi和之前位置对其的可能性分布,然后使用softmax转化成概率,进而得到概率权重矩阵。
在这里插入图片描述

参考资料

https://zhuanlan.zhihu.com/p/37601161?utm_source=qq&utm_medium=social&utm_oi=843233220597284864
(这篇文章写得绝了)
https://blog.csdn.net/weixin_44334615/article/details/106323143
(煊煊把吴恩达那个讲活了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值