SlideShare a Scribd company logo
1 of 33
Download to read offline
Quoraコンペ参加記録
Takami  Sato
2017年  6月  13日  Quoraコンペ参加記録 1
アジェンダ
•  Quoraコンペとは?
•  参加記録
–  ステージ0:  doc2vecの時代  (LB:0.5)
–  ステージ1:  anokasさんカーネルの時代(LB:0.35)
–  ステージ2:  word一致系の時代(LB:0.30)
–  ステージ3:  Word  Embeddingの時代(LB:0.25)
–  ステージ4:  NLP特徴の時代(LB:0.2)
–  ステージ5:  グラフの幕開け(LB:  0.13)
–  ステージ6:  倦怠期(LB:  0.13)
–  ステージ7:  スタッキングの時代(LB:  0.122)
•  上位の手法を見てみた
•  有効だったテクニック
•  分析官がKaggleをやる意味
2017年  6月  13日  Quoraコンペ参加記録 2
Quoraコンペとは
2017年  6月  13日  Quoraコンペ参加記録 3
正式名称:Quora  Question  Pairs
2つの質問が与えられてそれが同じかどうか判定する2値分類の精度度を競うコンペ
h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/	
  
Quoraコンペとは
2017年  6月  13日  Quoraコンペ参加記録 4
正式名称:Quora  Question  Pairs
2つの質問が与えられてそれが同じかどうか判定する2値分類の精度度を競うコンペ
question1	
 question2	
 is_duplicate	
What is the step by step guide to invest
in share market in india?	
What is the step by step guide to
invest in share market?	
0	
What is a good book about design?	
What are the best books about
designing for emotion?	
0	
Is "A Head Full of Dreams" going to be
Coldplay's last album?	
What is the song "A head full of
dreams" by Coldplay about?	
0	
How do you get rid of 'super lice'?	
 How can girls get rid of lice and nits?	
 1	
評価指標はlogloss
日本上陸も近い?
大型資金調達もして、他言語も続々対応中
2017年  6月  16日  Quoraコンペ参加記録 5
h"p://economic5mes.india5mes.com/small-­‐biz/money/quora-­‐raises-­‐85-­‐million-­‐the-­‐qa-­‐pla@orm-­‐
is-­‐now-­‐a-­‐unicorn/ar5cleshow/58313275.cms	
  
	
  
