深度学习(二十五)——Attention(2)
Attention(續)
Multi-Head Attention
這個是Google提出的新概念,是Attention機制的完善。不過從形式上看,它其實就再簡單不過了,就是把Q,K,V通過參數矩陣映射一下,然后再做Attention,把這個過程重復做h次,結果拼接起來就行了,可謂“大道至簡”了。具體來說:
headi=Attention(QWQi,KWKi,VWVi)headi=Attention(QWiQ,KWiK,VWiV)
所謂“多頭”(Multi-Head),就是只多做幾次同樣的事情(參數不共享),然后把結果拼接。
Self Attention
到目前為止,對Attention層的描述都是一般化的,我們可以落實一些應用。比如,如果做閱讀理解的話,Q可以是篇章的詞向量序列,取K=V為問題的詞向量序列,那么輸出就是所謂的Aligned Question Embedding。
而在Google的論文中,大部分的Attention都是Self Attention,即“自注意力”,或者叫內部注意力。
所謂Self Attention,其實就是Attention(X,X,X),X就是前面說的輸入序列。也就是說,在序列內部做Attention,尋找序列內部的聯系。
Position Embedding
然而,只要稍微思考一下就會發現,這樣的模型并不能捕捉序列的順序!換句話說,如果將K,V按行打亂順序(相當于句子中的詞序打亂),那么Attention的結果還是一樣的。這就表明了,到目前為止,Attention模型頂多是一個非常精妙的“詞袋模型”而已。
這問題就比較嚴重了,大家知道,對于時間序列來說,尤其是對于NLP中的任務來說,順序是很重要的信息,它代表著局部甚至是全局的結構,學習不到順序信息,那么效果將會大打折扣(比如機器翻譯中,有可能只把每個詞都翻譯出來了,但是不能組織成合理的句子)。
于是Google再祭出了一招——Position Embedding,也就是“位置向量”,將每個位置編號,然后每個編號對應一個向量,通過結合位置向量和詞向量,就給每個詞都引入了一定的位置信息,這樣Attention就可以分辨出不同位置的詞了。
Hard Attention
論文:
《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》
我們之前所描述的傳統的Attention Mechanism是Soft Attention。Soft Attention是參數化的(Parameterization),因此可導,可以被嵌入到模型中去,直接訓練。梯度可以經過Attention Mechanism模塊,反向傳播到模型其他部分。
相反,Hard Attention是一個隨機的過程。Hard Attention不會選擇整個encoder的輸出做為其輸入,Hard Attention會依概率Si來采樣輸入端的隱狀態一部分來進行計算,而不是整個encoder的隱狀態。為了實現梯度的反向傳播,需要采用蒙特卡洛采樣的方法來估計模塊的梯度。
兩種Attention Mechanism都有各自的優勢,但目前更多的研究和應用還是更傾向于使用Soft Attention,因為其可以直接求導,進行梯度反向傳播。
Local Attention
論文:
《Effective Approaches to Attention-based Neural Machine Translation》
Thang Luong,越南人,Stanford博士(2016),現為Google研究員。導師是Christopher Manning。
個人主頁:
https://nlp.stanford.edu/~lmthang/
Christopher Manning,澳大利亞人,Stanford博士(1994),現為Stanford教授。從事NLP近三十年,率先將統計方法引入NLP。
傳統的Attention model中,所有的hidden state都被用于計算Context vector的權重,因此也叫做Global Attention。
Local Attention:Global Attention有一個明顯的缺點就是,每一次,encoder端的所有hidden state都要參與計算,這樣做計算開銷會比較大,特別是當encoder的句子偏長,比如,一段話或者一篇文章,效率偏低。因此,為了提高效率,Local Attention應運而生。
Local Attention是一種介于Kelvin Xu所提出的Soft Attention和Hard Attention之間的一種Attention方式,即把兩種方式結合起來。其結構如下圖所示。
Attention over Attention
《Attention-over-Attention Neural Networks for Reading Comprehension》
總結
從最初的原始Attention,到后面的各種示例,不難看出Attention實際上是一個大籮筐,凡是不好用CNN、RNN、FC概括的累計乘加,基本都可冠以XX Attention的名義。
雖然,權重的確代表了Attention的程度,然而直接叫累計乘加,似乎更接近操作本身一些。
考慮到神經網絡的各種操作基本都是累計乘加的變種,因此,Attention is All You Need實際上是很自然的結論,你總可以對Attention進行修改,讓它實現CNN、RNN、FC的效果。
這點在AI芯片領域尤為突出,無論IC架構差異如何巨大,硬件底層基本就是乘累加器。
Transformer
Attention的介紹到此為止,但《Attention is All You Need》的傳奇繼續,該文不僅提出了兩種Attention模塊,而且還提出了如下圖所示的Transformer模型。該模型主要用于NMT領域,由于Attention不依賴上一刻的數據,同時精度也不弱于LSTM,因此有很好并行計算特性,在工業界得到了廣泛應用。阿里巴巴和搜狗目前的NMT方案都是基于Transformer模型的。
參考:
https://mp.weixin.qq.com/s/HquT_mKm7x_rbDGz4Voqpw
阿里巴巴最新實踐:TVM+TensorFlow提高神經機器翻譯性能
https://mp.weixin.qq.com/s/S_xhaDrOaPe38ZvDLWl4dg
從技術到產品,搜狗為我們解讀了神經機器翻譯的現狀
參考
http://geek.csdn.net/news/detail/106118
Attention and Augmented Recurrent Neural Networks譯文
http://blog.csdn.net/rtygbwwwerr/article/details/50548311
Neural Turing Machines
http://www.robots.ox.ac.uk/~tvg/publications/talks/NeuralTuringMachines.pdf
Neural Turing Machines
http://blog.csdn.net/malefactor/article/details/50550211
自然語言處理中的Attention Model
https://yq.aliyun.com/articles/65356
圖文結合詳解深度學習Memory & Attention
http://www.cosmosshadow.com/ml/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/2016/03/08/Attention.html
Attention
https://mp.weixin.qq.com/s/b5d_jNNDB_a_VFdT3J3Vog
通俗易懂理解Attention機制
http://geek.csdn.net/news/detail/50558
深度學習和自然語言處理中的attention和memory機制
https://zhuanlan.zhihu.com/p/25928551
用深度學習(CNN RNN Attention)解決大規模文本分類問題-綜述和實踐
http://blog.csdn.net/leo_xu06/article/details/53491400
視覺注意力的循環神經網絡模型
https://mp.weixin.qq.com/s/XrlveG0kwij2qNL45TZdBg
Attention的另類用法
https://zhuanlan.zhihu.com/p/31547842
深度學習中Attention Mechanism詳細介紹:原理、分類及應用
https://zhuanlan.zhihu.com/p/32089282
Attention學習筆記
https://mp.weixin.qq.com/s/0yb-YRGe-q4-vpKpuE4D_w
多種注意力機制互補完成VQA(視覺問答)
https://mp.weixin.qq.com/s/LQ7uv0-AakkHE5b17yemqw
Awni Hannun:序列模型Attention Model中的問題與挑戰
https://mp.weixin.qq.com/s/xr_1ZYbvADMMwgxLEAflCw
如何在語言翻譯中理解Attention Mechanism?
https://mp.weixin.qq.com/s/Nyq_36aFmQYRWdpgbgxpuA
將注意力機制引入RNN,解決5大應用領域的序列預測問題
https://mp.weixin.qq.com/s/2gxp7A38epQWoy7wK8Nl6A
谷歌翻譯最新突破,“關注機制”讓機器讀懂詞與詞的聯系
https://mp.weixin.qq.com/s/g2PcmsDW9ixUCh_yP8W-Vg
各類Seq2Seq模型對比及《Attention Is All You Need》中技術詳解
https://mp.weixin.qq.com/s/FtI94xY6a8TEvFCHfjMnmA
小組討論谷歌機器翻譯Attention is All You Need
https://mp.weixin.qq.com/s/SqIMkiP1IZMGWzwZWGOI7w
談談神經網絡的注意機制和使用方法
https://mp.weixin.qq.com/s/POYTh4Jf7HttxoLhrHZQhw
基于雙向注意力機制視覺問答pyTorch實現
https://mp.weixin.qq.com/s/EMCZHuvk5dOV_Rz00GkJMA
近年火爆的Attention模型,它的套路這里都有!
https://mp.weixin.qq.com/s/y_hIhdJ1EN7D3p2PVaoZwA
阿里北大提出新attention建模框架,一個模型預測多種行為
https://mp.weixin.qq.com/s/Yq3S4WrsQRQC06GvRgGjTQ
打入神經網絡思維內部
https://mp.weixin.qq.com/s/MJ1578NdTKbjU-j3Uuo9Ww
基于文檔級問答任務的新注意力模型
https://mp.weixin.qq.com/s/C4f0N_bVWU9YPY34t-HAEA
UNC&Adobe提出模塊化注意力模型MAttNet,解決指示表達的理解問題
https://mp.weixin.qq.com/s/V3brXuey7Gear0f_KAdq2A
基于注意力機制的交易上下文感知推薦,悉尼科技大學和電子科技大學最新工作
http://mp.weixin.qq.com/s/Bt6EMD4opHCnRoHKYitsUA
結合人類視覺注意力進行圖像分類
https://zhuanlan.zhihu.com/p/27464080
從《Convolutional Sequence to Sequence Learning》到《Attention Is All You Need》
http://www.cnblogs.com/robert-dlut/p/8638283.html
自然語言處理中的自注意力機制!
https://mp.weixin.qq.com/s/l4HN0_VzaiO-DwtNp9cLVA
循環注意力區域實現圖像多標簽分類
https://mp.weixin.qq.com/s/zhZLK4pgJzQXN49YkYnSjA
自適應注意力機制在Image Caption中的應用
https://mp.weixin.qq.com/s/uvr-G5-_lKpyfyn5g7ES0w
基于注意力機制,機器之心帶你理解與訓練神經機器翻譯系統
https://mp.weixin.qq.com/s/ANpBFnsLXTIiW6WHzGrv2g
自注意力機制學習句子embedding
https://mp.weixin.qq.com/s/49fQX8yiOIwDyof3PD01rA
CMU&谷歌大腦提出新型問答模型QANet:僅使用卷積和自注意力,性能大大優于RNN
https://mp.weixin.qq.com/s/c64XucML13OwI26_UE9xDQ
滴滴披露語音識別新進展:基于Attention顯著提升中文識別率
總結
以上是生活随笔為你收集整理的深度学习(二十五)——Attention(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(二十四)——L2 Normal
- 下一篇: 深度学习(二十六)——VAE