好久以前就獲得了百度機器閱讀理解關於數據集的這篇文章,今天才進行總結!。。。。html
論文地址:https://arxiv.org/abs/1711.05073python
天然語言處理是人工智能皇冠上的明珠,而機器閱讀理解能夠說是天然語言處理皇冠上的明珠。近些年機器閱讀理解領域也愈來愈火熱,百度所創造的DuReader這個數據集以及百度的兩篇被ACL所收錄的論文都充分證實了咱們又向機器閱讀理解領域邁進了一步。算法
這篇文章主要介紹了DuReader這個數據集,這個數據集是目前最大的關於中文的MRC數據集。數組
0摘要:DuReader是一個全新的大規模的開放領域的用於解決真實世界MRC的中文數據集。DuReader相比較之前的MRC數據集有如下優勢:網絡
(1)數據來源:問題以及文檔來自百度搜索和百度知道,答案是人工生成函數
(2)問題類型:包括了不少問題的研究類型,特別是以前不多被研究的是非以及觀點型的問題性能
(3)規模:每一個問題都對應多個答案,數據集包含200k問題、1000k原文和420k答案,是目前最大的中文MRC數據集。
1Introduce:將現有的機器閱讀理解數據集進行比較:學習
分析圖1,對於完形填空風格的CNN&Dailymail和HLF-RC數據集,一箇中文一個英文分別將複雜的機器閱讀理解問題簡化爲對單詞的簡單預測(也就是完形填空)而CBT選自兒童讀物(提供候選答案);RACE經過對中國學生英語閱讀理解考試數據的選項選擇來測試機器閱讀理解能力而MCTest是隻包含兒童可以理解的故事的集合,其整體形式相似於英語考試中的單項選擇閱讀理解題;基於問答的MRC數據集:NewsQA、SQuAD和TrivaQA將新聞文章、維基百科等數據轉換爲閱讀理解題目,並定位答案出現的起始和結束位置。測試
這些數據集相比較DuReader存在的缺點:一、人工合成二、應用領域有限三、任務簡單優化
2 Pilot study
以前的數據集的問題類要麼是fact型要麼是opinion型,對應於Entity,Description或者YesNo類型中的一種。
Entity問題:實體類問題:答案是一個單一實體或者是實體列表。好比:iPhone是哪天發佈?
Description問題:描述類問題:答案一般是多個句子的總結。好比:消防車爲何是紅的?
YesNo問題:是非類問題:其答案每每較簡單,是或者否。好比:39.5度算高燒嗎?
以前的MRC數據集主要側重於對fact-entity和fact-description兩類問題的研究。而DuReader對此作出了一些改變,造成了以下效果
從兩個維度劃分,最終也造成了六種類型的問題。
3.DuReader數據集:
DuReader數據集的樣本可用一個四維數組表示:{q, t, D, A}
,其中q
表示問題,t
表示問題類型,D
表示文檔集合,A
表示答案集合。一半的樣原本源於百度搜索引擎,一半來源於百度知道。下圖展現了DuReader數據集的不一樣類型的定義。
DuReader相對具備挑戰性:
(1)關於答案的數目
基於問題和文檔來對答案進行標註,因爲一個問題可能對應多個文檔,因此一個問題可能有多個答案,但對於及其類似的答案則歸爲一個。其數據分佈狀況上圖所示。在圖中能夠看出百度知道中含有多個答案的問題(70.80%)佔比高於百度搜索引擎(62.20%),而含有一個答案的問題佔比卻低於百度搜索引擎,說明在問答社區中用戶生成內容的主觀性和多樣性。一樣對於沒有答案的狀況,百度知道(9.72%)明顯高於百度搜索引擎(1.54%),對於沒有答案的狀況,對於研究也是一種挑戰。
(2)編輯距離
因爲規模大且問題類型複雜,基於DuReader數據集的分析工做相比以往數據集都要可貴多。百度經過計算人工答案和文檔的最小編輯距離來判斷回答問題的困難度。編輯距離越大,對文檔的編輯修改就更多,回答問題的複雜度也就越高。對於答案直接來源於原文的數據集(如SQuAD),它們的編輯距離應該是0。上圖展現了MS-MARCO和DuReader兩個數據集答案與文檔編輯距離分佈狀況。DuReader有超過通常的編輯距離都是大於10的,證實分析DuReader數據集好仍是挺難的。
那麼什麼是編輯距離?(這裏重點介紹一下)
編輯距離(Edit Distance),又稱Levenshtein距離,是指兩個字串之間,由一個轉成另外一個所需的最少編輯操做次數。許可的編輯操做包括將一個字符替換成另外一個字符,插入一
個字符,刪除一個字符。通常來講,編輯距離越小,兩個串的類似度越大。最小編輯距離一般做爲一種類似度計算函數被用於多種實際應用中,詳細以下: (特別的,對於中文天然語言
處理,通常以詞爲基本處理單元)
應用於:一、拼寫糾錯(Spell Correction)二、命名實體抽取(Named Entity Extraction)(以將候選文本串與詞典中的每一個實體名進行編輯距離計算,當發現文本中的某一字
符串的編輯距離小於給定閾值時,將其做爲實體名候選詞;獲取實體名候選詞後,根據所處上下文使用啓發式規則或者分類的方法斷定候選詞是否的確爲實體名)三、實體共指(Entity
Coreference)四、機器翻譯(Machine Translation)(識別平行網頁對:將網頁的HTML標籤抽取出來,鏈接成一個字符串,而後用最小編輯距離考察兩個字符串的近似度 自動
評測:字符串核函數(String Kernel):最小編輯距離做爲字符串之間的類似度計算函數,用做核函數,集成在SVM中使用。)
求解算法:求cafe和coffee的編輯距離cafe→caffe→coffe→coffee
c | o | f | f | e | e | ||
0 | 1 | 2 | 3 | 4 | 5 | 6 | |
c | 1 | 0 | 1 | 2 | 3 | 4 | 5 |
a | 2 | 1 | 1 | 2 | 3 | 4 | 5 |
f | 3 | 2 | 2 | 1 | 2 | 3 | 4 |
e | 4 | 3 | 3 | 2 | 2 | 2 | 3 |
編輯距離(Edit Distance),又稱Levenshtein距離,是指兩個字串之間,由一個轉成另外一個所需的最少編輯操做次數。許可的編輯操做包括將一個字符替換成另外一個字符,插入一
個字符,刪除一個字符。通常來講,編輯距離越小,兩個串的類似度越大。最小編輯距離一般做爲一種類似度計算函數被用於多種實際應用中,詳細以下: (特別的,對於中文天然語言
處理,通常以詞爲基本處理單元)
應用於:一、拼寫糾錯(Spell Correction)二、命名實體抽取(Named Entity Extraction)(以將候選文本串與詞典中的每一個實體名進行編輯距離計算,當發現文本中的某一字
符串的編輯距離小於給定閾值時,將其做爲實體名候選詞;獲取實體名候選詞後,根據所處上下文使用啓發式規則或者分類的方法斷定候選詞是否的確爲實體名)三、實體共指(Entity
Coreference)四、機器翻譯(Machine Translation)(識別平行網頁對:將網頁的HTML標籤抽取出來,鏈接成一個字符串,而後用最小編輯距離考察兩個字符串的近似度 自動
評測:字符串核函數(String Kernel):最小編輯距離做爲字符串之間的類似度計算函數,用做核函數,集成在SVM中使用。)
求解算法:求cafe和coffee的編輯距離cafe→caffe→coffe→coffee
最終求的編輯距離也就是右下角的3。
表格的求解過程也就是先創建一個表,對兩個字符串創建一個二維數組A[][],二維數組的A[0][0]存放數字0,兩個字符串標記他們的長度str1是cafe,str2是coffee,k=1,然
後循環遍歷,比較str1[k]是否等於str2[k],
while(i<=str1.size()&&i<=str2.size()){
if(str1[k]==str2[k])b=0;
else b=1;
A[i][j]=min{A[i-1][j-1]+b,A[i-1][j]+1,A[i][j-1]+1}
}
能夠參考文章:
http://www.cnblogs.com/biyeymyhjob/archive/2012/09/28/2707343.html
關於python中如何使用編輯距離,以及一些文本類似度的計算方法,能夠參考:
https://www.jb51.net/article/98449.htm
(3)文本長度
DuReader數據集問題的平均字數長度爲4.8,答案的平均字數長度爲69.6,文檔的平均字數長度爲396.0,是MS-MARCO的5倍。
在本節中,咱們使用兩個最早進的models來實現和評估基線系統。此外,咱們的數據集中有豐富的註釋,咱們從不一樣的角度進行綜合評估。
兩個基線系統:Match-LSTM和BiDAF。
Match-LSTM是普遍應用的MRC模型,Match-LSTM(1)依次遍歷文章找答案,動態地將注意力權重與文章的每一個標記進行匹配(2)使用一個應答指針層來查找文章中的答案跨度。
BiDAF既使用了語境對問題的注意,又使用了問題對上下文的注意,(1)使用了兩個注意從而突出了問題和上下文中的重要部分(2)利用注意流層融合全部有用的信息,從而獲得每一個位置的向量表示。
模型的相關參數:
針對一個問題可能對應了多個文檔的這個問題,爲了訓練和測試的效率,在每一個文檔中選擇具備表明意義的段落。
(1)在訓練時,選擇與答案相比較時可達到最高查全率的段落(即選擇查全率最高的段落做爲答案,也就是選擇與人工生成的答案重疊度最高的段落)(2)在測試時,因爲沒有答案,則使用問題來計算查全率(選擇與相應問題重疊度最大的)。接着在這寫被選段落中訓練獲得答案的具體範圍。
評價方法爲:BLEU-4和Rouge-L。基於DuReader數據集模型實驗結果以下圖所示。
由上圖可知,目前的閱讀理解模型與選擇段落基線相比有了顯著的改善,驗證了選擇的兩個模型的有效性。此外MRC上的兩個經典系統在DuReader的表現能夠看出,模型在百度搜索引擎的數據集的表現比百度知道的數據集要差,這代表,對於模型來講,理解開放域名比從問答中找到答案要可貴多。
每一個文檔中最相關的段落都是在測試階段根據與相應問題的重疊度來選擇的。爲了分析段落選擇的效果,並得到基線MRC模型的上限,咱們從新評估了咱們在黃金段落上的系統,若是每一個黃金段落與文檔中人工生成的答案重疊最大,則選擇每一個黃金段落。實驗結果如表7所示。對比表6和表 7,咱們能夠看到黃金段落的使用能夠顯著提升總體性能。此外,直接使用黃金段能夠得到很高的Rouge-L分數。這些結果代表,para graph選擇是實際應用中須要解決的一個關鍵問題,而大多數MRC數據集都假設在一個小的段落或文章中找到答案。相比之下,DuReader提供了每一個文檔的完整正文,以促進在現實環境中的研究。
爲了更深刻地瞭解數據集的特性,下面是基於不一樣問題類型模型實驗結果所示。
由上圖可知,模型在描述類問題廣泛表現良好,但在是非問題上表現較差。分析多是由於描述類問題答案每每是同一主題下的長文本,而是非問題的答案則較短(有時候只有Yes或No),且是非類問題的答案主觀性強,答案之間每每是矛盾的。
BLEU和Rouge這兩種評價指標對是非類問題並不友好,由於這兩種評價指標不能很好的反應答案之間的一致性,好比兩個徹底相反的兩個答案:「你能夠作到」和「你不能夠作到」,在BLEU和Rouge評價指標上,這兩種矛盾的答案具備高一致性。
爲了解決以上出如今是非類問題的問題,咱們提出了一種新的意見感知系統(將 Match-LSTM最終的指針網絡層用一個全鏈接層代替),該方法要求evaluated系統不只要用天然語言輸出答案,還要給它貼上意見標籤(Yes、No或Depend)。最終只使用相同標籤的答案來計算BLEU和Rouge評價指標。圖9表示對YesNo類型問題添加和不添加標籤模型的表現。
上圖能夠看出YesNo問題的標籤感知模型明顯要比高於不帶標籤感知的模型的性能。
4.小結
首先,咱們的數據集中有一些之前沒有被普遍研究過的問題,例如「是-否」問題和須要多文檔MRC的意見問題。在意見識別、跨句推理、多文檔摘要等方面須要新的方法。但願DuReader豐富的註釋對研究這些潛在的方向有用。
其次,咱們的基準系統採用了一個簡單的段落選擇策略,這致使系統性能相較黃金段落的性能大大下降。因此爲實際的MRC問題設計一個更復雜的段落排名模型是必要的。
第三,最早進的模型將閱讀理解做爲一個跨領域的選擇任務。然而,在DuReader中,人們實際上用他們本身的理解來總結答案。如何總結或產生答案值得更多的研究。
第四,做爲數據集的第一個發佈版本,它還遠遠不夠完善,留下了很大的改進空間。例如,咱們僅爲「是-否」問題註釋opin- ion標籤,咱們也將爲描述和實體問題註釋意見標籤。
總結與啓發:接下來的工做以後一、對現有機器閱讀理解數據集進行比較總結;二、對百度基於DuReader開發的兩個基線系統進行總結以及代碼分析;三、閱讀同期百度被ACL2018錄用的兩篇文章《Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification》《Joint Training of Candidate Extraction and Answer Selection in Reading Comprehension》