核心内容摘要
JVM面试-Jvm基本原理
如何让AI在阅读理解方面表现更佳在自然语言处理领域基于阅读理解的问答是一项流行任务。
它类似于标准化考试给定一段文章及相关问题目标是让机器学习模型像人一样通过阅读文章找到答案。
近年来问答模型取得了显著进展。
在SQuAD
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%的情况下忽略了否定并返回与肯定问题相同的答案。
结论与建议实验表明模型在学习捷径而非执行真正的阅读理解。
虽然这令人失望但可以改进。
遵循以下五项建议有望在未来催生更好的问答数据集和评估方法测试泛化能力报告模型在多个相关数据集上的性能确保模型不仅能解决单个数据集。
挑战模型剔除那些可以通过简单规则例如总是返回第一个专有名词轻易解决的问题。
警惕高性能假象探查数据集确保模型没有走捷径。
包含问题变体在现有问题中添加变体以检验模型的灵活性。
标准化数据集格式考虑在发布新数据集时遵循标准格式以便进行跨数据集实验。
研究者通过发布代码将实验中使用的五个数据集转换为共享格式为此提供了一些帮助。
更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife