春節玩耍結束啦,又開始學習啦!最近筆者學習了一下開放領域問答(open-domain question answering)最近幾年的進展和研究。由于背景知識和相關研究較多,筆者將其作為一個系列進行總結和記錄,也希望能幫助到相關領域/對相關領域感興趣的同學。這是第一篇,歡迎關注后續!
開放領域問答背景知識
在學習“開放領域問答(open-domain question answering)”之前,我們先看一個搜索+問答的例子。2021年2月,我在谷歌里搜索問題:“美國現任總統是誰?”,谷歌不僅能給出相關維基百科頁面的推薦,還直接給出問題的答案:“拜登”。筆者記憶里,10年前的搜索是無法給出答案的。那么,搜索引擎從以往的關鍵詞匹配到今天的智能問答(雖然目前還只能回答一些簡單的事實問題),開放領域問答方面的研究有不小的貢獻。
什么是問答(Question Answering,QA;或者也可以叫機器問答/機器閱讀理解/Machine Reading Comprehension)?什么又是開放領域問答(open-domain QA)呢?我們先簡單介紹如下幾個基本概念。
機器問答:讓計算機系統自動回答人類提出的描述性問題(一般來說需要用文字描述出來)。
開放領域:可以詢問任何問題(不對問題的領域,比如科研領域,體育,NBA或者足球領域等做限制,同時問問題時不提供相關文獻),比如可以問:EMNLP2020接收了多少篇文章?也可以問:現任美國總統是誰?。
知識庫:一般來說這些問題的答案可以在一個給定的知識庫中找到:比如純文本無結構化的維基百科,或者是結構化的知識庫(比如ConceptNet),或者是半結構化的表格。當然如果問題在知識庫中沒有答案,我們也希望機器能告訴我們此問題無解。本文涉及的相關研究都先重點關注無結構化的文本知識庫,結構化知識庫的開放領域問答放在后面的文章中進行介紹。
結合上面3條概念,圖1的例子涉及的流程可以這樣簡要概括成如下二個階段(當然實際流程要復雜得多):
提問者先描述了問題:美國現任總統是誰?谷歌搜索系統根據問題從谷歌構建好的知識庫中(包括了維基百科、以及各種網頁)找到最相關部分知識(比如美國總統選舉的維基百科網頁和相關文字報道)。
從最相關的部分知識(美國總統選舉維基百科網頁)中找到了問題的具體答案:拜登。
由于二階段系統十分直觀且便于結合檢索工具+機器閱讀理解實現,最近幾年的關于開放領域問答的許多研究也都屬于以上這種二階段系統,本文作為開放領域問答梳理的第一篇也將優先學習這個系統:基于信息檢索(information Retrieval, IR)+機器閱讀理解(Machine Reading Comprehension, MRC)(retriever-reader)的開放領域問答系統,如圖2所示。
當然除了二階段系統之外,還有單階段的系統(比如Phrase Retrieval期望直接通過檢索IR找出答案,T5、GPT3這種大規模預訓練模型甚至可以期望直接通過MRC生成答案),還有多階段的系統(比如把二階段系統中的IR細分到文檔檢索+文檔ranking,MRC細分為answer extraction和answer ranking,或者是迭代式(iterative)問答/多輪問答/multi-hop QA),這些系統的相關研究將在后續文章中逐漸覆蓋。
所以本文涉及的研究都有這么2個特點:1、關注事實性的、無結構化文本的識庫;2、都是兩階段IR+MRC的開放領域問答系統。
第一個兩階段系統:DrQA
Reading Wikipedia to Answer Open-Domain Questions,簡稱DrQA,是danqi chen在2017發表于ACL上的一篇經典文章,業內也經常稱該論文是深度學習時代關于開放領域問答的第一篇文章。
除開研究方面的貢獻,該文開源代碼十分值得入門的同學學習!包括但不限于:自然語言處理任務的文本預處理、TFIDF的高效實現、訓練LSTM神經網絡用于閱讀理解抽取答案、python多線程加速信息檢索、文本中的詞性標注等作為特征幫助文本理解任務。
圖3 DrQA示意圖
如圖3所示,該DrQA根據給定的問題,使用TF-IDF算法(不可訓練)對相關文檔在知識庫wikipedia中進行檢索,隨后訓練一個基于LSTM(直接替換成BERT也是可以的)的閱讀理解模型抽取答案。知識庫widipedia可以直接換成其他文本知識庫的。
如何訓練?
1、文檔檢索的TF-IDF無法訓練。
2、閱讀理解模型使用LSTM模型,基于(問題Q,文檔P,答案A)三元組進行訓練,三元組來源一個是SQuAD標注的訓練數據,一個是distant supervision。所謂distant supervision的意思是:根據問題Q使用TF-IDF找到相關文檔P,只要相關文檔P包含答案A,無論這個相關文檔是什么文檔,都可以構建出一個新的訓練三元組(Q,P,A)。
如何預測?
1、使用TF-IDF檢索出最相關的5個文檔;
2、用訓練好的LSTM閱讀理解模型挨個抽取答案,每個文檔抽取的答案都有一個得分。
3、根據所有文檔抽取的答案,選擇答案得分start位置end位置綜合得分最高的answer span。
論文除了說DrQA效果好之外,還提到:多任務學習和有幫助。
多任務學習的幫助可以見筆者上兩篇公眾號內容。
distant supervision有幫助筆者的2點理解為:
1、distant supervision構建了更多的訓練樣本,可以看作數據增強;
2、distant supervision讓模型在訓練和預測階段更一致。在預測階段,根據問題抽取的文檔并不一定都是標注的那個唯一文檔,還可能有其他包含答案但并不是標注的唯一文檔,因此預測的時候模型見到這些文檔也能抽取答案;
那么咱們想一下這個最基本的DrQA有哪些地方可以改進呢?比如:
是否可以優化一下文檔的粒度?
不按照documet來檢索,而是按照段落paragraph、句子sentence來檢索呢?
TF-IDF抽取的top 5個文檔并不準,是可以再訓練一個ranker模型根據問題quesiton,document來選更準的模型?
有推薦系統背景的同學其實可以按照召回-粗排-精排這個思路來考慮?
閱讀理解時是否可以一閱讀多個文檔,而不是每次都只看一個文檔?
每次抽取一個文檔的答案,然后再比較不同文檔里的答案得分是否合理呢?
文檔檢索、文檔rank和文檔閱讀理解階段相互獨立,是否可以讓這兩個階段互相幫助一下呢或者一起考慮呢?
更直觀的改進比如:
LSTM換成更牛逼的BERT模型是否可以?
pipeline的系統可否改進為end-to-end呢?
如果一個passage包含多個answer,那么選哪一個作為監督信號呢?
DrQA基本系統改進1:BERTserini
圖4 BERTserini
如圖4所示,論文:End-to-End Open-Domain Question Answering with BERTserini 使用Anserini檢索和BERT進行閱讀理解。相對于DrQA,BERTserini論文的主要點有:
對sentence、paragraph、sentence粒度的檢索進行了比較,發現paragraph級別的效果最好。
筆者的一點理解:
a. SQuAD是基于paragraph標注的,如果是article粒度,一個文檔太長,所以有大量的無關paragraph,不太適合;如果是sentence的話,檢索出來的句子聯系太少,不利于閱讀理解;
b.由于BERT是512長度限制,平均一個wikipedia的paragraph的長度在100多個token,如果按照paragraph來分的話,一個BERT是可以放入多個檢索的paragraph的,這里其實也是可以幫助提升效果。
將閱讀理解reader的打分和Anserini檢索的打分進行綜合考慮來選擇最佳的答案span。
3. MRC模型升級為更強的BERT可以幫助抽取答案的效果更好。
DrQA基本系統改進2:訓練一個passage ranker
簡單來說就是將TF-IDF檢索回來的文檔用一個深度學習模型進行重新排序。
圖6 通過增加一個Document ranker來改進
論文:Training a Ranking Function for Open-Domain Question Answering十分簡單:直接訓練一個ranker模型,把TF-IDF檢索回來的passage或者document排序一下,讓更準確更相關的文檔送入閱讀理解模型,提升模型。
相關的另一篇論文passage re-ranker with BERT字面意思理解就是:改成BERT跑一下效果更好。
另外論文:Revealing the Importance of Semantic Retrievalfor Machine Reading at Scale對句子sentence、段落paragraph級別的影響做了詳細的分析。
DrQA基本系統改進3: multi-passage一起處理
這里的passage其實可以指一個段落paragraph也可以說是一個文本片段segment,總之就是一段連續的文字。multi-passage一起處理的意思就是將檢索回來的多個文檔統一處理。
multi-passage最直觀的地方有:1、reading comprehension;2、passage ranking。
multi-psaage最直觀的方式是:想一想softmax是怎么統一歸一化的即可。
reading comprehension的時候考慮multi-passage:
比如論文Simple and Effective Multi-Paragraph Reading Comprehension
和論文Multi-passage BERT: A Globally Normalized BERT Model forOpen-domain Question Answering:都是按照單個段落獨立抽取answer span,但最終對所有答案的得分統一歸一化后選擇最好的答案(屬于answer ranking階段的統一處理),都是在MRC抽取答案的時候歸一化之后比較得分再選最高分。
它帶來的明顯好處是:根據問題檢索的passage增加雖然會增大answer出現的概率,但同時也會引入更多的噪聲讓reader效果下降,有了這個統一歸一化之后,reader抽取答案時候受到噪聲的影響更小,如圖5所示。
圖5隨著passage數量增加,multi-passage BERT保持了高的F1得分
ranking passage的時候multi-passage考慮:
圖6multi-passage進行ranking
論文Denoising Distantly Supervised Open-Domain Question Answering便是多個passage一起ranking的一個代表。其主要點是:
對TF-IDF檢索回來的passage訓練一個re-ranking模型(TF-IDF passage檢索可以看作是對passage的第一步rank打分)可以幫助找到更準確的相關passage。
如果我們能多個passage一起re-ranking,則這個re-ranking模型抗噪聲能力會更好。
passage re-ranking模型可以通過distant supervision訓練,也就是說一個question+一個包含了答案的passage可以當作一個正樣本。
DrQA基本系統改進4:Reader-Ranker互相幫助
Reader-ranker互相幫助的核心點在于:如果ranking模型和reader模型并不孤立的話,那reader模型的信息如何被ranking模型利用,ranking模型的信息如何被reader模型利用?
圖7reader-ranker互相幫助
如圖7所示,論文R3: Reinforced Ranker-Reader for Open-Domain Question Answering基于強化學習讓re-ranker-reader模型進行了交互。該文的主要點是:
Ranker模型和Reader模型基于強化學習一起訓練,具體可以如圖8所示,簡單描述為:Retriever根據question抽取top k的passages,然后passages經過ranker打分后,采樣一個passage送入reader,reader抽取得到answer,根據預測answer和正確答案之間的F1得分作為reward,然后根據plolicy gradient來更新re-ranker模型,同時也根據監督信號來更新reader模型。
圖8R3: Reinforced Ranker-Reader示意圖
筆者的一點想法:其實筆者更期待這個模型在多輪問答(multi-hop question answering)上的表現。
DrQA基本系統改進5:answer re-ranker
Answer re-ranker的基本思想是:如果檢索到的多個passage,每個passage都會被reader抽取多個answer span的話,那是否可以根據檢索部分的信息、閱讀理解部分的信息對抽取出來所有可能的answer span再次進行re-rank呢?
圖9Answer re-ranker
如圖9所示,論文Evidence Aggregation for Answer Re-Ranking in Open-Domain Question Answering基于信息檢索部分的特征、閱讀理解部分的特征給出了兩種answer re-ranker方法:
1. 如圖10所示,左邊的例子a就是Strength-based answer re-ranker。意思是,如果reader預測的答案被多段文本所支撐,則該答案更大概率是正確答案。
2. 如圖10所示,右邊的例子b就是Coverage-based answer re-ranker。意思是,如果支撐該答案的多段文本對于問題信息的覆蓋度更好,則該答案更有可能是正確答案。
圖10Strength-based和Coverage-basedre-ranker舉例
DrQA基本系統改進6: 監督信號的選擇
在DrQA的研究中顯示,如果訓練的時候只有問題question和answer,通過信息檢索得到相關passage來包含answer作為distant supervision,那么這個監督信號有它明顯的問題的:如圖11所示,如果一個段落中包含多個answer,那么選哪個位置的answer作為答案呢?因為訓練的時候是按照answer的start和end位置作為監督信號的,以往的論文訓練時一般直接選了第一個answer或者隨機選一個answer的start和end位置作為監督信號。
圖11 多個answer位置舉例
如圖12所示,論文A Discrete Hard EM Approach for Weakly Supervised Question Answering提出了一種Hard EM算法幫助模型在訓練的時候選擇最合適的answer作為。
筆者這樣理解:
1、 假設一個passage在多個位置包含了question的答案,那么在訓練初期,先鼓勵模型選擇預測概率最大(最大概率與Question和Document有關)的answer位置作為監督信號。
2、訓練一定steps之后,改為Hard EM算法(最大概率與Question、Document一個記一個可學習的參數C有關)選擇概率最大的answer 位置作為監督信號。學習reader模型的時候同時學習了選擇answer位置有關的參數C。
代碼基于Huggingface的transformers實現,還是很好看懂的。
圖12Hard EM學習過程
總結
本文主要包含了以下內容:
開放領域問答的基本背景,開放領域問答系統簡化后的二階段問答系統介紹。
原文標題:【問答】總結|開放領域問答梳理系列(1)
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
人工智能
+關注
關注
1792文章
47373瀏覽量
238875 -
深度學習
+關注
關注
73文章
5506瀏覽量
121258
原文標題:【問答】總結|開放領域問答梳理系列(1)
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論