前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何为NLP模型出一份合格的“考卷”?

如何为NLP模型出一份合格的“考卷”?

作者头像
腾讯云开发者
发布2020-12-23 11:02:08
5490
发布2020-12-23 11:02:08
举报
文章被收录于专栏:【腾讯云开发者】

导语 | 在进行 NLP 模型评测时,我们通常会使用一些准确性指标去评价模型,例如 F1, MAP, ACC 等。虽然这些指标可以较为公正的评判模型的总体能力,但在对模型进行监控和优化时,有时需要知道更多的细化指标。本文以语义相似度模型为例,浅谈 NLP 可解释评测,希望与大家一同交流。文章作者:许元博、周磊,腾讯CSIG质量部评测研究员。

一、背景

如果一项 NLP 任务是考试,NLP 模型是考生,我们关心的不应该仅仅是最终的考试成绩,我们同样需要关心考生的哪些知识点掌握的不足,只有这样才能够有针对性地强化不足的知识点,提高考试成绩。

在这场考试中,测试数据集相当于一份考卷考卷。那么,这份考卷应该怎么出呢?

常用的方法是将数据集进行 train, validate, test 划分。也即是将一个题库里的题一部分用来学习,一部分用来小测验,另一部分用作考试。

但是这样会出现一些问题。例如,Bert 曾在一项推理任务 (ARCT) 当中取得了非常好的成绩,和人类差别很小[1]。然而,后来研究人员发现,Bert 之所以能取得好成绩,并不是因为其具备了推理能力,而是它发现了一些“考试技巧”。

例如, 它发现大多数的正确选项都包含 “not”,因此只需要“蒙”具有 “not” 的选项就可以了。如果将这个“线索”去掉,Bert 的成绩就下降成了盲猜的水平。

其实每一套数据集都是有偏的,都有可能包含很多的“线索”。当测试集和训练集出自同一份数据集,模型很可能可以通过很多“考试技巧”取得好成绩。并且当仅仅用一个准确性指标评测时,就无法评估模型掌握的究竟是“知识”还是“考试技巧”。

那么有人会问,模型最终的目的就是上线工作,线上数据就像是“高考真题”。如果高考能够取得好成绩,为什么还要关心是掌握了“知识”还是“考试技巧”呢?只用线上数据进行测试不行吗?

的确,在线上数据集上取得高分才是硬道理。然而,线上数据并不是一成不变的,用户的使用习惯随时有可能发生变化。如果模型只是通过“考试技巧”取得的高分,那么将无法适应这种变化,成绩就会不稳定。

因此,一个合格的考生,应该是通过“知识”做题,而非“考试技巧”。一份合格的考卷,也需要能够拨开“考试技巧”,考察出模型真正的能力。

我们需要回归本质,探讨当模型去完成一项任务时,影响判断的因素究竟有哪些。即模型需要具备哪些细分的能力才能够很好的完成这项任务。每一项细分能力就相当于一个“知识点”。我们需要知道模型对于每一个“知识点”掌握的情况究竟如何,这样才可以解释最终的成绩为什么好、为什么不好,并且才能够知道在哪些“知识点”上有待加强。

一个能够考察出模型真正能力的评测数据集,应该具备以下三个要素:

  • 与训练集没有任何关系,是一套崭新的数据集。
  • 对于完成任务需要的细分能力有较为完备的覆盖。
  • 尽量避免出现“线索”。

下文将以语义相似度模型为例,介绍一种具备可解释性的评测数据集的构建方法。

二、模型与训练

首先,我们训练几个模型以待评测。本次实验选取了 5 个语义相似度模型,分别为 dssm, cnn-dssm, lstm-dssm, arc1 和 esim。训练数据采用哈工大 lcqmc 公开数据集,按照比例分为训练集、验证集和测试集,共计 26 万条文本对。

数据样例如下图所示:

训练结果如下图所示:(此处测试集是 lcqmc 数据集)

从 F1 和 Acc 的结果来看,esim 模型效果最好,arc1 模型次之, lstm-dssm 再次。dssm 模型 F1 远低于其他模型,但 acc 略高于 cnn-dssm 模型。

三、评测数据集的构建

下面我们来看这份“考卷”是如何出的。

首先,我们需要探讨一下影响两句话意思是否相同的因素有哪些。首先能够想到的是“词法”和“句法”两大类。

词法是指在句式相同的情况下,替换一个词语,使得句子意思相同或者不同。句法是指在词语一致的情况下,变换词语的位置,使得句子意思相同或者不同。

此外,上下文的信息也会影响两句话的语义。将所有因素整理如下:

由于上下文的模型与这里讨论的语义相似度模型属于不同的方法,因此在这里先不考虑。我们根据词法和句法的分类构建一个评测数据集,示例如下,每一分类有 100 条文本对, 共计 2300 条:

