Iterative Alternating Neural Attention for Machine Reading

作者:Alessandro Sordoni,Phillip Bachman,Yoshua Bengio

原文鏈接:[1606.02245v2] Iterative Alternating Neural Attention for Machine Reading

摘要:我們提出了一種新的神經attention架構來解決機器閱讀理解任務,諸如一些基於文本的完形填空式的問題。我們並沒有把query摺疊成一個單一的向量,我們採用了一種持續迭代的注意力機制來允許對query和document的細粒度探索。我們的模型取得了state-of-the-art的效果。

1、Introduction

最近,訓練機器閱讀理解模型,使其可以閱讀,理解、回答問題的快速發展主要由於兩個原因。首先是深度學習技術的出現,其次是標準機器閱讀理解數據集的出現,提供了實驗性能的參考。

2 任務定義

使用完形填空式問題去評估機器閱讀理解任務的優勢是不需要大規模的人力幹預就能有數據集。CBT和CNN就是這樣的兩個數據集。

CBT語料庫來源於著名的孩童課本中的古騰堡項目。文本由很多組20句的摘錄組成,與此相關的query是其第21句,並把其中一個詞替換為佔位符詞。根據被替換的詞的詞性,數據集被分為四個子集。分別是命名實體,通用名詞,動詞以及介詞。我們將集中關注前兩個,因為後兩個實在太簡單。

CNN語料庫來源自CNN網站上的新聞文章。Document是文章的主體,除主體外文章還包括簡短的,關鍵字的總結。開發者將總結中替換一個命名實體的單詞為佔位符作為query。

對兩個數據集來說,訓練集和評估集由這樣的元組構成(Q,D,A,a),Q是query,D是document,A是可能答案的集合,a屬於A,並且是正確答案。所有的單詞都在辭彙表V中。我們設定A集合是D集合的子集,集A中所有詞都是在D中出現過的。對於每個query來說,佔位符應該是要被替換為正確答案a。數據集統計如上表格1所示

3 、Alternating Iterative Attention

我們的模型如圖1所示,他的工作流有三步。第一步是編碼階段,一系列的向量表示會在其中計算,作用就相當於document和query的記憶內容。接著,推理階段目的在於探索query和document之間複雜的語義關係,來為答案預測提供強力的證據。最後,預測階段將使用重複的attention從query和document中收集的信息來最大化正確答案的概率。我們將在以下章節中描述每個階段。

3.1 Bidirectional Encoding

(這段就是介紹了下雙向GRU,和其他模型一樣,本文使用query GRU和document GRU的所有雙向隱狀態拼接作為編碼表示)

3.2 Iterative Alternating Attention

這個階段可以被認為是一種揭示推理鏈的手段,它從query和document開始,推導出答案。這個推導過程由一個額外的GRU完成。這個循環網路迭代地執行持續地搜索步驟去搜集對答案有用的信息。具體來說,如圖1所示,在每個時間步:(1)他要在query上進行attention閱讀,得到一個query的表示 qt。(2)基於當前的query表示qt,它要去挖掘一個document摺疊表示 dt,代表document中與當前qt有關的部分。同時,這兩次閱讀都是在推理GRU的前一個隱藏層狀態St-1的條件下進行,總結了到時間t未知所有蒐集到的信息。這個推理GRU使用兩個摺疊表示來更新循環狀態,來決定哪些信息需要被蒐集來完成推理過程。

注釋:我們的模型第一次編碼query和document通過雙向GRU的均值.然後,應用一個迭代的推理機制在(1)document編碼和(2)query編碼之間交互。這個多次交互的attention將通過一個門然後輸入到推理GRU中。即使編碼只計算一次,查詢表示也是動態的,並且在整個推理過程中會發生變化。在固定數量的步驟T之後,文檔注意力的權重被用來估計答案P ( a | Q,D )的概率。

Query Attentive Read

對於給定的query編碼{qi},我們構建了query摺疊表示qt在時間t:

其中qi,t是query attention的權重, A_q∈R^{2h*s} ,s是推理GRU狀態的維度。 a_q∈R^{2h}

