注意力机制 attention Transformer 笔记

动手学深度学习
paddlepedia

注意力

例子:有一个Python字典dictionary,有3个键和3个值
传递了一个单独的查询’color’

dictionary = {
   'color': 'blue', 'age': 22, 'type': 'pickup'}
result = dictionary['color']

查询(Q)是你要找的内容:‘color’
键(K)表示字典里有什么样的信息:‘color’, ‘age’, ‘type’
值(V)则是对应的信息:‘blue’, 22, ‘pickup’
在普通的字典查找中,字典会找到匹配的键,并返回其对应的值;
如果查询找不到完全匹配的键,也许你会期望返回最接近的值
如果你查找’species’,result 可能会期望返回’pickup’,因为它是最接近查询的匹配。
注意力汇聚的输出为值的加权和
注意力汇聚的输出为值的加权和

查询的长度为q,键的长度为k,值的长度为v。
q ∈ R 1 × q , k ∈ R 1 × k , v ∈ R 1 × v {\bf{q}} \in { {\mathbb R}^{1 \times q}},{ {\bf{k}}} \in { {\mathbb R}^{1 \times k}},{ {\bf{v}}} \in {\mathbb{R}^{1 \times v}} qR1×q,kR1×k,vR1×v
n个查询和m个键-值对
Q ∈ R n × q , K ∈ R m × k , V ∈ R m × v {\bf{Q}} \in { {\mathbb R}^{n \times q}},{\bf{K}} \in { {\mathbb R}^{m \times k}},{\bf{V}} \in {\mathbb{R}^{m \times v}} QRn×q,KRm×k,VRm×v
a ( Q , K ) ∈ R n × m {\bf{a}}\left( { {\bf{Q}},{\bf{K}}} \right) \in {\mathbb{R}^{n \times m}} a(Q,K)Rn×m注意力评分函数
α ( Q , K ) = s o f t m a x ( a ( Q , K ) ) = exp ⁡ ( a ( Q , K ) ) ∑ j = 1 m exp ⁡ ( a ( Q , K ) ) ∈ R n × m {\boldsymbol{\alpha}} \left( { {\bf{Q}},{\bf{K}}} \right) = {\rm{softmax}}\left( { {\bf{a}}\left( { {\bf{Q}},{\bf{K}}} \right)} \right) = \frac{ {\exp \left( { {\bf{a}}\left( { {\bf{Q}},{\bf{K}}} \right)} \right)}}{ {\sum\limits_{j = 1}^m {\exp \left( { {\bf{a}}\left( { {\bf{Q}},{\bf{K}}} \right)} \right)} }} \in {\mathbb{R}^{n \times m}} α(Q,K)=softmax(a(Q,K))=j=1mexp(a(Q,K))exp(a(Q,K))Rn×m注意力权重
f ( Q , K , V ) = α ( Q , K ) ⊤ V ∈ R n × v f({\bf{Q}},{\bf{K}},{\bf{V}}) = {\boldsymbol{\alpha}} {\left( { {\bf{Q}},{\bf{K}}} \right)^ \top }{\bf{V}} \in {\mathbb{R}^{n \times v}} f(Q,K,V)=α(Q,K)VRn×v注意力汇聚函数

加性注意力

q ∈ R 1 × q , k ∈ R 1 × k {\bf{q}} \in {\mathbb {R}^{1 \times q}},{\bf{k}} \in {\mathbb {R}^{1 \times k}} qR1×q,kR1×k
W q ∈ R h × q , W k ∈ R h × k , w v ∈ R h × 1 { {\bf{W}}_q} \in { {\mathbb R}^{h \times q}},{ {\bf{W}}_k} \in { {\mathbb R}^{h \times k}},{ {\bf{w}}_v} \in { {\mathbb R}^{h \times 1}} WqRh×q,WkRh×k,wvRh×1
a ( q , k ) = w v ⊤ t a n h ( W q q ⊤ + W k k ⊤ ) ∈ R a({\bf{q}},{\bf{k}}) = {\bf{w}}_v^ \top {\rm{tanh}}({ {\bf{W}}_q}{ {\bf{q}}^ \top } + { {\bf{W}}_k}{ {\bf{k}}^ \top }) \in \mathbb {R} a(q,k)=wvtanh(Wqq+Wkk)R注意力评分函数

缩放点积注意力

q ∈ R 1 × d , k ∈ R 1 × d , v ∈ R 1 × v {\bf{q}} \in { {\mathbb R}^{1 \times d}},{\bf{k}} \in { {\mathbb R}^{1 \times d}},{\bf{v}} \in { {\mathbb R}^{1 \times v}} qR1×d,kR1×d,vR1×v
a ( q , k ) = 1 d q k ⊤ ∈ R a\left( { {\bf{q}},{\bf{k}}} \right) = \frac{1}{ {\sqrt d }}{\bf{q}}{ {\bf{k}}^ \top } \in \mathbb{R} a(q,k)=d 1qkR注意力评分函数
f ( q , k , v ) = α ( q , k ) ⊤ v = s o f t m a x ( 1 d q k ⊤ ) v ∈ R 1 × v f({\bf{q}},{\bf{k}},{\bf{v}}) = \alpha {\left( { {\bf{q}},{\bf{k}}} \right)^ \top }{\bf{v}} = {\rm{softmax}}\left( {\frac{1}{ {\sqrt d }}{\bf{q}}{ {\bf{k}}^ \top }} \right){\bf{v}} \in { {\mathbb R}^{1 \times v}} f(q,k,v)=α(q,k)v=softmax(d 1qk)vR1×v注意力汇聚函数

n个查询和m个键-值对
Q ∈ R n × d , K ∈ R m × d , V ∈ R m × v \mathbf Q\in\mathbb R^{n\times d}, \mathbf K\in\mathbb R^{m\times d}, \mathbf V\in\mathbb R^{m\times v} QRn×d,KRm×d,VRm×v
a ( Q , K ) = 1 d Q K ⊤ ∈ R n × m {\bf{a}}\left( { {\bf{Q}},{\bf{K}}} \right) = \frac{1}{ {\sqrt d }}{\bf{Q}}{ {\bf{K}}^ \top } \in {\mathbb{R}^{n \times m}} a(Q,K)=d 1QKRn×m注意力评分函数
f ( Q , K , V ) = α ( Q , K ) ⊤ V = s o f t m a x ( 1 d Q K ⊤ ) V ∈ R n × v f({\bf{Q}},{\bf{K}},{\bf{V}}) = {\boldsymbol{\alpha}} {\left( { {\bf{Q}},{\bf{K}}} \right)^ \top }{\bf{V}} ={\rm{softmax}}\left( {\frac{1}{ {\sqrt d }}{\bf{Q}}{ {\bf{K}}^ \top }} \right){\bf{V}} \in {\mathbb{R}^{n \times v}} f(Q,K,V)=α(Q,K)V=softmax(d 1QK)VRn×v注意力汇聚函数
Attention Is All You Need
Attention Is All You Need

多头注意力

paddlepedia
L is the length of the sequence
d = 64 is the embedding dimension 是序列中用于表示每个符号的向量的长度
p = 64 is the dimension used in the attention function 是线性层的输出维度
h = 8
po = hd = 512

q ∈ R 1 × d q , k ∈ R 1 × d k , v ∈ R 1 × d v {\bf{q}} \in { {\mathbb R}^{1 \times {d_q}}},{\bf{k}} \in { {\mathbb R}^{1 \times {d_k}}},{\bf{v}} \in { {\mathbb R}^{1 \times {d_v}}} qR1×dq,kR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzz的学习笔记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值