什么是機器閱讀理解?跟自然語言處理有什么關系?
01 機器閱讀理解任務
學者C. Snow于2002年發表的一篇論文中將閱讀理解定義為“通過交互從書面文字中提取與構造文章語義的過程”。而機器閱讀理解的目標是利用人工智能技術,使計算機具有和人類一樣理解文章的能力。
圖1所示為機器閱讀理解的一個樣例。示例中,機器閱讀理解模型需要用文章中的一段原文來回答問題。
▲圖1 機器閱讀理解任務樣例
1. 機器閱讀理解模型
機器閱讀理解模型的輸入為文章和問題文本,輸出為最終的回答。為了完成任務,模型需要深度分析文章語義以及文章和問題之間的聯系,然后根據文章中的內容作出準確回答。
當前,絕大多數機器閱讀理解算法均采用深度學習模型,利用深度神經網絡進行建模與優化。深度學習的特點是,模型能根據訓練集上預測的準確度直接優化參數,不斷提高模型性能,從而達到很好的效果。
由于深度學習需要在數值空間處理信息,因此閱讀理解模型首先要對文章和問題進行數字化表示,形成文本編碼。常見的方法是詞向量(word vector):將文本分成若干單詞,然后用一串數字(即一個向量)表示一個單詞。
- 文本的數字化表示:分詞與詞向量
- 原文:今天天氣真好
- 分詞:今天|天氣|真|好
- 詞向量:
今天:[3.2, -1.5, 6.0]
天氣:[-0.2, -5.0, 1.7]
真:[1.4, 2.8, 0.9]
好:[-2.6, 3.8, -5.2]
常用的中英文分詞算法我們已經在《為什么中文分詞比英文分詞更難?有哪些常用算法?(附代碼)》介紹。
接下來,機器閱讀理解模型會對這些數字化編碼進行各種操作,獲得上下文信息以及文章和問題之間的語義關聯,從而獲取有關答案的線索。一般而言,基于深度學習的機器閱讀理解模型的架構分為3個部分:
- 編碼層對文章和問題進行單詞編碼,并完成上下文語義分析;
- 交互層處理文章和問題之間的關聯信息,找出文章中與問題相關的線索;
- 輸出層將之前處理的信息按照任務要求生成答案。
不同的機器閱讀理解模型通常是上述3個部分中使用不同的模塊與連接方式。但無論哪種閱讀理解模型,其訓練過程都依賴于人工標注的數據,如大量文章–問題–答案的三元組。
但是,生成這些標注數據需要花費大量的時間和人力。因此,近年來自然語言處理界提出了預訓練+微調模式:在大量無標注文本數據上訓練大規模模型,然后在少量具體任務的標注數據(如閱讀理解)上進行微調。這種模式取得了很好的效果,也有效緩解了標注數據缺乏的問題。
2. 機器閱讀理解的應用
隨著各行各業文本數據的大量產生,傳統的人工處理方式因為處理速度慢、開銷巨大等因素成為產業發展的瓶頸。因此,能自動處理分析文本數據并從中抽取語義知識的機器閱讀理解技術逐漸受到人們的青睞。
例如,傳統的搜索引擎只能返回與用戶查詢相關的文檔,而閱讀理解模型可以在文檔中精確定位問題的答案,從而提高用戶體驗。
- 在客戶服務中,利用機器閱讀理解在產品文檔中找到與用戶描述問題相關的部分并給出詳細解決方案,可以大大提高客服效率。
- 在智能醫療領域,閱讀理解模型能根據患者癥狀描述自動查閱大量病歷和醫學論文,找到可能的病因并輸出診療方案。
- 在語言教育方面,可以利用閱讀理解模型批改學生的作文并給出改進意見,隨時隨地幫助學生提高作文水平。
可以看出,凡是需要自動處理和分析大量文本內容的場景下,機器閱讀理解都可以幫助節省大量人力和時間。
在很多領域中,如果閱讀理解模型的質量沒有達到完全替代人類的水平,可采用與人工結合的方式,利用計算機處理簡單高頻的問題,從而達到降低成本的作用。因此,機器閱讀理解成為當前人工智能研究中最前沿、最熱門的方向之一。
02 自然語言處理
機器閱讀理解屬于語言處理的范疇,而自然語言處理是人工智能領域的重要研究方向。它主要分析人類語言的規律和結構,設計計算機模型理解語言并與人類進行交流。自然語言處理的歷史可以追溯到人工智能的誕生。
在數十年的發展中,自然語言的處理、理解和生成等領域的研究已經取得了長足的進步。這些都為機器閱讀理解研究奠定了堅實的基礎。本節主要介紹自然語言處理的研究現狀及其對機器閱讀理解的影響。
1. 研究現狀
經過70余年的發展,自然語言處理相關研究已經細化分類成許多子任務。以下是與機器閱讀理解相關的重要研究方向。
- 信息檢索(information retrieval)。研究如何在海量文檔或網頁中尋找與用戶查詢相關的結果。信息檢索方面的研究已經相當成熟,并廣泛應用在網頁搜索等產品中,為信息的傳播和獲取提供了極大的便利。當一個閱讀理解任務涉及大規模文本庫時,信息檢索通常作為系統中抽取相關信息的第一個模塊。
2. 問答系統(question and answering system)是指可以自動回答用戶提出問題的系統。問答系統與信息檢索的區別在于,問答系統需要理解復雜問題的語義,并支持多輪有上下文的對話。例如,對話式閱讀理解需要模型同時分析文章語義和之前對話輪次的信息,再對當前問題作出回答。
3. 文本分類(text classification)是指對文章、段落、語句進行分類,如將大量網頁按照內容和主題進行劃分。一些機器閱讀理解模型對問題進行分類,如關于時間的問題、關于地點的問題等,以提高答案的準確性。這種問題分類就屬于文本分類的范疇。
4. 機器翻譯(machine translation)研究如何讓計算機自動翻譯文本,可以應用在跨語言的閱讀理解任務中。例如,當文本來自小語種語言時,我們可以利用機器自動翻譯常用語言中的閱讀理解數據,從而解決訓練數據缺乏的問題。
5. 文本摘要(text summarization)研究如何用簡潔的語言概括文章的主旨和重要信息。由于文本摘要需要對文章語義進行分析并生成結果,其中的很多技術被應用到機器閱讀理解中,例如序列到序列模型(sequence-to-sequence),拷貝–生成網絡(pointer-generator network)等。
2. 仍需解決的問題
隨著相關模型的不斷發展,自然語言處理在許多任務中取得了令人矚目的成績。但是,仍有許多沒有很好解決的問題,其中也包括對基本語言結構和語義的理解。這些也是機器閱讀理解研究中亟待解決的問題。
1)語言的歧義性
由于語言的一大特性是用較為精練的語句代表復雜的語義,因此一段文本時常會存在多義和歧義等情況,也就是有多種合理的解釋方式。來看下面幾個例子。
- 示例1:工廠領導對小張的批評意見進行過多次討論。
這里,既可以理解為領導討論了小張對工廠提出的批評意見,也可以理解為領導討論了對小張的批評意見。原因是“對”的對象可以是“小張的批評意見”,也可以是“小張”。
- 示例2:化學所取得的成績是有目共睹的。
這里,既可以理解為成績是“化學”取得的,也可以理解為成績是“化學所”取得的。原因是“所”既可以作為介詞,也可以作為“化學所”的一部分。
- 示例3:我要炒青菜。
這里,可以認為“炒青菜”是一道菜,而“我”在點菜,也可以認為“我”要去炒青菜。原因是“炒”可以作為整句話的動詞,也可以和“青菜”組成菜名。
這樣的歧義性示例還有許多。即使人類在面對這些語句時,也很難判斷說話者的真實意圖。但是,如果有上下文信息,歧義就會消除。
例如,“我要炒青菜”發生在餐館點菜語境中,就說明“炒青菜”是一道菜;“化學所取得的成績是有目共睹的”出現在學校領導對化學所的考評中,就表示成績是屬于“化學所”的。
到目前為止,自然語言處理的模型仍不能很好地理解上下文的語義。研究人員通過分析自然語言處理模型在機器閱讀理解模型等任務上的結果,發現現有模型很大程度上是基于單詞或關鍵詞進行匹配,這也導致這些模型對于歧義性文本的處理能力很低。
2)推理能力
在人類語言交流中,許多時候可以從語言推理得出結論,而不需要詳細說明。例如,下面這個顧客通過客服訂票的對話例子:
客服:您好,請問我可以怎樣幫助您?
顧客:我想訂一張5月初從北京去上海的機票。
客服:好的,那么您想哪天出發?
顧客:嗯,我是去上海開會,這個會從4號開到7號。
客服:好的,下面是5月3日從北京出發到上海的直達航班信息……
上面的對話中,顧客并沒有正面回答客服關于哪天出發的問題,而是給出了開會的時間段。
但是,從訂機票去開會這個事件可以推理出,顧客一定是想在會議開始前到達目的地,因此客服給出了5月3日出發的航班信息。當然,如果顧客想要訂上?;乇本┑臋C票,客服就應該給出5月7日晚或5月8日出發的航班信息。
因此,智能客服的模型需要根據之前的談話內容推斷出所需要的信息——出發日期。這種推斷需要模型具有一定的常識,即航班必須在開會前到達目的地。
近年來已經出現常識和推理在自然語言處理應用上的研究,但如何讓模型包含海量的常識并進行有效的推理仍是一個需要解決的問題。
關于作者:朱晨光,微軟公司自然語言處理高級研究員、斯坦福大學計算機系博士。負責自然語言處理研究與開發、對話機器人的語義理解、機器閱讀理解研究等,精通人工智能、深度學習與自然語言處理,尤其擅長機器閱讀理解、文本總結、對話處理等方向。
本文摘編自《機器閱讀理解:算法與實踐》,經出版方授權發布。