A BERT based model for Multiple-Choice Reading Comprehension
Abstract
在本文中,我們提出了一個基於BERT的深度協同匹配網絡(DCN),該網絡的性能與RACE數據集上的基線模型相比有了顯著的提高。我們的DCN方法通過計算文章/問句之間的注意力權重來獲得問句感知的文章表示,同理,我們也通過計算文章/選項之間的注意力權重來獲得選項感知的文章表示。我們對基線模型的超參進行了微調,並應用了簡單數據擴張策略。我們的DCN模型在RACE上實現了66.2%的准確率。最終,我們基於所有的模型建立了集成模型,該模型實現了67.9的准確率,此性能在RACE數據集上排第6名。
1 Introduction
自動閱讀理解可被廣泛應用於商業領域中,例如技術支持和故障排除、客戶服務、醫療記錄和金融報告的理解等。本報告將探索如何使得計算機在文本理解任務中達到人類水平。如果智能代理真的可以通過學習算法在無人類監督的情況下快速高效地理解文本,那么許多依賴於自動化的行業都將從中受益。在眾多文本理解任務中,本項目主要集中於RACE數據集上的自動多選式閱讀理解任務。與SQuAD那種文本寫作風格固定且單一的數據集相比,RACE數據集中的答案並不能從原文中直接提取,這是因為回答這些問題需要更高水平的理解和推理。具體來說,它有以下挑戰:
(1) 它是由人類專家創建用於測試高中和初中學生的閱讀理解技能的,因此它要求更高水平的推理和計算技術。
(2) 它包含的問題類型多樣,比如總結、推理、數值計算和內容匹配。
(3) 它的文章涉及多個領域,寫作風格迥異。
因此,為解決上述挑戰,本報告將以四種方式處理機器閱讀理解問題:一種是通過預訓練的BERT算法,其他的分別是通過我們提出的DCN方法、AOA方法以及將上述三種進行集成的模型。我們對這些基礎模型的超參進行了微調,並且應用了簡單數據擴張的策略。我們通過集成技術將所有模型結合起來,希望在多選式閱讀理解中能實現最優性能。
1.1Problem definitions
我們算法的輸入是由一篇文章、一個問題和一個選項組成的一個序列。隨后我我們使用BERT、AOA、DCN和集成模型去預測該問題的正確答案。
為了測試該模型在給定文章和問題的情況下預測出正確答案的成功性,我們將根據模型預測出的正確答案的數量與數據集中的問題總數之間的百分比來評估模型的性能。因此,整個項目中都是用accuracy作為評測指標來驗證我們模型的性能,該指標定義如下:
2 Related Work
已經有很多機器學習模型成功解決了閱讀理解問題。也有很多數據集(AQuAD、NEWSQA和METest)被廣泛用於測試這些模型。然而,這些數據集的內容均來自一個特定領域或以一種固定的寫作風格得到的,並且還有基於范圍的答案。因此,我們通過選擇一個相對較新的數據集來挑戰自己,RACE包含了多種主題和寫作風格的文章,因此,我們模型的目的是要接近人類的邏輯思維和理解能力。
先前的論文主要關注成對序列匹配以提高神經網絡的閱讀理解能力。無論是匹配一篇文章和相應問題、選項的聯接結果,還是匹配一篇文章與問題,然后去選擇答案,這些方式都是有效的。在這些文獻中,許多類型的注意力被提出去強化神經網絡在文章級別的推理能力。Xu等人使用多跳推理機制從而提出了動態融合網絡。Zhu等人提出了分層注意力流用於建模文章、問題和選項之間的交互。BERT實現了七個NLP任務的最優結果。受雙協同匹配注意力的啟發,我們提出了基於BERT的DCN。
3 Dataset and Features
RACE數據集包含初中部分和高中部分。如圖1所示,RACE-Middle中有7139篇文章,RACE-High中有20794篇文章。此外,文章加起來總共27933,問題加起來總共97687。如果我們想看一下每個子數據集的情況,我們可以很輕松的觀察到這兩個子集的訓練集:測試集:驗證集為9:0.5:0.5。我們也計算了初中集部分的文章平均約為250個詞,高中集部分的文章平均約為350個詞,這將為基線模型選擇正確的最大序列長度提供很好的參考。
3.1 Data Preprocess
我們將一篇文章、一個問題和一個選項及特殊標記CLS和SEP聯接起來作為BERT模型的輸入序列。因此,對於每個問題,我們將有4個這樣的輸入,並將正確選項的標簽作為真實標簽並預測答案。
3.2 Data Augmentation
簡單數據擴張(EDA)原本是用於強化小規模數據集上的文本分類任務的。EDA打算通過以下操作來創建新文章和增強文章:
(1) 通以此替換:隨機選擇一些非停用詞。用它們的同義詞來替換它們。
(2) 詞插入:找到一句話中某個非停用詞。在這句話中的隨機位置插入其同義詞。
(3) 詞交換:隨機選擇兩個詞進行位置交換。
(4) 詞刪除:以指定的概率隨機刪除句子中的單詞。
因此,EDA擴大了現有數據集的大小和多樣性。我們希望這可以訓練過程中的過擬合問題,有助於建立更健壯的模型。
4 Methods
如前所述,我們探索了AoA模型、BERT、DCN和集成模型。
4.1 BERT
2018年BERT在11個NLP任務上實現了最優性能。我們的多選模型是基於HuggingFace實現的pytorch版本的BERT構造的,在BERT之后添加一個全連接層和一個softmax函數去預測正確答案。然后我們在RACE數據集上微調pre-trained uncased BERT作為我們的基線方法。基礎版BERT和增大版BERT的編碼層數量分別為12和24。
BERT通過多頭注意力進一步完善了自注意力層。它在兩方面提高了性能。一方面,它使得模型可以捕獲長距離詞義依賴。另一方面,它提供了表示子空間的能力。
最后,在我們實現的BERT模型中總共有15個超參。其中,我們選擇了5個對模型性能影響最顯著的超參進行實驗。
(1) Learning rate:Adam優化器的初始學習率。
(2) Freeze layers:凍結BERT的部分編碼層。該參數的取值取決於BERT的類型,因此其取值可能是6或12。
(3) L2 regularization:權重衰減率被設置為0.1,0.01,或0.001。
(4) Batch size:訓練集中用於估計誤差梯度的樣本數。
(5) Max sequence length:輸入序列的最大長度。長於此數值的序列被截斷,小於此數值的序列被填充。
4.2 Attention over Attention
我們在此項目中的最初動機是進一步推動BERT中的注意力概念並引入AoA層到原始的BERT中去。這是一個相對較新的神經網絡結構,它致力於在現有的文檔級別的注意力之上使用另一種注意力機制。而不是僅僅為每個詞匯總或平均單個注意力以獲得最終的注意得分,在查詢中執行額外的“重要性”分布,以確定在給定單個文檔單詞的情況下,哪些查詢單詞更重要。因此,它增加了可有效用於神經網絡的信息。
我們可以得到按行softmax和按列softmax的結果,隨后可獲得一個新的變量Si。每個選項是正確答案的最終概率由如下公式獲得:
然而,我們很快意識到由於BERT結構的性能,AoA很難被集成到原始的BERT中去。
4.3 Deep Comatch Network
相反,我們通過引入問句感知的文章表示和選項感知的文章表示設計了DCN結構,以充分挖掘{文章、問句、選項}間的有效信息。在進入comatch層之前,網絡先通過5層P2Q/Q2P和P2A/A2P coattention。該結構的輸入就是BERT編碼層輸出的文章、問句和選項的隱狀態。最后,分類層將在comatch塊中的最大池化層之后輸出預測的答案。
首先,文章、問句和選項有BERT進行編碼:
這里的Hp∈RP*L,Hq∈RQ*L,Ha∈RA*L是由BERT生成的隱狀態。這里的P、Q、A分別是文章、問句和選項的序列長度,L是BERT隱狀態的維度。
然后,我們使用如下公式處理P2Q/Q2P和P2A/A2P之間的coattention操作。注意,這里與先前的論文不同;在我們的模型中,我們還探索了文章和選項之間的(注意力)關系。
這里的-和.分別表示矩陣按元素相減和按元素相乘。[;]表示矩陣按行聯接。我們用了不同的權重,因此我們獲得了Sp和Sp`。然后我們聯接經最大池化操作后的結果:
最后,我們計算分類其層輸出結果的交叉熵損失函數值。
4.4 Ensemble
為進一步提高性能,我們也探索了集合所有上述技術的集成模型。在通過不同超參建立不同的BERT模型之后,我們將DCN和EDA數據集進行合並以得到一個集成模型。之后,我們將探索每個模型的相對權重並調整權重以獲得更好的性能。
5 Experiments/Results
我們對基線模型的超參進行微調得到了62.2%的准確率。我們應用EDA得到了0.6%的提升。加上我們的DCN模型得到了66.2%的准確率。最終,我們建立的集成模型達到了67.9%的准確率,它在RACE排行榜上可排到第6名。
5.1 BERT
在本項目中,我們隊BERT基礎模型中的以下超參進行了實驗。
5.1.1 Learning rate
基於基線模型,我們嘗試了三種初始學習率,即1e-5、5e-5和1e -4。結果如圖4所示。學習率1e-4用藍線表示,其損失先下降后上升並穩定在一個較高值,表明學習率太大。對於1e-5和5e-5這兩個學習率,其損失都隨着迭代次數的增加而減小。但是顯然學習率5e-5可以獲得更小的損失並提供最佳性能。迭代的單位是1K個樣本。在學習過程中,由於學習率會動態變化,所以損失下降地會很大。
5.1.2 Freeze BERT encoder layers
我們探討了凍結層的數量對模型性能的影響。由於GPU內存限制,最大序列為320,batch size為8,結果如上表所示。從表中可以看出,隨着凍結數的增加,性能越來越低。當凍結層數超過3層時,性能會下降地更快。
5.1.3 L2 regularization
此外,我們設置L2正則化系數分別為0.1、0.01和0.001探索了權重衰減參數。 我們獲得了相應的性能,分別為62.1%,62.2%和62.1%。 因此,L2正則化為0.01時可獲得最佳性能。
5.1.4 Batch size
由於BERT是一個龐大的網絡,因此我們使用梯度累加技術來減少GPU內存需求。我們嘗試了四種不同的批次大小:16、24、32和64。我們先將用於BERT訓練的batch size大小設置為32,獲得了61.9%的性能;但是,隨着我們將batch size大小分別減小到24和16,准確性都提高了一點,分別達到62.3%和62.5%。 同樣,當我們將批次大小增加到64時,准確性會降低。因此,似乎batch size大小在32、24和16間取值時可以達到最佳模型,但是batch size大小為16的模型性能最佳,這比batch size大小為24時高0.22%,比batch size大小為32時高0.65%。
5.1.5 Max sequence length
最大序列長度是一個超參數,在基於BERT的模型中起着至關重要的作用。最大序列長度從320增加到450時,性能提高了1.5%。我們先在BERT基本模型上對等於320的最大序列長度進行了測試,得出的准確度為61.1%。隨着最大序列長度的增加,模型的性能也隨之提高。對於最大序列長度分別取值380、420和480時,我們分別獲得了61.3%,61.8%和62.6%的准確度。 因此,我們得出結論,更大的最大序列長度可以提高模型的准確性。從直覺上講,這是正確的,因為某些段落的長度超過了400個單詞。但是,模型大小與最大序列長度成比例,因此會導致更多的顯存需求。由於資源有限,我們無法探索更多的長度。
5.2 Data Augmentation
我們將訓練集整體提高了10%,一半是基於RACE-middle,另外一半是基於RACE-high的。我們僅對隨機選擇的段落應用了增強,並通過將其與原始問題和選項連接在一起進行了相同的預處理。在EDA中,有一個參數指示通過每種增強技術在每個段落中更改的單詞百分比。例如,如果設置為0.1,我們的EDA實現將把10%的單詞更改為其同義詞,隨機單詞插入和交換將發生在單詞總數的10%上,而10%的單詞將被隨機刪除。我們將該參數分別設置為0.1、0.2、0.3和0.5進行了實驗,每個參數分別實現了65.2%,65.6%,64.9%和64.9%的精度。因此,盡管精度差異不是很大,但取值0.2時得到了最佳性能。但是,與不使用EDA的大型BERT模型所獲得的准確性相比,添加增加參數0.2的訓練數據的10%可以使模型准確性提高0.6%。
因此,我們發現最好的性能達到了65.6%,如圖5所示,與原始的RACE數據集相比,大約是獲得了0.6%的提升。有兩個可能的原因使得提高的並不多。一種是我們可能需要調整EDA的超參數,對不同的操作使用不同的比率,同義詞替換應該噪聲較小,但其他3種操作會增加更多的噪聲。另一個原因是簡單的數據擴充傾向於在一個小的數據集上很好地工作,但是我們的比賽包含6400篇文章,相對來說是一個大的數據集。
5.3 Deep Comatch Network
我們嘗試將一些新的注意力應用於多選式閱讀理解中。首先探討的是在基礎BERT模型中添加AoA層。然而卻只獲得了25.1%的准確率,該結果很低,這是由於當兩個層在編碼器層結合時,BERT的自注意層與AoA層相沖突。
然后,我們受深度comatch網絡的啟發設計了DCN。我們根據BERT隱藏輸出創建了多層深度匹配網絡。在深度網絡中,我們設計了一個新的協同注意層,在BERT編碼之后,我們又設計了5層協同注意層。我們的DCN通過關注文章/問題和文章/答案之間的關系,從問題感知的文章表示和答案感知的文章表示中獲益。然而,由於GPU資源的限制,我們對DCN進行了三層訓練,在DCN的單模模式下,訓練精度達到了66.2%。
5.4 Ensemble
在探索了所有這些不同的模型之后,我們按照最初的計划創建了集成模型,因為我們確信集成學習可以幫助實現最佳性能。在保持模型最佳性能的前提下,采用隨機搜索的方法來衡量基本和large-BERT、EDA和DCN之間的精度。最后,在集合模型中得到了67.9%的精度,如圖5所示。換句話說,與DCN相比,我們的准確率提高了1.7%。這一結果保證了適當權重的集成學習可以提高機器學習的效果。
6 Analysis
下圖顯示了DCN和基本模型之間的比較。DCN在高中和初中兩個子數據集中的性能都優於基線。DCN在處理高中數據集中這種長而復雜的文章,其性能更為優越。
關鍵是,通過對BERT錯誤回答的問題的分析,發現該模型不能進行簡單的數值推理。例如,在以下錯誤標記的情況下,第一個選項是正確的。雖然預測的(第二個)選項有更高的概率,但答案應該是45-18=27年前。
7 Conclusion/Future Work
在Dual Comatch Network的基礎上,我們提出了一種新的深度匹配網絡,該網絡在BERT輸出的隱狀態之后添加多個匹配注意層。最終,我們在單個模型中獲得了66.2%的准確率,在整體模型中獲得了67.9%的准確率。因此,在我們測試的四種算法中,集成模型的性能最好。
與目前最先進的69.7%的性能相比,我們落后了一點的原因可能是由於GPU資源的限制,我們不得不凍結幾個層,無法以更高的序列長度進行探索。即使是使用多個teslav100gpu的分布式訓練也面臨着內存分配的問題,因此我們無法進一步探討,盡管我們發現使用更大的序列長度有助於建立更精確的模型。
我們的模型和數據集太大,每個實驗都需要很長時間來訓練和測試。在未來,隨着時間和GPU內存的增加,探索更深層的DCN和更大的最大序列長度將是一件有趣的事情。我們還想花更多的時間在超參數調優EDA、DCN和集成模型上,並嘗試在另一個數據集上先進行訓練,以便在RACE數據集上進行遷移學習。