中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

飞桨PaddlePaddle發表於2020-09-15

【飛槳開發者說】王肖,中國科學院資訊工程研究所研究生在讀,自然語言處理技術愛好者,研究方向為文字匹配、文字分類、本文對抗、知識蒸餾、模型壓縮、推薦系統、多工學習等。

參賽背景

在研一深度學習課程中首次接觸飛槳,並有幸在研二時對PALM (PArallel Learning from Multi-tasks) [2] 這一開源的、靈活通用的NLP大規模預訓練和多工學習框架作出部分貢獻。在本次中國人工智慧大賽·語言與知識技術競賽的是非觀點型機器閱讀理解任務中,我藉助資料增廣、ERNIE[6]、RoBERTa [1] 等多預訓練模型微調、對抗訓練、k折模型融合等方法,利用PALM框架 [2],形成基於魯棒性最佳化的多模型融合學習策略,在本次個人賽最終獲得冠軍,測試集中達到85.55的準確率。

比賽介紹

機器閱讀理解無論是在工業界還是學術界都有著很高的研究價值。本次大賽任務中所使用的DuReader [3] 資料集克服了以往 SQuAD [4] 等資料集的資料依賴人工合成、任務簡單、應用領域有限等缺點。在競賽中,競賽者對資料集的理解至關重要。本文認為,競賽中使用的一切方法和最佳化都應當是建立在競賽者充分理解資料集這一前提下的,都應當是充分適配當前比賽任務的。此外,適當的資料增強是擴充資料規模的有效方法之一。在保證資料質量的前提下增大資料規模可以使得模型具備更好的泛化能力。

預訓練的方法最初在影像領域提出,近年來,NLP領域中也湧現出越來越多的效能優異的預訓練模型。基於預訓練模型在下游NLP特定任務中進行微調往往能迅速得到理想效果。本文基於飛槳PaddlePaddle開源深度學習平臺[5],利用了RoBERTa [1]、BERT [7] 各自具備不同特性的預訓練模型在本次競賽中的是非觀點型閱讀理解任務上分別進行了微調。

雖然基於預訓練模型的微調可以在是非觀點型機器閱讀理解任務中達到較優效能,但模型的魯棒性仍有待提高,對於一些細粒度的語義差別,模型仍難以準確捕捉。近年來,諸多研究表明機器閱讀理解模型對於對抗攻擊是非常脆弱的,導致其在很多應用場景上出現效果魯棒性問題甚至安全問題。對抗訓練是提高模型魯棒性的重要方式。和影像領域不同,文字中的詞語是離散的,而非連續的 RGB 值。這就導致,如果我們直接在原始本文上進行擾動,則極有可能擾動的方向和大小都沒有任何明確的語義對應。但 [8] 認為 word embedding 的表示是可以認為是連續的,在word embedding上的擾動一定程度上是有意義的。本文中使用的對抗訓練對word embedding新增擾動,以避免模型過擬合。

此外,模型融合借鑑整合學習的思想,在一定程度上提升模型的穩定性與泛化能力 [9]。Bagging主要在於最佳化variance,即模型的魯棒性,boosting主要在於最佳化bias,即模型的精確性。本文中所述方法藉助模型融合的方法進一步提升模型在本次競賽任務中的表現。

綜上,本文所述基於魯棒性最佳化的多模型融合的是非觀點極性分析方法包含資料增強、多預訓練模型微調、對抗訓練、模型融合等方法,具備較好的穩定性與泛化能力,在中國人工智慧大賽 · 語言與知識技術競賽 · 個人賽的最終測試集中達到85.55的準確率。

基於魯棒性最佳化的多模型融合

的是非觀點極性分析方法

A. 任務描述

對於給定的使用者輸入的觀點型問題q、對應候選文件d、答案段落摘要a,給出答案段落摘要所包含的是非觀點極性p,其中,是非觀點極性的所有極性均在{“Yes”, “No”, “Depends”}集合中,對應的含義為:

  • Yes:肯定觀點,肯定觀點指的是答案給出了較為明確的肯定態度。有客觀事實的從客觀事實的角度出發,主觀態度類的從答案的整體態度來判斷。
  • No:否定觀點,否定觀點通常指的是答案較為明確的給出了與問題相反的態度。
  • Depends:無法確定/分情況,主要指的是事情本身存在多種情況,不同情況下對應的觀點不一致;或者答案本身對問題表示不確定,要具體具體情況才能判斷。

B. 資料預處理與資料增強

首先將訓練集、開發集、測試集樣本由json格式轉為tsv格式。其中,將answer、question 與yesno_answer分別提取到tsv格式的檔案中,並將yesno_answer表示為數字標籤形式。label中的“0”、 “1”、“2”分別對應原資料集中yesno_answer的“Yes”、 “No”、“Depends”。原訓練集的標籤分佈如表I中所示。

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

