ACL 2018 | 北大与百度提出多文章验证方法:让机器验证阅读理解候选答案

机器之心编译

参与:Panda

在实现通用人工智能的道路上,机器阅读理解是一个必须要攻克的难题。针对这一难题,北京大学计算语言学教育部重点实验室与百度的研究者提出了一种能帮助机器更好地从多篇文章中挑选出正确答案的方法。该研究的论文已被将于当地时间 7 月 15-20 日在澳大利亚墨尔本举办的 ACL 2018 会议接收。

机器阅读理解(MRC)是指让计算机具备通过文本数据获取知识和回答问题的能力,人们相信这是构建通用智能体的一个关键步骤(Chen et al., 2016)。MRC 社区近些年来增长迅速。随着各种数据集的推出,MRC 任务也已经从早期的完形填空式的测试(Hermann et al., 2015; Hill et al., 2015)发展成了从单篇文章中提取答案(Rajpurkar et al.,2016),并且最近还发展成了更复杂的基于网络数据的问答(Nguyen et al., 2016; Dunn et al., 2017; He et al., 2017)。

在为这些 MRC 任务开发模型方面也已经取得了很不错的进展,尤其是基于单篇文章提取答案方面(Wang and Jiang, 2016; Seo et al., 2016; Pan et al., 2017)。一个显著的里程碑是好几个 MRC 模型在 SQuAD 数据集上的表现已经超越了人类标注者(Rajpurkar et al., 2016)。但是,考虑到阅读整个网络的终极目标,这种在单篇维基百科文章上取得成功仍还不够。因此,几个最新的数据集(Nguyen et al., 2016; He et al., 2017; Dunn et al., 2017)试图通过纳入搜索引擎而以更接近真实情况的设置来设计 MRC 任务。对于每个问题,他们都会使用搜索引擎来检索多篇文章,并且让 MRC 模型阅读这些文章以给出最终答案。

这种多文章 MRC 的一大固有难题是:因为所有文章都与问题相关但通常是独立写出的,所以可能存在多个让人困惑的候选答案(正确或不正确都可能)。表 1 给出了一个来自 MS-MARCO 的案例。我们可以看到所有的候选答案与问题都语义匹配,但它们在字面上是不一样的,甚至有些还是不正确的。如 Jia and Liang (2017) 展示的那样,这些让人困惑的候选答案可能会让 MRC 模型非常难以区分。因此,这样的多文章 MRC 问题需要特别的考虑。

表 1:一个来自 MS-MARCO 的示例。粗体文本是根据边界模型从每篇文章预测得到的候选答案。来自 [1] 的候选答案被这个模型选作了最终答案,而正确答案来自 [6] 并且可以通过来自 [3]、[4]、[5] 的答案验证。

在本论文中,我们提出利用不同文章的候选答案来验证最终的正确答案以及排除有噪声的不正确的答案。我们的假设是:正确答案在这些文章中会出现得更加频繁,并且通常具有一些共同点,而不正确的答案通常彼此各不相同。表 1 给出的示例就展示了这种现象。我们可以看到,从最后四篇文章中提取出的候选答案全都是该问题的可行答案且它们的语义彼此近似,而来自其它两篇文章的候选答案是不正确的且没有来自其它文章的信息提供支持。因为人类通常会比较不同来源的候选答案以推断最终答案,所以我们希望 MRC 模型也能受益于这种跨文章的答案验证过程。

我们的模型的整体框架如图 1 所示,其由三个模块组成。第一个模块,我们遵照基于边界的 MRC 模型(Seo et al., 2016; Wang and Jiang, 2016),通过确定答案的起始位置和终止位置来寻找每篇文章的候选答案。第二个模块,我们建模从这些文章中提取的候选答案的含义,然后使用内容分数从另一个角度来衡量候选答案的质量。第三个模块,我们通过让每个候选答案有能力基于其它候选答案的表征关注其它答案而执行答案验证。我们希望候选答案能根据它们的语义相似度彼此收集支持信息并进一步决定每个候选答案是否正确。

图 1:我们的多文章机器阅读理解方法概览

图 2:一篇文章中词的边界概率和内容概率

因此,最终答案是由三个因素决定的:边界、内容和跨文章的答案验证。这三个步骤使用了不同的模块建模,可以在我们的端到端框架中联合训练。

我们在 MS-MARCO(Nguyen et al., 2016)和 DuReader(He et al., 2017)数据集上进行了广泛的实验。结果表明我们的答案验证型 MRC 模型的表现显著优于基准模型,并且在这两个数据集上都实现了当前最佳的表现。

表 3:我们的方法与竞争模型在 MS-MARCO 测试集上的表现

表 4:在 DuReader 测试集上的表现

表 6:我们的模型为表 1 中给出的候选答案所预测的分数。尽管候选答案 [1] 得到了很高的边界分数和内容分数,但验证模型更偏向正确答案 [6] 并将其选作了最终答案。

使用跨文章答案验证的多文章机器阅读理解(Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification)

论文地址:https://arxiv.org/abs/1805.02220

在真实网络数据上的机器阅读理解(MRC)在回答一个问题时通常需要机器分析搜索引擎检索到的多篇文章。相比于在单篇文章上的 MRC,多文章 MRC 的难度更大,因为我们很可能会从不同的文章得到多个让人困惑的候选答案。为了解决这个问题,我们提出了一种端到端的神经模型,能让这些来自不同文章的候选答案基于它们的内容表征彼此验证。具体来说,我们是基于三个因素联合训练三个模块来预测最终答案:答案边界、答案内容和跨文章答案验证。实验结果表明我们的方法的表现显著优于基准,并且在英语的 MS-MARCO 数据集和汉语的 DuReader 数据集(这两个数据集都是为真实环境中的 MRC 设计的)上都实现了当前最佳的表现。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-05-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

winform treeView 数据绑定

942
来自专栏葡萄城控件技术团队

Table-values parameter(TVP)系列之二: 利用DataTable将其作为参数传给SP

一,回顾         上一部分讲述了“在T-SQL中创建和使用TVP”,通过T-SQL建立如下的对象:         1)Tables ...

2069
来自专栏跟着阿笨一起玩NET

C# 通过HttpWebRequest在后台对WebService进行调用

http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html

2772
来自专栏C# 编程

C#使用DataSet类、DataTable类、DataRow类、OleDbConnection类、OleDbDataAdapter类编写简单数据库应用

//注意:请使用VS2010打开以下的源代码。 //源代码地址:http://pan.baidu.com/s/1j9WVR using System; usi...

2460
来自专栏玩转JavaEE

RestTemplate的逆袭之路,从发送请求到负载均衡

上篇文章我们详细的介绍了RestTemplate发送请求的问题,熟悉Spring的小伙伴可能会发现:RestTemplate不就是Spring提供的一个发送请求...

1.1K4
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1181
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2288
来自专栏CreateAMind

文字描述生成视频的开源项目

Tensorflow implementation for the paper Attentive Semantic Video Generation usin...

1112
来自专栏DT乱“码”

简单的考勤系统

连接数据库类 package com.lianrui.it; import java.sql.Connection; import java.sql.Driv...

3489
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

842

扫码关注云+社区