Kaggle - Quora Question Pairs1の1位解法2の調査記事です.
Author: Maximilien@DAMI
Title: Quora Question Pairs
Discussion URL: https://www.kaggle.com/c/quora-question-pairs/discussion/34355
特徴量
分散表現
古典手法
- LDAやLSIでの類似度
- bag of character N-gram(TFIDFとそのままの両方)での類似度(N=1〜8)
- Abhishek氏5とowl6氏が提案した特徴量
- レーベンシュタイン距離
- 共通トークンの割合
- 質問長,質問の長さの差
- 大文字の数,クエスチョンマーク
- 質問1と2が"Are", "Can", "How"などで始まっているかどうか
- 様々な距離
データ生成時の構造
前提知識
サンプルデータの作り方に偏りがあって,質問IDをノード,質問1と2を辺としたグラフから得られる特徴量が性能改善につながっていた.
モデル
備考
- 学習済みのfastTextやGloVeの重みを調整しても改善は見られなかった
サンプルごとの重みの調整
前提知識
- 訓練データと検証データの正例と負例の比率が異なっている
- そのため,訓練時には検証時に性能がもっとも発揮されるよう正例と負例の重みの割合を変えてあげる必要がある.
分割方法
- さらに最適化するためのグラフ構造によって下記3パターンに細分化し調整
下記の3パターンに分けた
- qid1_count = qid2_count = 1
- min_qid_count = 1 かつ max_qid_count > 1
- min_qid_count > 1
Model Stacking
- Layer 1: 300のモデル, PaulとLamのニューラルネット,XGBoost, LightGBM, Scikit Learnの関数(ET, RF, KNNなど)
- Layer 2: 150のモデル, すべての入力,Layer1の予測値,ESIM
- Layer 3: L1とL2のLassoでリッジ回帰
- Layer 4: 2つの提出物を55:45の比率でブレンドして作成
References
-
Kaggle, Quora Question Pairs, 2017. ↩
-
Maximilien@DAMI, 1st place solution, 2017. ↩
-
Bowman, The Stanford Natural Language Inference (SNLI) Corpus, 2015. ↩
-
Chen, Enhanced LSTM for Natural Language Inference, 2017. ↩
-
Abhishek, Abhishek's features ↩
-
Koch, Siamese Neural Networks for One-Shot Image Recognition, 2015. ↩
-
Koch et al., Siamese Neural Networks for One-shot Image Recognition, 2015. ↩
-
Parikh, A Decomposable Attention Model for Natural Language Inference, 2016. ↩