對話式閱讀理解-技術發展現狀淺談


機器閱讀理解(Machine reading Comprehension; MRC) 一直以來都是自然語言處理中熱門的議題,其目的是在測驗機器是否能正確的理解文章報導的內容,進而對使用者提出的問題找出解答。其中,連續對話式問答算是更難的一個分支。此情境下使用者可以以自然對話的方式和機器進行問答互動,但因為多輪互動,答案的線索可能隱藏在前幾輪中。為有公正的比較基準,史丹佛大學提出了連續對話問答資料集CoQA[1]作為測試比較之用。

在CoQA的排行榜(見下圖)中,目前榜首於去年九月所提供的方法(BoBERTa+AT+KD)[2]可以達到90.7,甚至超越了人類的表現,以下將針對其使用的三個關鍵方法做解說

coqa_rank

資料來源: Ju, Ying, et al. "Technical report on conversational question answering." arXiv preprint arXiv:1909.10772 (2019).

圖1 CoQA排行榜

1.RoBERTa

作者使用了RoBERTa[3]做為基底的預訓練模型。RoBERTa是知名預訓練模型BERT的改良版。作者表示因為RoBERTa使用比BERT更大量的資料去進行訓練,能得到更準確的預測結果。

2.對抗式訓練(Adversarial Training; AT)和虛擬對抗式訓練(Virtual Adversarial Training; VAT)

對抗式訓練由Goodfellow et al.[4]提出,出要是強化模型對雜訊的抵抗性。其原因在只使用訓練資料訓練出來的模型在面對預測資訊有若干擾動雜訊時會無法做正確的預測,為抑止這方面的影響,在訓練時將訓練輸入加入若干擾動後當成訓練例一起訓練(預測目標標籤同未加入擾動的訓練資料)。若加入的擾動是沿當前梯度方向則被稱為對抗式訓練,因為當前模型對此方向擾動最沒抵抗力。

虛擬對抗式訓練[5]相較於對抗式訓練為半監督式學習。比起使用預測目標標籤來計算損失函數,虛擬對抗式訓練去計算有無加擾動之間的KL散度做為損失函數。

3.知識蒸餾(Knowledge Distilling)

比起使用1/0標籤來做訓練,一個訓練過的模型其softmax輸出的比例會帶有更多的隱藏資訊,如兩標籤之間的親疏關係。基於此點我們先訓練一個模型稱為教師,再用它softmax層得到的輸出再來訓練學生模型,我們稱此手法為知識蒸餾[6]。此篇使用多個亂數種子來訓練不同的教師模型,再平均他們softmax層輸出的結果來訓練學生模型。

參考來源:

[1] https://stanfordnlp.github.io/coqa/

[2] Ju, Ying, et al. "Technical report on conversational question answering." arXiv preprint arXiv:1909.10772 (2019).

[3] Liu, Yinhan, et al. "Roberta: A robustly optimized bert pretraining approach." arXiv preprint arXiv:1907.11692 (2019).

[4] Goodfellow, Ian J., Jonathon Shlens, and Christian Szegedy. "Explaining and harnessing adversarial examples." arXiv preprint arXiv:1412.6572 (2014).

[5] Miyato, Takeru, et al. "Virtual adversarial training: a regularization method for supervised and semi-supervised learning." IEEE transactions on pattern analysis and machine intelligence 41.8 (2018): 1979-1993.

[6] Furlanello, Tommaso, et al. "Born again neural networks." arXiv preprint arXiv:1805.04770 (2018).

延伸閱讀