要解决的问题
对机器来说,阅读理解指的是这样一件事:给系统一段文本和一个关于这段文本的问题,让它给出答案。要训练这样的系统、并比较不同系统的水平,就需要数据——大量文本、大量问题,以及已知的正确答案用来打分。《SQuAD:10 万+文本机器理解问题》一文由 Pranav Rajpurkar、Jian Zhang、Konstantin Lopyrev 和 Percy Liang 撰写,2016 年 6 月 16 日提交到 arXiv,其核心贡献就是一个为此目的而建的数据集[1]。
数据集是怎么造的
SQuAD 包含 10 万多个问题,这些问题由众包工人(crowdworker)针对一组维基百科文章提出[1]。众包工人是在网络上被招募来完成零散工作的人,在这里,他们阅读文章,然后写出自己能在文中指出答案的问题。这个设计选择决定了后面的一切:每个问题的答案,都是对应阅读材料中的一段文字[1]。也就是说,系统不需要用自己的话写答案,而是要在文章中找到并返回回答该问题的那一段。这样一来,自动打分变得直接——系统的输出可以和参考答案片段直接比对;同时,问题也被牢牢地拴在文章实际写了什么之上。
问题需要什么样的推理
一个数据集只有在其问题被理解之后才有用。作者对自己的数据做了分析,想弄清回答问题需要哪些类型的推理,而这个分析大量借助了依存句法树和短语结构树(dependency and constituency parse trees)[1]。句法树描述句子的语法结构:短语结构树把词逐层组织成嵌套的短语,依存树则把每个词连接到它所依附的词。借助这两类结构,作者可以用句法关系来刻画问题,而不是把问题当成一堆没有区别的句子。
结果
为了说明这个数据集是可学的、但又不简单,作者构建了一个较强的逻辑回归(logistic regression)模型。逻辑回归是一种常见的统计分类器,它给输入的各项特征加权,再把它们合成为一个预测。这个模型的 F1 分数达到 51.0%,相比 20% 的简单基线是显著提升[1]。F1 把精确率和召回率合成一个数,因此它同时奖励两件事:返回的答案片段是对的,以及没有漏掉该答的片段。
更能说明问题的是人的成绩。人类在这个数据集上的表现为 86.8% F1,远高于当时最好的模型[1]。两者之间的差距正是这个数据集有意思的地方:一个只拿到大约一半分数的模型显然做出了些东西,但从它到真正读同一段文章的人之间,还有很长一段路。
为什么重要
作者把这一差距的大小看作证据,说明 SQuAD 为后续研究提供了一个好的挑战性问题[1]。一个基准最有用的时候,是它足够难,以至于在它上面的进步是有意义的;同时又足够可测,使不同系统能在同一标准上比较。答案限定为原文片段,提供了后一个性质;与人类表现的落差,提供了前一个性质。
数据集同时是免费开放的[1],因此各个团队可以在同一批问题上工作,而不是各自守着一份私有数据,结果也能对照共同的参照来核查。这篇论文确立的做法——大批众包撰写的、关于百科文本的问题,答案固定为原文片段,并把人类准确率与机器基线并列报告——使 SQuAD 成为机器阅读研究中的一个参照点。
20181
-
2018 年 1 月,微软亚洲研究院的 R-NET 与阿里巴巴的模型先后在机器阅读理解基准 SQuAD 的精确匹配成绩上超过人类基线,这是机器首次在该基准上越过这条线。
注释与来源
- SQuAD: 100,000+ Questions for Machine Comprehension of Texthttps://arxiv.org/abs/1606.05250
引用本页: 《SQuAD:10 万+文本机器理解问题》. TellWorld, https://www.tellworld.net/zh/papers/squad. 更新于 2026-11-08