注意力(Attention)與Seq2Seq的區別

早起的小蟲子發表於2021-02-13

什麼是注意力(Attention)?

  注意力機制可看作模糊記憶的一種形式。記憶由模型的隱藏狀態組成,模型選擇從記憶中檢索內容。深入瞭解注意力之前,先簡要回顧Seq2Seq模型。傳統的機器翻譯主要基於Seq2Seq模型。該模型分為編碼層和解碼層,並由RNN或RNN變體(LSTM、GRU等)組成。編碼向量是從模型的編碼部分產生的最終隱藏狀態。該向量旨在封裝所有輸入元素的資訊,以幫助解碼器進行準確的預測。其用於充當模型解碼器部分的初始隱藏狀態。

  Seq2Seq模型的主要瓶頸是需要將源序列的全部內容壓縮為固定大小的向量。如果文字稍長,則很容易丟失文字的某些資訊。為解決這個問題,注意力應運而生。注意機制通過使解碼器回顧源序列隱藏狀態,然後將其加權平均值作為附加輸入提供給解碼器來緩解該問題。使用注意力,顧名思義,模型在解碼階段選擇最適合當前節點的上下文作為輸入內容。

注意力與傳統的Seq2Seq模型有兩個主要區別:

  第一,編碼器向解碼器提供更多資料,並且編碼器會向解碼器提供所有節點的隱藏狀態,而不僅僅是編碼器的最後節點的隱藏狀態。

  第二,解碼器不直接將所有編碼器提供的隱藏狀態作為輸入,而是採用選擇機制來選擇與當前位置最匹配的隱藏狀態。為此,它嘗試通過計算每個隱藏狀態的得分值並對得分進行softmax計算來確定哪個隱藏狀態與當前節點相關性最高,這使得隱藏狀態的更高相關性具有更大的分數值,不太相關的隱藏狀態具有較小的分數值。然後它將每個隱藏狀態與其softmax得分相乘,從而放大分數高的隱藏狀態,淹沒分數低的隱藏狀態。該評分練習在解碼器側的每個迭代時間完成。

 

 

 

參考:

https://baijiahao.baidu.com/s?id=1646339383512667132&wfr=spider&for=pc

相關文章