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進行查看。點這裏

參考文獻:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章