觀察到,在給出的問題相關文件中包含多組段落摘要和標題,標題和question是強相關的,段落摘要與回答強相關,因此,可以藉助相關文件中的段落摘要與標題對原資料集進行擴充。訓練集樣本中title個數分佈情況如表Ⅱ所示。其中,段落摘要與回答的極性往往存在較多差別,若將段落摘要納入資料擴充的依據,需要更耗時的人工檢查與標註。

這裡僅考慮了將段落標題作為question,將其所在樣本的answer作為其答案,將其所在樣本的是非觀點極性作為標籤,對原資料集進行擴充。此外,需特別注意是否有空title,擴充後的標籤分佈是否與原資料集標籤分佈保持一致。此外,還需人工檢查擴充後的資料集質量如何。只有在保證資料質量的前提下進行的資料集規模擴充才是對任務真正有效的。利用段落標題擴充後的不同規模的資料集分佈情況如表Ⅱ所示。

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

C. 多模型微調

多模型微調涉及對RoBERTa [1]、ERNIE [6]、BERT [7]中的RoBERTa-zh-wwm-large、RoBERTa-zh-wwm-base、ERNIE-v1-base-max-len-512、BERT-zh-base這4個預訓練模型利用PALM框架 [2] 在本次是非觀點型閱讀理解任務上的微調。模型的微調結構如圖1所示。

1) 整體流程

首先,將question、answer、yesno_answer讀入reader進行預處理,生成backbone網路所需的token_ids、position_ids、segment_ids、input_mask、label_ids、task_ids(僅在使用ERNIE作為backbone網路時需要)。其中,每行是一條樣本,token_ids的每個元素為文字中的每個token對應的單詞id,question-answer對使用`[SEP]`所對應的id隔開;position_ids的每個元素為文字中的每個token對應的位置id;segment_ids在question的token位置,元素取值為0,在answer的token位置,元素取值為1;input_mask的每個元素為0或1,表示該位置是否是padding詞(為1時代表是真實詞,為0時代表是填充詞);label_ids的每個元素為該question-answer對的類別標籤;task_ids為全0矩陣。

經過backbone網路後,取其生成的sentence_pair_embedding作為微調任務層的輸入。sentence_pair_embedding表示encoder對當前batch中相應樣本的句子向量(sentence embedding)。

微調任務層在訓練階段的輸入為sentence_pair_embedding和label_ids,分別來自backbone網路層和reader層,經過全連線層和softmax層得到loss、probs、label等用於後處理。

2) 不同的backbone網路

RoBERTa [1]、ERNIE [6]、BERT [7]中使用的encoder均為Transformer [10] encoder。

Transformer改進了RNN最被人詬病的訓練慢的缺點,利用self-attention機制實現快速並行。其中,基於query (Q), keys (K)和values (V) attention的計算方式如下:

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

圖 1. 預訓練模型微調結構圖

多頭attention的計算方式如下:


中國人工智慧大賽機器閱讀理解任務冠軍方案出爐


更多細節參照 [10]。不同backbone網路的特性如下:

  • BERT [7] : 使用Transformer [10] 作為演算法的主要框架,更徹底地捕捉語義關係,使用了Mask Language Model(MLM) [11] 和 Next Sentence Prediction(NSP) 的多工訓練目標,相較於較早的預訓練模型,BERT使用更強大的算力訓練了更大規模的資料。
  • RoBERTa [1] : 相較BERT,RoBERTa不再使用Next Sentence Prediction(NSP)任務,使用更大更多樣性的資料,且資料從一個文件中連續獲得。在mask方面,使用動態掩碼機制每次向模型輸入一個序列時都會生成新的掩碼模式。這樣,在大量資料不斷輸入的過程中,模型會逐漸適應不同的掩碼策略,學習不同的語言表徵。
  • ERNIE [6] : 在BERT的基礎上做最佳化,主要改進點在於,在pretrainning階段增加了外部的知識,由三種level的mask組成,分別是basic-level masking(word piece)+ phrase level masking(WWM style) + entity level masking,引入了DLM (Dialogue Language Model) task,中文的ERNIE還使用了各種異構資料集。

綜合多個backbone網路的能力,在下游任務中快速微調,融合不同backbone的微調模型,可使得整體模型具備多樣性、魯棒性,獲得更佳效能。

3) 損失函式

使用交叉熵作為損失函式。

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

其中,K為標籤數量(本任務中為3),y為真實標籤,第i個樣本預測為第K個標籤的機率為pi,k,樣本總數為N。

4) 最佳化器

本文涉及到的所有訓練均使用Adam作為最佳化器,其具備計算高效、易收斂等特點。

D. 對抗訓練

