【花師小哲】當(dāng)代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(38)——嘗試打開Transformer之盒
一段時間之前,一篇給Transformer“開盒”的論文發(fā)表了,雖然很感興趣,但最近真的是很忙,都在看另一個領(lǐng)域的相關(guān)論文,就一直沒看。
然后據(jù)說作者之一是浙大一名大四學(xué)生,所以決定今天來看一下。


1.聊聊可解釋性
既然是關(guān)于可解釋性的,又要再談點(diǎn)東西了。
首先,可解釋性是個很復(fù)雜的東西,是分層次、分方面的。
對于神經(jīng)網(wǎng)絡(luò),我們當(dāng)然可以嘗試分析每個神經(jīng)元的可能作用,例如在GPT-2中,我們可以找到一個可能和輸出“no”有關(guān)的神經(jīng)元,但是對于三十萬(以GPT-2為例,GPT-2甚至不是太大的模型)個神經(jīng)元來說,我們一個個去理解是困難的,把三十萬個神經(jīng)元當(dāng)做一個整體考慮就更麻煩了。
對于CNN的卷積核也是一樣,我們也許可以分析一個(淺層)卷積核可能在做什么(例如做邊緣提取),但是對于整個CNN網(wǎng)絡(luò)很可能就無能為力。
即使是可解釋性非常出色的決策樹,集成為隨機(jī)森林,可解釋性也會快速下降。
除了整體與部分的辯證之外,可解釋性還分方面。例如我們也許可以從輸出結(jié)果中進(jìn)行一定的解釋,但是我們可能無法解釋這種結(jié)果是如何從“隨機(jī)”中一步步變的“專業(yè)”的。

2.Transformer的可解釋性分析
Transformer的論文名是《Attention is all you need》。attention并不是Transformer發(fā)明的,Transformer只是將它從輔助放到了C位。
attention的思想其實(shí)就是顯示建立輸入之間的交互。例如對于“旺財是一只可愛的小狗”,我們就可以建立“旺財”和“是”“一只”...“小”“狗”的聯(lián)系,很明顯,“旺財”和“狗”的關(guān)系更加密切,那“旺財”和“狗”之間的分?jǐn)?shù)應(yīng)該會更高一些,或者說,“旺財”會更“關(guān)注”于“狗”,這就有了可解釋性的基礎(chǔ)。
但是問題也隨即而來,一開始Transformer是隨即初始化的,“旺財”并不知道該關(guān)注誰,所以“旺財”和“是”“一只”...“小”“狗”之間的分?jǐn)?shù)基本上都是相似的,可是通過訓(xùn)練,“旺財”就會更加關(guān)注“狗”了,這是怎么發(fā)生的呢?
更麻煩的是,Transformer的訓(xùn)練方式往往都簡單地顯得幼稚,例如BERT的完形填空和GPT的預(yù)測下一個詞(嚴(yán)格來講是token)。
這里主要看一下后者。簡單來說,就是讓模型從“旺財”開始,一個詞一個詞的預(yù)測,先預(yù)測出“是”;然后句子就變成了“旺財是”,再從“旺財是”出發(fā)預(yù)測“一只”...一直到預(yù)測出完整的“旺財是一只可愛的小狗”。
整個過程中并沒有誰來告訴模型怎么建立attention,結(jié)果模型不僅能學(xué)會,還能學(xué)的很好。
沒錯,ChatGPT就是單純靠這種學(xué)習(xí)任務(wù)就能獲得極其優(yōu)異的表現(xiàn)的。
當(dāng)然,有人會說,不是有人證明了Transformer是圖靈完備的,等價或近似于圖靈機(jī)嗎?這不就解釋了。
雖然“圖靈完備”這樣的名字聽上去比較唬人,但是需要注意,又不是只有Transformer這一種模型是圖靈完備的,非線性RNN甚至SVM這樣的模型也能近似于圖靈機(jī)。
但是Transformer確是這些模型中表現(xiàn)的很出色的一個模型,這就很有問題。

3.給單層Transformer定性
研究一般都是從簡單的開始,開盒當(dāng)然要先開單層Transformer。
需要說明的是,這篇論文是進(jìn)行了嚴(yán)格的數(shù)學(xué)證明的,不過本文還是只說結(jié)論了。
作者認(rèn)為,單層Transformer是一種判別式掃描算法,簡單來說,attention學(xué)習(xí)過程中出現(xiàn)了兩個傾向:
(1)頻率偏差。簡單來說,如果“旺財”和“狗”在數(shù)據(jù)集中經(jīng)常一起出現(xiàn),那么“旺財”就會更傾向于關(guān)注“狗”。(在這里偏差可以簡單理解成“傾向”)
(2)判別偏差。簡單來說,模型在預(yù)測的時候更關(guān)注與一些獨(dú)一無二的東西,而不是一些通用的東西(例如不傾向于關(guān)注to、am之類的詞)
(雖然論文和一些分析文章并沒有仔細(xì)解釋什么事判別式掃描算法,但簡單理解就是模型會掃描之前的輸入并從中決定哪些是重要的)

4.學(xué)習(xí)過程
給單層Transformer定性后,我們就要搞清楚這個過程是怎么形成的。
整個過程分為兩個階段:
(1)scan:每個詞的注意力集中在一些關(guān)鍵詞上,注意力快速變的稀疏。不過這一過程并不會持續(xù)到單純集中在一個詞上,而是集中在幾個詞上并達(dá)到平衡狀態(tài)
(2)snap:到達(dá)一個臨界點(diǎn)后,模型attention分布不會發(fā)生太大的改變,基本可以認(rèn)為是一種凍結(jié)狀態(tài),或者說模型已經(jīng)學(xué)習(xí)完成了?;蛘哒f一個人建立了某種信仰,這種信仰之后就很難再改變了
可以看到,這個過程其實(shí)類似于:
【花師小哲】當(dāng)代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(23)——transformer涌現(xiàn)了傅里葉變換

5.說明與不足
首先,因?yàn)楸疚氖菄?yán)格的數(shù)學(xué)證明,但是我們對模型訓(xùn)練過程中有很多不清楚的地方,所以還是有些假設(shè)的:(1)沒有位置編碼;(2)長序列;(3)decoder收斂比self-attention快(因?yàn)槭侵攸c(diǎn)關(guān)注self-attention,要是性能提升是decoder的功勞那就麻煩了)。這里稍微放下模型架構(gòu)圖,這里不詳細(xì)展開:

然后,本文也是存在很多不足的,例如只研究了單層Transformer(多層的狀態(tài)很可能是會變的),解釋的也不夠徹底等。但本篇文章的研究也確實(shí)很重要,算是給Transformer的黑盒開了一個小口子吧。
期待未來更精彩的研究。