SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Quora Insincere Questions Classification
10th
place solution
&
昔話
Kaggle Tokyo Meetup #6 2019.7.13
@tks0123456789
自己紹介
名前 : 守時 良(もりとき つかさ)もりとき つかさ)
略歴 : 数学科出身 卒業後ずっとフリーター  現在は作業系パートずっとフリーター 現在は作業系パートは作業系パート作業系パートパート
   Kaggle は作業系パート 2011 年 2 月からから
    
今日話す内容内容
●
Quora Insincere Questions Classification 10th
place solution
●
昔
●
今と昔の違い違いい
●
Amazon.com - Employee Access Challenge (2013 年 )
●
参加した理由した理由理由
●
Quora ?
●
コンペ概要概要
●
モデル構造構造
●
ポイント
●
反省点
●
まとめ
Quora Insincere Questions Classification
Quora Insincere Questions Classification
参加した理由した理由理由
●
以前 SQuAD(Q&A データセット)に取り組んでいた取り組んでいたり組んでいたんでいた理由
●
そこで役に立った手法に取り組んでいた立った手法った理由手法 [PME, EMA]PME, EMA] を試したい試したいした理由い
Quora Insincere Questions Classification
Quora?
●
実名制 Q&A サイト
●
高品質な回答がありそうな回答がありそう回答がありそうがありそう
●
ヤフー知恵袋に比べ規制が厳しいに取り組んでいた比べ規制が厳しいべ規制が厳しい規制が厳しいしい
概要
●
Task : 質な回答がありそう問がが Insincere であるか判定するす内容る
●
Kernel-only, 外部データ利用不可データ利用不可
●
Eval : F1
●
Train : 1.31m, Test : 37.6k
●
2018-11 〜 2019-02
●
BERT 発表後ずっとフリーター  現在は作業系パート初めてのめての違い NLP コンペ概要
Quora Insincere Questions Classification
Quora Insincere Questions Classification
Quora Insincere Questions Classification
Quora Insincere Questions Classification
Insincere?
●
何か発言したいだけで回答を求めていないか発言したいだけで回答を求めていないした理由いだけで回答がありそうを試したい求めていないめていな回答がありそうい
●
有害
●
中立った手法性にかけるに取り組んでいたかける
●
軽蔑、扇動的
●
虚偽の事実に基づいているの違い事実に取り組んでいた基づいているづいている
●
卑猥なものな回答がありそうもの違い
Quora Insincere Questions Classification
Kernel-only コンペ概要 とは作業系パート?
●
予測はは作業系パート Kernel を試したい通して提出するして提出す内容る
●
締切前に取り組んでいた Kernel 内で参照できるテストデータはできるテストデータは作業系パート Public の違いみ
●
Kaggle 側が締切後にテストデータをが締切後ずっとフリーター  現在は作業系パートに取り組んでいたテストデータを試したい Private or Public + Private に取り組んでいた
変えてえて Kernel を試したい実行しスコアを計算するしスコアを計算するを試したい計算するす内容る
●
計算するが終了するまでに数時間〜数日かかるす内容るまでに取り組んでいた数時間〜数日かかる ( 今回は作業系パート 8 日)
●
コンペ概要に取り組んでいたより制限は異なる(実行時間、は作業系パート異なる(実行時間、な回答がありそうる(もりとき つかさ)実行しスコアを計算する時間、外部データ利用不可データな回答がありそうど)
Quora Insincere Questions Classification
Kernel-only 制限は異なる(実行時間、
●
時間: GPU 有 2h, 無 6h
●
外部データ利用不可データ利用不可だが運営側が締切後にテストデータをが準備したした理由 4 つの違い学習済みみ
Embedding は作業系パート使える。全てえる。全て全てて 300 次元
●
Use of Final Score を試したい明示的に取り組んでいた選択する必要があるす内容る必要がある
●
チーム数が数が 4037(Public) から 1401(Private) に取り組んでいた減った原因のった理由原因のの違い
ほとんどは作業系パート選択する必要があるしな回答がありそうかった理由ことに取り組んでいたよるもの違い
●
選択する必要があるした理由チーム数がの違い95%以上は以上はは作業系パート Private に取り組んでいた残ったった理由
Quora Insincere Questions Classification
モデル構造構造
EmbeddingEmbedding
BiGRU
GlobalMaxpooling
Dense
Dense
Dense
concat
output
6 x
} 固定する
Quora Insincere Questions Classification
ポイント
●
Local CV
●
前処理
●
モデル構造の違い安定する化
●
Embedding の違いアを計算するンサンブル構造
●
実行しスコアを計算する時間
●
Public 39位 ==> Private 10 位 の違い理由
Quora Insincere Questions Classification
Local CV
●
F1 は作業系パート不安定するな回答がありそうの違いで AUC 優先
●
アを計算するベレージモデル構造の違いスコアを計算するでモデル構造の違い優劣を判断するを試したい判断するす内容る
●
評価指標がが F 1なので予測は な回答がありそうの違いで予測はは作業系パート 0 or 1  → 閾値が必要が必要
●
モデル構造構成が定まるまではが定するまるまでは作業系パート Tr 、 Dev 、 Val の違い 3 分割 [PME, EMA]5-folds]
●
Tr で学習、 Dev で閾値が必要選択する必要がある、 Val で評価
●
この違い段階で閾値をある程度絞っておくで閾値が必要を試したいある程度絞っておくっておく
●
モデル構造決定する後ずっとフリーター  現在は作業系パートは作業系パート Tr 、 Val の違い 2 分割 [PME, EMA]10-folds]
●
閾値が必要は作業系パートチューニングの対象とするの違い対象とするとす内容る
Quora Insincere Questions Classification
前処理
●
Kernel で公開されていたものをほぼそのまま利用したされていた理由もの違いを試したいほぼその違いまま利用した理由
●
ミスラベル構造が結構あるが修正、削除はしなかったは作業系パートしな回答がありそうかった理由
Quora Insincere Questions Classification
モデル構造の違い安定する化 : Expnential Moving Average (EMA)
●
学習は作業系パート通して提出する常と同じと同じじ
●
重みの指数加重移動平均を取るみの違い指数加した理由重みの指数加重移動平均を取る移動平均を取るを試したい取り組んでいたる
●
ミニバッチ単位だと 1.3M / 512 = 約 2500 回 /epoch
●
時間節約の違いた理由め 10 回 /epoch で更新したした理由
Quora Insincere Questions Classification
Embedding の違いアを計算するンサンブル構造
  Forum で紹介されていた理由方法は作業系パート
