真英雄,成名于少林寺武侠大会;好算法,验证在斯坦福公开数据。
武侠小说中一个公平且有影响力的平台,可以让侠之大者脱颖而出,科研也是,一个优秀的公开数据集可以让好算法脱颖而出,并同时让那些靠吹的算法身败名裂。本文将详细叙述今年目前为止自然语言处理界最重量级的数据集 SQuad。
1. SQuAD 是什么?
SQuAD 是斯坦福大学于 2016 年推出的数据集,一个阅读理解数据集,给定一篇文章,准备相应问题,需要算法给出问题的答案。此数据集所有文章选自维基百科,数据集的量为当今其他数据集(例如,WikiQA)的几十倍之多。一共有 107,785 问题,以及配套的 536 篇文章。数据集的贡献者为斯坦福 Percy Liang 等人,Percy Liang 是自然语言处理界的一位全才,在 Semantic Parsing, QA, Optimization 等多个领域都有重要贡献。
当前的公开数据集对比如下,MCTest,Algebra 和 Science 是现在的三个公开的阅读理解数据集,我们可以看到 Squad 在数量上远远超过这三个数据集,这使得在这个数据集上训练大规模复杂算法成为可能。同时,相比于 WikiQA 和 TrecQA 这两个著名问答数据集,Squad 也在数量上远远超过。而 CNN Mail 和 CBT 虽然大,但是这两个数据集都是挖空猜词的数据集,并不是真正意义上的问答。
2. 追赶 ImageNet ,发力自动问答领域
这个数据集文章展现了着斯坦福做一个自然语言处理的 ImageNet 的野心,他很可能成为自然语言学术界未来至少一年内最流行的数据集。模型在这个数据集上做出好成绩,可以让自己的文章加分不少,被顶会录取的几率大大增加。如果读者想发顶会,且目前没有明确的研究方向,那么刷这个数据集是一条很好的道路。
于此同时,这个数据集也会为工业界做出贡献。之所以说会为工业界做出贡献,因为自然语言处理的研究风气和图像相比差一些,任务较多,且没有在 paper 里面附带代码的行业规则,导致很多工作无法重现,甚至有些人会连实验都不做,直接往图和表里面填数造一篇文章。而这个数据集学习了 Imagenet,不给测试集,这样你就没法作弊,把代码交上来,我来给你跑,之后把测试集合上的水平评测出来,这样大家都公平,谁也别吹牛,谁也别作弊。此种环境有利于真正大贡献的工作得以浮现,例如 Residual Network 在去年席卷图像领域,在一个公平的环境下,以比其他对手好很多的效果呈现在了世人的面前。而 SQuAD 则是斯坦福在自然语言处理上,意图构建一个类似“ImageNet”的测试集合,分数实时在 leaderboard 上显示。
这就让这个数据集有如下优势:
纵使 SQuAD 不会像 ImageNet 有那么大的影响力,但绝对也会在接下来的几年内对自动问答领域产生深远的影响,并且是各大巨头在自动问答这个领域上的兵家必争之地(IBM 已经开始了)。
3. 如何构建 SQuad 数据集?
接下来,让我们详细介绍这个数据集的构建(此数据集已经被 EMNLP2016 会议收录 https://arxiv.org/pdf/1606.05250.pdf),我们先感受一下这个数据集精美的界面。
从图中我们可以看到,在验证集合和测试集合的水平。其中测试集合需要你提交一个可以运行的程序。最后一名和第一名分别是作者做的 baseline 以及人来回答能达到的水平,我们可以看到虽然只发布一个月,新加坡一些大学和 IBM 公司已经在这个任务上进行了尝试。 下图就是这个数据集的一个样例,首先给定一篇文章,然后开始问问题,第一个问题“什么造成了降雨”答案是重力造成的。问题十分有难度,需要推理,不过答案仍然在文中出现过。
数据集的具体构建如下
1. 文章是随机 sample 的 wiki 百科,一共有 536 篇 wiki 被选中。而每篇 wiki,会被切成段落,最终生成了 23215 个自然段。之后就对这 23215 个自然段进行阅读理解,或者说自动问答。
2. 之后斯坦福,利用众包的方式,进行了给定文章,提问题并给答案的人工标注。他们将这两万多个段落给不同人,要求对每个段落提五个问题。
3. 让另一些人对提的这个问题用文中最短的片段给予答案,如果不会或者答案没有在文章中出现可以不给。之后经过他们的验证,人们所提的问题在问题类型分布上足够多样,并且有很多需要推理的问题,也就意味着这个集合十分有难度。如下图所示,作者列出了该数据集答案的类别分布,我们可以看到日期,人名,地点,数字等都被囊括,且比例相当。
4. 这个数据集的评测标准有两个,第一:F1,第二:EM。EM 是完全匹配的缩写,必须机器给出的和人给出的一样才算正确。哪怕有一个字母不一样,也会算错。而 F1 是将答案的短语切成词,和人的答案一起算 recall,Precision 和 F1,即如果你 match 了一些词但不全对,仍然算分。
5. 为了这个数据集,他们还做了一个 baseline,是通过提特征,用 LR 算法将特征组合,最终达到了 40.4 的 em 和 51 的 f1。而现在 IBM 和新加坡管理大学利用深度学习模型,均突破了这个算法。可以想见,在不远的将来会有更多人对阅读理解发起挑战,自然语言的英雄也必将诞生。甚至会有算法超过人的准确度。
自动问答超越人类,你准备好了?