曾经狂扫11项记录的谷歌NLP模型BERT,近日遭到了网友的质疑:该模型在一些基准测试中的成功仅仅是因为利用了数据集中的虚假统计线索,如若不然,还没有随机的结果好。这项研究已经在Reddit得到了广泛的讨论。——引用自《新智元》
真的不想那么标题党,前天刚在reddit上看到这个帖子,就知道马上要被公众号标题党霸占了头条,果然大家很喜欢看这种神坛跌落的故事,大概看了一下论文,其实确实说出了NLP用的这些DL模型的一些现状。去年用这个模型跑各种数据集的时候,也觉得很多东西不能理解,但是不得不承认,Bert的表现确实很好。
Reddit链接
BERT's success in some benchmarks tests may be simply due to the exploitation of spurious statistical cues in the dataset. Without them it is no better then random.
其实这类模型就是don't properly "understand" and only exploit (bad) statistical cues。——reddit网友
论文地址
https://arxiv.org/abs/1907.07355
首先说下作者选取的数据集。
ARCT数据集 The Argument Reasoning Comprehension Task 数据量:1210
下图是ARCT的一个例子,人要想正确分类这个例子,必须知道用搜索引擎和google垄断有什么关系。对于模型能够理解这背后的含义吗??想想就觉得很扯,模型怎么可能理解Google垄断这么复杂的东西。于是我们用Bert跑一下这个数据集,看看他到底能不能理解。
首先是Bert在原数据集上train/vali/eval的结果,准确率还不错,似乎是可以理解一些的。但实际上作者认为他是过拟合。
因为如果Bert真的能理解这些语言背后的逻辑含义,那么按下面的方法把该数据集镜像,应该也能判断出来,效果应该也一样好才对。
研究表示,bert会捕捉'not', 'will not', 'can'等词。为了消除这个影响,为每条源数据添加一个镜像数据,claim反向,label反向。这样就可以消除'not'的等“虚假的统计性线索”影响。
于是作者建立了这样的一个对抗数据集:
对抗数据集举例
然而,在这个对抗数据集上,所有模型失效了,即表现的很随机,Bert只有53%的准确率,类似于二选一随机蒙。
Paper具体做法:二分类
原始:claim,reason,[sep],warrant [label]
反向:claim,reason,[sep],warrant [反向label]
对抗数据集Train/Valid/Test表现结果
作者还做了个实验证明对抗数据集确实消除了statistic cue的影响:用原数据集训练好的模型在对抗数据集上跑eval,结果比随机蒙还要差,因为训练集过拟合。用对抗数据集训练的模型在对抗数据集上跑eval,准确率在50~53%,类似于随机蒙。说明对抗数据集确实消除了'statistic cue'的影响。所以作者认为,之前过拟合的模型根本没有理解语言含义,不应该跑出来70%那么好的结果。
文章结论说Bert在对抗理解(argument comprehension)什么都没学到,但是并没有完全否认Bert。承认了Bert确实是一个Stronger Learner,在'not', 'will not', 'can'这些提示词少的时候,分类效果比Bov Bilstm好。这肯定当然啦~机器什么时候真正能理解语言呢??还是等物理学生物学进步吧~