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