直播 | CMRC2018 評測任務冠軍隊伍分享: 如何從數據、模型和訓練角度提升閱讀理解系統性能?

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

機器閱讀理解(Machine Reading Comprehension)指的是,讓機器像人一樣去讀懂一段文字,並回答相應問題。常見的機器閱讀理解形式有完形填空式,選擇題式和知名度最廣的抽取式,從抽取文檔篇數又可細分爲多文檔(如 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),在所有隊伍中排名第一。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章