关于attention的简单理解

对attention的简单理解

首先,令 V = { v 1 , . . . , v ∣ V ∣ } \mathcal{V} = \{v_1,...,v_{|\mathcal{V}|}\} V={ v1,...,vV} v i ∈ R d v_i \in \mathbb{R}^d viRd为item的向量表达;令 f : R d ∗ d → R f: \mathbb{R}^{d*d} \rightarrow \mathbb{R} f:RddR 或者 f : R d → R f: \mathbb{R}^{d} \rightarrow \mathbb{R} f:RdR f f f可以是perceptron,可以是内积、cos相似度等(两个自变量时);

α v i \alpha_{v_i} αvi为item对应的attention权重,其可以通过以下三种方式计算得到(目前只看到这三种,可能也有别的,大同小异吧,而且除了self-attention我们默认了 v i v_i vi既是key又是value):

  • 直接把自己映射成权重: α v i = s o f t m a x ( f ( v i ) ) \alpha_{v_i} = softmax(f(v_i)) αvi=softmax(f(vi))
  • 和query对比后映射成权重: α v i = s o f t m a x ( f ( q u e r y , v i ) ) \alpha_{v_i} = softmax(f(query,v_i)) αvi=softmax(f(query,vi))
  • self-attention:把自己分别映射为query和key,再对比映射为权重( W q , W k ∈ R d ∗ l W^q,W^k \in \mathbb{R}^{d*l} Wq,WkRdl), f f f为内积 α v i = s o f t m a x ( f ( v i ⋅ W q , v i ⋅ W k ) ) \alpha_{v_i} = softmax(f(v_i\cdot W^q,v_i\cdot W^k)) αvi=softmax(f(viWq,viWk))

最终有item的repr e i = ∑ V α v j v j e_i = \sum_{\mathcal{V}} \alpha_{v_j}v_j ei=Vαvjvj

参考

  1. Attention is All You Need
  2. illustrated transformer

猜你喜欢

转载自blog.csdn.net/namespace_Pt/article/details/109133099