做水果蔬菜生意网站/常用的关键词优化策略有哪些
原理源码讲解:https://www.jiqizhixin.com/articles/2018-11-06-10
https://nlp.seas.harvard.edu/2018/04/03/attention.html
这篇文章是火遍全宇宙,关于网上的解读也非常多,将自己看完后的一点小想法也总结一下。
看完一遍之后,有很多疑问,我是针对每个疑问都了解清楚后才算明白了这篇文章,可能写的不到位,只是总结下,下次忘记了便于翻查。
一:Q,K, V 到底是什么?
在传统的seq2seq框架下:
query: seq2seq模型中decode时隐层向量St−1_{t-1}t−1, 记作qt−1_{t-1}t−1, Q就是多个query组成的矩阵Q
value: seq2seq模型中encode时的隐层向量hi_ii,记作vi_ii, V是输入序列中n个词的embedding矩阵
key: 对hi_ii做了一次先行映射得到的向量, 记作ki_ii,K同上
在本文的transformer下,结合文字和图:
(1) encoder self-attention
Q 就是input sequence(w1w_1w1, w2w_2w2, …, wiw_iwi, …, wnw_nwn)将其映射为word embedding后 (x1x_1x1, x2x_2x2, …, xix_ixi, …, xnx_nxn),Q= (x1x_1x1, x2x_2x2, …, xix_ixi, …, xnx_nxn),并且 K=V=Q
(2) decoder self-attention
当t=0时,decoder self-attention的Q是<bos>的embedding, 当t=j时,Q=(E<bos>_{<bos>}<bos>, Ey1_{y1}y1, …, Eyj−1_{y_{j-1}}yj−1), 其中yj−1_{j-1}j−1是t=j-1时刻decoder的输出. K=V=Q
(3) encoder-decoder self-attention
K=V是encoder的输出,将encoder的输出传给decoder, 这一操作使得decoder可以获取输入XXX序列的信息, 类似于传统seq2seq中的decoder端的attention. Q是decoder self-attention的输出.
二: 怎么理解self-attention, 怎么做self-attention,为什么用self-attention?
(1) 在传统的 seq2seq 中的 encoder 阶段,针对输入XXX = (x1x_1x1, x2x_2x2, …,xix_ixi, …, xnx_nxn),经过RNN或LSTM变换后得到序列的隐层状态 HHH = (h1h_1h1, h2h_2h2, …, hih_ihi, …, hnh_nhn),但是此篇文章抛弃了 RNN,encoder 过程就没了 hidden states,那拿什么做 self-attention 呢?input 的 sequence 共有 n 个 word,将每一个 word 映射成 embedding, 就得到 n 个 embedding,可以用 embedding 代替 hidden state 做 self-attention 。所以 Q 就是一个n行dkd_kdk列的矩阵,这个矩阵就是n个词的embedding,并且Q=K=V。那么为什么管Q 就是query呢?就是每次用一个词的embedding,去计算其与剩下的(n-1)个词的 embedding 的 match 程度(也就是 attention 的大小,这就是self-attention的意思了。
针对n个词,一共要做n轮这样的操作:
(2)首先将query 和每个key进行相似度计算得到权重,常用的相似度函数有点积拼接,感知机等
然后使用一个softmax函数对这些权重归一化,最后权重与相应的键值value进行加权求和得到attention后的context
(3) 句子中的每个词都要和该句子中的所有词进行attention计算,目的是学习句子内部的词以来关系,捕获句子的内部结构。
三:怎么理解 decoder self-attention中的Masked Multi-Head Attention
四:如何理解公式(1), 怎么理解缩放因子1dk\frac{1}{\sqrt{d_k}}dk1?
公式(1)中的softmax(QKTdk\frac{QK^T}{\sqrt{d_k}}dkQKT) 就是类似aija_{ij}aij和cic_ici的计算,Q和K就相当于eije_{ij}eij计算中的Si−1S_{i-1}Si−1和hjh_jhj:
上图中的Q换成q, K换成k
参考文献:
源码解读:https://blog.csdn.net/mijiaoxiaosan/article/details/74909076
https://blog.csdn.net/yiyele/article/details/81913031
https://blog.csdn.net/qq_41058526/article/details/80783925?utm_source=blogxgwz0
https://blog.csdn.net/hpulfc/article/details/83310089
https://zhuanlan.zhihu.com/p/38485843
https://blog.csdn.net/lqfarmer/article/details/73521811
http://www.sohu.com/a/215705742_500659
https://www.jianshu.com/p/3f2d4bc126e6