baseline needs more love 简单网络vs复杂网络(1)——baseline

(一)背景

说到baseline和art of start,做建模的同学应该都不会陌生吧,最近关于机器学习和深度学习的争执也是越来越多,其中就不乏会有人认为,其实深度学习能够做到的事情,机器学习也可以做到,还可以少花费一些时间来训练模型,计算资源的要求也会低一些,可是事实上到底是怎样的呢?baseline needs more love这篇论文(ACL2018)中就做了相关的实验来进行证明。

说到NLP问题,文档分类,文本序列匹配和句子分类是三大类常见的任务,但是不论是哪种任务,词向量就是不得不提的,词向量作用呢就是使用词向量将一个变长文本表示成一个固定向量,而现在在进行处理词向量的时候,一般的做法就是使用DNN大法,词向量为输入,使用一个复杂的神经网络(CNN,RNN 等)来进行文本表示学习(为了方便描述,以下称为复杂模型);但是除了使用复杂网络以外,还有一种简单的方法,那就是在词向量的基础上,直接简单的使用按元素求均值或者相加的简单方法来表示(为了方便描述,以下称为简单模型)。到底是哪个方法的效果比较好呢?使用简单的方法是否能够达到和复杂方法一样的效果呢?这就是这篇论文主要的工作内容。

(二)实验设计

1)先来看一下作者进行实验的时候使用的简单模型吧:


简单的讲,以上四个简单模型可以总结为如下:

SWEM-aver:平均池化,对词向量的按元素求均值。这种方法相当于考虑了每个词的信息。

SWEM-max:最大池化,对词向量每一维取最大值。这种方法相当于考虑最显著特征信息,其他无关或者不重要的信息被忽略。

SWEM-concat:考虑到上面两种池化方法信息是互补的,这种变体是对上面两种池化方法得到的结果进行拼接。SWEM-hier:上面的方法并没有考虑词序和空间信息,提出的层次池化先使用大小为 n 局部窗口进行平均池化,然后再使用全局最大池化。该方法其实类似我们常用的 n-grams 特征。

2)简单的总结一下实验中使用到的模型如下:


注意啦:简单模型的参数量是0


(三)实验结果

作者为了验证自己的猜想,对于文档分类,文本序列匹配和句子分类三大任务,分别做了以下几组实验:

加粗部分是最佳性能,分别对不同的数据集进行实验。

1)文档分类


可以看到,实验concat可以在两个数据集上达到最佳性能,对于其他的数据集,和最佳性能的差异也不大。

2)文本序列匹配 (QA)

                                  

可以看到除了 WikiQA 数据集,其他数据集上,SWEM 模型获得了比 CNN 和 LSTM 更好的结果。

3)句子分类

                           

看,是不是简单模型的效果也不错呢?

但是,论文中也是提到,对于情感分析类的问题,简单模型的表现不佳,比如really not good 和not really good就无法区分

(四)实验结果复现

以下是使用作者提供的数据集做的相关的实验复现:

                                  

可以看到,实验的结果和还是 有一定的过拟合和欠拟合的情况的,可能和作者提供的数据集有关。

(五)总结

那么到底简单模型到底能不能替代复杂模型呢?以下是我的一点思考,如有不当之处,欢迎批评指正。

1)其实正如最近腾讯知文团队在CCF-GAIR 2018上指出的,任何一个模型都不是万能的,我们要根据实际的情景来进行选择合适的模型。对于baseline这篇论文来讲,其实我们首先需要知道自己的应用场景,像情感分析可能就不适合选择简单模型。长文本和短文本对于模型的喜好也不同。

2)数据的问题,我们再进行训练模型的时候,保证数据标签的准确性以及“大数据”有时候会比模型的调参重要。

3)考虑手里有的资源有哪些,包括数据资源和计算资源等,设置一个baseline,以此确定模型的选择。

(六)类似文章推荐

做过类似的大佬还有很多,比如谷歌曾经将GANs做了一个对比,结果发现只要训练足够长的时间,模型基本都是差不多的效果。又比如,有人提出用PR解释DNN。具体可以看参考文献2、3、4。或者我之前做过一个相关内容的ppt整理,可以下载PPT进行查看。点这里

参考文献:


发布了17 篇原创文章 · 获赞 18 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览