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