在数据集的构造时,我们尽量保证每一个“知识点”只有最小粒度的变化。这样才能清晰的对模型的细分能力进行评估,同时也可以评估出模型是否在用“考试技巧”答题。

四、指标及评测结果

首先,根据“词法”和“句法”的分类,提取出两个评价指标。整个评测数据集的 F_macro 值作为“综合能力”指标。

评测结果如下图所示:

从以上结果来看,esim 无论是同异义词判别能力还是词语位置分析能力,都取得了最好的效果。cnn-dssm 和 arc1 综合能力相近,但擅长的领域不同。cnn-dssm 对于词语位置的分析能力更强,而 arc1 对于词语的判别能力更强。

下面再对“词法”和“句法”分别进行更细粒度的分析,首先来看词法:

从词法分析来看,esim 整体较好,且对于”疑问词“的判别能力远优于其他模型,但在”谓语“、”宾语“的判别能力低于 arc1 模型。arc1 模型的”谓语“判别能力远优于其他模型, 但”时间状语“判别能力较弱。cnn-dssm 模型严格优于 lstm-dssm 模型, 且对于“否定副词”的判断最好。在所有词性中,”量词“的整体判别水平较高, 且远高于同模型的其他词性判别结果。

再来看句法。由于部分句法细分仅包含“同义“,因此会只有 F1 的值。对于同时包含“同义”和“不同义”的细分,则分别计算 F_macro 值。

以上分析结果来看,cnn-dssm 整体实力较为突出。dssm 效果最差(由于 dssm 模型并不会记录位置信息,因此结论与理论相符合)。

再将 F_macro 值进行拆分,分为 F0 和 F1,可以看出模型对于”同义“与”不同义“的判断倾向。

由于 F1 的值普遍高于 F0,可以得知模型对于语义相同的位置信息判断更准确,但 esim 和 arc1 对于地点主语替换例外。(这可以作为一个“考试技巧”的判断,即模型面对位置不同,更倾向于分类为“同义”)

通过以上指标,我们已经可以对不同模型的细分能力有量化的认识。然而,通过细分召回率矩阵,可以通过可视化的方法,对模型的对比有直观的感受,并且能够发现一些有趣的结论。

从图中可以看出,cnn-dssm 和 lstm-dssm 对于“同义”和“不同义”的判断倾向性更加明显(红蓝差异很大)。这说明这两个模型有更多的“考试技巧”,即在更多情况下,会将模型判断为“同义”。有趣的是,arc1 的倾向与其他模型不同。

五、总结与展望

本次实验主要提出了一套细粒度的语义相似度模型评测方法,提出了一些细粒度的评价指标,可以使我们更加深入的了解不同模型的特性。在我们较为熟悉的模型上进行试验,实验结果符合预期。

这种根据语言学特性的评测数据集构建方法,可以使我们对于模型有更加立体化的认知,对于模型的细化能力有更深入的了解,这可以为之后的模型优化提供参考方向。

不足之处在于,这种方法虽然可以发现模型的一些“考试技巧” (cnn-dssm 模型对于位置不同的两句话更倾向于分类为“同义”),但并不能够完全消除“线索”。

例如,对于“主语”这个分类,是否有可能具有一些词语,只出现在“同义”的句子当中,使得模型会认为具有这个词语的两个句子都是“同义”呢?面对这种偏差,解决方法是可以尽量保证所有词语均在“同义”和“不同义”中出现,以此来规避这种“线索”。这些经验可以在下一版评测数据集中加以优化。

换一个角度,从算法流程的角度来看,影响语义相似度的还会有其他因素。例如,本次实验所采用的的 jieba 分词,分词的效果如何,对于语义相似度的判断是否有影响?

本次实验文本向量化采用的是 word2vector,那么这种向量化模式对于模型影响如何?从结果看出,“量词”的判断准确性会高于其他词性,是不是由于 word2vector 向量化的计算方式导致的?这些问题需的解答要后续更多的工作,去构建更完善的评测体系。

还有一个值得探讨的有趣问题。在本次实验里,对于“考试技巧”的判断,还是基于对于数据的直观理解,是否能够提炼出一个衡量“考试技巧”的指标?如何才能公正客观又明确地设计这样一个指标呢?这对于模型质量的判断是一个很有价值的工作,值得深入探究。

另外,本次实验重在梳理评测方法,因此实验当中选取了结构较为简单的算法结构,更加方便判断方法的可行性。后续可以加入更多的相似度模型一起评测,加入 transformer 等机制,采用不同的向量化方法,会使得评测结论更加完善。

最后分享管理学教授 Peter Drucker 最有名的一句话:If you can't measure it, you can't improve it. 只有更好、更科学的评测体系,才能让 AI 变得越来越聪明。

毕竟,考试只是手段,变得优秀才是目的。

参考资料:

[1] Probing Neural Network Comprehension of Natural Language Arguments:

https://arxiv.org/abs/1907.07355

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档