作者:哈工大SCIR 施琦、妥明翔、孫月晴、尹治博
機器閱讀理解技術即機器自動從給定的文本中回答用戶所提出的問題的技術[1],近幾年已經成為了研究熱點之一。閱讀理解大致可以分為四個任務,即填空型閱讀理解任務、選擇型閱讀理解任務、片段抽取型閱讀理解任務以及自由格式閱讀理解任務。隨著以BERT為代表的預訓練模型的發展,四種閱讀理解任務都有著飛速的發展,主要體現為從關注限定文本到結合外部知識,從關注特定片段到對上下文的全面理解。本文對上述幾種主流的機器閱讀理解任務從任務描述、相關數據集、解決方法等幾方面逐一展開介紹。
1. 填空型閱讀理解任務1.1 任務介紹填空型閱讀理解是最早出現的閱讀理解任務,其靈感來源於用來測試學生閱讀理解能力的完形填空題,用同樣的方法來測試機器的閱讀理解能力。在該任務中,給定一段文本並移除其中若干詞或者實體作為問題,模型需要在被刪除的位置填入正確答案。部分數據集提供了候選答案,而另外一些數據集則未提供,只能從上下文中尋找。
1.2 相關數據集介紹CNN & Daily Mail數據集[2]是填空型閱讀理解任務中最具代表性的數據集,包含來自CNN的93,000篇文章和來自Daily Mail的220,000篇文章。在標註時,特意挑選未在文章其他位置出現的要點詞彙或者實體作為填空目標,生成的問題也儘量的降低了與原有上下文的重疊度,因此該任務具有一定挑戰性,要求模型完全理解文本,才能正確預測填空位置單詞或實體。另外,為了避免問題可以由文檔中的知識來回答,文檔中的所有實體都使用隨機標記來匿名化。
CBT (The Children Book Test)[3]是從108本兒童讀物中構建的,每個例子由讀物中21個句子構成,其中一句的一個單詞被刪除,其餘20句作為上下文。CBT沒有要求被刪除詞必須是實體,還可以是名詞、動詞、介詞等等,也沒有對實體都使用隨機標記來匿名化。因此CBT相對CNN & Daily Mail要簡單一些,更容易預測。
1.3 方法介紹填空型閱讀理解要求模型從給定上下文中找到一個詞或者實體作為答案,或者從若干候選答案中選擇一個最佳答案。有些工作基於答案一定在上下文中的假設,通過計算上下文與問題attention之後的表示,構建一個指向上下文的分布,從中選擇一個詞作為答案,例如Hermann提出的Attentive Reader[2]。對於提供了候選答案的任務,方法就更簡單直觀,例如陳丹琪等人的工作[4],直接計算上下文與問題attention之後的表示與每個候選答案的匹配得分,即可得到正確答案。Kadlec等人[5]受Pointer-Network的啟發提出了Attention Sum (AS) Reader模型。在AS Reader中,計算出問題對上下文的attention權重之後,不更新上下文的表示,而是直接使用attention權重中權重最大的詞作為答案直接返回(相同的詞權重相加),這種方法雖然很簡單,但在填空型閱讀理解任務中表現非常好。
2. 選擇型閱讀理解任務2.1 任務介紹選擇型閱讀理解即根據問題和給定的文本中在若干候選答案中選擇正確的答案。相比於其它類型的閱讀理解任務,選擇型閱讀理解由於其易構建、易評價的特點,在自然語言處理領域受到廣泛的研究。選擇型閱讀理解任務大多使用準確率來進行評價。
2.2 相關數據集介紹RACE數據集[6]來自於中國學生的初高中的英語考試中,是目前使用最廣泛的大規模選擇型閱讀理解數據集之一。它有以下幾個特點:
所有的問題和候選項都來自於專家,可以被很好的用來測試人類的閱讀理解能力;
候選項可能不出現在問題和文本中,這使該任務更加具有挑戰性;
問題和答案不僅僅是簡單的對於文本詞語的重複,很可能是文本詞語的複述表達;
具有多種推理類型,包括細節推理、全局推理、文章總結、態度分析、世界知識等等。
下圖給出了數據集中的一個例子:
圖1 RACE數據示例
ARC數據集[7]來自中學生考試中的科學問題,並進一步分為ARC-Challenge和ARC-Easy兩個子集,共包含大約8000個問題,此外,該數據集中提供與該任務相關的包含14M科學事實的語料庫用來回答這些問題。OpenBookQA數據集[8]包含大約6000個問題,每個問題包括四個選項,此外,與ARC數據集相似,該數據集也提供了參考語料庫,包含1326個事實,每個問題期望結合語料庫中的某一個事實來得到答案。此外,還需要結合一些常識知識。如何準確的利用參考語料庫與常識知識成為了該數據集的主要問題之一。下圖給出了OpenBookQA數據集中的一個例子:
圖2 OpenBookQA示例
CommonsenseQA數據集[9]來自於ConceptNet,其包含大約12000個需要結合背景知識的問題。在該數據集中,標註者根據ConceptNet中的實體概念來自由構造問題,來使問題包含人類所具有的、但難以在網絡資源中檢索到的背景知識,故回答問題需要利用問題、候選答案,以及僅僅使用檢索策略無法檢索到的背景知識。下圖給出了數據集中的一個例子:
圖3 CommonsenseQA示例
COSMOS QA數據集[10]包含35600個需要常識閱讀理解的問題,其專注於解決需要跨越上下文、而不是定位指定片段的推理問題。其主要特點為:
下圖給出了數據集中的一個例子:
圖4 CosmosQA示例
2.3 方法介紹為了解決多項選擇任務,模型需要從候選答案選項中選擇正確的答案。常見的方法是計算問題、文本(給定的文本或利用信息檢索技術從開放域中檢索到的文本)與候選答案之間的相似性,並選擇最相似的候選答案作為正確答案。因此,如何表示問題、文本和候選答案,以及如何計算相似度是該任務的重點。此外,隨著引入常識知識的趨勢,如何利用常識知識也成為著研究熱點。
Sun等人[11]提出了三種領域無關的策略來提升多項選擇任務的性能,即正反雙向閱讀策略,高亮策略和自我評估策略;Rajani等人[12]以自然語言的形式收集了常識推理中的人類解釋來訓練語言模型,以自動生成解釋,用於自動生成解釋的框架中,來提升結合常識的多項選擇任務性能。Lin等人[13]提出了一個基於圖的關係推理網絡來尋找實體之間的潛在路徑並對其進行打分來確定最佳路徑從而選出最佳答案。
3. 片段抽取型閱讀理解任務3.1 任務介紹片段抽取式閱讀理解任務近幾年越來越受到學者們的關注,其任務定義如下:給第一個問題Q和對應的上下文,需要模型從中C提取一個連續的片段作為問題的答案。例如給定問題:「姚明出生於哪一年」和上下文「姚明,男,漢族,無黨派人士,1980年9月12日出生於上海市徐匯區」,得到答案「1980年」。這種任務答案格式相對靈活,能夠適應問答系統的大部分場景,像百度,谷歌等搜尋引擎都利用這種技術從搜索頁面中抽取出答案並顯示給用戶,用戶無須進入結果頁面即可得到答案,如下圖:
圖5 搜尋引擎利用閱讀理解技術示例
近年來還有學者提出了基於對話場景的片段抽取式閱讀理解,根據之前的對話問題和答案以及給定的文章來回答當前的問題。其他類型閱讀理解數據集中問題之間是相互獨立的,無關聯。而在基於對話場景的片段抽取式閱讀理解任務中,每個上下文對應多個問答對,且問題是以對話的形式提出,只看當前問題沒有意義,需要結合之前的對話信息來理解當前問題,這更加符合人們日常生活中的對話形式。
片段抽取式閱讀理解能夠保證答案片段來自上下文,因此預測答案和真實答案精確匹配相對容易,因此往往採用F1、EM等指標評價。
3.2 相關數據集介紹SQuAD[14]是片段抽取式閱讀理解中最經典的任務,其全稱是Stanford Question Answering Dataset,由Rajpurkar等人提出。作者從維基百科中挑選了536篇文章,然後針對這些文章提出了標註了約10, 000個問題和與之對應的答案片段。與之類似的數據集還有NewsQA[15],該數據集是從CNN新聞網站上構造的,構造方法與SQuAD一致。SQuAD中的問題是由標註者根據上下文內容編寫的,相當於先知道答案再提問。而實際應用場景中都是先有問題,再根據問題尋找答案。這導致SQuAD這一類數據集中問答對比較理想化,和實際應用場景中的問答對有一定差別。
TriviaQA數據集[16]解決了上述問題。同樣作為片段抽取式閱讀理解數據集,該數據集構造問答對,然後從維基百科等頁面中尋找對應的論據。最終通過上述方式構造了約65,000個「問題-答案-論據」三元組,通過這種方式構造的數據集比SQuAD更接近實際使用場景。
基於對話場景的片段抽取式閱讀理解數據集有CoQA (Conversational Question Answering)[17]和QuAC (Question Answering in Context)[18]等,這裡簡要介紹下CoQA。CoQA包含約8000輪對話,問題的答案有五種類型,分別為Yes、No、Unknown,文章中的一個span和生成式答案。當根據文章和之前的對話信息無法回答當前問題時,答案為Unknown。該數據集不僅提供答案,而且給出了答案的依據,每一種類型的答案的依據都是文章中的一個span。為了方便理解,下圖是一個CoQA的例子:
圖6 CoQA數據示例
3.3 方法介紹片段抽取式閱讀理解任務需要從上下文中預測答案的開始和結束位置,目前的主流方法是參考Pointer-Network的思想去依次生成答案開始和結束位置分布,最終得到答案的開始和結束位置。片段抽取式閱讀理解的模型一般可分為Encoding層、Attention層和Output層。下圖是MSRA提出的R-Net[19]結構示意圖,是片段抽取式閱讀理解模型中最典型的一種。
圖7 片段抽取式閱讀理解模型一般框架示例
Encoding層接受問題和上下文作為輸入,Encoding層得到問題和上下文每個詞的詞嵌入,然後經過LSTM或者Transformer得到問題和上下文的表示。
Attention層通過計算問題對上下文的Attention,得到上下文融合問題的表示。許多模型創新都是針對這一層的改進,例如AI2提出的BiDAF[20],MSRA提出的R-Net[19]和S-Net[21],谷歌提出的QA-Net[22]等工作主要創新都集中在Attention層和Encoding層。
Output層通過接受上下文經過Attention之後的表示,使用Pointer-Network依次生成答案開始和結束位置分布。訓練時將其視為多分類任務,只有答案開始位置為1,其餘位置為0,然後計算開始位置分布的交叉熵損失函數,答案結束位置同理,然後將兩個交叉熵損失函數相加作為最終損失函數。針對輸入一個問題和多個上下文的任務,有些工作還提出了passage ranking的子任務,用於預測哪個上下文包含正確答案,損失函數仍然是交叉熵,在訓練時採用聯合訓練的方式將兩個損失函數加權求和。
基於對話場景的片段抽取式閱讀理解在每一輪內的建模方式和上述一致,主要不同在於抽取當前問題答案時,如何融入之前幾輪問答信息。微軟提出的SDNet模型[23]將前幾個問題和答案與當前問題連接形成一個新問題,然後編碼層分別對文章和新問題進行編碼,學習句子語義,attention層得到融合問題的文章表示,最後使用Pointer-Network生成答案開始位置和結束位置分布。NTT Media Intelligence Laboratories[24]使用Bert對當前問題和前幾個問題分別編碼,連接得到的編碼向量,根據這個向量預測答案。
4. 自由格式閱讀理解任務4.1 任務介紹與填空型閱讀理解任務和選擇型閱讀理解任務相比,片段型閱讀理解任務在答案上更加靈活,但這還遠遠不夠,因為給出僅限於上下文範圍的答案仍然是不現實的,為了回答這些問題,機器還需要在多段文本中進行推理並總結答案。在填空型、選擇型、片段型、自由格式型閱讀理解這四個任務中,自由格式閱讀理解任務是最複雜的,因為它的回答形式沒有限制,並且更適合於實際應用場景;與其他任務相比,它減少了一些限制,並將重點更多地放在了使用自由形式的自然語言更好地回答問題。自由格式閱讀理解任務在理解性、靈活性等方面表現出很大優勢,因為這是最接近實際應用的閱讀理解任務。但是由於答案形式的靈活性,構建數據集有些困難,如何有效評估這個任務的性能仍然是一個挑戰,目前廣泛採用BLEU或ROUGE評價。
4.2 相關數據集介紹MS MARCO (Microsoft Machine Reading Comprehension)[25]可被視為MRC的另一個裡程碑。為了克服以前的數據集的弱點,它具有四個主要功能。首先,所有問題都是從真實用戶查詢中收集的;其次,對於每個問題,使用Bing搜尋引擎搜索10個相關文檔作為上下文;第三,人為這些問題標註了答案,因此它們不僅限於上下文範圍,還需要更多的推理和總結;第四,每個問題有多個答案,有時甚至衝突,這使得機器選擇正確的答案更具挑戰性。MS MARCO使MRC數據集更接近真實世界。
類似於MS MARCO,DuReader[26]是來自現實世界應用程式的另一個大規模MRC中文數據集。DuReader中的問題和文檔均來自百度搜索和百度知道。答案是人為產生的,而不是原始上下文中的片段。DuReader之所以與眾不同,是因為它提供了新的問題類型,例如yes、no和opinion。與事實性問題相比,這些問題有時需要對文檔的多個部分進行匯總。下圖給出了數據集中的一個例子:
圖8 DuReader示例
4.3 方法介紹自由格式閱讀理解最直觀的方法就是採用seq2seq生成,然而實際上使用生成的方法效果普遍比較差。因此許多學者仍然沿用片段抽取型閱讀理解中的方法,這就需要先根據標註答案在上下文中找到最匹配的答案片段,然後將任務轉換為片段抽取型閱讀理解任務,比如阿里達摩院提出的Deep Cascade QA[27]、百度提出的VNET[28]等方法。為了讓最終答案更接近真實答案,可以構建一個基於seq2seq的答案改寫模型,輸入問題和得到的片段答案拼接,輸出改寫後的答案。
也有一些學者提出了端到端生成的方法,比如Nishida等人提出的Masque (multi-style abstractive summarization model for question answering)[29]。Masque不是簡單的使用seq2seq直接生成,而是利用copy機制,大部分的詞都是從上下文和問題中抽取出的,少部分詞則從整個詞表中生成,這樣就能得到格式比較規範的答案。模型底層使用transformer建模,在Decoder過程中,每一步生成三個分布,分別是來自Passage的分布、來自Question的分布以及整個詞表的分布,然後將三個分布組合成一個分布並歸一化後,選擇概率最大的詞作為這一步生成的結果。下圖是Masque生成得到答案的一個示例,詞的顏色表示其來自不同分布。
圖9 Masque生成示例
5. 總結閱讀理解近年來收到廣泛的關注,不同類型的閱讀理解任務都有著迅猛的發展。從關注限定文本到結合外部知識,從關注特定片段到對上下文的全面理解,閱讀理解任務越來越多的關注於對背景知識的利用以及對文本的深刻理解,期待著未來更多更有創造性的工作誕生。
[2] Karl Moritz Hermann, Tomas Kocisky, Edward Grefenstette, Lasse Espeholt, Will Kay, Mustafa Suleyman, and Phil Blunsom. Teaching machines to read and comprehend. NeurIPS, 2015.
[3] Felix Hill, Antoine Bordes, Sumit Chopra, and Jason Weston. The goldilocks principle: Reading children’s books with explicit memory representations. arXiv, 2015.
[4] Chen D, Bolton J, Manning C D. A thorough examination of the cnn/daily mail reading comprehension task[J]. arXiv, 2016.
[5] Kadlec R, Schmid M,Bajgar O, et al. Text understanding with the attention sum reader network[J]. arXiv, 2016.
[6] Lai G, Xie Q, Liu H, et al. Race: Large-scale reading comprehension dataset from examinations[J]. arXiv, 2017.
[7] Clark P, Cowhey I, Etzioni O, et al. Think you have solved question answering? try arc, the ai2 reasoning challenge[J]. arXiv, 2018.
[8] Mihaylov T, Clark P, Khot T, et al. Can a suit of armor conduct electricity? a new dataset for open book question answering[J]. arXiv, 2018.
[9] Talmor A, Herzig J, Lourie N, et al. Commonsenseqa: A question answering challenge targeting commonsense knowledge[J]. arXiv, 2018.
[10] Huang L, Bras R L, Bhagavatula C, et al. Cosmos QA: Machine reading comprehension with contextual commonsense reasoning[J]. arXiv, 2019.
[11] Sun K, Yu D, Yu D, et al. Improving machine reading comprehension with general reading strategies[J]. arXiv, 2018.
[12] Rajani N F, McCann B, Xiong C, et al. Explain yourself! leveraging language models for commonsense reasoning[J]. arXiv, 2019.
[13] Lin B Y, Chen X, Chen J, et al. Kagnet: Knowledge-aware graph networks for commonsense reasoning[J]. arXiv, 2019.
[14] Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev,and Percy Liang. Squad: 100,000+ questions for machine comprehension of text. EMNLP, 2016.
[15] Trischler A, Wang T, Yuan X, et al. Newsqa: A machine comprehension dataset[J]. arXiv, 2016.
[16] Joshi M, Choi E, Weld D S, et al. Triviaqa: A large scale distantly supervised challenge dataset for reading comprehension[J]. arXiv, 2017.
[17] Reddy S, Chen D, Manning C D. Coqa: Aconversational question answering challenge[J]. TACL, 2019.
[18] Choi E, He H, Iyyer M, et al. Quac: Question answering in context[J]. arXiv, 2018.
[19] Wenhui Wang, Nan Yang, Furu Wei, Baobao Chang, and Ming Zhou. Gated self-matching networks for reading comprehension and question answering. ACL, 2017.
[20] Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. Bidirectional attention flow for machine comprehension. arXiv, 2016.
[21] Tan C, Wei F, YangN, et al. S-net: From answer extraction to answer synthesis for machine reading comprehension. AAAI, 2018.
[22] Adams Wei Yu, David Dohan, Minh-Thang Luong, Rui Zhao, Kai Chen, Mohammad Norouzi, and Quoc V Le. Qanet: Combining local convolution with global self-attention for reading comprehension. arXiv, 2018.
[23] Zhu C, Zeng M, Huang X. Sdnet: Contextualized attention-based deep network for conversational question answering[J]. arXiv, 2018.
[24] Ohsugi Y, Saito I,Nishida K, et al. A Simple but Effective Method to Incorporate Multi-turn Context with BERT for Conversational Machine Comprehension[J]. arXiv, 2019.
[25] Nguyen T, Rosenberg M, Song X, et al. MS MARCO: ahuman-generated machine reading comprehension dataset[J]. 2016.
[26] He W, Liu K, Liu J, et al. Dureader: a chinese machine reading comprehension dataset from real-world applications[J]. arXiv, 2017.
[27] Yan M, Xia J, Wu C,et al. A deep cascade model for multi-document readingcomprehension. AAAI, 2019.
[28] Wang Y, Liu K, LiuJ, et al. Multi-passage machine reading comprehension with cross-passage answer verification[J]. arXiv, 2018.
[29] Nishida K, Saito I, Nishida K, et al. Multi-style generative reading comprehension[J]. arXiv, 2019.
延伸閱讀賽爾筆記 | 深度學習領域的數據增強
賽爾筆記 | 多模態情感分析簡述
賽爾筆記 | 一文了解Text-to-SQL
本期編輯:顧宇軒
『哈工大SCIR』公眾號
編輯:賴勇魁,李照鵬,馮梓嫻,胡曉毓,王若珂,顧宇軒長按下圖即可關注哈爾濱工業大學社會計算與信息檢索研究中心微信公眾號『哈工大SCIR』。