用最簡陋的LSTM,媲美各種Transformer:單頭注意力RNN,大神新作引熱議
栗子 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
如今,語言模型的世界,幾乎被Transformer/BERT占領了。
但如果回到2017年,把轟動世界的論文Attention Is All You Need從時間線上抹掉呢?
多頭注意力不存在了,只剩下原始的LSTM,自然語言處理又會朝怎樣的方向進化?
機器學習大佬Stephen Merity (Smerity) 突發(fā)奇想,強行回到過去,依靠簡單質(zhì)樸的LSTM,做出了單頭注意力RNN,簡稱SHA-RNN。
這個古法炮制的新模型,只用單個GPU訓練不到24小時,就在語言建模數(shù)據(jù)集enwik8上獲得了接近SOTA的成績。
除了算力要求不高,它還支持最多5000個token的長距離依賴。
論文引發(fā)了大量圍觀和討論,推特已有1700贊,Reddit熱度達到了170。
谷歌大腦的研究員David Ha說:
警告:這不是一篇論文,是大師級的藝術作品。
樓下立刻有人 (@Ktsaprailis) 附議:
真的,好像在讀深度學習版的《銀河系漫游指南》。
還有小伙伴 (@lorenlugosch) 說:
這么好玩的論文,再多來點就好了。
那么,到底是一次怎樣的穿越,讓大家陶醉得無法自拔?
要那么多頭做什么?
就像蝴蝶效應,大佬Smerity說他要證明的是:只要方法稍有改變,整個領域會朝完全不同的方向發(fā)展。
他開發(fā)的新模型,是由幾個部分組成的:一個可訓練的嵌入層,一層或者多層堆疊的單頭注意力RNN (SHA-RNN) ,再加一個softmax分類器。
其中,SHA-RNN的結(jié)構(gòu)就是下圖這樣:

大致說來,SHA-RNN用的是單頭的、基于指針的注意力 (Pointer Based Attention) ,借鑒了2017年作者本人領銜的研究;還包含一個改造過的前饋層,名叫“Boom”,帶有層歸一化。
那么,分別來觀察一下,注意力和前饋層。
首先是注意力。Smerity老師說,許多受Transformer啟發(fā)的模型架構(gòu),都假設在構(gòu)造上的沒有順序 (Sequentiality) ,且每層都有幾十個頭,計算起來太復雜了,大家也并不知道有多少頭是有效的。
相比之下,SHA-RNN模型的注意力是簡化的,只留一個頭,唯一的矩陣乘法出現(xiàn)在query (下圖Q) 那里,A是縮放點乘注意力 (Scaled Dot-Product Attention) ,是向量之間的運算。
這樣一來,計算起來效率很高,普通臺式機也可以訓練。
接下來講前饋層?(“Boom” Layer) 。雖然這是從Transformer借鑒來的,不過Smerity老師重新排布了一下:
用了一個v∈?H向量,又用矩陣乘法 (GeLU激活) 得到另一個向量u∈?N×H。
然后,把u向量分解成N個向量,再求和,得到w∈?H向量。
這樣一來,與傳統(tǒng)的下映射層 (Down-Projection Layers) 相比,減少了運算量,除掉了一整個矩陣的參數(shù)。
那么,SHA-RNN成績怎么樣呢?
拉出來遛遛
Smerity老師說,雖然能用家里的臺式機訓練,但跑著跑著沒了耐心,于是改用GPU (12GB Titan V) 訓練了不到一天。
然后,就在兩個數(shù)據(jù)集enwik8和WikiText-103試一試吧。
其中,enwik8數(shù)據(jù)集包含了上億字節(jié)維基百科XML轉(zhuǎn)儲。這是比賽結(jié)果:
當然,直接和純LSTM比是沒意義的,直接和無頭SHA-RNN比也沒意義。
測試集上的表現(xiàn),幾乎媲美了各種Transformer。
另一場比賽,在WikiText-103數(shù)據(jù)集上進行,測試的是Tokenization (分詞) 。結(jié)果認為,SHA-RNN可以有效抵御Tokenization攻擊。
成功了。
開源了
Smerity老師的穿越算法,已經(jīng)放出了代碼。
大家一邊欣賞論文,也可以自己去跑一下試試。
論文傳送門:
https://arxiv.org/pdf/1911.11423.pdf
代碼傳送門:
https://github.com/smerity/sha-rnn
—?完?—
- 馬云正式卸任后,阿里巴巴開盤跌0.87%2019-09-10
- 亞馬遜在華拓展云計算團隊,挑戰(zhàn)阿里巴巴和騰訊2019-10-16
- AI獨角獸云知聲,已完成一期科創(chuàng)板IPO輔導2019-10-17
- IDC:今年上半年中國公有云服務市場規(guī)模達54.2億美元2019-11-07