个人理解自注意力

个人理解自注意力

最近在学习多头自注意力机制的用法,总结一些个人的总结与看法,希望可以帮到以后想学习这一部分的码友们,嘿嘿嘿

什么是注意力机制

注意力机制是上世纪九十年代,一些科学家在研究人类视觉时,发现的一种信号处理机制。人工智能领域的从业者把这种机制引入到一些模型里,并取得了成功。目前,注意力机制已经成为深度学习领域,尤其是自然语言处理领域,应用最广泛的“组件”之一。具体作用是人们在机器学习模型中嵌入的一种特殊结构,用来自动学习和计算输入数据对输出数据的贡献大小,以及某一特征与结果之间的关联性。

在这里插入图片描述
比较规范的文章里,一般会采用”key-query-value”理论来描述注意力机制的机理。这里用通俗一点的例子进行举例说明。这是一个句到句的翻译模型。在编码器和解码器之间增加一个注意力模块。注意力得分计算模块,会基于解码器神经元的已经输出部分的单词,就是历史输出,和编码器各个神经元的输出,就是计算出编码器各个时间步的输出的原来句子单词的“转换暗号”,与解码器当前输出的“相关度”。

什么是自注意力机制

在一般任务的Encoder-Decoder框架中,输入输入数据和输出结果的内容是不一样的,比如输入任务点,需要返回完成路由。而Attention 机制发生在输出的元素Query阶段和输入数据中的所有元素之间。Self Attention机制指的不是输出和输入之间的Attention机制,而是输入数据内部元素治安或者输出元素内部元素之间发生的Attention机制。其具体计算过程一样的,只是计算对象发生了变化而已。通过以下这一公式可以直接查询自己内部之间的关联性,其中Q,K,V的输入内容是由同一内容,经过WQ,WK,WV不同的神经网络输出获得的,除以dk的平方根的目的是防止矩阵中的值过大,而导致后续的激活函数的梯度过小,不利于训练。

在这里插入图片描述
在这里插入图片描述

引入Self Attention后会更容易捕获句子中长距离的相互依赖的特征,因为如果是RNN或者LSTM,需要依次序序列计算,对于远距离的相互依赖的特征,要经过若干时间步步骤的信息累计才能将两者联系起来,而距离越远,有效捕获的可能性越小。但是Self Attention在计算过程中会直接将句子中任意两个单词的联系通过一个计算步骤直接联系起来,所以远距离依赖特征之间的距离被极大缩短,有利于有效地利用这些特征。此外Self Attention对于增加计算地并行性也有直接帮助作用。可以看出通过这种自注意力机制确实解决了”传统序列模型在编码过程中都需顺序进行的弊端“的问题,有了自注意力机制后,仅仅只需要对原始输入进行几次矩阵变换便能够得到最终包含有不同位置注意力信息的编码向量。

参考:
https://blog.csdn.net/qq_26309711/article/details/102739698
https://www.zhihu.com/question/372028289

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值