0
本文作者: 奕欣 | 2017-05-09 11:05 |
雷鋒網(wǎng)按:本文由雷鋒網(wǎng)轉載自微信公眾號“微軟研究院AI頭條”,原文標題為《從短句到長文,計算機如何學習閱讀理解?》,雷鋒網(wǎng)經(jīng)公眾號授權轉載,并做了不改動原意的編輯。
(從左至右:崔磊、韋福如、周明、楊南)
在電影《她(HER)》中有這樣一幕:主人公是一位信件撰寫人,人工智能操作系統(tǒng)薩曼莎在得到他的允許后閱讀他的郵件資料,總結出需要保留和刪除的郵件,幫助他修改信件草稿中的錯字,并且與他探討她喜愛的信件片段。與此同時,薩曼莎通過閱讀主人公的海量信息來了解他,也通過閱讀互聯(lián)網(wǎng)上的海量數(shù)據(jù)來了解世界。閱讀這項人類的基本能力,在眾多科幻作品中也成了人工智能的入門標配。
盡管人工智能的熱點此起彼伏,但毫無疑問的是,自然語言處理始終是實現(xiàn)智能、自然人機交互愿景里一塊重要的技術基石。而機器閱讀理解則可以被視為是自然語言處理領域皇冠上的明珠,也是目前該領域的研究焦點之一。
做機器閱讀理解研究的學者想必對由斯坦福大學自然語言計算組發(fā)起的SQuAD(Stanford Question Answering Dataset)文本理解挑戰(zhàn)賽并不陌生,它也被譽為“機器閱讀理解界的ImageNet”。諸多來自全球學術界和產(chǎn)業(yè)界的研究團隊都積極地參與其中,目前微軟亞洲研究院的自然語言計算研究組持續(xù)穩(wěn)居榜首,與包括艾倫研究院、IBM、Salesforce、Facebook、谷歌以及CMU(卡內基·梅隆大學)、斯坦福大學等在內的全球自然語言處理領域的研究人員,共同推動著自然語言理解的進步。
2017年5月8日SQuAD排名和結果截圖,其中微軟亞洲研究院的集成模型(ensemble)和單模型(single model)分列各自排名首位
那么,SQuAD機器閱讀理解挑戰(zhàn)賽是怎樣進行的呢?SQuAD通過眾包的方式構建了一個大規(guī)模的機器閱讀理解數(shù)據(jù)集(包含10萬個問題),即將一篇幾百(平均100,最多800)詞左右的短文給標注者閱讀,隨后讓標注人員提出最多5個基于文章內容的問題并提供正確答案。SQuAD向參賽者提供訓練集用于模型訓練,以及一個規(guī)模較小的數(shù)據(jù)集作為開發(fā)集,用于模型的測試和調優(yōu)。與此同時,他們提供了一個開放平臺供參賽者提交自己的算法,并利用測試集對其進行評分,評分結果將實時地在SQuAD官網(wǎng)上進行更新。
得益于SQuAD所提供的龐大數(shù)據(jù)規(guī)模,參與該項挑戰(zhàn)賽的選手不斷地對成績進行刷新,SQuAD挑戰(zhàn)賽也逐步成為行業(yè)內公認的機器閱讀理解標準水平測試。在今年的ACL大會(自然語言處理領域最頂尖的會議之一)的投稿里,有非常多的論文就是關于這項挑戰(zhàn)賽的研究,其影響力可見一斑。從ACL 2017論文主題的可視分析中可以看到,“reading comprehension(閱讀理解)”是今年ACL錄取論文中最熱門的關鍵詞和任務,廣受自然語言處理領域研究人員的關注。
“雖然偶爾有一兩天其它團隊超過了我們的成績,但我們也有最新的算法能夠很快地進行更新,并取得更好的成績,對于這一點我們的團隊始終十分自信?!睓C器閱讀理解研究的主要負責人、微軟亞洲研究院自然語言計算研究組主管研究員韋福如表示。
如今,我們在圖像識別、機器翻譯和語音識別等研究領域已經(jīng)看到了機器學習帶來的顯著成果。例如圖像識別技術對癌細胞病理切片的識別能力已逐步超過人類,目前機器圍棋棋手的棋力已經(jīng)幾乎無人能敵……在人工智能技術進步向人們展現(xiàn)了各種可喜的成果之后,大家將探尋的目光投向更遠的未來,下一個人工智能技術的增長點在哪里?
狂熱過后,當我們重新審視人工智能這個問題時,一個最基本的問題可能尚未解決:計算機能夠理解多少我們的語言了?
一些人類學家認為,語言是構建人類文明的基石。在語言之上,我們構建了神話、宗教;構建了城邦,帝國;還構建了信任、信仰。計算機發(fā)明以來,層出不窮的編程語言都在教人們學會和計算機對話,而人們理想中的人工智能則是應該主動學習,掌握人類語言的奧義。為此微軟提出了CaaP(Conversation as a Platform,對話即平臺)戰(zhàn)略,并將對話式人工智能作為微軟在人工智能領域布局的重點。
計算語言學協(xié)會(ACL, Association for Computational Linguistics)候任主席,微軟亞洲研究院副院長周明博士認為:“自然語言處理的基本研究包括分詞、斷句、句法語義分析等等。而機器閱讀理解就是自然語言計算領域皇冠上的明珠?!?/p>
一般來說,人們在讀完一篇文章之后就會在腦海里形成一定的印象,例如這篇文章講的是什么人,做了什么事情,出現(xiàn)了什么,發(fā)生在哪里等等。人們能夠很輕而易舉地歸納出文章中的重點內容。機器閱讀理解的研究就是賦予計算機與人類同等的閱讀能力,即讓計算機閱讀一篇文章,隨后讓計算機解答與文中信息相關的問題。這種對人類而言輕而易舉的能力,對計算機來說卻并非如此。
很長一段時間以來,自然語言處理的研究都是基于句子級別的閱讀理解。例如給計算機一句話,理解句子中的主謂賓、定狀補,誰做了何事等等。但長文本的理解問題一直是研究的一個難點,因為這涉及到句子之間的連貫、上下文和推理等更高維的研究內容。
比如下面這段文本:
The Rhine (Romansh: Rein, German: Rhein, French: le Rhin, Dutch: Rijn) is a European river that begins in the Swiss canton of Graubünden in the southeastern Swiss Alps, forms part of the Swiss-Austrian, Swiss-Liechtenstein border, Swiss-German and then the Franco-German border, then flows through the Rhineland and eventually empties into the North Sea in the Netherlands. The biggest city on the river Rhine is Cologne, Germany with a population of more than 1,050,000 people. It is the second-longest river in Central and Western Europe (after the Danube), at about 1,230 km (760 mi), with an average discharge of about 2,900 m3/s (100,000 cu ft/s).
(大意:萊茵河是一條位于歐洲的著名河流,始于瑞士阿爾卑斯山,流經(jīng)瑞士、 奧地利、列支敦士登、法國、德國、荷蘭,最終在荷蘭注入北海。萊茵河上最大的城市是德國科隆。它是中歐和西歐區(qū)域的第二長河流,位于多瑙河之后,約1230公里。)
若針對該段內容提問:What river is larger than the Rhine?(什么河比萊茵河長?)人們可以輕易地給出答案:Danube(多瑙河)。但目前即使是最佳的系統(tǒng)模型R-NET給出的輸出也并不盡人意,它的回答是:科隆,可見要讓計算機真正地理解文本內容并像人一樣可以對文字進行推理的難度是如此之大。
在回答該問題時,計算機除了要處理文中的指代“it”,還需要算法和模型進一步對“l(fā)arger than”和“after”這兩個表述進行推理,從而得知Danube是正確答案。此外,由于文中并沒有顯式提到Danube是“river”,所以又加大了系統(tǒng)的推理難度。
但大數(shù)據(jù)的發(fā)展讓學者們看到了這一研究方向的曙光??色@取的越來越大的文本數(shù)據(jù),加上深度學習的算法以及海量的云計算資源,使得研究者們可以針對長文本做點對點的學習,即對句子、短語、上下文進行建模,這其中就隱藏了一定的推理能力。所以,目前自然語言處理領域就把基于篇章的理解提上研究的議事日程,成為目前該領域的研究焦點之一。而針對上文提及的相關難點,微軟亞洲研究院自然語言計算研究組正在進行下一步的研究和探索。
正如前文所說,機器閱讀理解的研究之路始終充滿著許多困難和挑戰(zhàn)。
首先是數(shù)據(jù)問題。目前基于統(tǒng)計方法(尤其是深度學習模型)的機器閱讀理解的研究離不開大量的、人工標注的數(shù)據(jù)。在SQuAD數(shù)據(jù)集推出之前,數(shù)據(jù)集常常面臨規(guī)模較小,或是質量不佳(因為多是自動生成)的問題,而SQuAD無論是在數(shù)據(jù)規(guī)模還是數(shù)據(jù)質量上都有一個很大的提升。在基于深度學習方法的研究背景下,數(shù)據(jù)量不夠就很難做出有效、或是有用的模型,更難對模型進行合理、標準的測試。
另一方面則是算法問題。之前自然語言處理在做閱讀理解或者是自動問答研究的時候,會把這個研究問題視作一個系統(tǒng)的工程,因而把這個問題分成許多不同的部分。例如先去理解用戶的問題;再去找答案的候選;再將候選答案進行精挑細選、互相比較;最后對候選答案進行排序打分,挑選出最可能的答案或者生成最終的答案。而這個繁復的過程中,似乎其中的每一步都是可以優(yōu)化的。
但它相應地也會帶來一些問題。
第一,當你分步去優(yōu)化這其中的每一個過程的時候,你會去研究如何更好地理解這個問題,或是研究如何更好地把答案做對,這些分目標研究結果的整合未必能和“如何將閱讀理解的答案正確找出來”這個目標完全吻合。
第二,如果想做局部的優(yōu)化,就意味著每一個局部過程都需要相應的(標注)數(shù)據(jù),這使得閱讀理解的研究進展緩慢。如果只使用問題-答案作為訓練數(shù)據(jù),中間模塊的優(yōu)化得到的監(jiān)督信息不那么直接,因而很難有效。
結合了上述問題,微軟亞洲研究院自然語言計算研究組的機器閱讀理解研究團隊采用的則是一個端到端的深度學習模型的解決方案,區(qū)別于上述的每一個細化環(huán)節(jié)的具體優(yōu)化過程,他們采取的方法是把中間環(huán)節(jié)盡可能的省去,使得整體的過程能夠得到最優(yōu)效果。
實際上,SQuAD的挑戰(zhàn)賽形式就是讓系統(tǒng)在閱讀完一篇幾百詞左右的短文之后再回答5個基于文章內容的問題。這個問題可能比大家熟知的高考英文閱讀理解,或是托福閱讀考試都要難得多。人們參加的這些考試往往是一個答案被限定住范圍的選擇題。
但是在SQuAD的數(shù)據(jù)集中,問題和答案具有非常豐富的多樣性。這五個問題中可能涉及文章中的某一個人,某一個地點,或是某一個時間等等實體;也有可能會問一些為什么(Why)、怎么樣(How)的問題。后者的答案可能實際上是一句話,甚至是一小段話,因此解決這個問題只會更加棘手。
另外,在SQuAD數(shù)據(jù)集中,除了問題的多樣性之外,研究員們發(fā)現(xiàn)還有更多的挑戰(zhàn)。比如語言(包括詞級別和句子級別)的歧義性,對于同一個意思,問題和短文會用不同的詞語或者句型表述(在標注指南中就明確要求標注者盡可能使用不同的表述)。另一個很有難度的挑戰(zhàn)是對于有些問題,找到正確答案需要用到整篇短文中的不同句子的信息,進而對這些信息進行聚合和比較才能最終得出正確的答案。當然,也有一部分問題需要用到比較復雜的推理、常識和世界知識,面對這類問題就更是難以處理。下表是發(fā)布SQuAD數(shù)據(jù)集一文中給出的總結。
表格來源:Rajpurkar et al. '16
目前SQuAD挑戰(zhàn)賽采用兩個評價標準來對參與系統(tǒng)的結果進行評測。由人工標注的答案作為標準,系統(tǒng)自動依據(jù)準確性和相似度兩個不同的維度進行打分,較客觀地保證了評分系統(tǒng)的公平性。微軟亞洲研究院團隊在這兩個不同維度的評價標準上均取得了最優(yōu)的成績,其準確度達到了76.922%,相似度達到了84.006%,高出第二名近兩個百分點。
為了研究機器閱讀理解的問題,包括韋福如和楊南等在內的研究團隊試圖去建模人做閱讀理解的過程。他們采用了R-NET,一個多層的網(wǎng)絡結構,分別從四個層面對整個閱讀理解任務的算法進行了建模。
我們在做閱讀理解的過程中,一個常見的順序是這樣的:
首先閱讀整篇文章,對文章有一個初步理解之后再去審題,從而對問題也有了一定認知。
第二步,可能就需要將問題和文中的部分段落和內容做一些關聯(lián)。例如題干中出現(xiàn)的某些關鍵已知信息(或證據(jù))的,找出一些候選答案,舉例來說:如果問題問的信息是時間,那么文中出現(xiàn)的與時間相關的信息就可能是候選答案。
第三步,當我們將候選答案與問題進行對應之后,我們還需要綜合全文去看待這些問題,進行證據(jù)的融合來輔證答案的正確性。
最后一步,就是針對自己挑出的答案候選進行精篩,最終寫下最正確的答案。
有鑒于此,研究組提出的模型也就分為這樣的四層。
最下面的一層做表示學習,就是給問題和文本中的每一個詞做一個表示,即深度學習里的向量。這里研究組使用的是多層的雙向循環(huán)神經(jīng)網(wǎng)絡。
第二步,就是將問題中的向量和文本中的向量做一個比對,這樣就能找出那些問題和哪些文字部分比較接近。接下來,將這些結果放在全局中進行比對。這些都是通過注意力機制(attention)達到的。
最后一步,針對挑出的答案候選區(qū)中的每一個詞匯進行預測,哪一個詞是答案的開始,到哪個詞是答案的結束。這樣,系統(tǒng)會挑出可能性最高的一段文本,最后將答案輸出出來。
整個過程就是一個基于以上四個層面的神經(jīng)網(wǎng)絡的端到端系統(tǒng)(見下圖)。
微軟亞洲研究院提出的R-NET算法的網(wǎng)絡結構圖。其中最為獨特的部分是第三層文章的自匹配網(wǎng)絡(Self-Matching Networks),更多細節(jié)請點擊此鏈接,參考技術報告。
關于這項研究的論文已經(jīng)被ACL 2017錄用,并獲得審稿者的一致好評。
SQuAD數(shù)據(jù)集于2016年9月份發(fā)布了正式版。一經(jīng)推出,微軟亞洲研究院自然語言計算研究組就敏銳地判斷這是一個非常重要的數(shù)據(jù)集,將會極大地推動機器閱讀理解的研究,并將在研究界和工業(yè)界產(chǎn)生積極深遠的影響。10月,研究團隊就第一次提交了他們的研究成果,并且取得了第一名的好成績,而后續(xù)幾個月的數(shù)次提交,則是在不斷地刷新著自己的成績。對于研究團隊來說,這其實是一個試錯的過程,團隊每天都會討論總結當天的試錯成果,有新的想法就不斷嘗試。
提及機器閱讀理解未來值得探索的方向,韋福如分享了他的三點看法。他認為一方面基于深度學習的算法和模型還有很大的空間,適合機器閱讀理解的網(wǎng)絡結構值得在SQuAD類似的數(shù)據(jù)集上進一步嘗試和驗證。具體來說,通過對R-NET目前處理不好的問題的進一步分析,能否提出可以對復雜推理進行有效建模,以及能把常識和外部知識(比如知識庫)有效利用起來的深度學習網(wǎng)絡,是目前很有意義的研究課題。另外,目前基于深度學習的閱讀理解模型都是黑盒的,很難直觀地表示機器進行閱讀理解的過程和結果,因而可解釋性的深度學習模型也將是很有趣的研究方向。
其次,人類理解文本的能力是多維度的,結合多任務(尤其是閱讀理解相關的任務,例如閱讀理解之后進行摘要和問答)的模型非常值得關注和期待。更進一步,雖然SQuAD提供了比較大的人工標注數(shù)據(jù)集,如何有效且高效地使用未標注的數(shù)據(jù)也是非常值得期待的研究課題和方向。
最后從任務上看,目前SQuAD的任務定義中答案是原文的某個子片段,而實際中人可能讀完文章之后需要進行更復雜的推理、并組織新的文字表達出來。
“目前我們的算法基本都是抽取型的方式,未來生成型的算法也值得更多的探索和研究。另外,目前機器閱讀理解關注的都是理解客觀信息的能力,未來機器理解文字里面所表達出來的主觀信息(例如情感)也是非常有趣并值得關注的方向。”韋福如說道。
雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉載。詳情見轉載須知。