DuReader,a Chinese Machine Reading Comprehension Dataset from Real-world Applications

数据总体概述

百度在2017年发布了大规模的中文MRC数据集:DuReader。相比以前的MRC数据集,DuReader有以下特点:

  • 所有的问题、原文都来源于实际数据(百度搜索引擎数据和百度知道问答社区),答案是由人类回答的。
  • 数据集中包含大量的之前很少研究的是非和观点类的样本。
  • 每个问题都对应多个答案,数据集包含200k问题、1000k原文和420k答案,是目前最大的中文MRC数据集。
    图1展示了Reader数据集与其他数据集的比较情况。

    图1 Reader数据集与其他数据集的比较
    DuReader数据集的样本可用一个四维数组表示:{q, t, D, A},其中q表示问题,t表示问题类型,D表示文档集合,A表示答案集合。一半的样本来源于百度搜索引擎,一半来源于百度知道。图2展示了DuReader数据集的一些样本。

    图2 DuReader数据集的一些样本

    根据答案类型,DuReader将问题分为:Entity(实体)、Description(描述)和YesNo(是非)。对于实体类问题,其答案一般是单一确定的回答,比如:iPhone是哪天发布?对于描述类问题,其答案一般较长,是多个句子的总结,典型的how/why类型的问题,比如:消防车为什么是红的?对于是非类问题,其答案往往较简单,是或者否,比如:39.5度算高烧吗?同时,无论将问题分类以上哪种类型都可以进一步细分为是事实(Fact)类还是观点(Opinion)类。如图3展示了这两大类维度的划分方式。

    图3 DuReader数据集问题划分方法

    通过这两个维度的划分方法,DuReader的问题类别共有6类。图4展示了DuReader数据集的问题类型分布情况。

    图4 DuReader数据集的问题类型分布情况

    基于问题和文档来对答案进行标注,由于一个问题可能对应多个文档,所以一个问题可能有多个答案,但对于及其相似的答案则归为一个。其数据分布情况如图5所示。

    图5 答案种类分布情况

    由图5可知,百度知道中含有多个答案的问题占比高于百度搜索引擎,而含有一个答案的问题占比却低于百度搜索引擎,说明在问答社区中用户生成内容的主观性和多样性。DuReader数据集问题的平均字数长度为4.8,答案的平均字数长度为69.6,文档的平均字数长度为396.0,是MS-MARCO的5倍。由于规模大且问题类型复杂,基于DuReader数据集的分析工作相比以往数据集都要难得多。百度通过计算人工答案和文档的最小编辑距离来判断回答问题的困难度。编辑距离越大,对文档的编辑修改就更多,回答问题的复杂度也就越高。对于答案直接来源于原文的数据集(如SQuAD),它们的编辑距离应该是0。图6展示了MS-MARCO和DuReader两个数据集答案与文档编辑距离分布情况。

    图6 MS-MARCO和DuReader两个数据集答案与文档编辑距离分布情况

    从图6可以看出,在同为人工标注的数据集MS-MARCO中,77.1%的样本的编辑距离低于3,而在DuReader中51.3%的样本的编辑距离高于10,这说明DuReader更为复杂。

    数据集实例

    问题:昆特牌什么时候公测
    人工标注答案:[‘时间为 6 月 6 日,暂定为期两周,即 6 月 6 日-6 月 19 日。’]
    Naturali 答案: [‘巫师之昆特牌国服山丘试炼开启时间为 6 月 6 日,暂定为期两周,即 6 月 6 日-6 月 19 日。’]
    参考文档
    [‘文章 阅读’,’巫师之昆特牌山丘试炼马上开启了,帅编来告诉大家开启时间。’,’巫师之昆特牌国服山丘试炼开启时间为 6 月 6 日,暂定为期两周,即 6 月 6 日-6 月 19 日。’,’参与过“青草试炼”的玩家将直接获得本次测试的资格,无需激活码。’,’国服公测时间暂未公布。’,’声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。’,’一款专为游戏动漫爱好者打造的 app 全面的资讯福利,热门资讯图鉴攻略应有尽有。国内外热门手游推荐,精彩不容错过。’,’itmo 爱萌游戏-二次元游戏第一门户 itmo 爱萌游戏是国内第一二次元游戏门户网站,致力于打造全新型的手机游戏网站。’]
    [‘南方公园游戏在 U2 上放出了新的宣传片昆特牌公测日期发布南方公园游戏这都从去年 4 月延到今年 10 月不过动画 21 季今年 9 月开始播刚好可以衔接到游戏发售日期’,’反正昆特牌打了一下午电脑一盘没赢我就放弃了’,’我巫师 3 二周目开始玩昆特牌,毕竟一周目没钱,二周目也不继承。现在走到哪打到哪。’,’下周就公测?好突然,这么快’,’昆特盘看测试录像,氪金也是厉害啊。。。这南方公园竟然跳票到这个时候。。’,’昆特牌国际服已经激活就是看不懂挺期待南方公园的’,’期待 spOktoberfest! 另外希望昆特正式服早日上线’,’南方公园一听就是垃圾游戏,大家千万别买’,’应用吧活动,去领取’,’活动截止:2100-01-01’,’要不是川普赢了,也不至于这么跳票’,’昆特牌还没公测啊,我都以为大家已经玩了好久了’,’打牌才是正事 打牌打到十一月玩高清二战 美滋滋’]
    解析说明:参考文档是从搜索引擎得到的排名靠前结果的网页全文,一个问题会对应多篇长文档;标注答案是人工根据文档总结撰写而成,一个问题可能对应多个答案,特别是对意见性的问题来说,有多个答案是很常见的。从以上案例可见,Naturali 阅读理解系统给出的答案比人工答案甚至还要全面。

    基线模型

    百度基于DuReader构建了两个基线模型:Match-LSTM和BiDAF。
    Match-LSTM是广泛应用的MRC模型,Match-LSTM为了在文章中找到答案,依次遍历文章,动态地将注意力权重与文章的每个标记进行匹配。最后,使用一个应答指针层来查找文章中的答案跨度。
    BiDAF既使用了语境对问题的注意,又使用了问题对上下文的注意,从而突出了问题和上下文中的重要部分。然后,利用注意流层融合所有有用的信息,从而得到每个位置的向量表示。
    模型的相关参数:
  • 词向量维度:300
  • 隐藏层节点大小:150
  • 优化算法:Adam
  • 初始学习率:0.001
  • batch size:32
    一个问题可能对应了多个文档,为了训练和测试的效率,在每个文档中选择具有代表意义的段落。在训练时,选择与答案相比较时可达到最高查全率的段落;在测试时,由于没有答案,则使用问题来计算查全率。
    评价方法为:BLEU-4和Rouge-L。基于DuReader数据集模型实验结果如图7所示。基于不同问题类型模型实验结果如图8所示。

    图7 基于DuReader数据集模型实验结果对比

    由图7可知,构建的模型在百度搜索引擎的数据集的表现比百度知道的数据集要差。

    图8 基于不同问题类型模型实验结果对比

    由图8可知,模型在描述类问题普遍表现良好,但在是非问题上表现较差。分析可能是因为描述类问题答案往往是同一主题下的长文本,而是非问题的答案则较短(有时候只有Yes或No),且是非类问题的答案主观性强,答案之间往往是矛盾的。
    BLEU和Rouge这两种评价指标对是非类问题并不友好,因为这两种评价指标不能很好的反应答案之间的一致性,比如两个完全相反的两个答案:“你可以做到”和“你不可以做到”,在BLEU和Rouge评价指标上,这两种矛盾的答案具有高一致性。
    为了解决以上出现在是非类问题的问题,建议模型不仅输出答案,同时还给出答案的标签(Yes、No或Depend),最终只使用相同标签的答案来计算BLEU和Rouge评价指标。图9表示对YesNo类型问题添加和不添加标签模型的表现。

    资源

  • Paper: https://arxiv.org/abs/1711.05073
  • Page: http://ai.baidu.com/broad/subordinate?dataset=dureader
  • Code: https://github.com/baidu/DuReader/
  • Bidirectional Attention Flow for Machine Comprehension:https://arxiv.org/abs/1611.01603
  • Machine Comprehension Using Match-LSTM and Answer Pointer:https://arxiv.org/abs/1608.07905
Buy me a cup of coffee