如何從資料、模型和訓練角度提升閱讀理解系統效能?

追一科技發表於2018-10-29

2018年10月19日,第十七屆中國計算語言學大會(CCL2018)在長沙召開,追一科技團隊作為中文機器閱讀理解(CMRC2018)評測任務的冠軍隊伍,在評測研討會上分享了本次參賽系統的報告。

機器閱讀理解(Machine Reading Comprehension)可以說是近兩年NLP領域的大熱點,顧名思義,就是讓機器像人一樣去讀懂一段文字,並回答相應問題。常見的機器閱讀理解形式有完形填空式,選擇題式和知名度最廣的抽取式,從抽取文件篇數又可細分為多文件(如MS MARCO)和單文件(SQuAD)。CMRC比賽與最流行的英文資料集SQuAD形式類似,文件來源於中文維基百科,問題由人工撰寫,根據給定的一篇文件和一個問題,參賽者需要解決的是,如何建立並訓練model,使其能更好地理解context與query,並找到相應答案。下圖為實際比賽資料的一個示例。

如何從資料、模型和訓練角度提升閱讀理解系統效能?

資料

在資料方面,主要工作集中在資料的歸一化和去噪音。CMRC比賽訓練集包含大約一萬條資料,總體資料量偏少,這種情況下資料的標註一致性尤為重要。透過分析錯誤樣例,參賽隊員發現了標註的不一致問題,透過分析篩選最終對少量答案分佈不一致的訓練資料進行了清洗。

(1963年)

範廷頌是什麼時候被任為主教的? 

VS  

九廣鐵路小童儲值票是何時停止使用的?

(1990年9月停止使用

上面的資料樣例展示了這種標註不一致問題,同樣為時間點的詢問,但是不同標註有字尾區別,這種標註不一致問題會使模型的最終預測EM指標降低。

除了標註不一致的噪音,參賽隊員還對文字進行了歸一化,比如繁簡轉換,中英文標點轉換等資料歸一化操作。

模型

在模型方面,追一此次參賽採用了經典的端對端閱讀理解系統,整體框架參考微軟的模型結構R-Net,示意圖如下,

如何從資料、模型和訓練角度提升閱讀理解系統效能?

文字向量化表達

文字的向量化表達一直是深度學習系統效果的重中之重,本次參賽追一代表隊使用了預訓練的中文ELMo代替傳統的word2vec,單此一項,EM提升了1.8個點。傳統的詞向量word2vec是上下文無關的,無法對一詞多義的情況進行建模,比如常舉例的 “我想吃【蘋果】”和 “我的【蘋果】手機摔壞了”。近期AllenAI提出了ELMo,即Embeddings from Language Models,這種詞表徵不再是固定的向量,而是以語言模型為基礎獲得的一個上下文相關的詞表徵。

英文ELMo是基於字元級別的編碼,對中文並不適用。針對中文文字追一團隊實驗了兩套方案,第一版是採用詞級別進行輸入,第二版是將詞改進為筆劃級別的編碼,兩者都透過雙層LSTM變換來進行語言模型預訓練。經過多次實驗,效果最好的詞級別與筆劃級別的ELMo效果相差不大,最後採用了基於維基百科與新浪新聞組合語料訓練的512維詞向量ELMo模型作為下游任務的輸入。

除ELMo外,模型還加入了描述問題型別的one hot特徵,即按提問方式將問題歸為who, where, when等八類,並轉換為one-hot向量。POS資訊與詞共現特徵也作為額外的輸入傳入了模型。

編碼層

採用多層雙向RNN對文件和問題分別進行編碼

互動層

Attention機制是融合文件內容和問題資訊的主要方法,是眾多模型中比較通用的部分。在傳統attention基礎上,我們對問題輸入新增了額外一個基於gate機制的過濾層,讓模型去傾向注意核心詞彙,忽略無關資訊。改進的attention將EM/F1分別提升了0.6/0.3。

答案抽取層

和眾多參賽隊類似,追一的參賽隊員採用了Pointer-network來作為模型的輸出層。PointerNetwork透過預測答案的起始與終止位置,得到最終輸出。

訓練

由模型壓縮思想衍生出的自我蒸餾(self-distill)訓練方法在此次比賽中起到了很好的效果,其思想來源於論文《Born-Again Neural Networks》。蒸餾通常用在模型壓縮方面,即採用預訓練好的複雜模型(teacher model)輸出作為監督訊號去訓練另一個簡單模型(student model),從而將teacher學習到的知識遷移到student。自我蒸餾就是不改變模型大小,迴圈進行teacher-student的訓練,直到效果不再改進。CMRC比賽中,teacher model是已經訓練好的一版模型,student 和teacher 模型相同,僅重新初始化。訓練student時,模型要同時學習真實label和teacher的輸出。 self-distill效果顯著,最終模型比初始teacher的EM/F1分別可以增長0.88/0.94。

經過資料清洗,模型最佳化,多次訓練,最終的系統在正式測試集上,EM和F1分別達到了74.178和88.145,僅靠單模型(single),在所有隊伍中排名第一。

如何從資料、模型和訓練角度提升閱讀理解系統效能?

機器閱讀理解技術應用領域廣泛,現已在資訊提取等多個產品功能上投入應用,也是追一未來重點投入的研究方向之一。

相關文章