使用對抗訓練的方式來增強模型魯棒性。這裡最終保留了對抗訓練和非對抗訓練的模型進行預測與融合。如圖2所示,本文根據loss求梯度對word embedding的引數矩陣新增擾動,且用來新增擾動的loss不用來最佳化更新。完成干擾後,使用新的loss執行常規的最佳化更新 [12]。

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

圖 2. 對抗訓練流程圖

本文中應用對抗訓練後的損失函式如下所示:

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

該函式表示,對輸入樣本施加ϵ∇word embedding Loss(x,y;θ) 的對抗擾動,一定程度上等價於在loss裡邊加入“梯度懲罰”。

實際上對word embedding新增擾動極大可能並不能對映到一個真實存在的詞語上,這和影像中 RGB 的擾動能夠產生人眼無法分辨區別的對抗樣本是不一樣的。這種對抗訓練更類似於一種 Regularization 的手段,目的是提高 word embedding 的質量,避免過擬合問題,從而最佳化模型。

E. 模型融合

挑選表現最佳的多個模型進行模型融合,一次預測結果的生成流程如圖3所示。

每次挑選出的n個模型分別求出各自的預測結果,即probs,再對機率進行加權求和後,基於最終的probs生成一次預測結果。其中,每個模型的預測結果分別是其5次預測probs的加和,以此提高模型穩定性。


得到每次的預測結果後,可再對不同的預測結果進行進一步的bagging。

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

圖 3. 5折融合預測流程圖

實驗分析

本文所用方法最終在中國人工智慧大賽 · 語言與知識技術競賽 · 個人賽的最終測試集中達到85.55的準確率。在實驗中,作者進行了大量反覆的模型訓練、模型挑選、引數最佳化過程。在實驗過程中,對實驗過程和結果的分析至關重要。分析結論往往影響方法與引數的最佳化方向。本節中總結分析實驗中的部分現象與規律。

A. 不同維度的多樣性

從資料多樣性來說,資料增強在保證資料質量的同時增加了資料的規模,一定程度上也增加了資料的多樣性,使得模型能夠學習到更高質量的知識。

從模型多樣性的角度來說,在整合學習中,我們希望分類器具有多樣性。在本文所述方法中,基於backbone網路為BERT、ERNIE、RoBERTa_base的模型效能雖不如基於backbone網路為RoBERTa_large的模型,但往往能在模型融合中帶來多樣化的資訊,提高融合後模型的效能及魯棒性。

對抗訓練,即擾動的新增,也是一種多樣性增強的手段,也可以提升模型的穩定性。

B. 對抗訓練的有效性

NLP中的對抗訓練似乎不如CV領域更加直觀有效。本文中,對word embedding新增擾動的對抗訓練方式在一定程度上是有效的。

我們可以這樣來看,例如,“好”和“差”,其在語句中扮演的語法角色是往往是相近的,同為形容詞,並且上下文的語境也是相似的,例如:“雪花秀氣墊粉底好嗎”和“雪花秀氣墊粉底差嗎”。對人而言,這兩個形容詞的含義是有著天壤之別的,但這些詞的 Word Embedding 在神經網路中有時是非常相近的,這對於各類NLP任務尤其是是非觀點極性分析型別的機器閱讀理解任務有很大影響。

對抗訓練有效的原因可能在於,在 Word Embedding 上新增的 Perturbation 有可能會導致原來的“好”變成“差”,導致預測結果的類別錯誤,從而導致 Adversarial Loss 變大,而計算 Adversarial Loss 的部分是不參與梯度計算的,模型只能透過改變 Word Embedding Weight 來努力降低Adversarial Loss。因此,這些含義不同而語言結構角色類似的詞能夠透過這種 Adversarial Training 的方法而被分離開,從而提升了 Word Embedding 的質量,幫助模型取得更佳效能,提升模型的魯棒性。

C. 難例分析

本節對部分有難度的樣例進行分析,來解釋說明部分引數調整和部分方法有效的原因。整理的部分樣例如表Ⅲ所示。

中國人工智慧大賽機器閱讀理解任務冠軍方案出爐

對於樣例1的情況,一些模型將該樣例預測為“No”,是因為沒有捕捉到後面“還是可以駕駛小轎車的”這部分的資訊,考慮是max_len設定得不夠大,在增大了max_len引數後,模型效能有所上升;對於樣例2的情況,回答中只包含單一條件,未包含關於“Depends”的一些關鍵詞,模型更大程度地根據文字匹配的程度去判斷,一些模型將該樣例誤標為“Yes”,忽略了版本資訊,模型融合與對抗訓練可能可以改善該問題;對於樣例3的情況,模型預測的標籤似乎比較隨機。

