Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Quora Insincere Questions 10th Place Solution & 昔話

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Quora Insincere Questions 10th Place Solution & 昔話

Kaggle Tokyo Meetup #6

Avatar for tks0123456789

tks0123456789

July 13, 2019

Other Decks in Technology

Transcript

  1. 今日話す内容内容 • Quora Insincere Questions Classification 10th place solution •

    昔 • 今と昔の違い違いい • Amazon.com - Employee Access Challenge (2013 年 )
  2. • 参加した理由した理由理由 • Quora ? • コンペ概要概要 • モデル構造構造 •

    ポイント • 反省点 • まとめ Quora Insincere Questions Classification
  3. Quora Insincere Questions Classification 参加した理由した理由理由 • 以前 SQuAD(Q&A データセット)に取り組んでいた取り組んでいたり組んでいたんでいた理由 •

    そこで役に立った手法に取り組んでいた立った手法った理由手法 [PME, EMPME, EMA] を試したい試したいした理由い
  4. Quora Insincere Questions Classification Quora? • 実名制 Q&A サイト •

    高品質な回答がありそな回答がありそう回答がありそうがありそう • ヤフー知恵袋に比べ規制が厳に取り組んでいた比べ規制が厳しいべ規制が厳しい規制が厳しいしい
  5. 概要 • Task : 質な回答がありそ問がが Insincere であるか判定するす内容る • Kernel-only, 外部データ利用不可データ利用不可

    • Eval : F1 • Train : 1.31m, Test : 37.6k • 2018-11 〜 2019-02 • BERT 発表後ずっとフリータ初めてのめての違い NLP コンペ概要 Quora Insincere Questions Classification
  6. Quora Insincere Questions Classification Insincere? • 何か発言したいだか発言したいだけで回した理由いだけで回答がありそうを試したい求めていないめていな回答がありそうい • 有害 •

    中立った手法性にかけるに取り組んでいたかける • 軽蔑、扇動的 • 虚偽の事実に基づいの違い事実に取り組んでいた基づいているづいている • 卑猥なものな回答がありそうもの違い
  7. Quora Insincere Questions Classification Kernel-only コンペ概要 とは作業系パート? • 予測はは作業系パート Kernel

    を試したい通して提出するして提出す内容る • 締切前に取り組んでいた Kernel 内で参照できるテストデできるテストデータは作業系パート Public の違いみ • Kaggle 側が締切後にテスが締切後ずっとフリータに取り組んでいたテストデータを試したい Private or Public + Private に取り組んでいた 変えてえて Kernel を試したい実行しスコアを計算しスコアを計算するを試したい計算するす内容る • 計算するが終了するまでに数時す内容るまでに取り組んでいた数時間〜数日かかる ( 今回は作業系パート 8 日) • コンペ概要に取り組んでいたより制限は異なる(実行は作業系パート異なる(実行時間な回答がありそうる(もりとき つか実行しスコアを計算時間、外部データ利用不可データな回答がありそうど)
  8. Quora Insincere Questions Classification Kernel-only 制限は異なる(実行 • 時間: GPU 有

    2h, 無 6h • 外部データ利用不可データ利用不可だが運営側が締切後にテスが準備したした理由 4 つの違い学習済みみ Embedding は作業系パート使える。全てえる。全て全てて 300 次元 • Use of Final Score を試したい明示的に取り組んでいた選択する必要があるす内容る必要がある • チーム数が数が 4037(Public) から 1401(Private) に取り組んでいた減った原因のった理由原因のの違い ほとんどは作業系パート選択する必要があるしな回答がありそうかった理由ことに取り組んでいたよるもの違い • 選択する必要があるした理由チーム数がの違い95%以上は以上はは作業系パート Private に取り組んでいた残ったった理由
  9. Quora Insincere Questions Classification ポイント • Local CV • 前処理

    • モデル構造の違い安定する化 • Embedding の違いアを計算するンサンブル構造 • 実行しスコアを計算時間 • Public 39位 ==> Private 10 位 の違い理由
  10. Quora Insincere Questions Classification Local CV • F1 は作業系パート不安定するな回答がありそうの違いで AUC

    優先 • アを計算するベレージモデル構造の違いスコアを計算するでモデル構造の違い優劣を判断するを試したい判断するす内容る • 評価指標がが F 1なので予測は な回答がありそうの違いで予測はは作業系パート 0 or 1  → 閾値が必要が必要 • モデル構造構成が定まるまではが定するまるまでは作業系パート Tr 、 Dev 、 Val の違い 3 分割 [PME, EM5-folds] • Tr で学習、 Dev で閾値が必要選択する必要がある、 Val で評価 • この違い段階で閾値をある程で閾値が必要を試したいある程度絞っておくっておく • モデル構造決定する後ずっとフリータは作業系パート Tr 、 Val の違い 2 分割 [PME, EM10-folds] • 閾値が必要は作業系パートチューニングの対象とするの違い対象とするとす内容る
  11. Quora Insincere Questions Classification モデル構造の違い安定する化 : Expnential Moving Average (EMA)

    • 学習は作業系パート通して提出する常と同じと同じじ • 重みの指数加重移みの違い指数加した理由重みの指数加重移移動平均を取るを試したい取り組んでいたる • ミニバッチ単位だと 1.3M / 512 = 約 2500 回 /epoch • 時間節約の違いた理由め 10 回 /epoch で更新したした理由
  12. Quora Insincere Questions Classification Embedding の違いアを計算するンサンブル構造   Forum で紹介されていた理由方法は作業系パート •

    Emebedding ごとに取り組んでいたモデル構造を試したい作る • Concat す内容る: 1200 次元な回答がありそうの違いで時間がかかる • 平均を取るを試したい取り組んでいたる: 次元が変えてわらな回答がありそういの違いで扱いやすいいやす内容い   1なので予測は 位の違い人: 0.7 x Glove + 0.3 x Paragram
  13. Quora Insincere Questions Classification Projection Meta Embedding(PME) • Concat 後ずっとフリータ低次元へ射影+射影+

    ReLU • 学習済みみ Embedding は作業系パート固定する • 次元を試したい小さくすれば学習さくす内容れば学習がスピード学習がスピードアを計算するップ • ReLU 有りの違いほうが少しだけスコアがしだけスコアを計算するが良かった理由 • 一度に取り組んでいた何か発言したいだ個のの違い Embedding を試したい使える。全てうか • コンペ概要初めての期の段階での違い段階で閾値をある程で 2 個のを試したい選択する必要があるした理由
  14. Quora Insincere Questions Classification 実行しスコアを計算時間 • 締切り前 : Public(52.6k), 後ずっとフリータ

    : Public+Private = Public の違い 7 倍 • 実行しスコアを計算時間に取り組んでいたかな回答がありそうり変えて動がある • EMA の違い更新した回数を試したい 1なので予測は 回 / batch → 10 回 / epoch • 長さが近いものをさが近いものをバッチいもの違いを試したいバッチに取り組んでいた入れれば早くなるれれば学習がスピード早くなるが、トラくな回答がありそうるが、トライしな回答がありそうかった理由 早くなるが、トラくな回答がありそうるが F1 は作業系パート悪化
  15. Quora Insincere Questions Classification 実行しスコアを計算時間      Baseline max_len=50 1 EMA update

    per batch 長さが近いものをさが近いものをバッチい の違いを試したいバッチ に取り組んでいた入れれば早くなるれる 旧 Kernel[PME, EMs/epoch] 合計 120s 6423s NA NA 現 Kernel[PME, EMs/epoch] 合計 40s 2514s 43s 2675s 29s 2151s F1 が悪化す内容るの違いでやらな回答がありそういほうがよい
  16. Quora Insincere Questions Classification Public 39位 ==> Private 10 位

    の違い理由 • Public:15%, Private: 85% • F1 が不安定する • Local CV の違いみでモデル構造を試したい選択する必要があるした理由
  17. Quora Insincere Questions Classification 反省点 • 長さが近いものをさが近いものをバッチいもの違いを試したいバッチに取り組んでいた入れれば早くなるれる は作業系パート最初めてのに取り組んでいた実装すべきす内容べ規制が厳しいき • Statistical

    feature を試したい入れれば早くなるれてな回答がありそうい • 早くなるが、トラ期の段階でに取り組んでいた選択する必要がある肢を狭めているを試したい狭めているめている クラス間で長さが近いものをさの違い分布が異なるが異なる(実行時間な回答がありそうる → バッチ内クラス比べ規制が厳しいが偏るる → 精度悪化 な回答がありそうの違いでやるべ規制が厳しいきでな回答がありそうい タスクに取り組んでいたよっては作業系パートありかもしれな回答がありそう いが、影響を慎重に検討すを試したい慎重みの指数加重移に取り組んでいた検討する必要す内容る必要 がある バッチ内 Insincere 比べ規制が厳しい率の分布の違い分布が異なる
  18. Quora Insincere Questions Classification まとめ • Local CV • F1

    と AUC を試したいみる。全て AUC 重みの指数加重移視 • 閾値が必要がいるの違いで Tr,Dev, Val の違い 3 分割 • モデル構造が定するまった理由ら 2 分割 • 前処理: 公開されていたもの Kernel の違い利用 • モデル構造の違い安定する化: EMA • Embedding の違いアを計算するンサンブル構造: PME • 実行しスコアを計算時間: 類似長さが近いものをを試したいバッチに取り組んでいた は作業系パート効く く  EMA の違い更新した回数を試したい減った原因のらす内容 • Local CV を試したい信頼すればうまくいす内容れば学習がスピードうまくいくこともある
  19. いつでも参加した理由可能 今と昔の違い違いい First Submission Deadline (2013/9 〜 ) • 終了するまでに数時の違い

    1 週間前 • 予測はを試したい提出す内容る必要あり • マル構造チアを計算するカウント対策? Entry Deadline (2016/9 〜 ) • ル構造ール構造を試したい accept す内容るだけ
  20. Submission Limits の違い主流 今と昔の違い違いい 1日: 2 → 5 最終: 5

    → 2 2013 年後ずっとフリータ半ごろ変化ごろ変化変えて化 2014: SMS 認証開されていたもの始 • マル構造チアを計算するカウント対策
  21. 今と昔の違い違いい Ideas for competition changes to reduce cheating / multiple

    accounts 出た理由案 • コンペ概要終盤のエントリー禁の違いエントリー禁止 • LB の違いスコアを計算する表示を試したい3桁にする(当時5に取り組んでいたす内容る(もりとき つか当時5桁にする(当時5) • 2−ステージコンペ概要 • 1なので予測は 提出1なので予測は ドル構造 • 電話やクレジットカードに取り組んでいたよる認証 2012-10-16
  22. コンペ概要数、チーム数が数(もりとき つか 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 参加した理由チーム数が数
  23. コンペ概要数、チーム数が数(もりとき つか 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
  24. コンペ概要数、チーム数が数(もりとき つか 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
  25. 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
  26. 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
  27. 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 全ててカテゴリ変えて数
  28. 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 リソース 上は司 従業員の役割の違い役に立った手法割
  29. Amazon.com - Employee Access Challenge Forum に取り組んでいた投稿されたものされた理由もの違い • 元変えて数、 2

    次、 3 次組んでいたみ合わせ変数から変えて数から Greedy forward selection • ロジスティック回帰で評価しているで評価している • 単純だがスコアが高だがスコアを計算するが高かった理由の違いで非常と同じに取り組んでいた人気があったがあった理由 • 5 次まで使える。全てっている人も
  30. Amazon.com - Employee Access Challenge 2 位の違い人(もりとき つか決定する木ベースのモデルベースの違いモデル構造用) • Count feature

    • カテゴリの違い頻度 • Target encoding • shrank and randomized leave-one-out average actual for categorical variables (もりとき つかコード内コメント)
  31. Amazon.com - Employee Access Challenge 2 位の違い人(もりとき つか決定する木ベースのモデルベースの違いモデル構造用) • Count feature

    • カテゴリの違い頻度 • Target encoding • shrank and randomized leave-one-out average actual for categorical variables (もりとき つかコード内コメント) CatBoost で出来ます出来ますます
  32. 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
  33. 賞金額 ( ドル構造 ) 開されていたもの始年 付録 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
  34. 年月から 提出期の段階で間 チーム数が数 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 短期の段階で間コンペ概要 付録