赞
踩
原作者:Raimi Karim 出处:Towards Data Science
原译者:Black先森 出处: 个人博客
本文对部分丢失的图片进行了补全,其他内容均全文转载自原译者个人博客。
谷歌在2017年发表了一篇论文《Attention Is All You Need》,论文中提出了transformer模型,其核心就是self-attention的架构,这一突破性成果不仅洗遍了NLP的任务,也在CV中取得了非常好的效果,有大道至简的感觉。本文通过一个通俗易懂的例子[1]来介绍self-attention。
接下来将通过一下几个步骤来介绍:
本例中我们选择三个输入值,已经通过embedding处理,得到了三个词向量。
- Input 1: [1, 0, 1, 0]
- Input 2: [0, 2, 0, 2]
- Input 3: [1, 1, 1, 1]
权重包括三个,分别是query的,key的以及value的,例如这三个权重分别初始化为
矩阵为:
- [[0, 0, 1],
- [1, 1, 0],
- [0, 1, 0],
- [1, 1, 0]]
矩阵为:
- [[1, 0, 1],
- [1, 0, 0],
- [0, 0, 1],
- [0, 1, 1]]
矩阵为:
- [[0, 2, 0],
- [0, 3, 0],
- [1, 0, 3],
- [1, 1, 0]]
有了输入和权重,接下来可以计算每个输入对应的key,query 和value了。
第一个输入的Key为:
- [0, 0, 1]
- [1, 0, 1, 0] x [1, 1, 0] = [0, 1, 1]
- [0, 1, 0]
- [1, 1, 0]
第二个输入的Key为:
- [0, 0, 1]
- [0, 2, 0, 2] x [1, 1, 0] = [4, 4, 0]
- [0, 1, 0]
- [1, 1, 0]
第三个输入的Key为:
- [0, 0, 1]
- [1, 1, 1, 1] x [1, 1, 0] = [2, 3, 1]
- [0, 1, 0]
- [1, 1, 0]
用矩阵的乘法来计算输入的Key为:
- [0, 0, 1]
- [1, 0, 1, 0] [1, 1, 0] [0, 1, 1]
- [0, 2, 0, 2] x [0, 1, 0] = [4, 4, 0]
- [1, 1, 1, 1] [1, 1, 0] [2, 3, 1]
同理我们计算value的结果为:
- [0, 2, 0]
- [1, 0, 1, 0] [0, 3, 0] [1, 2, 3]
- [0, 2, 0, 2] x [1, 0, 3] = [2, 8, 0]
- [1, 1, 1, 1] [1, 1, 0] [2, 6, 3]
最后我们计算query的结果:
- [1, 0, 1]
- [1, 0, 1, 0] [1, 0, 0] [1, 0, 2]
- [0, 2, 0, 2] x [0, 0, 1] = [2, 2, 2]
- [1, 1, 1, 1] [0, 1, 1] [2, 1, 3]
注意力的得分是通过query与每个key结果相乘。例如对于第一个query(红色)分别与三个key(橙色)相乘,得到结果(蓝色)就是注意力得分。
计算结果为:
- [0, 4, 2]
- [1, 0, 2] x [1, 4, 3] = [2, 4, 4]
- [1, 0, 1]
softmax函数直接对上一步中的注意力得分做归一化处理。
softmax([2, 4, 4]) = [0.0, 0.5, 0.5]
得到的每个得分值与自身的value直接相乘
- 1: 0.0 * [1, 2, 3] = [0.0, 0.0, 0.0]
- 2: 0.5 * [2, 8, 0] = [1.0, 4.0, 0.0]
- 3: 0.5 * [2, 6, 3] = [1.0, 3.0, 1.5]
上一步骤中输出结果求和就得到第一个输出值
- [0.0, 0.0, 0.0]
- + [1.0, 4.0, 0.0]
- + [1.0, 3.0, 1.5]
- -----------------
- = [2.0, 7.0, 1.5]
重复计算4-7,分别得到第二个和第三个输出值
于是三个输入经过self-attention模块,得到了三个输出值。这就是attention模块做的事情,是不是很简单。《Attention Is All You Need》论文中的attention计算公式:
attention最厉害的地方在于能够捕捉到全局信息,经过这个模块的输出结果,是通过输入结果两两运算得出了权重,再对输入进行加权求和得到了。除了捕捉全局信息,还能并行计算,这就比之前的RNN和CNN厉害多了,怪不得谷歌给这篇论文起名叫做Attention Is All You Need,有这个attention就够了。
原作者:Black先森
链接:https://www.jianshu.com/p/c6a090af4b30
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。