理解BERT Transformer:Attention is not all you need!

weixin_33766168發表於2019-04-05

BERT是谷歌近期釋出的一種自然語言處理模型,它在問答系統、自然語言推理和釋義檢測(paraphrase detection)等許多工中都取得了突破性的進展。在這篇文章中,作者提出了一些新的見解和假設,來解釋BERT強大能力的來源。作者將語言理解框架分解為解析和組合兩個部分,注意力機制主要體現在解析過程,而組合過程也在BERT中起到了重要作用,因此作者提出對於BERT Transformer來說:attention isn’t all you need!

為什麼BERT很重要

BERT是谷歌近期釋出的一個自然語言處理模型,它在問答系統、自然語言推理和釋義檢測(paraphrase detection)等許多工中都取得了突破性的進展。並且由於BERT是開源的,因此它在學界很受歡迎。

下圖顯示了GLUE基準分數的演變,GLUE基準分數是多種NLP評估任務的平均分數。
 
\"image\"

雖然目前還不清楚是否所有的GLUE任務都是非常有意義的,但是基於Transformer編碼器的通用模型(open-GPT、BERT和BigBird)在不到一年的時間內就縮小了任務專用模型與人類的差距。
 
然而,正如Yoav Goldberg在論文Assessing BERT’s Syntactic Abilities中所指出的,我們並不能完全理解Transformer是如何編碼句子的。

與RNN相比,Transformer完全依賴注意力機制,並且,除了用單詞的絕對位置嵌入來標記每個單詞之外,Transformer對單詞順序沒有明確的概念。這種對注意力的依賴可能導致它在對語法敏感的任務上表現較差,而RNN(LSTM)模型能夠直接對單詞順序建模,並顯式跟蹤句子狀態。

目前已有一些文章探討了BERT的技術細節。在這裡,我們嘗試提出一些新的見解和假設,來解釋BERT強大能力的來源。

語言理解的框架:解析-組合

人類理解語言的方式是一個長期存在的哲學問題。在20世紀,兩個互補的理論揭示了這個問題:

  • 組合性原理(Compositionality principle):片語的含義來源於單個單詞的含義,以及這些單片語合的方式。根據這一原理,名詞短語“食肉植物(carnivorous plants)”的含義可以通過“食肉(carnivorous)”和“植物(plant)”的組合過程中推匯出來。[Szabó 2017]

  • 另一個原理是語言的層次結構:通過分析,句子可以分解成簡單的結構,如從句。而從句又可以進一步分解為動詞短語和名詞短語,等等。

通過對句子的層次結構進行解析,並遞迴地從其組成部分中推導含義,直到達到句子層面,這是一個很好的語言理解方法。假設這樣一句話,“Bart watched a squirrel with binoculars(巴特用望遠鏡觀察一隻松鼠)”。一個好的解析元件可以生成下面的分析樹:

\"image\"

基於元件的“巴特用望遠鏡觀察松鼠”句子的分析樹

句子的意思可以從連續的組合中推匯出來,首先是“a”和“squirrel”的組合,然後是“watched”和“a squirrel”的組合,最後是“watched a squirrel”和“with binoculars”的組合,直到得到整個句子的意思。

向量空間(詞嵌入)可用於表示單詞、片語和句子的其他成分。組合過程可以構造為函式f,該函式將(“a”、“squirrel”)組合成一個有意義的向量表示,“a squirrel”=f(“a”、“squirrel”)。[Baroni 2014]

然而,組合和解析都是很困難的任務,並且它們互相依賴。

顯然,組合過程需要依靠解析的結果來確定應該組合什麼。但即使有了正確的輸入,組合也是一個難題。例如,形容詞的含義會根據它所描述的單詞而變化:“white wine(白葡萄酒)”的顏色實際上是黃色的,而“white cat(白貓)”確實是白色的。這種現象稱為共同組合(co-composition)。[Pustejovsky 2017]

