巩义网站建设托管,彩票网站开发是否合法,网站多域名怎么做,建设银行广西分行招聘网站注意力机制#xff08;attention#xff09;
在使用LSTM#xff0c;CNN等模型的时候#xff0c;很难决定对于一个信息什么是重要的#xff0c;什么是不重要的。因此注意力机制就是为了优化这一问题
怎么做注意力机制
注意力机制包含#xff0c;查询对象#xff08;Qattention
在使用LSTMCNN等模型的时候很难决定对于一个信息什么是重要的什么是不重要的。因此注意力机制就是为了优化这一问题
怎么做注意力机制
注意力机制包含查询对象Q被查询对象VK K k 1 , ⋯ , k n Kk_1,\cdots,k_n Kk1,⋯,kn 用Q与K做点乘求的K与Q的相似度做一层softmax回归得到相似度的概率在与v相乘最终得到新的v s o f t m a x ( a 1 , ⋯ , a n ) ∗ ( v 1 , ⋯ , v n ) V 1 softmax(a_1,\cdots,a_n)*(v_1,\cdots,v_n) V^1 softmax(a1,⋯,an)∗(v1,⋯,vn)V1 此时的 V 1 V^1 V1就包含了对于Q来说哪个信息更重要的信息。
自注意力机制self-attention
自注意力机制是注意力机制的一个子集注意力机制没有规定KQV的来源。 自注意力机制规定KQV都来自输入X可以说 K ≈ Q ≈ V K\approx Q\approx V K≈Q≈V。 KQV是由X点乘 W K , W Q , W V W_K,W_Q,W_V WK,WQ,WV三个参数得到的其余操作与注意力机制一样 为什么softmax要除以 d k \sqrt{d_k} dk 因为softmax会放大差距举个例子 7050 -》0.780.22 因此同时除以一个数字能够减少差距让最后的概率不会过于离谱
self-attention与RnnS对比
RnnS不能解决长序列的问题并且不能并行。 self-attention就解决了这个问题。 并且self-attention得到的z含有更多信息。
Masked掩码 Self-attention
用生成模型生成下一个词的时候我们希望给下一个词也做自注意力机制但是生成的词是一个一个生成的因此没有办法对整个句子做自注意力机制。 因此就需要掩码自注意力机制。 说白了就是你做第二个词的时候是不知道下一个词的
Multi-Head self-attention多头自注意力机制
提升了X生成的 Z ′ Z{} Z′相对于Z有了提升。 把X对应点乘不同的h通常为8个矩阵得到不同的8个QKV做自注意力机制。 最后得到的多个Z拼接起来在做一层线性变换得到合适的维度。
那么为什么这样做有用呢
独热编码将物品的意义映射到空间向量的一个位置上当你通过点乘W得到QKV相当于对这个物品意义的一部分进行自注意力的学习如果使用多头自注意力点乘不同的W得到8套QKV相当于给这个物品的多个层面上学习最终得到的Z所含信息就更全面预测自然更加准确。