数据有偏差,照样能学对!20年前就有这么强的算法了?
文 | 白鹡鸰給小鐵比了個心
編 | 小軼
背景
“每個人都依賴自己的知識和認知,同時又為之束縛,還將此稱為現實;但知識和認識是非常曖昧的東西,現實也許不過是鏡花水月——人們都是活在偏見之中的,你不這樣認為嗎?這雙眼睛,又能看多遠呢?”
機器學習,作為模仿人類思維方法進行建模的過程,雖然從數據中抽取模型的水平還不如人類,但是在獲取偏見(bias)的方面,已經青出于藍而勝于藍了。關于機器學習模型偏見產生的機理,谷歌花了59頁,從自然語言、圖像處理和生物醫療領域進行了詳細的分析。結論是,不論數據集多大,必然存在采樣偏差,因此模型或多或少總會學到假特征,擴大數據集不是修正模型偏見的終極解決方案。遺憾的是,谷歌并沒在文中提出有創見性的改進意見,只是建議大家多做測試。
不過,谷歌沒搞大新聞也沒關系。Hugging Face表示:即使不去顯式地定位模型的偏差,即使只有有偏的數據集,他們照樣有辦法煉出魯棒性高的模型,能從容應對與訓練測試集分布不同的真實場景。這是怎么做到的呢?下面就讓我們一起來看看吧~
論文題目:
Learning from Others' Mistakes: Avoiding Dataset Biases Without Modeling Them
論文鏈接:
https://arxiv.org/abs/2012.01300
Arxiv訪問慢的小伙伴也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復關鍵詞 【0125】 下載論文PDF~
核心思想
“盲人摸象”是現在很多模型的生動寫照:大象(真實場景中數據量)體積龐大,盲人僅憑雙手難以觸及全貌(采樣無法覆蓋所有場景)。即使一群盲人摸同一頭象,每個人也只知道部分內容,容易以偏概全(假特征)。如果讓每個盲人獨立判斷自己摸到的是什么,就會把非決定性特征視作決定性特征,從而出現不同的預測錯誤。
但是,如果允許盲人們交流討論,他們就可以分析各自判斷錯誤的原因。以此為依據去調整每個特征導向正確結果的概率,甚至歸納出新的隱藏特征。這篇論文的工作,就是在探究 “盲人”(弱學習器,weak learners)之間如何進行有效地“討論”(Products of Experts),并分析每個弱學習器至少需要掌握多少信息,才能對正確的預測結果有所幫助。
方法
從一個“古老”的方法說起
看到Product of Experts (PoE)的第一眼,白鹡鸰是懵逼的。這個名字很自然地令人聯想到專家系統的某種變體。然而,這都2021年了,莫非是要文藝復興的節奏?仔細一查,PoE的作用確實是總結多個模型包含的知識,基于特定算法和總結的先驗知識進行預測,妥妥的一個專家系統,在2002年由Hinton大神提出 [1]。顧名思義,PoE在基于個專家模型構建最終的預測模型時,公式中充斥著累乘:
其中是可能出現的事件,是模型中所有的參數,是模型預測事件出現的概率,是事件的狀態空間。當狀態空間是連續的時候,需要將分母上的累加改為積分。這個公式符號有些復雜,但實質就是在先驗信息是聯合分布的情況下,求一個事件發生的概率。
這個方法的優點在于:即使每個專家模型都只關心特定的事件,而對其他情況預測表現不佳,綜合下來,PoE對事件的預測都能達到一個較好的結果。
具體應用過程
在Hugging Face提出的方法中,需要一個弱學習器 和一個主學習器。記和輸出的logits vector(即未經歸一化的概率分布)分別為和。數據集和標簽記作,最終預測結果有類。
首先,用標準化交叉熵作為損失函數,預訓練。然后挑選出預測錯誤的樣本集。
接著,將作為輸入,得到兩個學習器的輸出,構造合并后的logits vector:
則顯然有(因為公式的分母都是常數)
換言之,
(其中是向量中對應元素相乘的運算符號)
再把上式右邊再歸一化處理一下,就有
(這里是指將向量的每一維累加)
如果將 看作PoE中子模型的預測輸出,可以發現看似簡單的構造中其實蘊涵著PoE的思想。感興趣的朋友們可以參考Hugging Face的原文和[2]自行推導。
當用邏輯回歸進行二元分類任務時,和可以視作標量(即預測為正樣本的概率), 上式中的softmax也退化為sigmoid。則針對單個正樣本的損失函數為
此時凍結的參數,只更新的參數。損失函數是上述PoE loss與普通交叉熵損失之和,只用來更新。訓練完成后,即為最終的預測模型。這樣就達到了令向“學習” 的效果。但與知識蒸餾不同之處在于,這里的“學習”并非以“模仿”為目的,而是從的錯誤中進行學習。
實驗設計與結果
這種去偏差方法無疑設計得很巧妙:一方面,它省去了顯性定位模型偏差的功夫,節約大量人力資源;另一方面,損失函數的計算較為簡便,節約大量計算資源。不過,再怎么吹,沒看到結果之前,都是空的。
首先是在自然語言推斷(Natural Language Inference)任務上的驗證。研究者們在MNLI數據集上,采用基于TinyBERT的弱學習器和基于BERT的主學習器進行訓練。模型的任務是基于前提(premise statement),將假設(hypothesis statement)分類為真(entailment),假(contradiction)或不確定(neurtral)。訓練完成后,不僅在MNLI數據集上檢測分類的準確性,還在與MNLI數據分布不同的HANS上檢驗了模型,結果如圖1所示。在heuristic-non-entailment的樣本上,PoE將主學習器的正確率提高了將近24%;但是在與in-distribution accuracy上,預測效果不升反降,這可能是因為文章提出的模型過于關注弱學習器犯的錯誤,而沒有關注in-distribution prediction的優化導致的。
然后是在QA(Question Answering)任務上的驗證。學習器和上文設置一樣,用SQuAD數據集訓練,在Adversarial SQuAD數據集上檢驗。結果如圖2所示。這一任務上,PoE的采用對預測器魯棒性的優化十分顯著。
上述測試以外,文章還探討了弱學習器的參數量和主學習器的魯棒性的關聯。由圖三可以看出,弱學習器的正確率不會隨著參數量的增加獲得很大提升。而主學習器在in-distribution數據上性能顯著下降,在out-distribution數據上則性能提升。
總結和感想
除了對模型本身的理解,寫這篇文章更深層的動機是想說明:處理數據不均衡/模型有偏正在成為機器學習中共同的研究熱點。其實在任何基于統計原理的建模方法上,這都是一個無法回避的挑戰,只不過說之前因為數據量不夠、基本模型不夠完善所以熱度沒有起來。而現在時機已經逐漸成熟,2021年,恐怕這個難點上大新聞會此起彼伏,真是令人期待。
萌屋作者:白鹡鸰
白鹡鸰(jí líng)是一種候鳥,天性決定了會橫跨很多領域。已在上海交大棲息四年,進入了名為博士的換毛期。目前以圖像語義為食,但私下也對自然語言很感興趣,喜歡在賣萌屋輕松不失嚴謹的氛圍里浪~~形~~飛~~翔~~
知乎ID也是白鹡鸰,歡迎造訪。
作品推薦:
NLP太卷,我去研究蛋白質了~
谷歌40人發表59頁長文:為何真實場景中ML模型表現不好?
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
?
[1] Hinton, Geoffrey E. "Training products of experts by minimizing contrastive divergence." Neural computation 14.8 (2002): 1771-1800.
[2] Mahabadi, Rabeeh Karimi, Yonatan Belinkov, and James Henderson. “End-to-End Bias Mitigation by Modelling Biases in Corpora.” ACL,(2020).?https://arxiv.org/abs/1909.06321
[3] Utama, Prasetya Ajie, Nafise Sadat Moosavi, and Iryna Gurevych. "Towards debiasing NLU models from unknown biases." arXiv preprint arXiv:2009.12303 (2020). https://arxiv.org/abs/2009.12303
[4] He, He, Sheng Zha, and Haohan Wang. "Unlearn dataset bias in natural language inference by fitting the residual." arXiv preprint arXiv:1908.10763 (2019). https://arxiv.org/abs/1908.10763
總結
以上是生活随笔為你收集整理的数据有偏差,照样能学对!20年前就有这么强的算法了?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何评价一个推荐系统的好坏?
- 下一篇: 新分类!全总结!最新Awesome-SL