雷鋒網 AI 研習社按:今天要介紹的比賽是 Quora Question Pairs,該比賽的目的是將具有相同意圖的問題正確配對。最近本次競賽的冠軍在 Kaggle 社區分享了競賽經驗,雷鋒網 AI 研習社進行了編譯。
Quora 是一個獲取和分享知識的問答平臺,它能夠促進人們互相學習,以更好地認識這個世界。每個月有超過 1 億的人訪問 Quora,所以有許多人可能提出相似的問題。然而這些具有相似意圖的問題可能會使得尋求者需要花費更多的時間,才能找到所需的最佳答案,而答題者可能也會覺得很多問題存在重複。
為了更好地發掘那些具有相似意圖的問題,以幫助用戶更快地找到問題的高質量答案,提高用戶使用體驗,Quora 在 Kaggle 上舉辦了本次競賽: Quora Question Pairs。下文是比賽冠軍的經驗分享,正文如下。
1、特徵
我們將特徵區分為三種:嵌入特徵(Embedding features)、經典文本挖掘特徵(Classical text mining features)和結構化特徵(Structural features)。
嵌入特徵
詞嵌入(Word embeddings),例如 Word2Vec
句子嵌入(Sentence embeddings),例如 Doc2Vec、Sent2Vec
使用在 SNLI 上訓練的 ESIM 模型的密集層來編碼問題對(Question pair)
備註:與 Word2Vec 相比,句子嵌入的挑戰更為艱巨,因為它擁有更少的有效信息。
經典文本挖掘特徵
我們還使用史丹福大學的 corenlp 來標記詞彙,利用 postagger 和 ner 來預處理一些深度學習模型的文本輸入。
結構化特徵
我們從訓練數據和測試數據集串起的多個問題對的邊(edge)來構建圖,進而構建密度特徵。當切割主邊時,我們會統計附件的問題 1、問題 2、最小、最大、交叉、聯合、最短路徑長度。
我們進一步建立了密度特徵,一次又一次計算鄰問題的鄰問題......(嵌套循環)。我們還計算了前面的問題,它也挨著後面的問題(循環)。
我們嘗試了不同的圖結構:我們構建了無向圖和有向圖(邊從問題 1 指向問題 2),我們也試圖將問題 1 的密度特徵從問題 2 的特徵中分離出來,除了可交換的特徵之外還產生了不可交換特徵。
我們還建立了描述問題對連通子圖的特徵:邊數、節點數、訓練的邊的百分比。
我們還計算了問題對的連結子圖中的相同特徵,這些子圖來自於出現超過一次的問題對。我們想要做的是通過改變結構來消除那些我們認為會破壞圖特徵的捏造問題。
最後,和其它團隊一樣,我們使用一些初始模型對圖進行加權。我們嘗試了 logit ,重新調整了預測,但是原始預測效果最好。我們還使用相似特徵之一對圖進行加權。
2、模型
我們的 NNets 主要在兩個架構上進行工作:孿生神經網絡(Siamese neural networks)和注意力神經網絡(Attention neural networks)。
其中一個關鍵問題是選擇我們的一些傳統特徵並將其納入這些網絡。我們使用預訓練的 FastText 和 Glove 嵌入,並設置 trainable=False,因為我們曾經嘗試過微調模型參數,但並沒有獲得任何性能提高。
最終,我們證明了在文本序列和我們的圖/文本挖掘特徵上訓練的神經網絡是性能最好的單一模型。我們還嘗試在字符層級上訓練孿生模型,以進一步提高堆疊的多樣性,但是很難判斷它是否真的有用。
然後我們嘗試了更多的經典算法以利用圖結構特徵,比如像常用算法 XGB/LGBM。
3、再縮放(Rescaling)
為了平衡訓練和測試數據之間目標分布(Target distribution)的差異,我們在 sweezyjeezy 分析(再次感謝他的貢獻,它幾乎幫助了所有的參賽者)的基礎上做了更細緻的研究,連結是:
https://www.kaggle.com/c/quora-question-pairs/discussion/31179
我們意識到可以通過優化再縮放來減少 Log loss。雖然我們沒有找到一個更好的假設來模擬測試數據集中數據的分布,但是通過在數據的本地子樣本上使用該方案,成功增加了算法的準確性。
我們發現訓練/測試數據偏差在三個方面非常不同:
qid1_count = qid2_count = 1
min_qid_count = 1 & max_qid_count > 1
min_qid_count > 1
我們嘗試了公共縮放(Public rescale)和外圍縮放(Perimeter rescale)。對於第一層模型來說兩者的效果都非常好,但是隨著堆疊的深入,我們發現公共縮放不夠強大,而外圍縮放卻有點過頭。我們優化了縮放,使它的效果在這兩種方法之間,與公共縮放相比,最終提高了 ~0.001。
4、堆疊(Stacking)
我們採用了四層的堆疊:
Via Quora Question Pairs,由雷鋒網(公眾號:雷鋒網) AI 研習社進行編譯。
雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。