Google QUEST Q&A Labeling大賽上分祕訣分享

日前,Google舉辦的NLP比賽:Google Quest Q&A Labeling已在Kaggle發榜。


此次比賽的賽題是根據問答對,預測30個不同對label值, 這些label值是人工給問答對打上對標籤,反映問題是否寫得好,答案是否相關,是否有幫助,是否令人滿意,是否包含明確的說明,等等。本次比賽提供的數據集包含數千個問答對,大部分來自StackExchange。


Google QUEST Q&A Labeling大賽上分秘訣分享

優勝隊伍“Bibimorph”最近接受了採訪,當被問到“本次比賽中你的團隊最重要的發現是什麼”時,他們的回答是“遷移學習”。


此外,他們還透露了贏得此次比賽的成功三要素:

1. Language model pre-training

2. Pseudo-labeling

3. Post-processing predictions


以下是詳細解讀:


language model pre-training


我們使用了一個額外的轉儲約7百萬個StackExchange問題,通過一個掩模語言模型任務(MLM,詳見BERT論文)和一個額外的句子順序預測(SOP)任務(參考ALBERT論文)來微調BERT語言模型。


Google QUEST Q&A Labeling大賽上分秘訣分享


除此之外,我們還構建了額外的輔助目標——在微調LM的同時,我們還預測了5個target(question_score、question_view_count、question_favorite_count、answer_score、answers_count),這些target是我們基於StackExchange數據設計的。

我們使用了一個定製的擴展格式詞彙表,原因很簡單:StackExchange問題通常不僅包含純粹的口語,還包含數學和代碼。用LaTeX 擴展詞彙表、一些數學公式和部分代碼片段有助於捕捉這一事實。


總的來說,LM預訓練的這一額外任務對於改進我們的模型起到了至關重要的作用,因為它有兩個功能:


  • 遷移學習。我們的模型在實際使用競賽數據進行訓練之前,已經“看到”了10倍以上的數據。


  • 域適應。由於定製的詞彙表和LM微調的輔助target,我們使我們的預訓練模型更好地適應手頭的數據。


pseudo-labeling


在Kaggle上,pseudo-labeling曾經是一個很酷很熱門的話題,但是現在它已經是一個眾所周知的常用技術了。


Google QUEST Q&A Labeling大賽上分秘訣分享


這個想法總結在上圖中。簡單地說,可以使用模型預測(對於某些未標記的數據集)作為“偽標籤”來擴展現有的已標記的訓練數據集。


我們使用來自StackExchange問題轉儲的20k和100k樣本的偽標籤來改進四個訓練模型中的三個。


post-processing predictions


為比賽選擇的度量標準是Spearman相關性。對於30個目標標籤中的每一個,都會計算預測值與基本事實之間的Spearman相關性。然後,平均30個Spearman相關係數產生最終度量。


Spearman相關對某些預測是否相等非常敏感:


Google QUEST Q&A Labeling大賽上分秘訣分享


上面的玩具示例顯示,可以將預測b的向量“閾值化”以生成b2,從而將其Spearman相關性與(基本事實)從0.89增加到1。


實際上,這是整個競賽的缺點之一-目標指標對閾值預測之類的hack過於敏感。許多團隊將各種閾值啟發式方法應用於後處理,通常分別針對30個目標列中的每一個。


我們清楚地認識到這是過度擬合。但是,我們仍然對模型預測應用了一些後處理。

代替閾值預測,我們按照訓練集中的分佈將其離散化為多個bucket。這個想法是使特定目標列的預測分佈與訓練數據集中相應列的對應分佈相匹配。


最後的解決方案是什麼樣的?


我們的基準模型幾乎是普通BERT,在平均池化隱藏狀態之上具有線性層。對於輸入,我們僅傳遞了以特殊標記分隔的問題標題,問題正文和答案正文。


Google QUEST Q&A Labeling大賽上分秘訣分享


除上述三個“成功要素”外,其他一些hack包括針對所有BERT層(類似於ELMO)的隱藏狀態的softmax歸一化權重和多樣本丟失。


Google QUEST Q&A Labeling大賽上分秘訣分享


最終的解決方案是將四個模型(兩個BERT基本模型,一個RoBERTa基本模型和一個BART大模型)的現成預測與上述三個“成功要素”混合在一起:預訓練語言模型(“預訓練”上標), 偽標籤(“ pl”上標)和後處理預測。


這次比賽的經驗教訓有哪些?


  • 不要太早參加比賽, 首先解決技術問題。


  • 在小型訓練數據集的情況下,應集中精力以適當的方式利用其他大型數據集。


  • NLP中的遷移學習確實非常重要。它不僅適用於“計算機視覺”任務。


  • 如果訓練數據集很小,請特別注意驗證,不要使用只會使您的解決方案不適合公開排行榜的黑客手段。


  • 尋找可以在技能,方法,模型等方面為最終解決方案引入多樣性的隊友。


參考鏈接:

https://medium.com/kaggle-blog/the-3-ingredients-to-our-success-winners-dish-on-their-solution-to-googles-quest-q-a-labeling-c1a63014b88


分享到:


相關文章: