Transformer-xl
原文:https://blog.csdn.net/Magical_Bubble/article/details/89060213
循環(huán)機制
訓練階段,每個隱層接收兩個輸入
- 該段下層隱藏層的輸出藤违,與原始Transformer相同
- 前段下層隱藏層的輸出项秉,使其建模長期依賴關系
相對位置編碼
若是每個段繼續(xù)使用相同的位置編碼扣溺,比如段1的編碼[0, 1, 2]澡为,段2的編碼也是[0, 1, 2]懈词,則組合后谴供,位置編碼變成了[0, 1, 2, 0, 1, 2]脂信,而每個位置的語義在整個序列中應當是不一致的。
在原Transformer中漠酿,計算查詢與鍵之間的注意力方式為:
其中冯凹,是詞的詞向量,是對應的位置向量炒嘲。
而在Transformer-XL中
對比來看宇姚,主要有三點變化:
- 在(b)和(d)這兩項中,將所有絕對位置向量都轉為相對位置向量夫凸,與Transformer一樣浑劳,這是一個固定的編碼向量,不需要學習夭拌。此外魔熏,與其他相對位置編碼方案不同衷咽,該公式使用具有可學習變換的固定嵌入,而不是可學習嵌入蒜绽,因此更適用于在測試時使用較長的序列镶骗。
- 在(c)這一項中,將查詢的向量轉為一個需要學習的參數(shù)向量躲雅,因為在考慮相對位置的時候鼎姊,不需要查詢的絕對位置,因此對于任意的相赁,都可以采用同樣的向量相寇。同理,在(d)這一項中钮科,也將查詢的向量轉為另一個需要學習的參數(shù)向量唤衫。
- 將鍵的權重變換矩陣轉為和分別作為content-based key vectors和location-based key vectors。
從另一個角度來解讀這個公式的話绵脯,可以將attention的計算分為如下四個部分:
a. 基于內(nèi)容的“尋址”佳励,即沒有添加原始位置編碼的原始分數(shù)。
b. 基于內(nèi)容的位置偏置蛆挫,即相對于當前內(nèi)容的位置偏差植兰。
c. 全局的內(nèi)容偏置,用于衡量key的重要性璃吧。
d. 全局的位置偏置,根據(jù)query和key之間的距離調(diào)整重要性废境。