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

3D封裝與系統(tǒng)級(jí)封裝的背景體系解析介紹

基于華為云 Flexus 云服務(wù)器 X 搭建部署——AI 知識(shí)庫(kù)問答系統(tǒng)(使用 1panel 面板安裝)

華為云 Flexus 云服務(wù)器 X 實(shí)例之 openEuler 系統(tǒng)下搭建 MaxKB 開源知識(shí)庫(kù)問答系統(tǒng)

AN-354: 應(yīng)用工程師問答——1幾個(gè)問題

背景抑制光電開關(guān)的設(shè)計(jì)及應(yīng)用
定制本地的ChatFile的AI問答系統(tǒng)

開源鴻蒙榮獲開放原子“2024年度操作系統(tǒng)領(lǐng)域國(guó)內(nèi)活躍開源項(xiàng)目”
基于 XD08M3232 接近感應(yīng)單片機(jī)的背景抑制光電開關(guān)設(shè)計(jì)與應(yīng)用
技術(shù)介紹:什么是 EtherCAT 的開放模式?

迅為RK3568開發(fā)板支持銀河麒麟和開放麒麟系統(tǒng)
AI智能化問答:自然語言處理技術(shù)的重要應(yīng)用

評(píng)論