。我們的attention與傳統的有兩大不同:第一,我們使用雙線性而不是點乘來計算每一個在當前時間步裡面的query的重要性。第二,我們添加了一個aq項,它允許將注意力機制偏向於那些在搜索步ST - 1的非獨立問題中往往很重要的詞。它類似於原來的attention機制中提出的沒有額外的tanh層的方法取得的作用。

Document Attentive Read

Attention繼續基於當前給定的qt探索document。具體來說,document attention權重將由前步的搜索狀態和當前選擇的qt來決定:

其中di,t是document中每個詞的attention權重,並且 A_d∈R^{2h*(s+2h)} , a_d∈R^{2h} 。注意,document attention也是基於St-1的條件上的。這允許模型在文檔側執行傳遞性推理,即使用先前獲得的文檔信息來偏向未來的關注位置,這對自然語言任務來說極其重要。

Gating Search Results

為了更新當前狀態,推理GRU必須在以前推理的基礎上進行,比如 s_t = f([q_t,d_t],s_{t-1})

。然而,當前query瀏覽可能過於籠統,或者文檔可能不包含query中指定的信息,即query或document注意力權重分佈可能每一層都處於接近的分佈。我們設計了一個門機制,來在搜索沒有結果的情況下重置當前query和document的查詢。 形式上,我們實現一個門機制 r = g([s_{t-1},q_t,d_t,q_t.d_t]) ,其中.是點乘的意思,並且 g:R^{s+6h} ->R^{2h} 。g使用兩層的前饋網路,並且用sigmoid作為輸出層的激活函數。同時這也把query和document之間的乘法交互考慮了進去,可以使其更簡單的決定兩者間匹配的程度。給定query門gq,生成rq,給定document門gd,生成rd。推理GRU的輸入就是這些經過門之後的向量,比如 s_t = f([r_q.q_t,r_d.d_t],s_{t-1}) 。直觀地說,模型在查看query時候會關注document,反之亦然。

3.3 Answer Prediction

在一個固定次數的時間步T之後,document的attention權重將從最後一個搜索步獲得,即dI,T,這將會被用來去預測answer的概率分佈P(a|Q,D)。形式上,我們使用「pointer-sum」的損失:

其中I(a,A)是a出現在document中各位置的集合。模型將被訓練來最大化log p(a|Q,D)在訓練語料上。

4 Training Details

我們使用隨機梯度下降和ADAM優化器來訓練我們的模型,初始學習率是0.001.batch的size是32,如果驗證集準確率在經歷半個epoch後沒有上升,那麼學習率會下降為之前的0.8.我們初始化我們的所有參數使用正態分佈N(0,0.05)。GRU循環的權重將被正交初始化,偏差將被初始化為0為了使學習穩定,我們裁剪梯度,如果他們的正則大於5.我們使用了一個帶嵌入正則處於{0.001,0.0001}的超參數搜索。inference steps T∈{3,5,8),embedding size d ∈{256,384},encoder size h∈{128,256},推理GRU size s∈{256,512}。Dropout為0.2.我們發現將嵌入正則設置為0.0001,T =8,d = 384, h = 128,s =512模型更為魯棒。我們的模型用Theano框架,使用Keras庫。

Computational Complexity 類似於以前的使用雙向GRU的state-of-the-art模型,我們的主要計算度瓶頸是計算document和query編碼。交替的attention機制只在一個固定數量的步上運行,比典型的我們數據集中的document和query小一個數量級。重複的attention每一個需要超過1000個位置的softmax,在GRU上更適合運行。因此我們的計算成本類似於先作,但性能要優於。

5 Results

我們將報告我們的模型在CBT-CN,CBT-NE,和CNN數據集上的結果。

5.1 CBT

表格2展示了我們在CBT兩個數據集上的結果。人類表現,LSTMs和記憶網路(MemNNs)和AS Reader。

Main reault

表格2中的AS Reader的驗證集和測試集結果比我們模型更為接近,特別是在CBT-NE上,我們的驗證集比AS Reader的高1.4,但測試集卻一樣。這是因為這個數據集中答案都是命名實體,並沒有在訓練集中被預測過。

Ensembles

(沒啥說的,就是集成模型好,結果見表格2)

Fixed query attention

