人類可以輕而易舉地閱讀理解自己的母語,而機器卻難于閱讀理解自然語言。要想讓機器閱讀理解自然語言,就需要把自然語言轉化成它可以用來讀取、存儲、計算的數值形式。當若干自然語言被轉換為數值之后,機器通過在這些數值之上的一系列運算來確定它們之間的關系,再根據一個全集之中個體之間的相互關系,來確定某個個體在整體(全集)中的位置。
機器閱讀理解是一種利用算法使計算機理解文章語義并回答相關問題的技術。由于文章和問題均采用自然語言的形式,因此機器閱讀理解屬于自然語言處理的范疇,也是其中最新、最熱門的課題之一。近年來,隨著機器學習(Machine Learning),特別是深度學習的飛速發展,機器閱讀理解研究有了長足的進步,并在實際應用中嶄露頭角。
隨著機器閱讀理解技術的發展,閱讀理解任務也在不斷升級。從早期的“完形填空形式”,發展到基于維基百科的“單文檔閱讀理解”,如以斯坦福大學設計的SQuAD 為數據集的任務;并進一步升級至基于web(網頁)數據的“多文檔閱讀理解”,這一形式的典型代表是以微軟公司MS-MARCO、百度公司DuReader 為數據集的任務。
目前,針對不同的閱讀理解任務,研究人員已經設計出多種模型,并取得初步成效。然而在多文檔閱讀理解任務中,由于與問題相關的文檔很多,帶來的歧義也更多,由此可能最終導致閱讀理解模型定位錯誤的答案。面對這些問題,人類的思考模式通常為:先找到多個候選答案,通過對比多個候選答案的內容,選出最終答案,由此來找到準確率最高的答案。
早期的閱讀理解模型大多基于檢索技術,即根據問題在文章中進行搜索,找到相關的語句作為答案。但是,信息檢索主要依賴關鍵詞匹配,而在很多情況下,單純依靠問題和文章片段的文字匹配找到的答案與問題并不相關。隨著深度學習的發展,機器閱讀理解進入了神經網絡時代。相關技術的進步給模型的效率和質量都帶來了很大的提升,使機器閱讀理解模型的準確率不斷提高。
基于深度學習的機器閱讀理解模型雖然構造各異,但是經過多年的實踐和探索,逐漸形成了穩定的框架結構。機器閱讀理解模型的輸入為文章和問題。因此,首先要對這兩部分進行數字化編碼,變成可以被計算機處理的信息單元。在編碼的過程中,模型需要保留原有語句在文章中的語義。我們把模型中進行編碼的模塊稱為編碼層。
接下來,由于文章和問題之間存在相關性,模型需要建立文章和問題之間的聯系。這可以通過自然語言處理中的注意力機制加以解決。在這個過程中,閱讀理解模型將文章和問題的語義結合在一起進行考量,進一步加深模型對于兩者各自的理解。我們將這個模塊稱為交互層。
經過交互層,模型建立起文章和問題之間的語義聯系,就可以預測問題的答案。完成預測功能的模塊稱為輸出層;由于機器閱讀理解任務的答案有多種類型,因此輸出層的具體形式需要和任務的答案類型相關聯。這可以通過自然語言處理技術來尋找答案,并加以解決。
自然語言處理是實現機器和人機交互愿景的重要技術基石,機器閱讀理解則可被視為自然語言處理領域皇冠上的明珠之一。機器閱讀理解將讓知識獲取不受人腦的限制;但對于機器閱讀理解的“能理解會思考”的終極目標來說,現在還只是萬里長征的開始。
有關專家認為,端到端的深度神經網絡可以更好地發現自然語言處理中的一些潛在特征,從而提高機器閱讀理解的準確率。對自然語言的更深層次的歸納總結、知識引用、推理歸因以及知識圖譜和遷移學習,將是機器閱讀理解的未來發展方向。
作為人工智能技術的重要分支,機器閱讀理解將越來越多地應用于各行業。正如國際知名學者周海中教授曾經預言:“隨著科技進步,人工智能時代即將到來;屆時,人工智能技術將廣泛應用到各學科領域,會產生意想不到的效果。”