當前位置:
首頁 > 最新 > 機器是如何做閱讀理解的?

機器是如何做閱讀理解的?

機器閱讀理解

斯坦福有個很重要的比賽,就是讓機器完成閱讀理解題目,即給定一篇文章,讓機器理解文章含義進行題目回復。每年這一比賽都是國際性的,引來了業界、學術界的廣泛關注。其中微軟、谷歌、騰訊、阿里等大型互聯網公司每年都有參與。本文將從技術的角度,深入淺出、以口語性質的方式給大家傳遞機器進行閱讀理解的過程。

SQuAD比賽簡介

SQuAD全稱是"Stanford Question Answering Dataset",是用於機器閱讀理解的一款數據集,也是斯坦福大學主辦的機器閱讀理解比賽。目前該數據集,有500+篇文章,總共有100000+組QA對數據。參賽隊伍的目標是,理解文章、得到問題的回復結果。答案正確與否的主要評價指標有兩個:EM值和F1值,直觀理解為EM值表示答案與正確答案是否完全匹配,F1值表示答案之間的重合度。18年最新的比賽排行如下:

目前科大訊飛的哈工大聯合實驗室排名第一,谷歌大腦並聯,阿里巴巴和微軟名次緊跟其後。

特定模型說明

本文將要介紹的是排名第三的國防科大與復旦大學的模型。論文在17年發表[1]。該文章大致將機器做閱讀理解的過程分為三個步驟:第一:就是機器通讀一遍全文,即對article進行序列編碼;第二:就是機器帶著問題再讀文章,也就是機器帶著Question的編碼,再從頭對article進行閱讀,即Question與article進行交互;第三:就是機器找尋答案,通過帶著問題讀文章以後,緊接著就是在文章中找尋能夠回答問題的答案了。模型結構如下:

encoder

編碼,也就是將文本信息轉換為機器能夠理解的信息。目前對article編碼的主要模型是Bi-LSTM模型,即獲取文章的序列信息。選取的特徵一般為 word-embedding和character-level embedding進行拼接,再添加一下額外的特徵,例如詞性、實體等。分別對文章和問題進行編碼。

Interaction

Interaction就是交互的意思,也就是帶著問題去讀文章。可以看到圖中模型的交互方式,是計算問題與文章各個詞語和各個子序列之間的相關性矩陣,並通過該矩陣求Attention獲取不同詞層面的問題表達。再使用SFU模塊將問題信息與篇章信息進行混合。圖中有一個self-align模塊,是因為篇章信息太長了,需要弄清楚篇章前後之間的關係。然後反覆迭代Iterative過程就是讓 機器反覆去讀文章。

Pointer

讀完文章後最關鍵的還是去尋找答案。Pointer Network的作用就是去文章尋找答案的過程。該模型引入了Memory,可以理解為讓模型記憶一下你找到問題答案的起始位置,然後再去尋找問題答案的結束位置,Memory就是記憶位置,便於計算已知起始位置尋找結束位置的條件概率。

目前用於機器閱讀理解的深度學習框架很是單一,一般就是不斷的Attention,再加上不斷的迭代,去尋找答案。目前這種基於數據的閱讀理解很受限制,感覺還是要跳出深度學習框架,才能真正地去做好理解。認知智能是一個很漫長的過程,還有待進一步的發展。

參考文獻

[1]Hu M, Peng Y, Qiu X. Reinforced Mnemonic Reader for Machine Comprehension[J]. 2017.


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

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


請您繼續閱讀更多來自 CodeInHand 的精彩文章:

Pytorch實現CNN時間序列預測

TAG:CodeInHand |