Transformer升级之路:博采众长的旋转式位置编码
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡
上一篇文章中,我們對原始的 Sinusoidal 位置編碼做了較為詳細的推導和理解,總的感覺是 Sinusoidal 位置編碼是一種“想要成為相對位置編碼的絕對位置編碼”。
一般來說,絕對位置編碼具有實現(xiàn)簡單、計算速度快等優(yōu)點,而相對位置編碼則直接地體現(xiàn)了相對位置信號,跟我們的直觀理解吻合,實際性能往往也更好。
由此可見,如果可以通過絕對位置編碼的方式實現(xiàn)相對位置編碼,那么就是“集各家之所長”、“魚與熊掌兼得”了。Sinusoidal 位置編碼隱約做到了這一點,但并不夠好。
本文將會介紹我們自研的 Rotary Transformer(RoFormer)模型,它的主要改動是應用了筆者構思的“旋轉式位置編碼(Rotary Position Embedding,RoPE)”,這是一種配合 Attention 機制能達到“絕對位置編碼的方式實現(xiàn)相對位置編碼”的設計。而也正因為這種設計,它還是目前唯一一種可用于線性 Attention 的相對位置編碼。
RoFormer:
https://github.com/ZhuiyiTechnology/roformer
基本思路
在之前的文章讓研究人員絞盡腦汁的 Transformer 位置編碼中我們就簡要介紹過 RoPE,當時稱之為“融合式”,本文則更加詳細地介紹它的來源與性質。在 RoPE 中,我們的出發(fā)點就是“通過絕對位置編碼的方式實現(xiàn)相對位置編碼”,這樣做既有理論上的優(yōu)雅之處,也有實踐上的實用之處,比如它可以拓展到線性 Attention 中就是主要因為這一點。
為了達到這個目的,我們假設通過下述運算來給 添加絕對位置信息:
也就是說,我們分別為 設計操作 ,使得經(jīng)過該操作后, 就帶有了位置 m, n 的絕對位置信息。Attention 的核心運算是內(nèi)積,所以我們希望的內(nèi)積的結果帶有相對位置信息,因此假設存在恒等關系:
所以我們要求出該恒等式的一個(盡可能簡單的)解。求解過程還需要一些初始條件,顯然我們可以合理地設 和 。
求解過程
同上一篇思路一樣,我們先考慮二維情形,然后借助復數(shù)來求解。在復數(shù)中有 ,所以我們有:
簡單起見,我們假設存在復數(shù) ,使得 ,然后我們用復數(shù)的指數(shù)形式,設:
那么代入方程后就得到方程組:
對于第一個方程,代入 m=n 得到:
最后一個等號源于初始條件 和 。所以現(xiàn)在我們可以很簡單地設 ,即它不依賴于 m。至于第二個方程,同樣代入 m=n 得到:
這里的 是 本身的幅角,最后一個等號同樣源于初始條件。根據(jù)上式得到 ,所以 應該是一個只與 m 相關、跟 無關的函數(shù),記為 ,即 。接著代入 n=m-1,整理得到:
即 是等差數(shù)列,設右端為 ,那么就解得 。
編碼形式
綜上,我們得到二維情況下用復數(shù)表示的 RoPE:
根據(jù)復數(shù)乘法的幾何意義,該變換實際上對應著向量的旋轉,所以我們稱之為“旋轉式位置編碼”,它還可以寫成矩陣形式:
由于內(nèi)積滿足線性疊加性,因此任意偶數(shù)維的 RoPE,我們都可以表示為二維情形的拼接,即:
也就是說,給位置為 m 的向量 乘上矩陣 、位置為 n 的向量 乘上矩陣 ,用變換后的 序列做 Attention,那么 Attention 就自動包含相對位置信息了,因為成立恒等式:
值得指出的是, 是一個正交矩陣,它不會改變向量的模長,因此通常來說它不會改變原模型的穩(wěn)定性。
由于 的稀疏性,所以直接用矩陣乘法來實現(xiàn)會很浪費算力,推薦通過下述方式來實現(xiàn) RoPE:
其中 是逐位對應相乘,即 Numpy、Tensorflow 等計算框架中的*運算。從這個實現(xiàn)也可以看到,RoPE 可以視為是乘性位置編碼的變體。
遠程衰減
可以看到,RoPE 形式上和 Sinusoidal 位置編碼有點相似,只不過 Sinusoidal 位置編碼是加性的,而 RoPE 可以視為乘性的。在 的選擇上,我們同樣沿用了 Sinusoidal 位置編碼的方案,即 ,它可以帶來一定的遠程衰減性。
具體證明如下:將 兩兩分組后,它們加上 RoPE 后的內(nèi)積可以用復數(shù)乘法表示為:
記 ,并約定 ,那么由 Abel 變換(分部求和法)可以得到:
所以:
因此我們可以考察 隨著相對距離的變化情況來作為衰減性的體現(xiàn), Mathematica 代碼如下:
結果如下圖:
▲ RoPE的遠程衰減性(d=128)
從圖中我們可以可以看到隨著相對距離的變大,內(nèi)積結果有衰減趨勢的出現(xiàn)。因此,選擇 ,確實能帶來一定的遠程衰減性。當然,同上一篇文章說的一樣,能帶來遠程衰減性的不止這個選擇,幾乎任意的光滑單調函數(shù)都可以,這里只是沿用了已有的選擇而已。
筆者還試過以 為初始化,將 視為可訓練參數(shù),然后訓練一段時間后發(fā)現(xiàn) 并沒有顯著更新,因此干脆就直接固定 了。
線性場景
最后,我們指出,RoPE 是目前唯一一種可以用于線性 Attention 的相對位置編碼。這是因為其他的相對位置編碼,都是直接基于 Attention 矩陣進行操作的,但是線性 Attention 并沒有事先算出 Attention 矩陣,因此也就不存在操作 Attention 矩陣的做法,所以其他的方案無法應用到線性 Attention 中。
而對于 RoPE 來說,它是用絕對位置編碼的方式來實現(xiàn)相對位置編碼,不需要操作 Attention 矩陣,因此有了應用到線性 Attention 的可能性。
關于線性 Attention 的介紹,這里不再重復,有需要的讀者請參考線性 Attention 的探索:Attention 必須有個 Softmax 嗎?。線性 Attention 的常見形式是:
其中 是值域非負的激活函數(shù)。可以看到,線性 Attention 也是基于內(nèi)積的,所以很自然的想法是可以將 RoPE 插入到內(nèi)積中:
但這樣存在的問題是,內(nèi)積 可能為負數(shù),因此它不再是常規(guī)的概率注意力,而且分母有為 0 的風險,可能會帶來優(yōu)化上的不穩(wěn)定。考慮到 都是正交矩陣,它不改變向量的模長,因此我們可以拋棄常規(guī)的概率歸一化要求,使用如下運算作為一種新的線性 Attention:
也就是說,RoPE 只插入分子中,而分母則不改變,這樣的注意力不再是基于概率的(注意力矩陣不再滿足非負歸一性),但它某種意義上來說也是一個歸一化方案,而且也沒有證據(jù)表明非概率式的注意力就不好(比如 Nystr?mformer 也算是沒有嚴格依據(jù)概率分布的方式構建注意力),所以我們將它作為候選方案之一進行實驗,而我們初步的實驗結果顯示這樣的線性 Attention 也是有效的。
此外,筆者在線性 Attention 的探索:Attention 必須有個 Softmax 嗎?中還提出過另外一種線性 Attention 方案:,它不依賴于值域的非負性,而 RoPE 也不改變模長,因此 RoPE 可以直接應用于此類線性 Attention,并且不改變它的概率意義。
模型開源
RoFormer 的第一版模型,我們已經(jīng)完成訓練并開源到了 Github 中。
簡單來說,RoFormer 是一個絕對位置編碼替換為 RoPE 的 WoBERT [1] 模型,它跟其他模型的結構對比如下:
在預訓練上,我們以 WoBERT Plus 為基礎,采用了多個長度和 batch size 交替訓練的方式,讓模型能提前適應不同的訓練場景:
從表格還可以看到,增大序列長度,預訓練的準確率反而有所提升,這側面體現(xiàn)了 RoFormer 長文本語義的處理效果,也體現(xiàn)了 RoPE 具有良好的外推能力。
在短文本任務上,RoFormer 與 WoBERT 的表現(xiàn)類似,RoFormer 的主要特點是可以直接處理任意長的文本。下面是我們在 CAIL2019-SCM 任務上的實驗結果:
其中 后面的參數(shù)是微調時截斷的 maxlen,可以看到 RoFormer 確實能較好地處理長文本語義,至于設備要求,在 24G 顯存的卡上跑 maxlen=1024,batch_size 可以跑到 8 以上。目前中文任務中筆者也就找到這個任務比較適合作為長文本能力的測試,所以長文本方面只測了這個任務,歡迎讀者進行測試或推薦其他評測任務。
當然,盡管理論上 RoFormer 能處理任意長度的序列,但目前 RoFormer 還是具有平方復雜度的,我們也正在訓練基于線性 Attention 的 RoFormer 模型,實驗完成后也會開源放出,請大家期待。
文章小結
本文介紹了我們自研的旋轉式位置編碼 RoPE 以及對應的預訓練模型 RoFormer。從理論上來看,RoPE 與 Sinusoidal 位置編碼有些相通之處,但 RoPE 不依賴于泰勒展開,更具嚴謹性與可解釋性;從預訓練模型 RoFormer 的結果來看,RoPE 具有良好的外推性,應用到 Transformer 中體現(xiàn)出較好的處理長文本的能力。此外,RoPE 還是目前唯一一種可用于線性 Attention 的相對位置編碼。
參考文獻
[1] https://github.com/ZhuiyiTechnology/WoBERT
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質內(nèi)容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質內(nèi)容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認每篇文章都是首發(fā),均會添加“原創(chuàng)”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的Transformer升级之路:博采众长的旋转式位置编码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 艾灸的作用和功效(艾灸的作用与功效有哪些
- 下一篇: boss直聘pc端登录权限