●
Emebedding ごとに取り組んでいたモデル構造を試したい作る
●
Concat す内容る: 1200 次元な回答がありそうの違いで時間がかかる
●
平均を取るを試したい取り組んでいたる: 次元が変えてわらな回答がありそういの違いで扱いやすいいやす内容い
  1なので予測は 位の違い人: 0.7 x Glove + 0.3 x Paragram
Quora Insincere Questions Classification
Projection Meta Embedding(PME)
●
Concat 後ずっとフリーター  現在は作業系パート低次元へ射影+射影+ ReLU
●
学習済みみ Embedding は作業系パート固定する
●
次元を試したい小さくすれば学習がスピードアップさくす内容れば学習がスピードアップ学習がスピードアを計算するップ
●
ReLU 有りの違いほうが少しだけスコアが良かったしだけスコアを計算するが良かった理由
●
一度に取り組んでいた何か発言したいだけで回答を求めていない個のの違い Embedding を試したい使える。全てうか
●
コンペ概要初めての期の段階での違い段階で閾値をある程度絞っておくで 2 個のを試したい選択する必要があるした理由
Quora Insincere Questions Classification
実行しスコアを計算する時間
●
締切り前 : Public(52.6k), 後ずっとフリーター  現在は作業系パート : Public+Private = Public の違い 7 倍
●
実行しスコアを計算する時間に取り組んでいたかな回答がありそうり変えて動がある
●
EMA の違い更新した回数を試したい 1なので予測は 回 / batch → 10 回 / epoch
●
長さが近いものをバッチに入れれば早くなるが、トライしなかったさが近いものをバッチに入れれば早くなるが、トライしなかったいもの違いを試したいバッチに取り組んでいた入れれば早くなるが、トライしなかったれれば学習がスピードアップ早くなるが、トライしなかったくな回答がありそうるが、トライしな回答がありそうかった理由
Quora Insincere Questions Classification
実行しスコアを計算する時間     
Baseline
max_len=50
1 EMA
update per
batch
長さが近いものをバッチに入れれば早くなるが、トライしなかったさが近いものをバッチに入れれば早くなるが、トライしなかったい
の違いを試したいバッチ
に取り組んでいた入れれば早くなるが、トライしなかったれる
旧 Kernel[PME, EMA]s/epoch]
合計
120s
6423s
NA NA
現 Kernel[PME, EMA]s/epoch]
合計
40s
2514s
43s
2675s
29s
2151s
Quora Insincere Questions Classification
Public 39位 ==> Private 10 位 の違い理由
●
Public:15%, Private: 85%
●
F1 が不安定する
●
Local CV の違いみでモデル構造を試したい選択する必要があるした理由
Quora Insincere Questions Classification
反省点
●
長さが近いものをバッチに入れれば早くなるが、トライしなかったさが近いものをバッチに入れれば早くなるが、トライしなかったいもの違いを試したいバッチに取り組んでいた入れれば早くなるが、トライしなかったれる は作業系パート最初めてのに取り組んでいた実装すべきす内容べ規制が厳しいき
●
Statistical feature を試したい入れれば早くなるが、トライしなかったれてな回答がありそうい
●
早くなるが、トライしなかった期の段階でに取り組んでいた選択する必要がある肢を狭めているを試したい狭めているめている
Quora Insincere Questions Classification
まとめ
●
Local CV
●
F1 と AUC を試したいみる。全て AUC 重みの指数加重移動平均を取る視
●
閾値が必要がいるの違いで Tr,Dev, Val の違い 3 分割
●
モデル構造が定するまった理由ら 2 分割
●
前処理: 公開されていたものをほぼそのまま利用した Kernel の違い利用
●
モデル構造の違い安定する化: EMA
●
Embedding の違いアを計算するンサンブル構造: PME
●
実行しスコアを計算する時間: 類似長さが近いものをバッチに入れれば早くなるが、トライしなかったを試したいバッチに取り組んでいた は作業系パート効く く  EMA の違い更新した回数を試したい減った原因のらす内容
●
Local CV を試したい信頼すればうまくいくこともあるす内容れば学習がスピードアップうまくいくこともある
●
今と昔の違い違いい
●
Amazon.com - Employee Access Challenge (2013 年 )
昔
いつでも参加した理由可能
今と昔の違い違いい
First Submission Deadline (2013/9 〜 )
●
終了するまでに数時間〜数日かかるの違い 1 週間前
●
予測はを試したい提出す内容る必要あり
●
マル構造チアを計算するカウント対策?
Entry Deadline (2016/9 〜 )
●
ル構造ール構造を試したい accept す内容るだけ
Submission Limits の違い主流
今と昔の違い違いい
1日: 2 → 5
最終: 5 → 2
2013 年後ずっとフリーター  現在は作業系パート半ごろ変化ごろ変化変えて化
2014: SMS 認証開されていたものをほぼそのまま利用した始
●
マル構造チアを計算するカウント対策
今と昔の違い違いい
Ideas for competition changes to reduce cheating / multiple accounts
出た理由案
●
コンペ概要終盤のエントリー禁止の違いエントリー禁止
●
LB の違いスコアを計算する表示を試したい3桁にする(当時5桁)に取り組んでいたす内容る(もりとき つかさ)当時5桁にする(当時5桁))
●
2−ステージコンペ概要
●
1なので予測は 提出1なので予測は ドル構造
●
電話やクレジットカードに取り組んでいたよる認証
2012-10-16
コンペ概要数、チーム数が数(もりとき つかさ) InClass, Playground, Getting Started 以外)
開されていたものをほぼそのまま利用した始年
今と昔の違い違いい
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
0 5 10 15 20 25 30 35 40 45
1000 ~
500 ~ 1000
100 ~ 500
< 100
参加した理由チーム数が数
コンペ概要数、チーム数が数(もりとき つかさ) InClass, Playground, Getting Started 以外)
開されていたものをほぼそのまま利用した始年
今と昔の違い違いい
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
0 5 10 15 20 25 30 35 40 45
1000 ~
500 ~ 1000
100 ~ 500
< 100
参加した理由チーム数が数
SMS 認証
Kernel
GrandMaster
Google が買収
Community Guidelines
チーム数がサイズ上限上は限は異なる(実行時間、 5
今と昔の違い違いい
まとめ
健全てで快適な環境づくりのためな回答がありそう環境づくりのためづくりの違いた理由め Kaggle は作業系パート変えて化し続けていますけています内容
要望、提案な回答がありそうどがあれば学習がスピードアップどんどん出していきましょう
コンペ概要数、チーム数が数(もりとき つかさ) InClass, Playground, Getting Started 以外)
開されていたものをほぼそのまま利用した始年
今と昔
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
0 5 10 15 20 25 30 35 40 45
1000 ~
500 ~ 1000
100 ~ 500
< 100
参加した理由チーム数が数
Amazon.com - Employee Access Challenge
Amazon.com - Employee Access Challenge 概要
●
Task : システム数がの違いリソースに取り組んでいた対す内容るアを計算するクセス 許可 or 拒否
●
Eval : AUC
●
Train: 32.8k x 10 整数値かつ欠損値無かつ欠損値無欠損値かつ欠損値無無 , Test : 58.9k
●
2013-05-29 〜 2013-07-31
●
$5000
●
1687 teams
Column Name Description
ACTION ACTION is 1 if the resource was approved, 0 if the resource was not
RESOURCE An ID for each resource
MGR_ID The EMPLOYEE ID of the manager of the current EMPLOYEE ID record; an
employee may have only one manager at a time
ROLE_ROLLUP_1 Company role grouping category id 1 (e.g. US Engineering)
ROLE_ROLLUP_2 Company role grouping category id 2 (e.g. US Retail)
ROLE_DEPTNAME Company role department description (e.g. Retail)
ROLE_TITLE Company role business title description (e.g. Senior Engineering Retail
Manager)
ROLE_FAMILY_DESC Company role family extended description (e.g. Retail Manager, Software
Engineering)
ROLE_FAMILY Company role family description (e.g. Retail Manager)
ROLE_CODE Company role code; this code is unique to each role (e.g. Manager)
Amazon.com - Employee Access Challenge
Column Name Description
ACTION 1: 94%, 0: 6%
RESOURCE An ID for each resource
MGR_ID The EMPLOYEE ID of the manager of the current EMPLOYEE ID record; an
employee may have only one manager at a time
ROLE_ROLLUP_1 Company role grouping category id 1 (e.g. US Engineering)
ROLE_ROLLUP_2 Company role grouping category id 2 (e.g. US Retail)
ROLE_DEPTNAME Company role department description (e.g. Retail)
ROLE_TITLE Company role business title description (e.g. Senior Engineering Retail
Manager)
ROLE_FAMILY_DESC Company role family extended description (e.g. Retail Manager, Software
Engineering)
ROLE_FAMILY Company role family description (e.g. Retail Manager)
ROLE_CODE Company role code; this code is unique to each role (e.g. Manager)
Amazon.com - Employee Access Challenge
全ててカテゴリ変えて数
Column Name Description
ACTION ACTION is 1 if the resource was approved, 0 if the resource was not
RESOURCE An ID for each resource
MGR_ID The EMPLOYEE ID of the manager of the current EMPLOYEE ID record; an
employee may have only one manager at a time
ROLE_ROLLUP_1 Company role grouping category id 1 (e.g. US Engineering)
ROLE_ROLLUP_2 Company role grouping category id 2 (e.g. US Retail)
ROLE_DEPTNAME Company role department description (e.g. Retail)
ROLE_TITLE Company role business title description (e.g. Senior Engineering Retail
Manager)
ROLE_FAMILY_DESC Company role family extended description (e.g. Retail Manager, Software
Engineering)
ROLE_FAMILY Company role family description (e.g. Retail Manager)
ROLE_CODE Company role code; this code is unique to each role (e.g. Manager)
Amazon.com - Employee Access Challenge
リソース
上は司
従業員の役割の違い役に立った手法割
Amazon.com - Employee Access Challenge
ポイント
●
カテゴリ変えて数の違い扱いやすいい
Amazon.com - Employee Access Challenge
Forum に取り組んでいた投稿されたものされた理由もの違い
●
元変えて数、 2 次、 3 次組んでいたみ合わせ変数から変えて数から Greedy forward selection
●
ロジスティック回帰で評価しているで評価している
●
単純だがスコアが高かったので非常に人気があっただがスコアを計算するが高かった理由の違いで非常と同じに取り組んでいた人気があったがあった理由
●
5 次まで使える。全てっている人も
Amazon.com - Employee Access Challenge
2 位の違い人(もりとき つかさ)決定する木ベースのモデル用)ベースの違いモデル構造用)
●
Count feature
●
カテゴリの違い頻度
●
Target encoding
●
shrank and randomized leave-one-out average actual for
categorical variables (もりとき つかさ)コード内コメント)
Amazon.com - Employee Access Challenge
2 位の違い人(もりとき つかさ)決定する木ベースのモデル用)ベースの違いモデル構造用)
●
Count feature
●
カテゴリの違い頻度
●
Target encoding
●
shrank and randomized leave-one-out average actual for
categorical variables (もりとき つかさ)コード内コメント)
CatBoost で出来ます出来ますます
Amazon.com - Employee Access Challenge
CatBoost に取り組んでいたついてもっと知りた理由い方は作業系パート
Jack さんの違い LT(Kaggle Meetup #4 ) を試したい見ましょうましょう
#4 イベント資料一覧
Amazon.com - Employee Access Challenge
リンク
●
Amazon.com - Employee Access Challenge
●
Python code to achieve 0.90 AUC with Logistic Regression
●
2nd place solution
●
Winning solution code and methodology
賞金額 ( ドル構造 )
開されていたものをほぼそのまま利用した始年
付録
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
0 5 10 15 20 25 30 35 40 45
100k ~
50k ~ 100k
10k ~ 50k
< 10k
年月から 提出期の段階で間 チーム数が数 tks
EMC Data Science Global Hackathon 2012/4 24h 110
EMI Music Data Science Hackathon 2012/7 23h 133
Influencers in Social Networks 2013/4 24h 132 14
dunnhumby & hack/reduce 2013/5 10h 108 12
See Click Predict Fix – Hackathon 2013/9 22h 80
The Random Number Grand Challenge 2014/4 24h 205
短期の段階で間コンペ概要
付録

Contenu connexe

Similaire à このスライドには間違いが含まれています。修正版をご覧ください

GrowthForecastことはじめ
GrowthForecastことはじめGrowthForecastことはじめ
GrowthForecastことはじめ
Makoto Taniwaki
 
テストエンジニアのおっさんの日常です
テストエンジニアのおっさんの日常ですテストエンジニアのおっさんの日常です
テストエンジニアのおっさんの日常です
ryuji koyama
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
Hiromu Shioya
 

Similaire à このスライドには間違いが含まれています。修正版をご覧ください (20)

Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013
Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013
Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 
GrowthForecastことはじめ
GrowthForecastことはじめGrowthForecastことはじめ
GrowthForecastことはじめ
 
OutSystems Workflow Builder
OutSystems Workflow BuilderOutSystems Workflow Builder
OutSystems Workflow Builder
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
テストエンジニアのおっさんの日常です
テストエンジニアのおっさんの日常ですテストエンジニアのおっさんの日常です
テストエンジニアのおっさんの日常です
 
DevLOVE関西2012 Drive 講演資料(iBook)
DevLOVE関西2012 Drive 講演資料(iBook)DevLOVE関西2012 Drive 講演資料(iBook)
DevLOVE関西2012 Drive 講演資料(iBook)
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
 
カラーミーショップ「カスタマイズスクール第1期vol.1」
カラーミーショップ「カスタマイズスクール第1期vol.1」カラーミーショップ「カスタマイズスクール第1期vol.1」
カラーミーショップ「カスタマイズスクール第1期vol.1」
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
 
アジャイルと私
アジャイルと私アジャイルと私
アジャイルと私
 
Spring知っておきたい
Spring知っておきたいSpring知っておきたい
Spring知っておきたい
 
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけてAgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
 
技術者・研究者にとっての自立・起業とは?
技術者・研究者にとっての自立・起業とは?技術者・研究者にとっての自立・起業とは?
技術者・研究者にとっての自立・起業とは?
 
Scala conf2013
Scala conf2013Scala conf2013
Scala conf2013
 
20120421中国gtug
20120421中国gtug20120421中国gtug
20120421中国gtug
 
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
 
我流ミドルウェア性能・障害試験の心得
我流ミドルウェア性能・障害試験の心得我流ミドルウェア性能・障害試験の心得
我流ミドルウェア性能・障害試験の心得
 

このスライドには間違いが含まれています。修正版をご覧ください

  • 1. Quora Insincere Questions Classification 10th place solution & 昔話 Kaggle Tokyo Meetup #6 2019.7.13 @tks0123456789
  • 2. 自己紹介 名前 : 守時 良(もりとき つかさ)もりとき つかさ) 略歴 : 数学科出身 卒業後ずっとフリーター 現在は作業系パートずっとフリーター 現在は作業系パートは作業系パート作業系パートパート    Kaggle は作業系パート 2011 年 2 月からから     
  • 3. 今日話す内容内容 ● Quora Insincere Questions Classification 10th place solution ● 昔 ● 今と昔の違い違いい ● Amazon.com - Employee Access Challenge (2013 年 )
  • 5. Quora Insincere Questions Classification 参加した理由した理由理由 ● 以前 SQuAD(Q&A データセット)に取り組んでいた取り組んでいたり組んでいたんでいた理由 ● そこで役に立った手法に取り組んでいた立った手法った理由手法 [PME, EMA]PME, EMA] を試したい試したいした理由い
  • 6. Quora Insincere Questions Classification Quora? ● 実名制 Q&A サイト ● 高品質な回答がありそうな回答がありそう回答がありそうがありそう ● ヤフー知恵袋に比べ規制が厳しいに取り組んでいた比べ規制が厳しいべ規制が厳しい規制が厳しいしい
  • 7. 概要 ● Task : 質な回答がありそう問がが Insincere であるか判定するす内容る ● Kernel-only, 外部データ利用不可データ利用不可 ● Eval : F1 ● Train : 1.31m, Test : 37.6k ● 2018-11 〜 2019-02 ● BERT 発表後ずっとフリーター 現在は作業系パート初めてのめての違い NLP コンペ概要 Quora Insincere Questions Classification
  • 8. Quora Insincere Questions Classification
  • 9. Quora Insincere Questions Classification
  • 10. Quora Insincere Questions Classification Insincere? ● 何か発言したいだけで回答を求めていないか発言したいだけで回答を求めていないした理由いだけで回答がありそうを試したい求めていないめていな回答がありそうい ● 有害 ● 中立った手法性にかけるに取り組んでいたかける ● 軽蔑、扇動的 ● 虚偽の事実に基づいているの違い事実に取り組んでいた基づいているづいている ● 卑猥なものな回答がありそうもの違い
  • 11. Quora Insincere Questions Classification Kernel-only コンペ概要 とは作業系パート? ● 予測はは作業系パート Kernel を試したい通して提出するして提出す内容る ● 締切前に取り組んでいた Kernel 内で参照できるテストデータはできるテストデータは作業系パート Public の違いみ ● Kaggle 側が締切後にテストデータをが締切後ずっとフリーター 現在は作業系パートに取り組んでいたテストデータを試したい Private or Public + Private に取り組んでいた 変えてえて Kernel を試したい実行しスコアを計算するしスコアを計算するを試したい計算するす内容る ● 計算するが終了するまでに数時間〜数日かかるす内容るまでに取り組んでいた数時間〜数日かかる ( 今回は作業系パート 8 日) ● コンペ概要に取り組んでいたより制限は異なる(実行時間、は作業系パート異なる(実行時間、な回答がありそうる(もりとき つかさ)実行しスコアを計算する時間、外部データ利用不可データな回答がありそうど)
  • 12. Quora Insincere Questions Classification Kernel-only 制限は異なる(実行時間、 ● 時間: GPU 有 2h, 無 6h ● 外部データ利用不可データ利用不可だが運営側が締切後にテストデータをが準備したした理由 4 つの違い学習済みみ Embedding は作業系パート使える。全てえる。全て全てて 300 次元 ● Use of Final Score を試したい明示的に取り組んでいた選択する必要があるす内容る必要がある ● チーム数が数が 4037(Public) から 1401(Private) に取り組んでいた減った原因のった理由原因のの違い ほとんどは作業系パート選択する必要があるしな回答がありそうかった理由ことに取り組んでいたよるもの違い ● 選択する必要があるした理由チーム数がの違い95%以上は以上はは作業系パート Private に取り組んでいた残ったった理由
  • 13. Quora Insincere Questions Classification モデル構造構造 EmbeddingEmbedding BiGRU GlobalMaxpooling Dense Dense Dense concat output 6 x } 固定する
  • 14. Quora Insincere Questions Classification ポイント ● Local CV ● 前処理 ● モデル構造の違い安定する化 ● Embedding の違いアを計算するンサンブル構造 ● 実行しスコアを計算する時間 ● Public 39位 ==> Private 10 位 の違い理由
  • 15. Quora Insincere Questions Classification Local CV ● F1 は作業系パート不安定するな回答がありそうの違いで AUC 優先 ● アを計算するベレージモデル構造の違いスコアを計算するでモデル構造の違い優劣を判断するを試したい判断するす内容る ● 評価指標がが F 1なので予測は な回答がありそうの違いで予測はは作業系パート 0 or 1  → 閾値が必要が必要 ● モデル構造構成が定まるまではが定するまるまでは作業系パート Tr 、 Dev 、 Val の違い 3 分割 [PME, EMA]5-folds] ● Tr で学習、 Dev で閾値が必要選択する必要がある、 Val で評価 ● この違い段階で閾値をある程度絞っておくで閾値が必要を試したいある程度絞っておくっておく ● モデル構造決定する後ずっとフリーター 現在は作業系パートは作業系パート Tr 、 Val の違い 2 分割 [PME, EMA]10-folds] ● 閾値が必要は作業系パートチューニングの対象とするの違い対象とするとす内容る
  • 16. Quora Insincere Questions Classification 前処理 ● Kernel で公開されていたものをほぼそのまま利用したされていた理由もの違いを試したいほぼその違いまま利用した理由 ● ミスラベル構造が結構あるが修正、削除はしなかったは作業系パートしな回答がありそうかった理由
  • 17. Quora Insincere Questions Classification モデル構造の違い安定する化 : Expnential Moving Average (EMA) ● 学習は作業系パート通して提出する常と同じと同じじ ● 重みの指数加重移動平均を取るみの違い指数加した理由重みの指数加重移動平均を取る移動平均を取るを試したい取り組んでいたる ● ミニバッチ単位だと 1.3M / 512 = 約 2500 回 /epoch ● 時間節約の違いた理由め 10 回 /epoch で更新したした理由
  • 18. Quora Insincere Questions Classification Embedding の違いアを計算するンサンブル構造   Forum で紹介されていた理由方法は作業系パート ● Emebedding ごとに取り組んでいたモデル構造を試したい作る ● Concat す内容る: 1200 次元な回答がありそうの違いで時間がかかる ● 平均を取るを試したい取り組んでいたる: 次元が変えてわらな回答がありそういの違いで扱いやすいいやす内容い   1なので予測は 位の違い人: 0.7 x Glove + 0.3 x Paragram
  • 19. Quora Insincere Questions Classification Projection Meta Embedding(PME) ● Concat 後ずっとフリーター 現在は作業系パート低次元へ射影+射影+ ReLU ● 学習済みみ Embedding は作業系パート固定する ● 次元を試したい小さくすれば学習がスピードアップさくす内容れば学習がスピードアップ学習がスピードアを計算するップ ● ReLU 有りの違いほうが少しだけスコアが良かったしだけスコアを計算するが良かった理由 ● 一度に取り組んでいた何か発言したいだけで回答を求めていない個のの違い Embedding を試したい使える。全てうか ● コンペ概要初めての期の段階での違い段階で閾値をある程度絞っておくで 2 個のを試したい選択する必要があるした理由
  • 20. Quora Insincere Questions Classification 実行しスコアを計算する時間 ● 締切り前 : Public(52.6k), 後ずっとフリーター 現在は作業系パート : Public+Private = Public の違い 7 倍 ● 実行しスコアを計算する時間に取り組んでいたかな回答がありそうり変えて動がある ● EMA の違い更新した回数を試したい 1なので予測は 回 / batch → 10 回 / epoch ● 長さが近いものをバッチに入れれば早くなるが、トライしなかったさが近いものをバッチに入れれば早くなるが、トライしなかったいもの違いを試したいバッチに取り組んでいた入れれば早くなるが、トライしなかったれれば学習がスピードアップ早くなるが、トライしなかったくな回答がありそうるが、トライしな回答がありそうかった理由
  • 21. Quora Insincere Questions Classification 実行しスコアを計算する時間      Baseline max_len=50 1 EMA update per batch 長さが近いものをバッチに入れれば早くなるが、トライしなかったさが近いものをバッチに入れれば早くなるが、トライしなかったい の違いを試したいバッチ に取り組んでいた入れれば早くなるが、トライしなかったれる 旧 Kernel[PME, EMA]s/epoch] 合計 120s 6423s NA NA 現 Kernel[PME, EMA]s/epoch] 合計 40s 2514s 43s 2675s 29s 2151s
  • 22. Quora Insincere Questions Classification Public 39位 ==> Private 10 位 の違い理由 ● Public:15%, Private: 85% ● F1 が不安定する ● Local CV の違いみでモデル構造を試したい選択する必要があるした理由
  • 23. Quora Insincere Questions Classification 反省点 ● 長さが近いものをバッチに入れれば早くなるが、トライしなかったさが近いものをバッチに入れれば早くなるが、トライしなかったいもの違いを試したいバッチに取り組んでいた入れれば早くなるが、トライしなかったれる は作業系パート最初めてのに取り組んでいた実装すべきす内容べ規制が厳しいき ● Statistical feature を試したい入れれば早くなるが、トライしなかったれてな回答がありそうい ● 早くなるが、トライしなかった期の段階でに取り組んでいた選択する必要がある肢を狭めているを試したい狭めているめている
  • 24. Quora Insincere Questions Classification まとめ ● Local CV ● F1 と AUC を試したいみる。全て AUC 重みの指数加重移動平均を取る視 ● 閾値が必要がいるの違いで Tr,Dev, Val の違い 3 分割 ● モデル構造が定するまった理由ら 2 分割 ● 前処理: 公開されていたものをほぼそのまま利用した Kernel の違い利用 ● モデル構造の違い安定する化: EMA ● Embedding の違いアを計算するンサンブル構造: PME ● 実行しスコアを計算する時間: 類似長さが近いものをバッチに入れれば早くなるが、トライしなかったを試したいバッチに取り組んでいた は作業系パート効く く  EMA の違い更新した回数を試したい減った原因のらす内容 ● Local CV を試したい信頼すればうまくいくこともあるす内容れば学習がスピードアップうまくいくこともある
  • 26. いつでも参加した理由可能 今と昔の違い違いい First Submission Deadline (2013/9 〜 ) ● 終了するまでに数時間〜数日かかるの違い 1 週間前 ● 予測はを試したい提出す内容る必要あり ● マル構造チアを計算するカウント対策? Entry Deadline (2016/9 〜 ) ● ル構造ール構造を試したい accept す内容るだけ
  • 27. Submission Limits の違い主流 今と昔の違い違いい 1日: 2 → 5 最終: 5 → 2 2013 年後ずっとフリーター 現在は作業系パート半ごろ変化ごろ変化変えて化 2014: SMS 認証開されていたものをほぼそのまま利用した始 ● マル構造チアを計算するカウント対策
  • 28. 今と昔の違い違いい Ideas for competition changes to reduce cheating / multiple accounts 出た理由案 ● コンペ概要終盤のエントリー禁止の違いエントリー禁止 ● LB の違いスコアを計算する表示を試したい3桁にする(当時5桁)に取り組んでいたす内容る(もりとき つかさ)当時5桁にする(当時5桁)) ● 2−ステージコンペ概要 ● 1なので予測は 提出1なので予測は ドル構造 ● 電話やクレジットカードに取り組んでいたよる認証 2012-10-16
  • 29. コンペ概要数、チーム数が数(もりとき つかさ) InClass, Playground, Getting Started 以外) 開されていたものをほぼそのまま利用した始年 今と昔の違い違いい 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 0 5 10 15 20 25 30 35 40 45 1000 ~ 500 ~ 1000 100 ~ 500 < 100 参加した理由チーム数が数
  • 30. コンペ概要数、チーム数が数(もりとき つかさ) InClass, Playground, Getting Started 以外) 開されていたものをほぼそのまま利用した始年 今と昔の違い違いい 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 0 5 10 15 20 25 30 35 40 45 1000 ~ 500 ~ 1000 100 ~ 500 < 100 参加した理由チーム数が数 SMS 認証 Kernel GrandMaster Google が買収 Community Guidelines チーム数がサイズ上限上は限は異なる(実行時間、 5
  • 32. コンペ概要数、チーム数が数(もりとき つかさ) InClass, Playground, Getting Started 以外) 開されていたものをほぼそのまま利用した始年 今と昔 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 0 5 10 15 20 25 30 35 40 45 1000 ~ 500 ~ 1000 100 ~ 500 < 100 参加した理由チーム数が数 Amazon.com - Employee Access Challenge
  • 33. Amazon.com - Employee Access Challenge 概要 ● Task : システム数がの違いリソースに取り組んでいた対す内容るアを計算するクセス 許可 or 拒否 ● Eval : AUC ● Train: 32.8k x 10 整数値かつ欠損値無かつ欠損値無欠損値かつ欠損値無無 , Test : 58.9k ● 2013-05-29 〜 2013-07-31 ● $5000 ● 1687 teams
  • 34. Column Name Description ACTION ACTION is 1 if the resource was approved, 0 if the resource was not RESOURCE An ID for each resource MGR_ID The EMPLOYEE ID of the manager of the current EMPLOYEE ID record; an employee may have only one manager at a time ROLE_ROLLUP_1 Company role grouping category id 1 (e.g. US Engineering) ROLE_ROLLUP_2 Company role grouping category id 2 (e.g. US Retail) ROLE_DEPTNAME Company role department description (e.g. Retail) ROLE_TITLE Company role business title description (e.g. Senior Engineering Retail Manager) ROLE_FAMILY_DESC Company role family extended description (e.g. Retail Manager, Software Engineering) ROLE_FAMILY Company role family description (e.g. Retail Manager) ROLE_CODE Company role code; this code is unique to each role (e.g. Manager) Amazon.com - Employee Access Challenge
  • 35. Column Name Description ACTION 1: 94%, 0: 6% RESOURCE An ID for each resource MGR_ID The EMPLOYEE ID of the manager of the current EMPLOYEE ID record; an employee may have only one manager at a time ROLE_ROLLUP_1 Company role grouping category id 1 (e.g. US Engineering) ROLE_ROLLUP_2 Company role grouping category id 2 (e.g. US Retail) ROLE_DEPTNAME Company role department description (e.g. Retail) ROLE_TITLE Company role business title description (e.g. Senior Engineering Retail Manager) ROLE_FAMILY_DESC Company role family extended description (e.g. Retail Manager, Software Engineering) ROLE_FAMILY Company role family description (e.g. Retail Manager) ROLE_CODE Company role code; this code is unique to each role (e.g. Manager) Amazon.com - Employee Access Challenge 全ててカテゴリ変えて数
  • 36. Column Name Description ACTION ACTION is 1 if the resource was approved, 0 if the resource was not RESOURCE An ID for each resource MGR_ID The EMPLOYEE ID of the manager of the current EMPLOYEE ID record; an employee may have only one manager at a time ROLE_ROLLUP_1 Company role grouping category id 1 (e.g. US Engineering) ROLE_ROLLUP_2 Company role grouping category id 2 (e.g. US Retail) ROLE_DEPTNAME Company role department description (e.g. Retail) ROLE_TITLE Company role business title description (e.g. Senior Engineering Retail Manager) ROLE_FAMILY_DESC Company role family extended description (e.g. Retail Manager, Software Engineering) ROLE_FAMILY Company role family description (e.g. Retail Manager) ROLE_CODE Company role code; this code is unique to each role (e.g. Manager) Amazon.com - Employee Access Challenge リソース 上は司 従業員の役割の違い役に立った手法割
  • 37. Amazon.com - Employee Access Challenge ポイント ● カテゴリ変えて数の違い扱いやすいい
  • 38. Amazon.com - Employee Access Challenge Forum に取り組んでいた投稿されたものされた理由もの違い ● 元変えて数、 2 次、 3 次組んでいたみ合わせ変数から変えて数から Greedy forward selection ● ロジスティック回帰で評価しているで評価している ● 単純だがスコアが高かったので非常に人気があっただがスコアを計算するが高かった理由の違いで非常と同じに取り組んでいた人気があったがあった理由 ● 5 次まで使える。全てっている人も
  • 39. Amazon.com - Employee Access Challenge 2 位の違い人(もりとき つかさ)決定する木ベースのモデル用)ベースの違いモデル構造用) ● Count feature ● カテゴリの違い頻度 ● Target encoding ● shrank and randomized leave-one-out average actual for categorical variables (もりとき つかさ)コード内コメント)
  • 40. Amazon.com - Employee Access Challenge 2 位の違い人(もりとき つかさ)決定する木ベースのモデル用)ベースの違いモデル構造用) ● Count feature ● カテゴリの違い頻度 ● Target encoding ● shrank and randomized leave-one-out average actual for categorical variables (もりとき つかさ)コード内コメント) CatBoost で出来ます出来ますます
  • 41. Amazon.com - Employee Access Challenge CatBoost に取り組んでいたついてもっと知りた理由い方は作業系パート Jack さんの違い LT(Kaggle Meetup #4 ) を試したい見ましょうましょう #4 イベント資料一覧
  • 42. Amazon.com - Employee Access Challenge リンク ● Amazon.com - Employee Access Challenge ● Python code to achieve 0.90 AUC with Logistic Regression ● 2nd place solution ● Winning solution code and methodology
  • 43. 賞金額 ( ドル構造 ) 開されていたものをほぼそのまま利用した始年 付録 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 0 5 10 15 20 25 30 35 40 45 100k ~ 50k ~ 100k 10k ~ 50k < 10k
  • 44. 年月から 提出期の段階で間 チーム数が数 tks EMC Data Science Global Hackathon 2012/4 24h 110 EMI Music Data Science Hackathon 2012/7 23h 133 Influencers in Social Networks 2013/4 24h 132 14 dunnhumby & hack/reduce 2013/5 10h 108 12 See Click Predict Fix – Hackathon 2013/9 22h 80 The Random Number Grand Challenge 2014/4 24h 205 短期の段階で間コンペ概要 付録