為了衡量query attention的作用,我們將約束我們的query attention統一,即每步的attention都一樣。這類似於以前工作中的對雙向GRU的輸出取平均來固定query表示。通過表格2的第6和第7行,我們可以看到我們的query atteniton為模型提高了精度。

5.2 CNN

表格3是CNN數據集實驗結果。

Main result

結果顯示我們的模型(第8行)相比最近出版的結果(AS Reader第7行)大幅度提高了預測性能。我們同時也考慮了在我們論文寫作期間的實驗結果斯坦福AR系統,我們的模型也有輕微的領先。他們模型的結果會被不同的初始化訓練策略影響,而且使用了Glove,並且他們只在文件的候選答案上歸一化輸出概率。

Ensemble

集成模型的效果比單模好。

Category analysis

研究者根據猜測答案所需的推理類型,對100篇CNN報道進行了分類。只需要利用佔位符周圍的上下文就可以得到答案的是精確匹配,釋義和部分線索,那些需要更高推理技巧的是多句和模糊類型。舉個例子,在精確匹配中,答案在佔位符的鄰近單詞中。

分類結果如表格4所示。簡單的問題可以輕鬆地被神經網路模型解決,性能相似。但是我們的模型更加擅長於解決模糊或者難的問題,那是因為AR模型只使用一次固定的query的attention步,而我們迭代的步驟可以更好的探索query和document。最終,共指錯誤(超過25%),即包含關鍵的共指解決錯誤的樣本,可能會讓問題難以回答。如果這個估計是準確的,我們的集成模型( 76.1 % )可能在這個數據集上接近接近最佳性能。

5.3 Discussion

我們檢查了CNN數據集裡面一篇樣文的query和document的attention權重。文章的標題是「Dante turns in his grave as Ital-ian language declines」,它談的是義大利語在學校的衰落。

如圖2所示,左邊的是query attention,右邊的是document attention,每一行都是一個推理步從1到8的過程。在第一步時候,query attention聚焦在佔位符詞,因為它旁邊的上下文對識別答案最為重要。模型首先關注的是@ entity 148,相當於「Greek」的意思。那個時刻,模型依舊不清楚文件中其他可能的位置(通過文本位置我們可以看到很小的權重)。在第二步時候,query的attention移動到了」school」,模型在」italian」和」European Union」間猶豫,兩者都滿足query。在第三步時,最可能的候選答案變成了」European Union」和」Rome」。隨著時間步展開,模型學習到」need」可能對推理正確的實體更為重要,比如」italian」。query處於相同的位置時,document attention就會對答案更加自信。

通過數據集我們發現,query的attention經常會集中在佔位符位置旁邊,並且嘗試去只使用附近的文本來區分答案。對於這些特定的數據集,大多數問題可以在只關注與佔位符直接相鄰的單詞之後回答。這與( Chen等人)的發現一致。這個數據集所需的推理和推理級別非常簡單。所以我們認為構建一個只使用附近鄰近單詞很難進行推理的數據集是非常值得的,因為需要更深層次的query探索。

最後,在這項工作中,我們固定了推理步驟T的數量。我們發現,在測試數據集上使用8個時間步可以很好地工作。然而,我們假設更多(更少)的時間步驟將會受益於更難(更容易)的例子。我們認為對我我們的模型的一個直接的擴展是可以基於每個例子動態地選擇時間步。

6 Related Works

7 Conclusion

我們提出了一個迭代神經注意力模型,並將其應用於機器理解任務。我們的架構部署了一種新的交替注意機制,並緊密結合了過去機器閱讀理解中的成功思想,在三個數據集上獲得了state-of-the-art的結果。迭代交替關注機制不斷細化query和document的觀點,同時收集回答查詢所需的信息。

未來可能會有多個研究方向。我們計劃動態選擇每個例子所需的最佳推理步驟數。此外,我們懷疑轉向隨機注意力會讓我們學習更有趣的搜索策略。最後,我們認為我們的模型是完全通用的,可以直接應用於其他任務,如信息檢索。

有任何疑問或者糾錯,作者隨時在線哦。

來自專欄

深度學習經典論文翻譯(nlp方向)?

zhuanlan.zhihu.com圖標
推薦閱讀:

相關文章