深度學習筆記(33):從seq2seq到注意力模型

seq2seq

首先我們要明白,seq2seq是在讀入一個序列,生成一個序列。他的思想是encode和decode的思想,即先通過一組RNN進行編碼將語言喫進來產生一個整體的語義,然後再不斷通過剛剛產生的y值和解讀出來的語義再通過一組RNN進行解碼將語言序列翻譯成另一組序列。
抽象看就是如下公式:
X = (x1,x2,x3,x4,…xm)
Y = (y1,y2,y3,y4…yn)
C = F(x1,x2,…xm)
yi = G(C,y1,y2,…yi-1)
其中X是輸入序列,Y是輸出序列,C是中傳信息,yi是Y中每一個單詞,遞歸生成
在這裏插入圖片描述

Attention Model

但是這麼做的問題在於,我們的注意力實際上是均等的。當我們從yi到yi+1,從yi+1再到yi+2實質上使用的是同一個C值。即原序列的x對於每一個y的影響力都是一樣的,沒有區別。(實際上對於RNN反而是越往後面的單詞權重越大)而這樣是不對的,對於某一個詞,當我們我們要翻譯它時應該給予他更多的權重,否則對於那些足以讓這個詞沉沒在句子中的長句子來講,翻譯效果一定是不好的,抑或是要付出很高昂的額外的代價。
怎麼解決這個問題的思考引導出了注意力機制的發現。
比如:
"Tom chase Jerry"這麼一句話裏面,我們可以發現,當我們翻譯到Jerry成爲傑瑞時,我們想要給予Jerry更多的權重,比如這時候我們要把C分成2:3:5其中5分都在Jerry上。那麼我們怎麼獲得這個權重值呢?
以翻譯湯姆的時候爲例,事實上我們是這麼獲得C的,其中f(Tom),f(Jerry)等都是RNN傳遞的隱藏值,a是訓練的權重矩陣。
在這裏插入圖片描述
我們接下來來談談概率權重矩陣的獲得,實際上如下圖,當我們想要獲得yi時,我們使用Hi-1和之前的所有h來計算一個Hi和之前位置對其的可能性分佈,然後使用softmax轉化成概率,進而得到概率權重矩陣。
在這裏插入圖片描述

參考資料

https://zhuanlan.zhihu.com/p/37601161?utm_source=qq&utm_medium=social&utm_oi=843233220597284864
(這篇文章寫得絕了)
https://blog.csdn.net/weixin_44334615/article/details/106323143
(煊煊把吳恩達那個講活了)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章