注意力机制

文章介绍了注意力机制的概念,从心理学的随意和不随意线索引入,阐述了全连接、卷积、池化层与注意力机制的区别。接着讨论了非参注意力池化层和参数化的注意力机制,包括高斯核和注意力分数的计算。重点讲述了在seq2seq模型中如何应用注意力机制,以解决机器翻译中每个生成词的相关性问题。
摘要由CSDN通过智能技术生成

目录

注意力机制

引入:心理学两个概念

注意力机制

非参注意力池化层(不用学参数)

参数化的注意力机制

注意力分数

使用注意力机制的seq2seq

动机

具体做法

总结


注意力机制

引入:心理学两个概念

        随意线索:我有意识地想去读书,然后开始找能读的书,这时候我注意到桌上有一本书,书是随意线索。

        不随意线索:桌上放一堆东西,最大个最显眼的是一盏灯,我进房间一眼就看到最显眼的那个灯,灯不是我刻意去想去找才注意到的,灯是不随意线索。

注意力机制

        全连接、卷积、池化层都只考虑不随意线索。注意力机制显式地考虑随意线索。

        把心理学概念和注意力机制中的概念对应起来:自主性提示,即随意线索(我想要的)被称为查询query;每个输入是 感官输入value和不随意线索key的对,key和value可以一样也可以不一样;attention pooling注意力池化根据query来有偏向地选择key-value pair,它和别的池化层不一样的地方是多了query。

非参注意力池化层(不用学参数)

        如果K为高斯核,f(x)如下:

参数化的注意力机制

这里的w是标量。

注意力分数

        注意力机制可以写成:

x是query,xi是key,yi是value。 \alpha (x,x_{i})是注意力权重,这个东西如何求,也就是权重设计是接下来的重点。

        \alpha (x,x_{i})是注意力权重,大于等于0,和为1。那什么是注意力分数?高斯核指数部分可以视为注意力分数,如

        假设注意力机制这时具有如下形式:

         该式子用图表示其过程如下,

         接下来要把query,key,value拓展到高维度,不再像之前一样是一个值。

这里注意力分数是softmax的输入a(q, ki),a是标量。

2种常见的对分数a的计算:

1 additive attention

a是标量。计算a的式子相当于将向量k(key)和q(query)并成一个长为k+q的向量,放入隐藏大小为h输出大小为1的单隐藏层MLP。

好处:key value query可以任意长度,彼此不一样。

2 scaled dot-product attention

如果query和key长度一样,长为d,那就不用学参数,

除以根号d:就是scaled,为了减小对向量长度的敏感度,向量化版本如下:

Q有n个query向量,key-value有m对

 总结:

使用注意力机制的seq2seq

动机

        机器翻译中,每个生成的词可能 相关于 源句子中不同的词,但seq2seq模型不能对此直接建模。我们希望翻译某个词的时候把注意力放在源句子对应部分。

具体做法

        解码器部分:原来的seq2seq把编码器最后一层最后一个时刻的隐藏层和embedding编码后的结果并在一起不合适。应该把编码器对每个词的RNN输出作为key和value,几个词就有几个key-value pair;query是解码器RNN对上一个词的预测输出(要RNN的输出,不是embedding的输入);把注意力输出和下一个词的词嵌入embedding合并。

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值