人們在讀完一篇文章之后一般就會在腦海里形成一定的印象,這種對人類而言輕而易舉的能力,對計算機來說卻并非如此。
據新智元報道,很長一段時間以來,自然語言處理的研究都是基于句子級別的閱讀理解。例如給計算機一句話,理解句子中的主謂賓、定狀補,誰做了何事等等。但長文本的理解問題一直是研究的一個難點,因為這涉及到句子之間的連貫、上下文和推理等更高維的研究內容。
比如下面這段文本:The Rhine 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)。(大意:萊茵河是一條位于歐洲的著名河流,始于瑞士阿爾卑斯山,流經瑞士、 奧地利、列支敦士登、法國、德國、荷蘭,最終在荷蘭注入北海。萊茵河上最大的城市是德國科隆。它是中歐和西歐區域的第二長河流,位于多瑙河之后,約1230公里。)
若針對該段內容提問:What river is larger than the Rhine?(什么河比萊茵河長?)人們可以輕易地給出答案:Danube(多瑙河)。但目前即使是最佳的系統模型給出的結果也并不盡人意,它的回答是:科隆。
可見要讓計算機真正地理解文本內容并像人一樣可以對文字進行推理的難度是如此之大。在回答該問題時,計算機除了要處理文中的指代“t”,還需要算法和模型進一步對“larger than”和“after”這兩個表述進行推理,從而得知Danube是正確答案。此外,由于文中并沒有顯式提到Danube是“river”,所以又加大了系統的推理難度。
但大數據的發展讓學者們看到了這一研究方向的曙光。可獲取的越來越大的文本數據,加上深度學習的算法以及海量的云計算資源,使得研究者們可以針對長文本做點對點的學習,即對句子、短語、上下文進行建模,這其中就隱藏了一定的推理能力。所以,目前自然語言處理領域就把基于篇章的理解提上研究的議事日程,成為目前該領域的研究焦點之一。