對於樣例4的情況,大部分模型都預測為“Yes”,考慮原因是question與answer中相似的關鍵詞較少,可見模型沒有很好的理解語義資訊。樣例5對人來講應該是很簡單的,但不少模型會預測錯,模型可能並不認識“霍建華”,甚至不知道這部分是一個命名實體;對於樣例6的情況,訓練集中給出的標籤是“Yes”,個人感覺應該是“Depends”,訓練集的質量對模型效能也有很大影響。

從這些樣例來看,任務對模型的泛化能力、魯棒性、對語義的理解能力要求還是比較高的,本文部分方法的應用及最佳化也是從提高模型魯棒性的角度入手。

結論

對於是非觀點型閱讀理解任務,本文重點關注於基於魯棒性最佳化的多模型融合的是非觀點極性分析方法。魯棒性的提升即是模型穩定性、泛化能力的提升,在真實的應用場景中具有重要意義。真實場景下,存在著更多的領域外知識、更多的噪聲等,這些都對模型的魯棒性作出了更高的要求。

未來,在提升模型效能與魯棒性方面,可以嘗試更多的預訓練模型作為backbone網路,例如ERNIE 2.0 [13] 、NEZHA [14]、XLNet [15]、Albert [16];可以在訓練過程中嘗試使用soft label的方式,即將高置信度的預測結果放到訓練集中進行訓練。對於模型融合的方式, 也可以做進一步的最佳化,例如,利用XGBoost [17] 學習模型融合時的權重,避免手動調參,也可以將每個模型的預測結果再次整合放入一個前饋網路層進行訓練,將完全解耦的模型融合方式耦合化,或許能獲得更佳表現。此外,還可探尋更加的資料增強方式。


參考文獻:

  1. Liu Y, Ott M, Goyal N, et al. Roberta: A robustly optimized bert pretraining approach[J]. arXiv preprint arXiv:1907.11692, 2019.
  2. https://github.com/PaddlePaddle/PALM
  3. He W, Liu K, Liu J, et al. Dureader: a chinese machine reading comprehension dataset from real-world applications[J]. arXiv preprint arXiv:1711.05073, 2017.
  4. Rajpurkar P, Zhang J, Lopyrev K, et al. Squad: 100,000+ questions for machine comprehension of text[J]. arXiv preprint arXiv:1606.05250, 2016.
  5. https://github.com/PaddlePaddle/Paddle
  6. Sun Y, Wang S, Li Y, et al. Ernie: Enhanced representation through knowledge integration[J]. arXiv preprint arXiv:1904.09223, 2019.
  7. Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
  8. Miyato T, Dai A M, Goodfellow I. Adversarial training methods for semi-supervised text classification[J]. arXiv preprint arXiv:1605.07725, 2016.
  9. Dietterich T G. Ensemble methods in machine learning[C]//International workshop on multiple classifier systems. Springer, Berlin, Heidelberg, 2000: 1-15.
  10. Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
  11. Taylor W L. “Cloze procedure”: A new tool for measuring readability[J]. Journalism quarterly, 1953, 30(4): 415-433.
  12. Ross A S, Doshi-Velez F. Improving the adversarial robustness and interpretability of deep neural networks by regularizing their input gradients[C]//Thirty-second AAAI conference on artificial intelligence. 2018.
  13. Sun Y, Wang S, Li Y, et al. Ernie 2.0: A continual pre-training framework for language understanding[J]. arXiv preprint arXiv:1907.12412, 2019.
  14. Wei J, Ren X, Li X, et al. NEZHA: Neural Contextualized Representation for Chinese Language Understanding[J]. arXiv preprint arXiv:1909.00204, 2019.
  15. Yang Z, Dai Z, Yang Y, et al. Xlnet: Generalized autoregressive pretraining for language understanding[C]//Advances in neural information processing systems. 2019: 5754-5764.
  16. Lan Z, Chen M, Goodman S, et al. Albert: A lite bert for self-supervised learning of language representations[J]. arXiv preprint arXiv:1909.11942, 2019.
  17. Chen T, Guestrin C. Xgboost: A scalable tree boosting system[C]//Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. 2016: 785-794.

如在使用過程中有問題,可加入飛槳官方QQ群進行交流:1108045677。

·飛槳官網地址·

https://www.paddlepaddle.org.cn/

·飛槳PALM專案地址·

GitHub:

https://github.com/PaddlePaddle/PALM

Gitee:

https://gitee.com/paddlepaddle/PALM


·飛槳開源框架專案地址·

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee:

https://gitee.com/paddlepaddle/Paddle


飛槳PaddlePaddle
飛槳PaddlePaddle

飛槳(PaddlePaddle)是中國首個自主研發、功能完備、開源開放的產業級深度學習平臺。

https://www.paddlepaddle.org
專欄二維碼

相關文章