Facebook刷新开放域问答SOTA:模型训模型!Reader当Teacher!
文 | Sherry 不是小哀
編 | 小軼
一部問答系統發展史就是一部人工智能發展史。早在1950年的圖靈測試就提出:如果人類無法通過問答將機器和人區分開,那么這個機器就可以被認為具有智能。問答系統和人工智能有著密不可分的關系。從基于規則和結構化數據的自動問答,到基于精細設計神經網絡的文本問答,再到T5[1]將一切文本任務都轉化為問答,我們足以看出自動問答系統在走向機器智能的過程中的重要性。
當前主流的問答系統主要分為幾類:FAQ檢索型、閑聊型、任務型、知識圖譜型、閱讀理解型等等。他們之間互相有些區別,但本質上都可以被看作是從龐大的信息中找到想要答案的過程,方法上互相之間也有一些借鑒意義。
陳丹琦的DrQA[2]可以說是利用深度學習解決開放域問答的開山鼻祖了。我們也暫且將目光聚焦在這類開放域問答任務:基于一個巨大的文本庫(例如維基百科)建立自動回答知識型問題的系統。這樣的系統通常分為兩個部分:
- 檢索模型:負責從龐大的文本庫中篩選出與問題最相關的文本; 
- 閱讀模型:負責處理檢索模型篩選出的文本,從中精確地找出問題的答案。 
今天,我們來看一篇開放域問答系統的最新SOTA。Facebook在這篇paper中提出:在開放域問答中,閱讀理解模型的注意力權重可以提供更好的檢索模型訓練信號,該方法刷新了開放域問答系統的SOTA,同時在EffcientQA榜單上刷新了6GB量級模型的記錄。
論文題目:?
DISTILLING KNOWLEDGE FROM READER TO RETRIEVER FOR QUESTION ANSWERING
論文鏈接:?
https://openreview.net/pdf?id=NTEz-6wysdb
Github:?
https://github.com/lucidrains/distilled-retriever-pytorch
Arxiv訪問慢的小伙伴也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復關鍵詞 【0127】 下載論文PDF~
“現代”開放域問答
最開始,DrQA[2]將基于TF-IDF的詞頻算法用作檢索模型,與當時的SOTA閱讀模型結合,得到了開放域問答系統的雛形。基于詞頻的檢索模型的一大優點就是簡單有效:
- 對于大量文本,可以將所有段落的詞頻都提前統計出來,并儲存為向量的形式 
- 對于給定問題,通過向量近鄰搜索就可以快速查詢到最佳候選段落。 
但是基于詞頻的檢索模型也有一些很明顯的缺點:
- 詞頻不能完全表示文本的含義,檢索出的文本質量也因此受限,從而影響問答系統整體的表現 
- 基于詞頻的檢索模型不包含注意力機制,很難給關鍵程度不同的信息以不同的評分 
為了解決這類檢索模型的缺點,常見的問答系統先通過基于詞頻的檢索模型初篩出較大量候選段落,再應用基于BERT的檢索模型,將問題和段落拼接在一起進行精細排序。
然而,這類分階段檢索的模型仍然存在一些問題:它始終需要進過基于詞頻的檢索,有信息損失;每次預測都需要將較大量的文本送入BERT進行精排。能否在一開始就用BERT這類效果更好的模型預先編碼好所有段落,在檢索的時候直接進行向量搜索呢?
DPR - 加入了BERT的檢索模型
陳丹琦組在EMNLP 2020提出了Dense Passage Retrievel(DPR)[3]的方法來解決上述缺陷。由于BERT這類模型太過龐大,在預測的時候無法實時對所有段落進行重編碼,因而問題和段落需要分開編碼。文中采用兩個不同的BERT模型分別編碼問題和段落,問題和段落編碼向量相似度即為檢索模型的打分。
DPR的一大創新點在于線下完成所有段落的編碼。訓練段落編碼器時,將含有標準答案字串的候選段落作為編碼器的正例,其他段落作為負例。訓練完成后,即可在預測前對所有段落進行編碼。預測時只需要編碼問題,即可通過向量搜索得到相關段落。
然而,DPR在監督信息的獲取上是存在一定問題的——這也是基于網絡的檢索模型訓練的一大難點。DPR[3]是利用答案字符串是否出現在段落中的信號來定義編碼器的正負例。這個信號中包含了大量的噪聲:
- 包含答案的段落并不能回答當前問題 
比如對問題 “中國的首都是哪里?”而言,并非所有包含“北京”的段落都能用來回答這個問題。
- 不包含答案的段落也可以回答當前問題 
比如對問題“圖靈測試是誰提出的”而言,并非只有“阿蘭·圖靈”才是正確候選,由于音譯,省略等,其他字符串同時也可能是答案。
那么,如何能獲得更優質的檢索模型訓練信號呢?
向閱讀器學習
專門為檢索模型訓練標注數據固然是一種獲得更好訓練數據的方法,但我們能否自動獲取更優質的監督信號呢?Facebook AI的研究者們提出[4],利用蒸餾閱讀模型中的注意力權重可以獲得更好的相似度信息。
除了訓練檢索模型外,開放域問答的另外一個難點在于如何將檢索模型和閱讀模型的打分結合選出最終答案。閱讀模型的打分往往只基于被送入閱讀器的段落。想要獲得不同段落之間的交互信息,必須將所有候選段落拼接輸入閱讀器。但由于BERT的復雜度隨著序列長度平方級增長,拼接輸入并不高效。
在Fusion-in-Decoder model[5]中作者采用生成式(Encoder-Decoder)模型作為閱讀模型,他們將不同段落分別輸入Encoder獲得段落的的表示,然后將這些表示拼接在一起作為Decoder的輸入。這樣Encoder不需要用平方級的復雜度;Decoder在生成答案的時候也獲得了所有段落的信息。
而本文也采用這種閱讀模型。作者提出:在生成式閱讀模型中,Encoder和Decoder的交互注意力權重可看作預測時不同段落信息的重要度。
作者通過一個簡單的實驗證明了這一論點:給定一個問題和100個已經由DPR選出的相關段落,篩選出最好的10個段落后再通過閱讀理解模型,得到的端到端準確率下降越少說明篩選方法越好。基于前100個相關段落的問答系統準確率可以達到48.2EM;當我們直接選擇前10個DPR篩選出的段落時,問答系統的準確率下降到了42.9 EM;但如果根據閱讀模型的注意力權重篩選出前10的段落,準確率只下降到46.8 EM。
接下來,作者又進一步利用知識蒸餾的方法,讓檢索模型學習閱讀模型的注意力信號。
將注意力轉化為相關度
我們利用知識蒸餾,讓檢索模型學習閱讀模型的知識。將檢索模型在不同段落上的預測概率與閱讀模型的注意力權重之間的KL-divergence作為蒸餾訓練的損失函數。那么如何將注意力權重轉化為數值呢?
將矩陣轉化為數值的最直觀方法就是池化。公式中表示Decoder第i個token對Encoder第j個token,在第k層第h個注意力頭(head)的注意力權重,表示的是閱讀模型對這個問題,段落對的注意力權重打分,表示檢索模型對問題是檢索出段落的打分,也就是檢索模型的輸出。這樣,我們就可以讓檢索模型學習閱讀模型的注意力信息了。
文中試驗了不同的設置,最終確定:Decoder的第0個token對于Encoder同一段落中所有token的注意力權重平均值是最佳設定。
實驗
至此,我們已經確定了訓練檢索模型的損失函數。那么我們如何開始訓練呢?訓練采取迭代的方式進行:
對于每個問題,用檢索模型選取前k個相關段落,用于訓練閱讀模型。
在相關段落上訓練好閱讀模型后,對于每個問題的候選段落計算池化之后的注意力權重。
利用注意力權重作為檢索模型的蒸餾訓練信號,訓練檢索模型。
從隨機初始化的檢索模型開始訓練無疑是效率很低的,初始的候選段落便顯得尤為重要。作者選取了不同的初始篩選方法(BM25,BERT,DPR)來確定第一步的相關段落集合。
實驗發現從DPR方法選擇的初始相關段落可以讓模型達到最好的效果。由于BERT的預訓練目標和相關度排序相差甚遠,因而用預訓練好的BERT作為檢索模型的初始參數并選擇最初的相關段落集效果不佳。但作者提出的訓練方法可以在4個迭代內讓檢索模型大幅提升效果。
最終,如此構建的問答系統在NQ和TriviaQA數據集上都超越了之前的SOTA。這個方法在TriviaQA上達到了更好的效果,原因是NQ數據集中的段落是人工標注的并用作了DPR的訓練,但TriviaQA沒有提供段落相似度信息。這正說明了本文方法在沒有相似度標注數據的設定下十分有效。
總結
本文利用生成式閱讀器中的注意力權重作為相似度信息訓練檢索模型,刷新了開放域問答系統的SOTA。該方法簡單有效地解決了開放域問答系統中訓練檢索模型缺乏標注數據的問題,為研究者們提供了新思路。
萌屋作者:Sherry 不是小哀。
本科畢業于復旦數院,轉行NLP目前在加拿大滑鐵盧大學讀CS PhD。經歷了從NOIer到學數學再重回CS的轉變,卻堅信AI的未來需要更多來數學和自認知科學的理論指導。主要關注問答,信息抽取,以及有關深度模型泛化及魯棒性相關內容。
作品推薦:
無需人工!無需訓練!構建知識圖譜 BERT一下就行了!
Google Cloud TPUs支持Pytorch框架啦!
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
?
[1]Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer.(https://arxiv.org/pdf/1910.10683)
[2]Reading Wikipedia to Answer Open-Domain Questions.(https://arxiv.org/pdf/1704.00051)
[3]Dense Passage Retrieval for Open-Domain Question Answering.(https://arxiv.org/pdf/2004.04906)
[4]DISTILLING KNOWLEDGE FROM READER TO RETRIEVER FOR QUESTION ANSWERING.(https://openreview.net/pdf?id=NTEz-6wysdb)
[5]Leveraging passage retrieval with generative models for open domain question answering.(https://arxiv.org/pdf/2007.01282)
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Facebook刷新开放域问答SOTA:模型训模型!Reader当Teacher!的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 推荐一个快速定位深度学习代码bug的炼丹
- 下一篇: 全栈深度学习第2期: 开发套件与工具篇