\"image\"

“白葡萄酒”和“白貓”在二維語義空間中的表現(顏色維度)

更廣泛的上下文環境對於組合過程也是必要的。例如,“green light(綠燈)”中的詞應該如何組合取決於具體情況。“綠燈”可以表示授權,或實際綠色的燈。有些習慣用語的含義需要某種形式的記憶,而不單單是組合。因此,在向量空間中完成這種組合需要強大的非線性函式,如深度神經網路(也具有記憶功能 [Arpit 2017])。

相反,解析操作在某些情況下可能需要組合才能工作。例如同一句子“Bart watched a squirrel with binoculars”的另一種解析樹:

\"image\"

儘管它在語法上是成立的,但是這種解析導致了對句子的一種奇怪的解釋:巴特看著一隻松鼠拿著望遠鏡。然而,必須用某種形式的組合才能證明“一隻松鼠拿著望遠鏡”是不太可能發生的事情。通常,在推匯出恰當的結構之前,必須對背景知識進行消歧和整合。但是這個過程也可以通過某種形式的解析和組合來實現。

一些模型試圖將解析和組合一起應用到實踐中 [Socher 2013年],但是它們有一個限制條件,即依賴於手動標註的標準解析樹,此外,它們已經被更簡單的模型所超越了。

BERT如何實現解析和組合

我們假設Transformer在很大程度上依賴於這兩個操作,但是以一種創新的方式:由於合成和解析互相需要,Transformer通過迭代過程,連續的執行解析和合成步驟,以解決相互依賴的問題。Transformer是由幾個堆疊的層(也稱為塊)組成的。每個塊由一個注意力層和其後的非線性函式(應用於token)組成。

我們將主要解釋這些結構與解析-組合框架之間的聯絡。

\"image\"

Transformer中一個塊的結構,可以看作是連續的解析和組合步驟

注意力機制作為解析步驟

在BERT中,注意力機制讓輸入序列(由單詞或子單詞token構成的句子)中的每個token注意到其它的token。

為了說明這一點,我們使用Deconstructing BERT, Part 2: Visualizing the Inner Workings of Att-ention中的視覺化工具深入研究了注意力頭(attention head),並在預訓練的BERT base Uncased模型上(谷歌釋出的4種預訓練的BERT模型的一種)測試了我們的假設。在下面一個注意力頭的例子中,“it”這個詞注意到了其他所有的token,並且似乎注意力集中在“street”和“animal”上。

\"image\"

第0層注意力頭 1對於token“it”的注意力值視覺化圖

BERT的每一層包含12個獨立的注意力機制。因此,在每一層,每個token都可以關注其他token的12個不同方面。由於Transformer使用許多不同的注意力頭(這裡的base BERT模型用了12*12=144個),每個注意力頭可以集中關注不同型別成分的組合。

我們省去了與“[CLS]”和“[SEP]”token相關的注意力值。我們用幾個句子做了測試,發現很難做到不過度解釋結果,所以你可以隨意用不同的句子在這個colab筆記本上測試我們的假設。請注意,在圖中,左側的序列關注右側的序列。

在第2層中,注意力頭 1似乎會基於相關性形成組合成分。

\"image\"

更有意思的是,在第3層中,注意力頭 11似乎顯示了更高階別的成分:一些token關注相同的中心詞(if、keep、have)。

\"image\"

在第5層中,注意力頭6採取的匹配過程似乎關注特定的組合,尤其是涉及動詞的組合。像[SEP]這樣的特殊token似乎被用來表示匹配關係的缺失。這可以使注意力頭髮現適合組合的特定結構。這種一致的結構可以輸入給組合函式。

\"image\"

第5層注意力頭6:(we, have), (if, we), (keep, up) (get, angry)這些組合受到了更多關注

任意樹可以用連續的淺層解析層表示,如下圖所示:

\"image\"

