CMU&谷歌大腦提出新型問答模型QANet:僅使用卷積和自注意力,性能大大優於RNN
選自arXiv
作者:Adams Wei Yu等
機器之心編譯
參與:Geek AI、路
近日,來自卡內基梅隆大學和谷歌大腦的研究者在 arXiv 上發布論文,提出一種新型問答模型 QANet,該模型去除了該領域此前常用的循環神經網路部分,僅使用卷積和自注意力機制,性能大大優於此前最優的模型。
1 引言
人們對機器閱讀理解和自動問答任務的興趣與日俱增。在過去的幾年中,端到端的模型在許多具有挑戰性的數據集上顯示出非常好的結果,取得了顯著的進步。最成功的模型通常會利用兩個關鍵的組成部分:(1)處理序列化輸入的循環模型,(2)處理長期交互的注意力組件。Seo 等人(2016)提出的 Bidirectional Attention Flow(BiDAF)模型是這兩部分的一個成功組合,該模型在 SQuAD 數據集(Rajpurkar 等人在 2016 年發布)上獲得了很好的效果。這些模型有一個缺點,即由於它們的循環性質導致訓練和推斷都十分緩慢,特別是對於長文本來說。高昂的訓練開銷不僅導致了很長的實驗周期,限制了研究者進行迅速的迭代,還妨礙了模型被用於大型數據集。與此同時,緩慢的推斷阻礙了機器閱讀理解系統在實時應用中的部署。
本論文中,為了使機器更迅速地進行理解,研究者提出去除這些模型的循環特性,僅使用卷積和自注意力機製作為構建編碼器的模塊,它們分別編碼查詢(query)和語境(context)。接著研究者通過標準的注意力機制來學習語境和問題之間的交互(Xiong et al., 2016; Seo et al., 2016; Bahdanau et al., 2015)。在最終解碼出每個點作為答案區間的起始點和終點的概率之前,得到的數據表徵被再一次用研究者提出的無循環特性(recurrency-free)的編碼器進行編碼。本論文研究者將這個架構稱為 QANet,如圖 1 所示。
該模型設計背後的關鍵動機是:卷積能夠捕獲文本的局部結構,而自注意力機制能夠學習到每一對詞語之間的全局相互作用。額外的「語境-查詢」注意力機制是一個用於為上下文段落中的每一個位置構建 query-aware 語境向量的標準模塊,這些向量將在隨後的建模層中使用。該架構的前饋特性大大加快了模型的速度。在 SQuAD 數據集上進行的實驗中,本論文提出的模型訓練速度提升到相應 RNN 模型的 3 到 13 倍,推斷速度提升到 4 到 9 倍。如果進行一個簡單的對比,該模型可以在 3 小時訓練時間內達到和 BiDAF 模型(Seo 等人在 2016 年提出)同樣的準確率(77.0 F1 值),而後者則需要花費 15 小時。模型的加速還讓研究者通過更多的迭代來訓練模型,從而得到比其它有競爭力的模型更好的結果。例如,如果使本文提出的模型訓練 18 個小時,則它會在開發集上獲得 82.7 的 F1 值,這比 Seo 等人在 2016 年提出的模型好得多,並且與目前公布的最好結果達到了同等水平。
由於該模型運行速度很快,因此相較於其他模型,我們可以用多得多的數據訓練它。為了進一步改進模型,研究者提出了一種補充性數據增強技術來改善訓練數據。這種技術通過將原始的英文句子翻譯成另一種語言然後再翻譯回英語來改寫例句,這不僅增加了訓練實例的數量,還增強了措辭的多樣性。
在 SQuAD 數據集上,用增強數據訓練的 QANet 在測試集上獲得了 84.6 的 F1 值,這相比 Hu 等人(2017)公布的最佳結果——81.8 有了很大提升。研究者還進行了模型簡化測試(ablation test),來證明該模型中每一個組件的有效性。本論文的貢獻如下:
提出了一種高效的閱讀理解模型,它完全建立在卷積和自注意力機制之上。據了解,本論文作者是這項研究的開創者。這個組合(卷積和自注意力機制)保持了良好的準確率,同時與相應的 RNN 模型相比,在每一輪迭代中,該模型的訓練速度最高達到前者的 13 倍,推斷速度最高達到前者的 9 倍。速度提升使得該模型成為擴展到更大數據集的最佳候選方案。
為了在 SQuAD 數據集上提升訓練結果,研究者提出了一種新的數據增強技術,通過改寫句子來豐富訓練數據。這使得 QANet 模型獲得了比目前的最佳模型更高的準確率。
圖 1:QANet 架構概覽(左圖),包含多個編碼器模塊。研究者在整個模型中使用相同的編碼器模塊(右圖),僅僅在每個模塊中改變卷積層的數量。研究者在編碼器模塊的每一層之間使用了層歸一化和殘差連接技術,還在語境和問題編碼器以及三個輸出編碼器之間共享權重。研究者在每一個編碼器層的起始處加入一個位置編碼,正如 Vaswani 等人在 2017 年定義的那樣,它是由波長不同的正弦函數和餘弦函數組成的。編碼器結構內部的位置編碼後面的每一個子層(卷積、自注意力機制或前饋網路其中之一)都被包裝在一個殘差模塊中。
圖 2:以法語作為中間語言(以 English-French-English 形式改寫)的數據增強過程圖示。其中,k 是集束寬度,即 NMT 系統生成的譯文數量。
表 1:原句和改寫後的句子中的答案對比。
4 實驗
表 2:在 SQuAD 數據集上不同模型的性能。
表 3:QANet 模型和基於 RNN 的模型在 SQuAD 數據集上的運行速度對比,所有模型的批大小都是 32。「RNN-x-y」表示一個有 x 個層、每層包含 y 個隱藏單元的 RNN 網路。這裡使用的 RNN 模型是雙向 LSTM 模型。運行速度使用「批/秒」(batches/second)這個單位來衡量,值越高,速度越快。
表 4:QANet 模型和 BiDAF 模型(Seo et al., 2016)在 SQuAD 數據集上的速度對比。
表 5:對數據增強和 QANet 模型中其它部分的模型簡化測試。這裡所展示的結果是在開發集上取得的。對於包含「data augmentation」條目的行,「×N」表示數據被增大到原始規模的 N 倍,而括弧中的比率表示採樣率,即原始數據、「英語-法語-英語」和「英語-德語-英語」數據的採樣比例。
表 6:在 SQuAD 對抗樣本測試集上的 F1 值。
表 7:在 TriviaQA 數據集的 Wikipedia domain 上,不同的單段閱讀模型在開發集上的性能。註:*表示測試集的結果。
表 8:QANet 模型和基於 RNN 的模型在 TriviaQA 維基百科數據集上的運行速度對比,所有的批大小都是 32。「RNN-x-y」表示一個有 x 個層、每層包含 y 個隱藏單元的 RNN 網路。這裡使用的 RNN 是雙向 LSTM。處理的速度以「批/秒」這個單位衡量,值越高,速度越快。
論文:QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION
論文鏈接:https://openreview.net/pdf?id=B14TlG-RW
項目地址:https://github.com/hengruo/QANet-pytorch
摘要:目前的端到端機器閱讀和問答(Q&A)模型主要基於帶注意力機制的循環神經網路(RNN)。儘管它們取得了一定程度的成功,但由於 RNN 的序列特性,這些模型的訓練速度和推斷速度通常較慢。我們提出了一個名為 QANet 的新型問答系統框架,它不再需要循環網路:其編碼器僅僅由卷積和自注意力機制構成,卷積可以對局部相互作用建模,而自注意力機制可以對全局相互作用建模。在 SQuAD 數據集上,QANet 模型的訓練速度提升到對應的 RNN 模型的 3 到 13 倍、推斷速度提升到 4 到 9 倍,並且取得了和循環模型同等的準確率。速度提升使得我們能夠使用更多的數據訓練模型。因此,我們將 QANet 模型和使用神經機器翻譯模型回譯得到的數據結合了起來。在 SQuAD 數據集上,我們使用增強的數據訓練的模型在測試集上獲得了 84.6 的 F1 值,這遠遠優於目前公開的最佳模型 81.8 的 F1 值。
本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。
------------------------------------------------
※商湯科技C輪戰略融資6億美元,晉級世界第一AI獨角獸
※谷歌AI部門大改組:搜索與人工智慧分家,Jeff Dean任AI總負責人
TAG:機器之心 |