人们在读完一篇文章之后一般就会在脑海里形成一定的印象,这种对人类而言轻而易举的能力,对计算机来说却并非如此。
据新智元报道,很长一段时间以来,自然语言处理的研究都是基于句子级别的阅读理解。例如给计算机一句话,理解句子中的主谓宾、定状补,谁做了何事等等。但长文本的理解问题一直是研究的一个难点,因为这涉及到句子之间的连贯、上下文和推理等更高维的研究内容。
比如下面这段文本: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”,所以又加大了系统的推理难度。
但大数据的发展让学者们看到了这一研究方向的曙光。可获取的越来越大的文本数据,加上深度学习的算法以及海量的云计算资源,使得研究者们可以针对长文本做点对点的学习,即对句子、短语、上下文进行建模,这其中就隐藏了一定的推理能力。所以,目前自然语言处理领域就把基于篇章的理解提上研究的议事日程,成为目前该领域的研究焦点之一。