導讀
在finetune BERT的時候發生了什么?
2019年可以被稱為NLP的Transformer之年:這種架構主導了排行榜并激發了許多分析研究。毫無疑問,最受歡迎的Transformer是BERT(Devlin, Chang, Lee, & Toutanova, 2019)。除了其眾多的應用,許多研究探索了各種語言知識的模型,通常得出這樣的結論,這種語言知識確實存在,至少在某種程度上(Goldberg, 2019; Hewitt & Manning, 2019; Ettinger, 2019)。
這項工作的重點是補充的問題:在finetune BERT的時候發生了什么?特別是,有多少可從語言學角度解釋的自注意力模式被認為是它的優勢,可以實際用來解決下游的任務?
為了回答這個問題,我們用BERT finetune了以下GLUE (Wang et al., 2018)的任務和數據集:
語義檢測 (MRPC and QQP);
文本相似度 (STS-B);
情感分析 (SST-2);
文本蘊含 (RTE);
自然語言推理 (QNLI, MNLI).
BERT的簡單介紹
BERT代表Transformer的雙向編碼器表示。該模型基本上是一個多層雙向Transformer編碼器 (Devlin, Chang, Lee, & Toutanova, 2019),有多個關于它的工作原理的優秀指南,包括圖解的Transformer.。我們關注的是Transformer架構的一個特定組件,即self-attention。簡而言之,它是一種衡量輸入和輸出序列組件的方法,以便對它們之間的關系(甚至遠程依賴關系)進行建模。
作為一個簡單的例子,讓我們假設我們需要創建一個句子“Tom is a black cat”的表示。BERT在對“cat”進行編碼時,可能會選擇更多地關注“Tom”,而較少關注“is”、“a”、“black”。這可以表示為權重向量(對于句子中的每個單詞)。當模型對序列中的每個單詞進行編碼時,就會計算出這些向量,從而得到一個方陣,我們稱之為“自注意力圖”。
現在,我們還不清楚“Tom”和“cat”之間的關系是否總是最好的。要回答關于貓的顏色的問題,模特最好關注“black”而不是“Tom”。幸運的是,它不必選擇。BERT(和其他Transformer)很強大很大程度上歸功于這樣一個事實:在多層中有多個頭,它們都學會了構建獨立的自注意力圖。理論上,這可以賦予模型“在不同位置關注來自不同表示子空間的信息”的能力(Vaswani et al., 2017)。換句話說,模型將能夠在當前任務的幾個備選表示之間進行選擇。
自注意力權重的計算大部分發生在BERT的預訓練中:該模型(預)針對兩項任務(Masked語言模型和下一個句子預測)進行訓練,然后針對個別下游任務(如情緒分析)進行finetune。這種分離的基本思想訓練過程分為semi-supervised訓練和finetune階段,其中finetune階段是監督學習:遷移任務的數據集通常太小,一般不夠了解整個語言,但大型文本語料庫可以通過語言建模用于此目的(和其他類似的)。因此,我們可以獲得獨立于任務的句子和文本的信息表示,然后這些句子和文本可以“適應”后續任務。
讓我們在這里指出,“適應”應該工作的確切方式在BERT論文或GPT技術報告(其中強調了預訓練/finetune方法)中都沒有詳細描述。然而,如果注意力本身是為了提供一種對部分的輸入序列“鏈接”,增加信息量,多頭,多層架構需要提供多個可選擇的自注意力圖,可能finetune過程會教模型依靠對手頭的任務更有用的自注意力圖。例如,在情感分析任務中,名詞和形容詞之間的關系比名詞和介詞之間的關系更重要,因此,finetune會理想地教會模型更多地依賴更有用的自注意力圖。
學到的自注意力模式是什么類型的,每種類型有多少?
那么BERT的自注意力模式是什么呢?我們找到了五個,如下圖所示:
圖1,BERT自注意力模式的類型。每個圖像上的兩個軸表示輸入樣本的BERT標記,顏色表示絕對注意力權重(深色表示更大的權重)。
垂直模式表示對單個標記的關注,它通常是[SEP]標記(表示句子結束的特殊標記)或[CLS]標記(作為提供給分類器的完整序列表示使用的特殊BERT標記)。
對角線模式表示注意前面/后面的單詞;
塊模式表示對序列中所有標記的關注或多或少是一致的;
從理論上講,異構模式是唯一能夠對應輸入序列各部分之間的任何有意義的關系的模式(盡管不一定如此)。
以下是BERT在七項GLUE任務中五種注意力的比例(每一列代表所有層中所有頭部的100%):
圖2所示。在選定的GLUE任務上,BERT的自注意映射類型的比例進行了微調。
雖然具體的比例因任務而異,但在大多數情況下,可能有意義的模式占BERT所有自注意力權重的不到一半。至少有三分之一的BERT head只關注[SEP]和[CLS] —— 這種策略不能為下一層的表示提供很多有意義的信息。它還表明,該模型嚴重參數化過度,這解釋了最近蒸餾方法的成功嘗試 (Sanh, Debut, Chaumond, & Wolf, 2019; Jiao et al., 2019)。
值得注意的是,我們使用的是BERT-base,即較小的模型,在16層中有12個頭。如果它已經被過度參數化了,這就意味著BERT-large和所有后來的模型,都是過度參數化的,其中一些是30倍大(Wu et al., 2016)。
這樣對[SEP]和[CLS]的依賴也可能表明,要么BERT以某種方式“吸收”了前面層獲得的信息表示,后續的self-attention圖并不需要太多,要么BERT某種程度上整體不依賴于self-attention。
fine-tuning的時候發生了什么?
我們的下一個問題是BERT的微調過程中發生了什么變化。下面的熱圖顯示了在finetune之前和之后,每個頭和每一層扁平的自注意映射矩陣之間的余弦相似性。較深的顏色表示在表現上有更多的差異。對于所有的GLUE任務,進行了3個epochs的finetune。
圖3所示,在經過訓練和調整的BERT中,平展的自注意圖之間存在余弦相似性。顏色越深表示差異越大。
我們發現,大多數注意力的權重并沒有發生太大的變化,對于大多數任務來說,最后兩層變化最大。這些變化似乎不支持任何特定類型的有意義的注意力模式。相反,我們發現這個模型基本上更依賴于垂直注意力模式。在SST的例子中,在最后一層中較厚的垂直注意模式是由于對最終[SEP]和它之前的標點符號的聯合注意,我們觀察到這是垂直注意模式的另一個常見目標。
圖4,自注意力圖的一個單獨的例子,在SST上對BERT進行finetune。
這有兩個可能的解釋:
垂直模式在某種程度上是足夠的,也就是說,標記表示在某種程度上吸收了前一層的有意義的注意力模式。我們確實發現最早的層更關注[CLS],然后[SEP]開始主導大多數任務(見圖6)
手頭的任務實際上并不需要細粒度的、有意義的注意力模式,而這種模式本應是Transformers的主要特征。
finetune會造成多大的區別?
考慮到在預訓練和調優中使用的數據集的巨大差異,以及非常不同的訓練目標,研究調優實際上產生了多大的差異是很有趣的。據我們所知,這個問題以前沒有人提出過。
我們對每個選擇的GLUE數據集進行了三個實驗:
預訓練模型的權重凍結,并使用特定任務的分類器,看看BERT的表現
從正態分布中隨機初始化模型,并對任務數據集進行3個epochs的finetune,然后看看BERT的表現
使用官方的預訓練BERT-base模型,在任務數據集上finetune3個epochs,然后看看BERT的表現
實驗結果如下:
雖然很明顯,預訓練+finetune設置可以產生最高的結果,但隨機+finetune的BERT在所有任務上都表現得令人不安,除了文本相似性。事實上,對于情緒分析來說,隨機初始化和finetune BERT可以得到80%的準確率,而且不需要任何預訓練。考慮到大型預訓練變壓Transformer的規模,這就提出了一個嚴重的問題:昂貴的預訓練是否能帶來足夠的經濟效益。它還提出了關于NLP數據集的嚴重問題,這些數據集顯然可以在沒有太多任務無關的語言知識的情況下解決,而這些任務無關的語言知識是預xunl+finetune設置應該提供的。
18.01.2020更新:感謝Sam Bowman指出,隨機BERT結果總體上可與預訓練Transformer的GLUE基線相當,并且可以很好地解釋為這些任務在沒有深入語言知識的情況下可以解決的程度。NLP社區在更困難的數據集上需要更多的工作,實際上需要這樣的知識,在過渡期間,我們至少應該切換到SuperGLUE。請注意,對于這些任務,GLUE基線和大多數發布的結果都使用單詞嵌入或基于計數的單詞向量作為輸入,而我們的隨機BERT是完全隨機的。因此,直接比較并不完全公平。然而,特別是對于SST,這種比較可以與原始的遞歸神經張量網絡進行比較(Socher et al., 2013)。這個2013年的模型相比之下很小,而且也采用隨機向量作為輸入表示,但是它在二進制分類上比我們的隨機+finetuneBERT多7點。
有沒有可以在語言學上解釋的自注意力頭?
在這一點上,有幾項研究試圖找出自注意力的頭編碼特定類型的信息,但大多數集中在語法上。我們做了一個實驗,關注框架語義元素:我們從FrameNet 1.7抽取了473個句子,最多12個標記的長度,并且核心框架元素距離目標詞至少2個標記。在下面的例子中,是體驗者和分詞之間的關系喚起了emotion_directframe。可以說,這種關系對于理解一個給定的句子所描述的情況是至關重要的,任何聲稱能夠提供語言信息的自注意力圖的機制都應該反映出這些關系(可能包括許多其他關系)。
我們通過預訓練的BERT得到這些句子的表示法,計算與標注的框架語義關系對應的標記對之間的最大權值。圖5表示FrameNet數據集中所有示例的這些分數的平均值。我們發現兩個頭(第1層的頭2,第7層的頭6)比其他頭更關注這些框架語義關系。
但是,在推理的時候,到底是什么信息在起作用呢?
我們認為,通過對訓練前的BERT權值進行探查,得出某些信息實際上是編碼的結論,未免過于草率。考慮到模型的大小,可能會發現任何其他關系的編碼的類似證明(事實上,Jawahar等人發現在那個方向上的不同分解方案之間沒有顯著的差異)。真正的問題是,模型在推理時是否真的依賴于這些信息。
為了確定我們認為對幀語義關系編碼有用的兩個頭是否真的被finetune過的BERT使用,我們進行了一項消融研究,一次禁用一個頭(即用統一注意力替換習得的注意力權重)。圖6顯示了在我們的示例中所有GLUE任務的熱圖,每個單元格顯示的是總體性能,當給定的頭被關閉。很明顯,雖然整體模式不同任務之間,我們最好隨機刪除頭 —— 包括那些我們確認為編碼有意義的信息,應該為最相關的任務。許多頭也可以在不影響任何性能的情況下關閉,這再次表明,即使是BERT-base也嚴重參數化了。
圖6,模型的性能,一次禁用一個頭,藍色線表示沒有禁用頭的基線性能。較深的顏色對應較高的性能分數。
機器翻譯任務也得出了類似的獨立結論,即將注意力權重歸零,而不是用統一注意力代替它們(Michel, Levy, & Neubig, 2019)。我們進一步表明,這種觀察不僅擴展到頭,而且擴展到整個層:根據任務的不同,整個層可能對模型性能有害!
圖7,禁用一個層的模型的性能。
討論
我們的主要貢獻在于,雖然BERT的大多數研究都集中在探索預訓練好的模型上,但我們提出了一個問題,即在微調過程中會發生什么,以及通過自注意力機制獲得的表征有多大意義。到目前為止,我們還沒有找到語言上有意義的自注意力圖對微調BERT的表現至關重要的證據。我們的研究結果有助于從以下幾個方向對基于Transformer模型的屬性進行持續的討論:
a)BERT過度參數化了。在我們的實驗中,我們一次只禁用一個頭,而在大多數情況下,模型的性能并沒有受到影響,這一事實表明,許多頭具有功能重復,即禁用一個頭不會損害模型,因為相同的信息可以在其他地方獲得。這個結果指向了過度參數化,并解釋了像ALBert和TinyBERT這樣的小型BERT的成功。
這種過度參數化意味著,BERT可能會有一些非常重要的頭,它們在語言上具有有意義的自注意力模式,但為了證明這一點,我們必須嘗試禁用所有可能的頭組合(這是不可行的)。在同一時期的一項研究中提出了一個很有前途的替代方案:(Voita, Talbot, Moiseev, Sennrich, & Titov, 2019)通過使用具有修剪效果的正則化目標對模型進行finetune,確定了基礎Transformer的“重要”頭。
b)BERT不需要那么聰明來完成這些任務。BERT在沒有預訓練的情況下可以很好地完成大多數GLUE任務,這一事實表明,在很大程度上,不需要太多的語言知識就可以解決這些問題。與口頭推理不同,它可能學會依靠數據集中的各種捷徑、偏見和人為因素來做出正確的預測。在這種情況下,它的自注意力圖不一定對我們有意義。這一發現支持了當前許多數據集問題的最新發現(Gururangan et al., 2018; McCoy, Pavlick, & Linzen, 2019)。
另一種解釋是BERT的成功是由于玄學,而不是由于自注意力。例如,在finetune之后對標點符號的高度關注可能意味著該模型實際上學會了依賴于某些其他組件,或者存在一些我們無法理解的深層模式。此外,注意力在多大程度上可以用來解釋模型預測的原則目前正在辯論(Jain & Wallace, 2019;Serrano & Smith, 2019;Wiegreffe & Pinter, 2019)。
-
編碼器
+關注
關注
45文章
3597瀏覽量
134175 -
nlp
+關注
關注
1文章
487瀏覽量
22012
發布評論請先 登錄
相關推薦
評論