如何让AI在阅读理解方面表现更佳
在自然语言处理领域,基于阅读理解的问答是一项流行任务。它类似于标准化考试:给定一段文章及相关问题,目标是让机器学习模型像人一样,通过阅读文章找到答案。
近年来,问答模型取得了显著进展。在SQuAD 2.0等公开榜单上,模型的性能甚至超越了人类基准。但关键问题是:模型是真的学会了问答,还是仅仅学会在特定环境下有效的启发式方法?在论文《What do models learn from question answering datasets?》中对此进行了探究,并在自然语言处理实证方法会议(EMNLP)上展示。研究对基于流行BERT语言模型的问答模型进行了一系列简单而信息量充足的“攻击”,发现了以下可能动摇“模型性能超越人类”这一结论的短板:
模型泛化能力不佳
一个擅长批判性阅读的学生应能回答关于各类文章的问题。同样,问答模型应在不同数据集上表现良好。然而,研究表明,在SQuAD数据集上表现优异的模型,在同样基于维基百科文章的Natural Questions数据集上表现却不佳。这暗示模型可能仅学会了解决特定数据集,而非掌握更广泛的阅读理解能力。
模型倾向于走捷径
在评估模型时,我们通常假设高性能意味着对内容有良好理解。但测试本身可能存在缺陷。就像学生参加所有答案都是“C”的多选题考试一样,模型也可能利用测试问题中的偏差来获取正确答案,而无需进行真正的阅读理解。
为探究这一点,研究者进行了三项实验:
- 训练时干扰:在训练集中用错误答案替换正确答案。
- 测试时干扰(一):打乱输入文章的句子顺序,使其不再构成连贯段落。
- 测试时干扰(二):向模型提供不完整的问题(例如“When did William?”, “When?”, 甚至完全没有词)。
在所有实验中,模型都表现出可疑的鲁棒性,仍能返回正确答案。这意味着模型在训练时或测试时,都不需要通过阅读理解文章结构或理解完整问题来完成任务。原因在于,某些数据集中的部分问题可以通过简单规则回答。例如,实验中发现一个模型只是将所有“who”问题都用段落中的第一个专有名词来回答。这类简单规则几乎能达到当前模型基线性能的40%。
模型难以应对问题变体
一个学生应能理解“When did William invade England?”、“When did William march his army into England?”和“When was England invaded by William?”是同一个问题。但模型在处理这类变体时仍有困难。
研究者进行了两项实验来测试模型对问题变体的处理能力:
- 添加填充词:在问题中加入诸如“really”之类的填充词。理论上这不应影响性能,但实验发现模型F1分数(综合考虑假阳性和假阴性的指标)下降了高达8%。
- 添加否定:将问题改为否定形式。研究发现模型在高达94%的情况下忽略了否定,并返回与肯定问题相同的答案。
结论与建议
实验表明,模型在学习捷径,而非执行真正的阅读理解。虽然这令人失望,但可以改进。遵循以下五项建议,有望在未来催生更好的问答数据集和评估方法:
- 测试泛化能力:报告模型在多个相关数据集上的性能,确保模型不仅能解决单个数据集。
- 挑战模型:剔除那些可以通过简单规则(例如总是返回第一个专有名词)轻易解决的问题。
- 警惕高性能假象:探查数据集,确保模型没有走捷径。
- 包含问题变体:在现有问题中添加变体,以检验模型的灵活性。
- 标准化数据集格式:考虑在发布新数据集时遵循标准格式,以便进行跨数据集实验。研究者通过发布代码,将实验中使用的五个数据集转换为共享格式,为此提供了一些帮助。