為超參數,表示二叉樹中每個層級由多少個節點與葉子節點連接。構建完整個圖後,該模型可通過以下算法更新參數:
其中 GSA (Graph Self-Attention) 為:
A(u) 為所有與 u 節點想連的節點,由上面公式可見 GSA 其實就是多頭注意力機制,只是相比原始 Transformer 計算一個節點與所有節點的注意力,這裡只計算節點與其相鄰節點的注意力,而因為在二叉樹中有跨層次的節點連接即有自節點元素和中間節點元素(片段)的連接,就實現在計算不同粒度下的注意力。該模型在初始化時,葉子節點初始化為相應的詞向量,而片段節點則初始化為零。在針對像語言模型這種序列型的下遊任務中,可使用葉子節點的輸出,而針對像文本分類等需要用的整個句子的則使用二叉樹根節點的輸出。作者在多個任務中測試,結果表明相比原始的注意力計算方式,該模型在長文本任務中取得了更好的表現。學習更長語義聯繫的Transformer
1. Transformer-XL
論文標題: Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context論文連結: https://arxiv.org/abs/1901.02860代碼連結: https://github.com/kimiyoung/transformer-xl
相比原始 Transformer,Transformer-XL 有以下兩個變化:1)引入循環機制,使得新模型能夠學習到更長的語義聯繫;2)拋棄絕對位置表示,採用相對位置表示。
1.1 循環機制
在原始 Transformer 中,每個序列的計算相互獨立,因此也導致了其只能夠學習到同個序列內的語義聯繫。而在 Transformer-XL 中,每個序列計算後的隱狀態會參與到下一個序列的計算當中,使得模型能夠學習到跨序列的語義聯繫。
如下圖所示,左邊為原始 Transformer,右邊為 Transformer-XL。
相比原始 Transformer,Transformer-XL 模型的計算當中加入綠色連線,使得當層的輸入取決於本序列和上一個序列前一層的輸出。具體計算公式如下:
其中 h 為隱藏層,n 為層數, τ 表示序列數,W 為模型參數,° 表示矩陣拼接。SG 意為 stop-gradient,即停止梯度計算,這樣雖然在計算中運用了前一個序列的計算結果,但是在反向傳播中並不對其進行梯度的更新。
式子一:將上一序列上一層隱狀態與本序列上一層隱狀態進行矩陣拼接,這也是 Transformer-XL 實現循環機制的關鍵。
式子二:計算注意力機制所需的 q,k,v。與原始 Transformer 不同的是 k,v 的計算是取決於由式一得到的隱狀態,而 q 則是只含有本序列的信息。在注意力的計算中,q 與 k,v 的相互作用讓模型實現了跨序列的語義學習。
式子三:常規的 Transformer 層計算。
Transformer-XL 通過引入跨層的循環機制,使得模型能夠學習到跨序列的語義信息。這樣跨層的方式也使得其能夠學習到的語義長度受限於網絡深度,具體依賴關係為 N*(L-1) 用大 O 表示可近似為 O(N*L),N 為網絡深度,L 為序列長度。如下圖所示,序列長度為 4,網絡深度為 3。1.2 相對位置編碼
由於注意力機制忽視了位置信息,因此在 Transformer 中需要加入位置編碼。原始 Transformer 採用了正弦/餘弦函數來編碼絕對位置信息。然而在 Transformer-XL 中,若採用和 Transformer 一樣的絕對位置編碼,那麼不同序列間同個位置會得到同樣的編碼。
因此這種方法在 Transformer-XL 中行不通,為了解決這個問題 Transformer-XL 採用了相對位置編碼。
以下公式和分別為原始 Transformer 和 Transformer-XL 中注意力的計算公式。在其中 E 表示詞的 Embedding,而 U 表示絕對位置編碼。在中 R 為相對位置表示,該相對位置表示也是一個正弦函數表示。
相比,除了用相對位置表示 R 替代了絕對位置表示 U 後,還用兩個可學習參數 u 和 v 替代了中的 query 位置的映射,同時將原本對 key 的映射矩陣分成兩組矩陣和,分別生成基於內容的 key 向量和基於位置的 key 向量。
替換後中四項分別代表:(a) 基於內容的尋址;(b) 基於內容的位置偏差;(c) 全部內容偏差;(d) 全局位置偏差。採用相對位置編碼後,Transformer-XL 具體的計算公式如下:
2. Compressive Transformer
論文標題: Compressive Transformers for Long-Range Sequence Modelling論文連結: https://arxiv.org/abs/1911.05507為了增加 Transformer 可以學習到的語義長度,Compressiv Transformer 在原 Transformer 的結構上增加了一個記憶模塊和一個壓縮記憶模塊。
每一個序列計算後其隱狀態會被放入記憶模塊中,然後記憶模塊中的部分原有記憶會被壓縮然後放入壓縮記憶模塊中,這時壓縮記憶模塊中的部分記憶則會被拋棄掉。
如下圖所示,壓縮記憶模塊和記憶模塊維度皆為 6,而序列長度為 3。箭頭和f表示對記憶模塊中的記憶進行壓縮並放入壓縮記憶模塊中。
Compressive Transformer 具體的算法細節如下,其中m表示記憶模塊,cm 表示壓縮記憶模塊,h 為隱狀態,d 為 Embedding 維度,為壓縮記憶模塊長度,為記憶模塊長度,c 為壓縮常數,l 為層數。
下圖為一個簡易示意圖,紅色表示計算注意力,藍色表示將計算過的序列存入記憶模塊和壓縮記憶模塊過程。
在論文中作者嘗試了如下幾個不同的壓縮函數:1)max/mean pooling;2)1Dconvolution;3)dialated convolutions;4)most-used。實驗表明在 WIKITEXT-103 數據集中 1D convolution 表現最好。同時為了更好的學習壓縮函數的參數,模型訓練時使用了一個輔助的損失函數(因為若是依賴模型的損失函數,則梯度需要經過很長的時序才能傳到存貯的老的記憶,類似於 RNN 裡梯隊消失問題)。該損失函數為注意力重建損失函數,旨在測量通過更新後的記憶計算的注意力和使用原本記憶計算的注意力之間的差距。通過最小化該差距來確保有效的壓縮信息。
通過引入記憶模塊後,Compressive Transformer 能夠捕捉的語義長度為 O(L*(+c) 其中為壓縮記憶模塊長度,為記憶模塊長度,c 為壓縮常數。
相比較 Transformer-XL 的 O(LN),Compressive Transformer 通過將計算後的序列保存在記憶模塊中有效的提高了模型捕捉長程語義的能力。
Reference
BP-Transformer: Modelling Long-Range Context via Binary Partitioning.Zihao Ye, Qipeng Guo, Quan Gan, Xipeng Qiu, Zheng Zhang
Star-Transformer.Qipeng Guo, Xipeng Qiu, Pengfei Liu, Yunfan Shao, Xiangyang Xue, Zheng Zhang
COMPRESSIVE TRANSFORMERS FOR LONG-RANGE SEQUENCE MODELLING, Jack W. Rae Anna Potapenko Siddhant M. Jayakumar Chloe Hillier Timothy P. Lillicrap
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context, Zihang Dai∗12, Zhilin Yang∗12, Yiming Yang1, Jaime Carbonell1, Quoc V. Le2, Ruslan Salakhutdinov1
點擊以下標題查看更多往期內容:
🔍
現在,在「知乎」 也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」 訂閱我們的專欄吧
關於PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」 ,小助手將把你帶入 PaperWeekly 的交流群裡。