最終順位
2017年  6月  15日  Quoraコンペ参加記録 6
•  あと1歩でソロゴールドだったのに。。。
•  最終的には、Kaggle上位陣が軒並み揃うヤバイコンペでした
•  こんなに調子の良いコンペは初めてだったので、Kaggleはやり続けるの大事
とりあえず言いたいこと
☓ NLPコンペ
◎ NLP  +  Graphコンペ
LSTMも試したけど、決定的ではない
2017年  6月  13日  Quoraコンペ参加記録 7
個人的にはグラフ特徴は自然
A=BでB=CならA=Cなので、グラフ特徴で”補正”するのは自然
2017年  6月  13日  Quoraコンペ参加記録 8
質問B
質問A
質問C
でもグラフ構造にリークがあった臭い
任意の枝について、人が見ればラベルはわかるので、
本来どこの枝がTrainやTestになっているかは意味が無いはず
2017年  6月  13日  Quoraコンペ参加記録 9
h"ps://www.kaggle.com/tkm2261/my-­‐magic-­‐feature	
  
	
大きいクリークに属する枝は大体正例という。。。
ただ、大半のクリークはサイズ2なのでNLP特徴も重要
Publicスコア推移
2017年  6月  13日  Quoraコンペ参加記録 10
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
各ステージで何があったのかを共有します
ステージ0:doc2vecの時代  (LB:0.5)
•  『テキストの類似度ならdoc2vecやろ!』として試す
•  Gensimを使用(https://radimrehurek.com/gensim/models/doc2vec.html)
•  手元スコアは0.36ぐらい出てたが、submitすると0.5ぐらい
•  バグかも
2017年  6月  13日  Quoraコンペ参加記録 11
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
ステージ1:anokasさんカーネルの時代(LB:0.35)
有名な15歳データサイエンティストanokasさんカーネルを参考に
2017年  6月  13日  Quoraコンペ参加記録 12
•  word一致数や、一致したwordのTFIDF値の和など超シンプル
•  IDF値がlogを取ってないのが不思議
•  log取ったやつも入れたが、両方あったほうがスコアが良かった
•  コンペ最初は自分で初submitした後はカーネルを手元再現して、
それを超えたら次submitするのがオススメ
h"ps://www.kaggle.com/anokas/data-­‐analysis-­‐xgboost-­‐starter-­‐0-­‐35460-­‐lb	
  
	
  
ステージ2:word一致系の時代(LB:0.30)
2017年  6月  13日  Quoraコンペ参加記録 13
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
•  一致したwordのTFIDF値や一致数の最大・最小・平均等
word一致系で思いつくものは全て実装
•  BoWやTFIDF行列をscipy.sparseで作って、
Hadamard積(M.multiply())で実装
ステージ2:word一致系の時代(LB:0.30)
2017年  6月  13日  Quoraコンペ参加記録 14
•  コレだけでTop10(開始3日目)
•  ランキング上位はモチベーションかなり上げてくれるので、
初心者は最初から参加したほうが良いかも
ステージ3:  Word  Embeddingの時代(LB:0.25)
2017年  6月  13日  Quoraコンペ参加記録 15
•  Word  Embeddingを片っ端からTry
LDA,  LSI,  word2vec,  fasttext,  glove,  lexvec,  sense2vec
•  ネットのpretrainedベクトルよりも、自前学習の方がスコア良かった
次元はなんだかんだ100次元に落ち着いた
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
ステージ3:  Word  Embeddingの時代(LB:0.25)
2017年  6月  13日  Quoraコンペ参加記録 16
•  wordベクトルの平均も効いたが、
各ベクトル要素の絶対値最大値の要素を取ったベクトルがさらに効いた
•  前の方の単語を重視といった傾斜も試したが上手く行かず
•  ベクトル間類似度はcosineやEuclidなどscipy.distにあるもの大体試した
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
ステージ4:  NLP特徴の時代(LB:0.2)
2017年  6月  13日  Quoraコンペ参加記録 17
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
•  実装はNLTKとSpaCyを使用。SpaCy最高
•  Entityや品詞やWordnet情報を使用
•  このカーネルを参考に、表記揺れを補正
https://www.kaggle.com/currie32/the-importance-of-cleaning-text
•  0.19〜0.2ぐらいがNLP特徴のみの限界点と思ってる
思いつくNLP特徴を片っ端から突っ込んだ時代、
やればやるほどスコアが上がってKaggleやってて一番楽しかった
ステージ4:  NLP特徴の時代(LB:0.2)
2017年  6月  13日  Quoraコンペ参加記録 18
特徴概要	
Anokasさん特徴	
表記揺れ補正後のAnokasさん特徴	
ステージ1特徴	
表記漏れを補正後のステージ2特徴	
名詞だけのステージ2特徴	
nsubjとpobj品詞だけのステージ2特徴	
Wordnet上位後でのステージ2特徴	
AspellでTypo補正後のステージ2特徴	
3gram一致数	
動詞と目的語一致数	
主語と動詞と目的語一致数	
品詞の一致数	
※ステージ2特徴はワード一致とかTFIDF一致とかその辺りの特徴	
特徴概要	
word2vec特徴	
LSI特徴	
fas"ext特徴	
sense2vec特徴	
使ったNLP特徴達、最後までこれで戦った
ステージ5:  グラフの幕開け(LB:  0.13)
2017年  6月  15日  Quoraコンペ参加記録 19
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
ここで神が舞い降りた	
•  A=B,  B=CならA=Cだとはずっと考えていて、クリーク構造に気付く
•  クリークサイズや、クリーク内のスコアの平均・最大・最小等を試した
•  基本閉路や連結成分でのスコアの平均・最大・最小等も試したが微増
•  2点の枝を取り除いたグラフの最短経路やPageRankとかも試したが微増ぐらい
人生の夢のひとつが叶った!
2017年  6月  13日  Quoraコンペ参加記録 20
•  暫定でも1位!
そして調子に乗った
2017年  6月  13日  Quoraコンペ参加記録 21
•  グラフ特徴の暗喩でもあった
ステージ6:  倦怠期(LB:  0.13)
2017年  6月  13日  Quoraコンペ参加記録 22
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
•  アイデアが枯渇して、パラメタチューン等していた
•  質問を前後逆にしたり、データ増やしたりも駄目だった
•  LSTMも試したがスコア上がらず
–  LSTM実装したい人は、このカーネルがオススメ
–  https://www.kaggle.com/lystdo/lstm-with-word2vec-embeddings
ステージ7:  スタッキングの時代(LB:  0.122)
2017年  6月  13日  Quoraコンペ参加記録 23
0	
  
0.1	
  
0.2	
  
0.3	
  
0.4	
  
0.5	
  
0.6	
  
2017/3/19	
  
2017/3/21	
  
2017/3/23	
  
2017/3/25	
  
2017/3/27	
  
2017/3/29	
  
2017/3/31	
  
2017/4/2	
  
2017/4/4	
  
2017/4/6	
  
2017/4/8	
  
2017/4/10	
  
2017/4/12	
  
2017/4/14	
  
2017/4/16	
  
2017/4/18	
  
2017/4/20	
  
2017/4/22	
  
2017/4/24	
  
2017/4/26	
  
2017/4/28	
  
2017/4/30	
  
2017/5/2	
  
2017/5/4	
  
2017/5/6	
  
2017/5/8	
  
2017/5/10	
  
2017/5/12	
  
2017/5/14	
  
2017/5/16	
  
2017/5/18	
  
2017/5/20	
  
2017/5/22	
  
2017/5/24	
  
2017/5/26	
  
2017/5/28	
  
2017/5/30	
  
2017/6/1	
  
2017/6/3	
  
2017/6/5	
  
•  スタッキングを整備したら、精度が上がった
–  1段目:NLP特徴のみ
–  2段目:NLP特徴+1段目予測値
–  3段目:グラフ特徴+2段目の予測値
•  グラフ系特徴を思いつく限り入れたが、ほぼスコアは増えず
•  あとは、アンサンブルしまくってコンペ終了
最終順位
2017年  6月  13日  Quoraコンペ参加記録 24
•  あと1歩でソロゴールドだったのに。。。
•  最終的には、Kaggle上位陣が軒並み揃うヤバイコンペでした
•  最後スコアが離された理由が知りたい
上位の手法を見てみた
2017年  6月  13日  Quoraコンペ参加記録 25
h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34355	
  
•  作った特徴的には負けてない。。。と思う
•  NN系モデルをスタッキングにかなり使っている
•  500モデルアンサンブルってマジかよ。チーム大事
•  大きく差がついたから特徴を疑ってたけど、モデルで負けた臭い
•  確かに、アンサンブルでスコアが上がりやすいのは感じていた
上位の手法を見てみた
2017年  6月  15日  Quoraコンペ参加記録 26
h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34310	
  
•  シングルモデルでLB:  0.116-0.117
•  テキストの前処理を頑張ったと書いてあるので、そこで差がついたのかも
上位の手法を見てみた
2017年  6月  15日  Quoraコンペ参加記録 27
•  シングルモデルでLB:  0.122-0.124と私のスコアと同じ
•  モデルのせいにするのは格好悪いけど、アンサンブル大事だな。。。
h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34349	
  
上位の手法を見てみた
2017年  6月  15日  Quoraコンペ参加記録 28
•  NLP特徴は大体DNNだけでやったとのこと、Feature  Engineering嫌いらしい
•  それ以外の特徴は以下
–  WordNet  similarity  (based  on  a  script  i  found  on  github)  ← 試した
–  Word  mover  distances,  using  glove840B  word  embeddings  ← 試してない
–  NER-based  features.  I  got  the  tags  with  Stanford  CoreNLP  ← 知らなかった。。。
–  POS-based  features.  Same  thing   ← 試した
h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34697	
  
有効だったテクニック
•  ログをしっかり吐いた
–  コンペ最初からpythonのloggingをしっかり書いた
–  submitコメントにログをコピペ
–  CVスコアやパラメタを後で簡単に見直せた
2017年  6月  13日  Quoraコンペ参加記録 29
有効だったテクニック
2017年  6月  13日  Quoraコンペ参加記録 30
•  Gitは必ず使おう
–  私はbitbucketを使用
–  コンペ中には意外と最良submitコードを見失う
–  submit毎にcommitが理想、誰も見ないから適当コミットで良い
•  パラメタチューンを寝てる間に限定
–  GBDTはSVMと違って、パラメタで精度は大きく変わらない
–  特徴量作成に時間を費やすべき
–  昼間は特徴作って、夜にグリッドサーチを回してから寝る
•  LightGBM
–  今回はxgboostを一切使っていない
–  LightGBMは速いのと、max_bin等でスピードの調整がしやすい
–  scikit-learn準拠がしっかりしている
–  GPU版は試してないけど調査中
有効だったテクニック
2017年  6月  13日  Quoraコンペ参加記録 31
•  特徴量は列で切って保存
–  行で切ってしまうと特徴の出し入れが難しい
•  テストデータが大きいときは、dask.arrayにして逐次結合
–  predictでメモリが足りなくなるのは馬鹿らしい
–  さらにメモリが厳しい場合はhdf5
•  スタッキングまでは、CVを全て解かなくて良い
–  コンペ終盤までは特徴量作成が最も大事
–  モデルを高度にしすぎないのも大事
分析官がKaggleをやる意味
•  業務の分析にKaggleが活きるか?
–  Kaggleだけで食って行くのは相当難しいと思う。。。
•  分析官は、コンサル90%分析10%だと思ってる
–  10%のパフォーマンス上げてもねぇ。。。
–  SQLとExcelだけで価値のある分析をする人は結構いる
•  でも技術的に負けていない事は、多大な自信を与えてくれる!
–  不確実な事が多い分析業界で自信になる
–  社外評価を上げておくのマジ大事
–  海外でも通用する
2017年  6月  15日  Quoraコンペ参加記録 32
分析官がKaggleをやる意味
•  ワンショット筋トレ法
–  コンペのデータを見て、とりあえずアプローチを考える
–  第一感のアプローチを全力で実装する
–  submitしてレベル感を確かめる
–  仕事が来た時の実装スピード向上と、第一感の精度を挙げられる
–  仕事の為の筋トレと割り切る
•  全力ディープダイブ法
–  実は全力で特定データを長期間分析する事って少ない
–  Boschコンペでチーム組んだメンバのデータを見る深さに圧倒された
–  分析官の懐の深さは、こういう所に宿ると思う
–  モデルチューンは勝てそうなら頑張ればいいとおもう
2017年  6月  15日  Quoraコンペ参加記録 33
オススメのKaggle活用法

More Related Content

Viewers also liked

NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...Takami Sato
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
Kaggle bosch presentation material for Kaggle Tokyo Meetup #2
Kaggle bosch presentation material for Kaggle Tokyo Meetup #2Kaggle bosch presentation material for Kaggle Tokyo Meetup #2
Kaggle bosch presentation material for Kaggle Tokyo Meetup #2Keisuke Hosaka
 
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKeisuke Hosaka
 
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entriesIcml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entriesTakami Sato
 
Hyperoptとその周辺について
Hyperoptとその周辺についてHyperoptとその周辺について
Hyperoptとその周辺についてKeisuke Hosaka
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Takami Sato
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習Preferred Networks
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 

Viewers also liked (10)

NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
Kaggle bosch presentation material for Kaggle Tokyo Meetup #2
Kaggle bosch presentation material for Kaggle Tokyo Meetup #2Kaggle bosch presentation material for Kaggle Tokyo Meetup #2
Kaggle bosch presentation material for Kaggle Tokyo Meetup #2
 
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKaggle boschコンペ振り返り
Kaggle boschコンペ振り返り
 
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entriesIcml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
 
Hyperoptとその周辺について
Hyperoptとその周辺についてHyperoptとその周辺について
Hyperoptとその周辺について
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (10)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Quoraコンペ参加記録

  • 1. Quoraコンペ参加記録 Takami  Sato 2017年  6月  13日  Quoraコンペ参加記録 1
  • 2. アジェンダ •  Quoraコンペとは? •  参加記録 –  ステージ0:  doc2vecの時代  (LB:0.5) –  ステージ1:  anokasさんカーネルの時代(LB:0.35) –  ステージ2:  word一致系の時代(LB:0.30) –  ステージ3:  Word  Embeddingの時代(LB:0.25) –  ステージ4:  NLP特徴の時代(LB:0.2) –  ステージ5:  グラフの幕開け(LB:  0.13) –  ステージ6:  倦怠期(LB:  0.13) –  ステージ7:  スタッキングの時代(LB:  0.122) •  上位の手法を見てみた •  有効だったテクニック •  分析官がKaggleをやる意味 2017年  6月  13日  Quoraコンペ参加記録 2
  • 3. Quoraコンペとは 2017年  6月  13日  Quoraコンペ参加記録 3 正式名称:Quora  Question  Pairs 2つの質問が与えられてそれが同じかどうか判定する2値分類の精度度を競うコンペ h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/  
  • 4. Quoraコンペとは 2017年  6月  13日  Quoraコンペ参加記録 4 正式名称:Quora  Question  Pairs 2つの質問が与えられてそれが同じかどうか判定する2値分類の精度度を競うコンペ question1 question2 is_duplicate What is the step by step guide to invest in share market in india? What is the step by step guide to invest in share market? 0 What is a good book about design? What are the best books about designing for emotion? 0 Is "A Head Full of Dreams" going to be Coldplay's last album? What is the song "A head full of dreams" by Coldplay about? 0 How do you get rid of 'super lice'? How can girls get rid of lice and nits? 1 評価指標はlogloss
  • 5. 日本上陸も近い? 大型資金調達もして、他言語も続々対応中 2017年  6月  16日  Quoraコンペ参加記録 5 h"p://economic5mes.india5mes.com/small-­‐biz/money/quora-­‐raises-­‐85-­‐million-­‐the-­‐qa-­‐pla@orm-­‐ is-­‐now-­‐a-­‐unicorn/ar5cleshow/58313275.cms    
  • 6. 最終順位 2017年  6月  15日  Quoraコンペ参加記録 6 •  あと1歩でソロゴールドだったのに。。。 •  最終的には、Kaggle上位陣が軒並み揃うヤバイコンペでした •  こんなに調子の良いコンペは初めてだったので、Kaggleはやり続けるの大事
  • 9. でもグラフ構造にリークがあった臭い 任意の枝について、人が見ればラベルはわかるので、 本来どこの枝がTrainやTestになっているかは意味が無いはず 2017年  6月  13日  Quoraコンペ参加記録 9 h"ps://www.kaggle.com/tkm2261/my-­‐magic-­‐feature   大きいクリークに属する枝は大体正例という。。。 ただ、大半のクリークはサイズ2なのでNLP特徴も重要
  • 10. Publicスコア推移 2017年  6月  13日  Quoraコンペ参加記録 10 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5   各ステージで何があったのかを共有します
  • 11. ステージ0:doc2vecの時代  (LB:0.5) •  『テキストの類似度ならdoc2vecやろ!』として試す •  Gensimを使用(https://radimrehurek.com/gensim/models/doc2vec.html) •  手元スコアは0.36ぐらい出てたが、submitすると0.5ぐらい •  バグかも 2017年  6月  13日  Quoraコンペ参加記録 11 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5  
  • 12. ステージ1:anokasさんカーネルの時代(LB:0.35) 有名な15歳データサイエンティストanokasさんカーネルを参考に 2017年  6月  13日  Quoraコンペ参加記録 12 •  word一致数や、一致したwordのTFIDF値の和など超シンプル •  IDF値がlogを取ってないのが不思議 •  log取ったやつも入れたが、両方あったほうがスコアが良かった •  コンペ最初は自分で初submitした後はカーネルを手元再現して、 それを超えたら次submitするのがオススメ h"ps://www.kaggle.com/anokas/data-­‐analysis-­‐xgboost-­‐starter-­‐0-­‐35460-­‐lb    
  • 13. ステージ2:word一致系の時代(LB:0.30) 2017年  6月  13日  Quoraコンペ参加記録 13 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5   •  一致したwordのTFIDF値や一致数の最大・最小・平均等 word一致系で思いつくものは全て実装 •  BoWやTFIDF行列をscipy.sparseで作って、 Hadamard積(M.multiply())で実装
  • 14. ステージ2:word一致系の時代(LB:0.30) 2017年  6月  13日  Quoraコンペ参加記録 14 •  コレだけでTop10(開始3日目) •  ランキング上位はモチベーションかなり上げてくれるので、 初心者は最初から参加したほうが良いかも
  • 15. ステージ3:  Word  Embeddingの時代(LB:0.25) 2017年  6月  13日  Quoraコンペ参加記録 15 •  Word  Embeddingを片っ端からTry LDA,  LSI,  word2vec,  fasttext,  glove,  lexvec,  sense2vec •  ネットのpretrainedベクトルよりも、自前学習の方がスコア良かった 次元はなんだかんだ100次元に落ち着いた 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5  
  • 16. ステージ3:  Word  Embeddingの時代(LB:0.25) 2017年  6月  13日  Quoraコンペ参加記録 16 •  wordベクトルの平均も効いたが、 各ベクトル要素の絶対値最大値の要素を取ったベクトルがさらに効いた •  前の方の単語を重視といった傾斜も試したが上手く行かず •  ベクトル間類似度はcosineやEuclidなどscipy.distにあるもの大体試した 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5  
  • 17. ステージ4:  NLP特徴の時代(LB:0.2) 2017年  6月  13日  Quoraコンペ参加記録 17 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5   •  実装はNLTKとSpaCyを使用。SpaCy最高 •  Entityや品詞やWordnet情報を使用 •  このカーネルを参考に、表記揺れを補正 https://www.kaggle.com/currie32/the-importance-of-cleaning-text •  0.19〜0.2ぐらいがNLP特徴のみの限界点と思ってる 思いつくNLP特徴を片っ端から突っ込んだ時代、 やればやるほどスコアが上がってKaggleやってて一番楽しかった
  • 18. ステージ4:  NLP特徴の時代(LB:0.2) 2017年  6月  13日  Quoraコンペ参加記録 18 特徴概要 Anokasさん特徴 表記揺れ補正後のAnokasさん特徴 ステージ1特徴 表記漏れを補正後のステージ2特徴 名詞だけのステージ2特徴 nsubjとpobj品詞だけのステージ2特徴 Wordnet上位後でのステージ2特徴 AspellでTypo補正後のステージ2特徴 3gram一致数 動詞と目的語一致数 主語と動詞と目的語一致数 品詞の一致数 ※ステージ2特徴はワード一致とかTFIDF一致とかその辺りの特徴 特徴概要 word2vec特徴 LSI特徴 fas"ext特徴 sense2vec特徴 使ったNLP特徴達、最後までこれで戦った
  • 19. ステージ5:  グラフの幕開け(LB:  0.13) 2017年  6月  15日  Quoraコンペ参加記録 19 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5   ここで神が舞い降りた •  A=B,  B=CならA=Cだとはずっと考えていて、クリーク構造に気付く •  クリークサイズや、クリーク内のスコアの平均・最大・最小等を試した •  基本閉路や連結成分でのスコアの平均・最大・最小等も試したが微増 •  2点の枝を取り除いたグラフの最短経路やPageRankとかも試したが微増ぐらい
  • 20. 人生の夢のひとつが叶った! 2017年  6月  13日  Quoraコンペ参加記録 20 •  暫定でも1位!
  • 21. そして調子に乗った 2017年  6月  13日  Quoraコンペ参加記録 21 •  グラフ特徴の暗喩でもあった
  • 22. ステージ6:  倦怠期(LB:  0.13) 2017年  6月  13日  Quoraコンペ参加記録 22 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5   •  アイデアが枯渇して、パラメタチューン等していた •  質問を前後逆にしたり、データ増やしたりも駄目だった •  LSTMも試したがスコア上がらず –  LSTM実装したい人は、このカーネルがオススメ –  https://www.kaggle.com/lystdo/lstm-with-word2vec-embeddings
  • 23. ステージ7:  スタッキングの時代(LB:  0.122) 2017年  6月  13日  Quoraコンペ参加記録 23 0   0.1   0.2   0.3   0.4   0.5   0.6   2017/3/19   2017/3/21   2017/3/23   2017/3/25   2017/3/27   2017/3/29   2017/3/31   2017/4/2   2017/4/4   2017/4/6   2017/4/8   2017/4/10   2017/4/12   2017/4/14   2017/4/16   2017/4/18   2017/4/20   2017/4/22   2017/4/24   2017/4/26   2017/4/28   2017/4/30   2017/5/2   2017/5/4   2017/5/6   2017/5/8   2017/5/10   2017/5/12   2017/5/14   2017/5/16   2017/5/18   2017/5/20   2017/5/22   2017/5/24   2017/5/26   2017/5/28   2017/5/30   2017/6/1   2017/6/3   2017/6/5   •  スタッキングを整備したら、精度が上がった –  1段目:NLP特徴のみ –  2段目:NLP特徴+1段目予測値 –  3段目:グラフ特徴+2段目の予測値 •  グラフ系特徴を思いつく限り入れたが、ほぼスコアは増えず •  あとは、アンサンブルしまくってコンペ終了
  • 24. 最終順位 2017年  6月  13日  Quoraコンペ参加記録 24 •  あと1歩でソロゴールドだったのに。。。 •  最終的には、Kaggle上位陣が軒並み揃うヤバイコンペでした •  最後スコアが離された理由が知りたい
  • 25. 上位の手法を見てみた 2017年  6月  13日  Quoraコンペ参加記録 25 h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34355   •  作った特徴的には負けてない。。。と思う •  NN系モデルをスタッキングにかなり使っている •  500モデルアンサンブルってマジかよ。チーム大事 •  大きく差がついたから特徴を疑ってたけど、モデルで負けた臭い •  確かに、アンサンブルでスコアが上がりやすいのは感じていた
  • 26. 上位の手法を見てみた 2017年  6月  15日  Quoraコンペ参加記録 26 h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34310   •  シングルモデルでLB:  0.116-0.117 •  テキストの前処理を頑張ったと書いてあるので、そこで差がついたのかも
  • 27. 上位の手法を見てみた 2017年  6月  15日  Quoraコンペ参加記録 27 •  シングルモデルでLB:  0.122-0.124と私のスコアと同じ •  モデルのせいにするのは格好悪いけど、アンサンブル大事だな。。。 h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34349  
  • 28. 上位の手法を見てみた 2017年  6月  15日  Quoraコンペ参加記録 28 •  NLP特徴は大体DNNだけでやったとのこと、Feature  Engineering嫌いらしい •  それ以外の特徴は以下 –  WordNet  similarity  (based  on  a  script  i  found  on  github)  ← 試した –  Word  mover  distances,  using  glove840B  word  embeddings  ← 試してない –  NER-based  features.  I  got  the  tags  with  Stanford  CoreNLP  ← 知らなかった。。。 –  POS-based  features.  Same  thing   ← 試した h"ps://www.kaggle.com/c/quora-­‐ques5on-­‐pairs/discussion/34697  
  • 29. 有効だったテクニック •  ログをしっかり吐いた –  コンペ最初からpythonのloggingをしっかり書いた –  submitコメントにログをコピペ –  CVスコアやパラメタを後で簡単に見直せた 2017年  6月  13日  Quoraコンペ参加記録 29
  • 30. 有効だったテクニック 2017年  6月  13日  Quoraコンペ参加記録 30 •  Gitは必ず使おう –  私はbitbucketを使用 –  コンペ中には意外と最良submitコードを見失う –  submit毎にcommitが理想、誰も見ないから適当コミットで良い •  パラメタチューンを寝てる間に限定 –  GBDTはSVMと違って、パラメタで精度は大きく変わらない –  特徴量作成に時間を費やすべき –  昼間は特徴作って、夜にグリッドサーチを回してから寝る •  LightGBM –  今回はxgboostを一切使っていない –  LightGBMは速いのと、max_bin等でスピードの調整がしやすい –  scikit-learn準拠がしっかりしている –  GPU版は試してないけど調査中
  • 31. 有効だったテクニック 2017年  6月  13日  Quoraコンペ参加記録 31 •  特徴量は列で切って保存 –  行で切ってしまうと特徴の出し入れが難しい •  テストデータが大きいときは、dask.arrayにして逐次結合 –  predictでメモリが足りなくなるのは馬鹿らしい –  さらにメモリが厳しい場合はhdf5 •  スタッキングまでは、CVを全て解かなくて良い –  コンペ終盤までは特徴量作成が最も大事 –  モデルを高度にしすぎないのも大事
  • 32. 分析官がKaggleをやる意味 •  業務の分析にKaggleが活きるか? –  Kaggleだけで食って行くのは相当難しいと思う。。。 •  分析官は、コンサル90%分析10%だと思ってる –  10%のパフォーマンス上げてもねぇ。。。 –  SQLとExcelだけで価値のある分析をする人は結構いる •  でも技術的に負けていない事は、多大な自信を与えてくれる! –  不確実な事が多い分析業界で自信になる –  社外評価を上げておくのマジ大事 –  海外でも通用する 2017年  6月  15日  Quoraコンペ参加記録 32
  • 33. 分析官がKaggleをやる意味 •  ワンショット筋トレ法 –  コンペのデータを見て、とりあえずアプローチを考える –  第一感のアプローチを全力で実装する –  submitしてレベル感を確かめる –  仕事が来た時の実装スピード向上と、第一感の精度を挙げられる –  仕事の為の筋トレと割り切る •  全力ディープダイブ法 –  実は全力で特定データを長期間分析する事って少ない –  Boschコンペでチーム組んだメンバのデータを見る深さに圧倒された –  分析官の懐の深さは、こういう所に宿ると思う –  モデルチューンは勝てそうなら頑張ればいいとおもう 2017年  6月  15日  Quoraコンペ参加記録 33 オススメのKaggle活用法