爆火論文“14行代碼打敗BERT”出現(xiàn)反轉!改掉bug性能秒變最差
50年前的kNN算法,只用14行代碼在文本分類上超越風頭正盛的Transformer,包括BERT——
這個來自ACL Finding的成果,一發(fā)布就火爆學術圈,讓人重新思考還有多少舊方法可以用于今天的機器學習任務。
圖片
有人盛贊它的創(chuàng)意性超過95%的同會論文,但是卻沒有獲獎實在令人想不通。
圖片
短短14行代碼,完全打開了大家的思路。
然而,才不到幾天的時間,就有人發(fā)現(xiàn):
這一切好像都是個誤會。
BERT沒有被打敗,代碼有bug,結果有問題!
圖片
這是,反轉了???
重測后性能從SOTA變最差
先再來簡單回顧一下這篇論文的主要背景和思想:
圖片
它講的是如今由于精度高被經(jīng)常用于文本分類的深度神經(jīng)網(wǎng)絡模型(DNN),因為其計算密集型的特性,需要數(shù)百萬個參數(shù)和大量標記數(shù)據(jù)才能保證效果,這就導致它用起來或者做優(yōu)化,以及轉移到分布外數(shù)據(jù)等情況時都很費錢。
在此,來自滑鐵盧大學和AFAIK機構的研究人員,就“突發(fā)奇想”提出了一種不需要參數(shù)的替代方案:
將簡單的壓縮算法比如gzip和k近鄰分類算法進行結合來做這件事(用到了歸一化壓縮距離NCD)。
圖片
結果,這種簡單的方案在沒有任何訓練參數(shù)的情況下,效果居然很不錯——
在7個分布內(nèi)數(shù)據(jù)集上有6個結果與各類DNN相媲美,在分布外數(shù)據(jù)集上的結果則接連5把勝出,把BERT都給打敗了。
而且它在少樣本情況下也好使,相反此時的DNN卻因為標記數(shù)據(jù)太少根本無法進行有效訓練。
來自于美國的機器學習研究員Ken Schutte(博士畢業(yè)于MIT電氣工程與計算機科學),在看到這篇論文后非常感興趣,并冒出了一些新點子。
于是他并決定復現(xiàn)一下。
結果,就出現(xiàn)了蹊蹺:
我發(fā)現(xiàn)(當然我也不敢保證),方法中的kNN代碼中似乎存在一個錯誤(也可能是無意的),導致最終測試結果的準確度指標其實都全部高于了預期。
“太長不看”概括一下就是:結果用的是top-2精度,而不是本應該的kNN(k=2) 精度。
也就是說,它的效果可能并沒有那么強。
具體而言,Ken指出,在論文的表5中,結果顯示該方法在OOD數(shù)據(jù)集上打敗了所有其他基于神經(jīng)網(wǎng)絡的方法:
圖片
而他對前四個數(shù)據(jù)集都重新進行了一遍測試(使用kNN(k=2) 精度),結果有很大出入,根本無法打敗那些基準模型,甚至從性能最佳變?yōu)樾阅茏畈?/strong>。(最后一個數(shù)據(jù)集因為太大Ken還沒嘗試)
下面是詳細解釋。
在論文中,作者在使用kNN分類器時,都是取值k=2。
(kNN是一種有監(jiān)督算法,通過“有標簽”的樣本最終確定未知樣本的類別,該算法主要參數(shù)就是k值的選擇,k值越大,分類效果越穩(wěn)定,但計算量也越大)
Ken認為,這個選擇有點沒必要,不會給分類器增加太多信息,取1就行。
而當取2時,在訓練集中搜索出的兩個近鄰點類別標簽不一致的情況下,比如一個是正類,一個是負類,那么就產(chǎn)生了平局情況,我們需要進一步確定唯一正確的那個點。
在這個確定的過程中,論文中的源碼(位于experiments.py文件中的calc_acc方法中)出現(xiàn)了問題:
圖片
簡單來說就是,這段代碼的做法其實是只要2個近鄰點標簽中有一個與中心點真實類別一致(簡而言之,有一個對就算對),就判斷為正確,這也就相當于Top-2精度。
但標準的KNN算法,會使用其他打破平局的策略,比如距離近的類別優(yōu)先,或隨機選取來確定,也就是采用標準的kNN(k=2) 精度來評估結果,“更嚴格”。
這就導致在k=2時原方法計算的準確率其實是高于標準算法的,也就是最終效果并沒有現(xiàn)在我們看上去的那么牛。
這不,Ken重新寫了兩種打破平局的策略(一個是隨機選擇,一個是遞減k),重新計算了各數(shù)據(jù)集下模型的準確率,結果均出現(xiàn)了不同程度的下滑:
圖片
當然,我們可以發(fā)現(xiàn),如果還是按照top-2算,Ken復現(xiàn)的結果基本和原論文沒有差別,側面證明Ken的發(fā)現(xiàn)是有效的。
網(wǎng)友:雖然但是,不影響方法本身的創(chuàng)新性
這個消息出來之后,網(wǎng)友是怎么看的呢?
有意思的是,大家都覺得Ken的分析很有道理,但這不影響該方法本身的創(chuàng)新性。
盡管沒有打敗BERT,但其思想還是令人印象深刻。
作者這個策略也沒有很不合理啦,最重要的是后面還會有更多探索這個研究方向的論文出來。
圖片
GoogleAI的研究員Lucas Beye也表達了類似的意思。
圖片
值得一提的是,在Ken之后,斯坦福博士Yann Dubois又發(fā)現(xiàn)該論文的問題還不止如此——
其訓練測試集也重疊了。
比如DengueFilipino的訓練集和測試集完全一樣,而KirundiNews的重復率也高達90%。
圖片
當然,一如既往,由于該方法實在是太特別了,盡管網(wǎng)友評論中也充斥著“wtf”這樣的聲音,但大部分人還是堅決捍衛(wèi)它的重要貢獻,認為問題不大,可能只是審查不到位等等。
這不,“你可以扼殺一篇論文,但你無法扼殺一個想法”的評論都出來了。
圖片
大家怎么看?這兩個bug影響你對這篇論文的看法嗎?
Ken原博:https://kenschutte.com/gzip-knn-paper/
原論文:https://aclanthology.org/2023.findings-acl.426/