Talking-Heads Attention
多头注意力机制各头独立进行, Talking-Heads 即交头接耳.
注意力机制
已知矩阵 Qn1×dkQ_{n_1 \times d_k}Qn1×dk, Kn2×dkK_{n_2 \times d_k}Kn2×dk, Vn2×dvV_{n_2\times d_v}Vn2×dv, 注意力
Attention(Q,K,V):=A^V:=Softmax(QKTdk)V.\operatorname{ Attention}(Q,K,V):= \hat{A}V:=\operatorname{ Softmax}(\frac{QK^T}{\sqrt{d_k}})V.Attention(Q,K,V):=A^V:=Softmax(dkQKT)V.
将 VVV记为 (v1⋮vn2)\left( \begin{array}{c} v_{1} \\ \vdots \\ v_{n_2} \end{array} \right)⎝⎜⎛v1⋮vn2⎠⎟⎞. 可以将 viv_ivi 想象成第 i 个词汇的向量. 注意力的第 i 个 行向量为
zi:=(∑kA^i,kVk,1,⋯,∑kA^i,kVk,dv)=∑kA^i,kvk.z_i:=(\sum_k\hat{A}_{i,k}V_{k,1}, \cdots, \sum_k\hat{A}_{i,k}V_{k,d_v} )=\sum_k \hat{A}_{i,k}v_k.zi:=(k∑A^i,kVk,1,⋯,k∑A^i,kVk,dv)=k∑A^i,kvk.
这表明 第 i 个行向量 由 V 的所有向量(词汇) 共同决定.
多头注意力机制
通过将 文字的向量分为 h 个片段, 各个片段 做注意力机制, 将得到的矩阵从左到右拼接, 得到一个矩阵, 将之投影到输出矩阵 WOW^OWO.
矩阵 WiQW_i^QWiQ, WiKW_i^KWiK,WiVW_i^VWiV 分别是 dk×dk′d_k \times d'_kdk×dk′, dk×dk′d_k \times d'_kdk×dk′, dv×dv′d_v \times d'_vdv×dv′.令
Qi:=QWiQQ_i:=QW_i^QQi:=QWiQ, Ki:=KWiKK_i:=KW_i^KKi:=KWiK, Vi:=VWiVV_i:=VW_i^VVi:=VWiV, 有注意力机制
headi:=Attention(Qi,Ki,Vi)\operatorname{head_i}:= \operatorname{ Attention}(Q_i,K_i,V_i)headi:=Attention(Qi,Ki,Vi).
Multihead(Q,K,V):=Concat(head1,⋯,headh)WO,\operatorname{Multihead}(Q,K,V):=\operatorname{Concat}(\operatorname{head}_1, \cdots, \operatorname{head_h} )W^O, Multihead(Q,K,V):=Concat(head1,⋯,headh)WO,
Talking-Heads Attention
如果我们将 多头 看成是 Q,K,VQ, K,VQ,K,V 都分为 h 个头. 也可以考虑他们分的头不相同的情况. Q,KQ,KQ,K 分为 hkh_khk 个头, VVV 分为 hvh_vhv 个头. h 是 QiKiTQ_iK_i^TQiKiT 中 i 的取值数目. 这里应该注意到 如果不用 hhh 限制, i 应该有 hkh_khk 种取值. 从 hkh_khk 到 hhh 我们需要使用 转移矩阵 Plhk×h\operatorname{Pl}_{h_k \times h}Plhk×h. 分别 softmax 后 头依然是 h 个, 但是 VVV 的头有 hvh_vhv个所以还需要使用 转移矩阵让 softmax 转移到 hvh_vhv 个头上, 转移矩阵为 Pwh,hv\operatorname{Pw}_{h,h_v}Pwh,hv.
需要学习的参数 WiQ,WiKW_i^Q,W_i^KWiQ,WiK, 1≤i≤hk1 \leq i \leq h_k1≤i≤hk. WiV,WiOW_i^V, W_i^OWiV,WiO, 1≤i≤hv1\leq i \leq h_v1≤i≤hv. Plhk×h\operatorname{Pl}_{h_k \times h}Plhk×h, Pwh×hv\operatorname{Pw}_{h\times h_v}Pwh×hv.
依据上面的思路
Ll:=∑jsoftmax(∑iQiKiTPli,j)Pwj,lL_l:=\sum_{j}\operatorname{softmax}(\sum_iQ_iK_i^T\operatorname{Pl}_{i,j})\operatorname{Pw}_{j,l} Ll:=j∑softmax(i∑QiKiTPli,j)Pwj,l 对矩阵的行向量归一化. 注意力机制最后一步 softmax 乘以 VlV_lVl
Ul:=LlVlU_l:=L_l V_lUl:=LlVl
对多头注意力还需要拼接 UlU_lUl, 然后乘以 WOW^OWO.
我们做一点改动, UlU_lUl 是 其拼接矩阵的 1×hv1 \times h_v1×hv 分块, 将 WOW^OWO 分块为 hv×1h_v \times 1hv×1
(W1O⋮WhvO)\left( \begin{array}{c} W^O_{1} \\ \vdots \\ W_{h_v}^O \end{array} \right)⎝⎜⎛W1O⋮WhvO⎠⎟⎞
这样我们可以使用 WlOW^O_lWlO 取代 WOW^OWO. 每个头做注意力机制然后相加.即
O:=∑lhvUlWlO.O:=\sum_l^{h_v}U_l W_l^O. O:=l∑hvUlWlO.
什么 要将 点乘的头和 Q,KQ,KQ,K 的头区分?
为什么 QQQ, KKK 得 头要一样多?
Talking-Heads Attention相关推荐
- 图文并茂解释Transformer--The Illustrated Transformer翻译精简
原文链接https://jalammar.github.io/illustrated-transformer/ 所需知识储备: RNN, Seq2Seq序列模型,Residual残差计算... 自从A ...
- attention seq2seq transformer bert 学习总结 _20201107
https://blog.csdn.net/weixin_44388679/article/details/102575223 Seq2Seq原理详解 一文读懂BERT(原理篇) 2018年的10月1 ...
- “Attention is All You Need 翻译
<p><img src="output_0_0.png" alt="png"></p> "Attention is ...
- 全领域涨点 | Evolving Attention在CV与NLP领域全面涨点
本文提出了一种新型通用的注意力机制Evolving Attention来提高Transformer的性能.针对多种任务,其中包括图像分类.自然语言理解和机器翻译,本文所提出的Evolving Atte ...
- NLP中的Attention注意力机制+Transformer详解
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者: JayLou娄杰 知乎链接:https://zhuanlan.zhihu. ...
- Attention Is All You Need (transformer)
Transformer 研究意义: 1.提出了self-attention,拉开了非序列化模型的序幕 2.为预训练模型的到来打下了坚实的基础 序列化模型主导(LSTM) <----- 2017 ...
- Paper:2017年的Google机器翻译团队《Transformer:Attention Is All You Need》翻译并解读
Paper:2017年的Google机器翻译团队<Transformer:Attention Is All You Need>翻译并解读 目录 论文评价 1.Motivation: 2.创 ...
- 【知识星球】ElementAI提出超复杂多尺度细粒度图像分类Attention模型
欢迎大家来到<知识星球>专栏,这里是网络结构1000变小专题. 作者&编辑 | 言有三 1 Attention模型 Attention机制已经被证明在很多的任务中都能提升其性能,我 ...
- AAAI 2021最佳论文亚军:Attention+积分梯度=归因解释新方法
©PaperWeekly 原创 · 作者|李泺秋 学校|浙江大学硕士生 研究方向|自然语言处理.知识图谱 本文是对 AAAI 2021 最佳论文亚军得主<Self-Attention Attri ...
- 【Transformer】CrossFormer:A versatile vision transformer based on cross-scale attention
文章目录 一.背景 二.动机 三.方法 3.1 Cross-scale Embedding Layer(CEL) 3.2 Cross-former Block 3.2.1 Long Short Dis ...
最新文章
- html body 间距,VBA&amp; HTMLBody - 正文和签名之间的间距
- codeforces round 422 div2 补题 CF 822 A-F
- python array函数_Python numpy.array函数方法的使用
- 使用友盟分享心得(SSO登陆,不能获取accesstoken,不能跳转APPSSO登陆的问题)
- Java BigDecimal和double区别
- java中变量运算细节 (2)
- 快捷键查看Emacs源码
- app调用webapi时候出现读取不到session的问题
- vue + ElementUI如何动态删除表格当前行内容
- 用Python绘制杨紫作品集动态二维码
- 这条命令帮我在一分钟内修改了200台远程服务器密码!
- 组织能力:企业成败的关键(组织能力杨三角系列一)
- win10计算机怎么拨号上网,win10如何设置宽带拨号连接
- 【翻译】torch.device的使用举例
- 从招股书看蚂蚁集团的技术底色
- 读取网络时间完整代码
- 自发光材质、panner、sin——移动的光栅
- 计算机二级c语言软件是,我想考计算机二级考C语言,用哪个教材?下载哪个软件?谢谢!!!!...
- call和calling的用法_call和called的区别和用法
- 美国圣克鲁斯大学计算机科学,加州大学圣克鲁兹分校最热门专业,了解一下?...