當前位置:
首頁 > 最新 > 機器閱讀理解技術初探&Bi-DAF

機器閱讀理解技術初探&Bi-DAF

說起閱讀理解,大家應該很快都會想到英語試卷上的閱讀理解題,根據試卷上給出的文章中表現的信息回答若干個問題,這種題需要學生能讀懂英文文章,從中提取與問題有關的關鍵信息,選擇與文章信息最為匹配的選項。

機器閱讀理解與之頗為相似。

機器做閱讀理解,也需要掌握(並不是理解)給定文章或段落中的信息。我們是要將英文映射到中文(或許有人是映射到實體世界?),而機器將自然語言映射到機器碼(目前來說幾乎全是向量),按某種方式完成與文章或段落的若干問題。

目前,機器閱讀理解主要完成兩類問題:完形填空和文本段選擇。完形填空任務與英語試卷上的完形填空略有不同,往往是給出完整的一段文字,讓機器閱讀後再填上相關語句上的實體詞空位,其難度較低,已經能做得比較好。而文本段選擇問題是目前的熱點,這種任務是要根據問題在文章或者若干選項中選擇一段文字,最開始是斯坦福提出的SQuAD數據集,邏輯簡單,限定範圍較小,沒有什麼實用價值,而目前已經出現了很多難度更大、更貼近真實情況的數據集。

而現在,有出現了新的題型。在百度開放的dureader數據集中,採用百度搜索和百度知道上的真實用戶問答數據,不僅有之前最常出現的實體描述問題,還有很多沒有事實標準的建議性問題,使得難度又提高了,也更接近真實語境了。

那麼,機器要如何才能做到閱讀理解呢?

如果是在狹窄領域或者特定語境下的問題,可以採用基於規則的方法,直接解析語句獲取答案,但是這顯然適用範圍太小,人工成本太高,所以人們關注的大多是端到端的模型。目前較為先進的模型一般都由這幾部分構成:

1)文本和問題的encoding過程。包括自然語言到向量表示的embeding過程和從詞向量到文章信息向量和問題信息向量的過程(當然,也可能不是用向量表示,而是矩陣等),是一個從文本上提取信息的過程。

2)根據encoding層提取的文章信息和問題信息進行信息匹配,挖掘出文本中的那些內容與問題相關,哪些更重要。

3)生成答案,一般都是生成多種答案,然後對每種答案計算得分取分數最高的答案。

下面來看一種較為流行的具體的閱讀理解系統。


即Bi-Directional Attention Flow network。

整體架構:

Word Emded Layer

雖然該圖中最底層架構是character embed layer,但在中文中一般不採用,即使在英文中也很少用到字元級信息,所以視最低層為word embed layer,將文章(Context)和問題(Query)語句中的詞映射到語義向量空間,相當於把自然語言翻譯成機器能接受的數字語言。圖中採用GLOVE獲取詞向量,也可以使用word2vec,一般是最終性能哪個最好用哪個。假設詞向量維度為d,那麼現在我們有了含T個詞向量的文章矩陣(或許稱之為向量序列更為直觀),含J個詞向量的問題矩陣

Contextual Embed Layer

這層利用雙向LSTM進行更高層面的信息提取。將X和Q分別輸出雙向LSTM網路,將LSTM網路的正向輸出和反向輸出拼接起來作為輸出,那麼我們就得到了綜合整個文章的信息向量序列和整個問題的綜合向量序列

Attention Flow Layer

本層是最重要的一層,要綜合H和U得到答案的信息,具體可分為兩個過程:match 和 fuse。

match即為使用attention機制對H和U進行雙向匹配,這也是Bi-Directional Attention Flow名字的由來。在運用注意力機制時,定義一個匹配矩陣,其中代表H中第t個向量與U中第j個向量的相似度,且,這個相似度通過一個可訓練的標量函數來計算。用h代表H中的一個向量,u代表U中的一個向量,將[h,u,h*u]拼接成一個6d維度的向量(其中*代表內積』),乘上一個可訓練的權值向量w即可得到對應的s。

Context-to-query Attention:計算文章到問題的attention。定義

為對於文章中第t個向量,J個問題向量的重要程度,那麼,對於每一個t,,,那個就有了T個不同的對於問題向量的J維權值,由注意力機制加權後的問題向量序列為:。

Query-to-context Attention :問題到文章的attention。定義為T個文章向量序列的權值向量。注意到,衡量文章向量重要程度時,使用了max處理,這就意味著模型並不在意該文章向量對於哪一個問題向量比較重要,只在意該文章向量是否對於某一個問題向量比較重要,只要在J維的重要性中,存在一維比較大,就認為該文章向量是重要的。那麼加權後的文章向量為:。

至此,基於雙向注意力機制的match過程結束,我們又獲得了兩個2d*T維的向量序列。

match過程的代碼:

fuse過程將上面獲得的兩個注意力向量序列和之前獲得的文章信息向量序列H綜合起來,求得文章向量序列上的query-aware representations,定義為,其中每一個向量由直接拼接而成,則G的維度為8d*T。

Modeling Layer

利用雙向LSTM將8d*T的G中的信息綜合,生成2d*T的M,則M中包含了非常多的信息,一方面體現了問題與文章之間的交互,另一方面將這種交互輸入到LSTM網路後得到了交互的上下文信息。

Output Layer

利用蘊含了龐大信息G和M,我們可以獲得我們需要的各種輸出。例如,對於文本段選擇問題,我們需要一個文章中的起始索引和結束索引,這就要計算T個向量上的對於兩個索引的T維概率分布。

對於起始索引:

為了獲得更好的表達能力,我們將M再一次輸入雙向LSTM網路得到維度相同的M2向量序列。對於結束索引:

最後,利用cross entropy函數構建loss function 進行訓練:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 浪漫主義AI 的精彩文章:

神經網路文本分類技術實踐總結

TAG:浪漫主義AI |