不同層的注意力可以表示樹結構

通過對BERT注意力頭的檢視,我們沒有發現如此清晰的樹狀結構,但是Transformer仍然有可能對其進行表示。我們注意到,由於編碼是在所有層上同時進行的,因此很難正確地解釋BERT在做什麼。對給定層的分析只對其下一層和上一層有意義。解析也分佈在各個注意力頭上。

下圖以兩個注意力頭為例,顯示了BERT的注意力機制實際的情況:

\"image\"

BERT注意力值的實際情況

然而,正如我們之前所見,解析樹是一個高階別的表示,它可能建立在更復雜的“根莖”結構上[Deleuze 1987]。 例如,我們可能需要找出代詞所引用的內容,以便對輸入進行編碼(共指消解 coreference resolution:將現實世界中同一實體的不同描述合併到一起的過程,共指在自然語言中起到了超連結的作用,但也在其中增加了新的模糊成分)。在其他情況下,也可能需要全域性上下文來消除歧義。

令人驚訝的是,我們發現一個注意力頭(第6層注意力頭 0)似乎真的進行了共指消解。 而且,正如文章Understanding BERT Part 2: BERT Specifics》所指出的,一些注意力頭似乎為每個單詞提供了全域性上下文(第0層注意力頭0)。

\"image\"

第6層注意力頭0出現了共指消解。

\"image\"

在一個句子中,每個詞都注意到其他的詞,這或許可以對每個詞進行粗略的語境化。

組合過程

在每一層中,所有注意力頭的輸出被級接,並輸入到一個可以表示複雜非線性函式的神經網路(這是實現一個有表達能力的組合過程所需要的)。

依靠來自注意力頭的結構化輸入,該神經網路可以進行各種組合。 在之前展示的第5層中,注意力頭6可以引導模型進行以下組合: (we, have),(if, we),(keep, up),(get, angry)。 該模型將它們進行非線性組合,並返回組合後的表示。因此,多注意力頭可以視作為組合過程鋪平道路的工具。

\"image\"

注意力頭如何用於為特定的組合,例如形容詞/名詞

雖然我們沒有發現注意力頭關注某些更一致的組合,如形容詞/名詞,但是動詞/副詞的組合與模型所利用的其他組合之間可能存在一些共同點。

除了以上的組合,還存在許多可能相關的組合(單詞-子詞,形容詞-名詞,動詞-介詞,從句-從句)。進一步講,我們可以將消歧(disambiguation)看作是把一個歧義詞(bank)和相關語境詞(river或cashier)進行組合的過程。在組合期間,模型也可以將給定上下文中與概念相關的背景知識進行整合。這種消歧也可能出現在其他層面(例如句子層面,從句層面)。

\"image\"

消歧作為組合過程

此外,組合過程還可能涉及詞序推理。有人認為,位置編碼(positional encoding)(位置編碼是一個向量,與輸入內嵌表示求平均,以便生成輸入序列中每個token的位置感知表示)可能不足以正確地編碼單詞的順序。然而,位置編碼的目的是編碼每個token粗粒度、細粒度,甚至準確的位置。因此,基於兩個位置編碼,非線性合成在理論上可以基於單詞相對位置進行關係推理。

綜上所述,我們認為在BERT自然語言理解中,組合階段也起到了重要作用,因此你所需要的並不只有注意力(Attention isn’t all you need)。

總結

我們提出了對Transformer的歸納偏置的一些見解。然而,我們必須記住,我們的解釋可能對Transformer的能力持樂觀態度。需要注意的是,LSTM能夠隱式處理樹狀結構[Bowman 2015]和組合過程[Tai 2015]。但是LSTM有其侷限性,其中一些是由於梯度消失問題所導致的[Hochreiter 1998]。因此,要解釋Transformer的侷限性還需要進一步的工作。

檢視英文原文:Understanding BERT Transformer: Attention isn’t all you need

相關文章