|
如今,語言模型的世界,幾乎被Transformer/BERT占領(lǐng)了。 但如果回到2017年,把轟動世界的論文Attention Is All You Need從時間線上抹掉呢? 多頭注意力不存在了,只剩下原始的LSTM,自然語言處理又會朝怎樣的方向進(jìn)化? 機(jī)器學(xué)習(xí)大佬Stephen Merity (Smerity) 突發(fā)奇想,強(qiáng)行回到過去,依靠簡單質(zhì)樸的LSTM,做出了單頭注意力RNN,簡稱SHA-RNN。 這個古法炮制的新模型,只用單個GPU訓(xùn)練不到24小時,就在語言建模數(shù)據(jù)集enwik8上獲得了接近SOTA的成績。 除了算力要求不高,它還支持最多5000個token的長距離依賴。 論文引發(fā)了大量圍觀和討論,推特已有1700贊,Reddit熱度達(dá)到了170。 谷歌大腦的研究員David Ha說:
樓下立刻有人 (@Ktsaprailis) 附議:
還有小伙伴 (@lorenlugosch) 說:
那么,到底是一次怎樣的穿越,讓大家陶醉得無法自拔? 要那么多頭做什么?就像蝴蝶效應(yīng),大佬Smerity說他要證明的是:只要方法稍有改變,整個領(lǐng)域會朝完全不同的方向發(fā)展。 他開發(fā)的新模型,是由幾個部分組成的:一個可訓(xùn)練的嵌入層,一層或者多層堆疊的單頭注意力RNN (SHA-RNN) ,再加一個softmax分類器。 其中,SHA-RNN的結(jié)構(gòu)就是下圖這樣: △ LN=Layer Normalization大致說來,SHA-RNN用的是單頭的、基于指針的注意力 (Pointer Based Attention) ,借鑒了2017年作者本人領(lǐng)銜的研究;還包含一個改造過的前饋層,名叫“Boom”,帶有層歸一化。 那么,分別來觀察一下,注意力和前饋層。 首先是注意力。Smerity老師說,許多受Transformer啟發(fā)的模型架構(gòu),都假設(shè)在構(gòu)造上沒有順序 (Sequentiality) ,且每層都有幾十個頭,計算起來太復(fù)雜了,大家也并不知道有多少頭是有效的。 相比之下,SHA-RNN模型的注意力是簡化的,只留一個頭,唯一的矩陣乘法出現(xiàn)在query (下圖Q) 那里,A是縮放點乘注意力 (Scaled Dot-Product Attention) ,是向量之間的運算。 △ MM=Matrix Manipulation,LN=Layer Normalization這樣一來,計算起來效率很高,普通臺式機(jī)也可以訓(xùn)練。 接下來講前饋層 (“Boom” Layer) 。雖然這是從Transformer借鑒來的,不過Smerity老師重新排布了一下: 用了一個v∈?H向量,又用矩陣乘法 (GeLU激活) 得到另一個向量u∈?N×H。 然后,把u向量分解成N個向量,再求和,得到w∈?H向量。 這樣一來,與傳統(tǒng)的下映射層 (Down-Projection Layers) 相比,減少了運算量,除掉了一整個矩陣的參數(shù)。 那么,SHA-RNN成績怎么樣呢? 拉出來遛遛Smerity老師說,雖然能用家里的臺式機(jī)訓(xùn)練,但跑著跑著沒了耐心,于是改用GPU (12GB Titan V) 訓(xùn)練了不到一天。 然后,就在兩個數(shù)據(jù)集enwik8和WikiText-103試一試吧。 其中,enwik8數(shù)據(jù)集包含了上億字節(jié)維基百科XML轉(zhuǎn)儲。這是比賽結(jié)果: 當(dāng)然,直接和純LSTM比是沒意義的,直接和無頭SHA-RNN比也沒意義。 測試機(jī)上的表現(xiàn),超越了各種Transformer。 另一場比賽,在WikiText-103數(shù)據(jù)集上進(jìn)行,測試的是Tokenization (分詞) 。結(jié)果認(rèn)為,SHA-RNN可以有效抵御Tokenization攻擊。 成功了。 開源了Smerity老師的穿越算法,已經(jīng)放出了代碼。 大家一邊欣賞論文,也可以自己去跑一下試試。 論文傳送門: 代碼傳送門: 作者系網(wǎng)易新聞·網(wǎng)易號“各有態(tài)度”簽約作者 — 完 — |
|
|