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

⽬的変数が異なるモデル間の stackingモデルについて

⽬的変数が異なるモデル間の stackingモデルについて

2018/03/08 経営情報学会「春季全国研究発表大会」での、羽鳥の発表資料になります

Recruit Technologies

March 12, 2018
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. アジェンダ • 背景と課題 • リクルートの事業内容について • 予測モデルについて • 関連研究 •

    n-fold stakingモデル • 提案⼿法 • ⽬的変数が異なるモデル間のstackingモデル • 数値実験 • まとめ (C) Recruit Technologies Co.,Ltd. All rights reserved. 2
  2. リクルートの事業内容について ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児 旅⾏

    ビジネス⽀援 ⽣活/地域情報 グルメ・美容 ライフスタイル領域 (C) Recruit Technologies Co.,Ltd. All rights reserved. 4
  3. リクルートの事業内容について ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児 旅⾏

    ビジネス⽀援 ⽣活/地域情報 グルメ・美容 ライフスタイル領域 選択・意思決定を⽀援する情報サービスを提供し、 「まだ、ここにない、出会い。」を実現する。 (C) Recruit Technologies Co.,Ltd. All rights reserved. 4
  4. 様々な予測モデルが⽇々運⽤されている • 広告コストを最適配分したい:応募数予測モデル " 広告コスト, ⼟⽇フラグ, 当⽉祝⽇数, ⋯ ⟹ 応募数

    • 3カ年計画を精緻に策定したい:⻑期売上予測モデル & 昨々々年売上, 昨々々年予約数, 来⽉予約数 ⋯ ⟹ 3年後売上 • ログインなしユーザーの属性を判定したい:属性判定モデル ( 閲覧時間(ページ),閲覧時間(ページ), 訪問時間帯 ⋯ ⟹ 性別 • あるactionに対してユーザーのCVを予測したい:CV予測モデル - " , & , ⋯ ⟹ (C) Recruit Technologies Co.,Ltd. All rights reserved. 6
  5. CV予測モデル-概要 •action : 施策 • ディスプレイ広告の投下、求⼈情報誌への掲載など、こちら の⾏動 •CV : コンバージョン

    • クリック、会員登録、応募など、ユーザーがこちらが⽬指す 何かを達成すること • 以下CVと略す (C) Recruit Technologies Co.,Ltd. All rights reserved. 7
  6. CV予測モデル-概要 (C) Recruit Technologies Co.,Ltd. All rights reserved. 8 action:

    広告配信 CV: 購⼊ action: 雑誌掲載 CV: 応募 action: メール配信 CV:開封
  7. CV予測モデル-特徴 「精度⽬標」と「⽬的変数における時間制約」 (C) Recruit Technologies Co.,Ltd. All rights reserved. 10

    • ビジネス要件として、限界まで精度向上を⽬指すことがしばしばある。 • ⼤規模システムに実装するロジックとなると、1%の精度改善が⼤き な⾦額規模に跳ね返ってくる。 • その結果精度⽬標はしばしば厳しいものに
  8. CV予測モデル-特徴 「精度⽬標」と「⽬的変数における時間制約」 (C) Recruit Technologies Co.,Ltd. All rights reserved. 11

    • CVの「有無」を当てるだけではなく、「それがいつ起こるのか」を当て ることも同時に求められる
  9. CV予測モデル-⽬的変数の時間制約 • 求⼈誌の掲載モデル • action : ある店舗の求⼈情報が求⼈誌に掲載開始 • CV :

    雑誌を⾒た⼈が応募してくる • CVの「有無」と「時期」で下記のように整理できる (C) Recruit Technologies Co.,Ltd. All rights reserved. 13 期間内 期間外 CV有り 1週間以内にCV 1週間以降にCV CV無し 1週間以内に掲載落ち (他社CV) 1週間以降に掲載落ち (他社CV)
  10. CV予測モデル-⽬的変数の時間制約 • モデルの⽬的変数(以下yとして表現)として設定されるのは単純なCV 有無だけではない (C) Recruit Technologies Co.,Ltd. All rights

    reserved. 14 期間内 期間外 CV有り 1週間以内にCV 1週間以降にCV CV無し 1週間以内に掲載落ち (他社CV) 1週間以降に掲載落ち (他社CV) y=1 • 単純な構造を持つ⽬的変数 y=0
  11. CV予測モデル-⽬的変数の時間制約 • モデルの⽬的変数(以下yとして表現)として設定されるのは単純なCV 有無だけではない (C) Recruit Technologies Co.,Ltd. All rights

    reserved. 15 期間内 期間外 CV有り 1週間以内にCV 1週間以降にCV CV無し 1週間以内に掲載落ち (他社CV) 1週間以降に掲載落ち (他社CV) • 単純な構造を持つ⽬的変数 y=1 y=0
  12. CV予測モデル-⽬的変数の時間制約 • モデルの⽬的変数(以下yとして表現)として設定されるのは単純なCV 有無だけではない • CVの有無に加えて、それが設定された期間内に発⽣したかも考慮す ることが多い (C) Recruit Technologies

    Co.,Ltd. All rights reserved. 16 期間内 期間外 CV有り 1週間以内にCV 1週間以降にCV CV無し 1週間以内に掲載落ち (他社CV) 1週間以降に掲載落ち (他社CV) y=1 y=0 • 複雑な構造を持つ⽬的変数 y=0
  13. CV予測モデル • 課題: • ⾼難度な、時間制約があるCVを予測する問題に対しても、 ⾼精度なモデルを構築する • ⼿段: 1. 特徴量・アルゴリズムを作り込む

    2. アンサンブルモデルを使う (C) Recruit Technologies Co.,Ltd. All rights reserved. 19 • 特徴量を作り込んだり、アルゴリズムを検討することが第⼀にするべき こと • これで精度⽬標を達成できればそれでよし
  14. CV予測モデル • 課題: • ⾼難度な、時間制約があるCVを予測する問題に対しても、 ⾼精度なモデルを構築する • ⼿段: 1. 特徴量・アルゴリズムを作り込む

    2. アンサンブルモデルを使う (C) Recruit Technologies Co.,Ltd. All rights reserved. 20 • それでも精度⽬標を達成できない場合には、複数のモデルのアンサンブ ルで精度向上を狙えることもある • 劇的な精度向上というよりも、限界まで特徴量・アルゴリズムを詰めた あとの最後のひと押し
  15. アンサンブルについて • 複数の学習器を組み合わせることで予測誤差を⼩さくする⼿法を アンサンブルという • 以下の⼿法が有名 • 平均や多数決を取るvoting • 前段の学習器の誤りを反映して次段の学習器を作成する

    boosting • 初段の学習器の出⼒結果を次段の⼊⼒結果とするstacking • 代表的なアルゴリズムはn-fold stacking • 次スライド以下でアルゴリズム内容を説明 (C) Recruit Technologies Co.,Ltd. All rights reserved. 21
  16. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 教師データをcross validationのように分割する(この例だと3-fold) (C) Recruit Technologies Co.,Ltd. All rights reserved. 22 training data: 学習に⽤いるデータ holdout: 学習には⽤いず、 最後の精度検証に⽤ いるデータ
  17. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 ⼀つのfoldを除いて学習し、初段モデルをたくさんつくる(コンペだと100以上作ることも珍しくない) 学習 モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-2 rf モデル1-1 svm (C) Recruit Technologies Co.,Ltd. All rights reserved. 23
  18. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 取り除いておいたfoldの説明変数を初段モデルに投⼊し、予測値を算出する 学習 モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-2 rf モデル1-1 svm 予測 モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm 予測値1-2 rf 予測値1-1 svm (C) Recruit Technologies Co.,Ltd. All rights reserved. 24
  19. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 取り除いておいたfoldの説明変数を初段モデルに投⼊し、各モデルの予測値を新たな説明変数とする この例だと6つの変数が増える 予測値1-2 rf 予測値1-1 svm 予測値1-6 xgb … (C) Recruit Technologies Co.,Ltd. All rights reserved. 25
  20. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 他のfoldについても同じように予測値を算出する 予測値1-2 rf 予測値1-1 svm 予測値1-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値3-2 rf 予測値3-1 svm 予測値3-6 xgb … (C) Recruit Technologies Co.,Ltd. All rights reserved. 26
  21. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 holdoutについても同じように予測値をくっつけたい 予測値1-2 rf 予測値1-1 svm 予測値1-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値3-2 rf 予測値3-1 svm 予測値3-6 xgb … ? (C) Recruit Technologies Co.,Ltd. All rights reserved. 27
  22. holdout holdout さっき学習したモデルにholdoutを投⼊して、予測値を算出する モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1

    svm モデル1-2 rf モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル2-2 rf モデル2-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル3-2 rf モデル3-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm 予測値1-2 rf 予測値1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm 予測値2-2 rf 予測値2-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm 予測値3-2 rf 予測値3-1 svm 学習済みモデル群 (C) Recruit Technologies Co.,Ltd. All rights reserved. 28
  23. holdout holdout foldの分だけ、予測値が出て来る→平均をとって⼀つにする 予測データ群 予測値 h1-2 rf 予測値 h1-1 svm

    予測値 h1-6 xgb … 予測値 h2-2 rf 予測値 h2-1 svm 予測値 h2-6 xgb … 予測値 h3-2 rf 予測値 h3-1 svm 予測値 h3-6 xgb … 予測値 h-2 rf 予測値 h-1 svm 予測値 h-6 xgb … モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル2-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル1-1 svm モデル3-1 svm (C) Recruit Technologies Co.,Ltd. All rights reserved. 29
  24. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 完成したデータセットの様⼦ 予測値1-2 rf 予測値1-1 svm 予測値1-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値h-2 rf 予測値h-1 svm 予測値h-6 xgb … (C) Recruit Technologies Co.,Ltd. All rights reserved. 30
  25. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 完成したデータセットを次段のモデルで学習 予測値1-2 rf 予測値1-1 svm 予測値1-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値h-2 rf 予測値h-1 svm 予測値h-6 xgb … 次段のモデルで学習 (C) Recruit Technologies Co.,Ltd. All rights reserved. 31
  26. fold 1 fold 2 fold 3 y1 y2 y3 x1

    training data holdout holdout x2 x3 学習した次段モデルで予測 予測値1-2 rf 予測値1-1 svm 予測値1-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値2-2 rf 予測値2-1 svm 予測値2-6 xgb … 予測値h-2 rf 予測値h-1 svm 予測値h-6 xgb … 次段のモデルで学習 次段のモデルで予測 予測値 (C) Recruit Technologies Co.,Ltd. All rights reserved. 32
  27. n-fold stackingの利点と問題点 • 利点 • 初段のモデルによって⾮線形性が緩和される • 説明変数の[0, 1]への変換 •

    精度向上 • 問題点 • 初段のモデルの精度が悪いと次段も良くならない • 本研究で対象とする時間制約付きCV予測問題は、初段 の予測精度が悪いことがしばしばある • そのためstackingをしても精度が上がらないことがある (C) Recruit Technologies Co.,Ltd. All rights reserved. 33
  28. fold 1 y1 (時間制約 付きCV) x1 時間制約付きCV予測問題における n-fold stacking 予測値1-2

    rf 予測値1-1 svm 予測値1-6 xgb … (C) Recruit Technologies Co.,Ltd. All rights reserved. 34     )(0 )(   )(0 1 )( 1 1. ⽬的変数は、「期間内にCVしたか否か」 • 問題としては難しい • 「CV有無」は個体差が結構あるが、「30⽇⽬に CV」と「31⽇⽬にCV」の個体差はそれほどない
  29. fold 1 y1 (時間制約 付きCV) x1 時間制約付きCV予測問題における n-fold stacking 予測値1-2

    rf 予測値1-1 svm 予測値1-6 xgb … (C) Recruit Technologies Co.,Ltd. All rights reserved. 35 2. 得られたモデルの予測精度が低いと、 説明変数として有効に機能せず、 全体の精度向上に寄与しない
  30. 提案⼿法-⽬的変数が異なるモデル間のstackingモデル (C) Recruit Technologies Co.,Ltd. All rights reserved. 37 

       )(0 )(   )(0 1 )( 1 初段の⽬的変数 : 時間制約付きCV 次段の⽬的変数: 時間制約付きCV n-fold stacking(既存⼿法)     )(0 )(   )(0 1 )( 1 特徴量化 初段の⽬的変数 : 時間制約無しCV 次段の⽬的変数: 時間制約付きCV 提案⼿法     )(0 )(   )(0 1 )( 1 特徴量化     )(0 )(   )(0 1 )( 1
  31. 提案⼿法-期待される効果 • stackingした特徴量の意味が変わる • 既存⼿法ではstackingした特徴量はそれ単独で時間制約付き CVを当てようとするもの → ⽬的変数に対しては直接的だが、確度が低い • 提案⼿法ではstackingした特徴量はCV有無だけを当てよう

    とするもの → ⽬的変数に対しては間接的だが、確度が⾼い • 提案⼿法で作成した特徴量は、直接的に⽬的変数を予測するも のでは無いものの、⼀特徴量としてはある程度有効であること が予想される (C) Recruit Technologies Co.,Ltd. All rights reserved. 38
  32. 数値実験-使⽤したデータ 以下では数値実験の結果を⽰す • 使⽤データ • ⾏数:186万⾏ • 列数:151列 • 前処理(質的変数):one-hot

    encoding • 前処理(⽋損処理):0を代⼊し、⽋損有無をフラグ変数化 • 時間制約付きCVを⽬的変数として持つデータ • 単純なn-fold stackingは効果なし • 単⼀モデルと提案⼿法の精度⽐較を⾏う • 評価指標:auc (C) Recruit Technologies Co.,Ltd. All rights reserved. 39
  33. 数値実験-モデル詳細 • 提案⼿法の初段で使⽤するアルゴリズム • ⽊のモデルと線形モデルの代表的なアルゴリズムを選定 (C) Recruit Technologies Co.,Ltd. All

    rights reserved. 40 アルゴリズム ハイパーパラメータ XGBoost learning rate = 0.01 XGBoost learning rate = 0.06 XGBoost learning rate = 0.1 XGBoost learning rate = 0.3 Elastic Net α=0 (Ridge) Elastic Net α=0.5 Elastic Net α=1 (lasso)
  34. 数値実験-結果 (C) Recruit Technologies Co.,Ltd. All rights reserved. 42 アルゴリズム

    ⼿法 validationスコア holdoutスコア ナイーブベイズ 単⼀モデル 0.6166 0.6088 ナイーブベイズ 提案⼿法 0.6434 0.6417 ロジスティック回帰 単⼀モデル 0.6849 0.6769 ロジスティック回帰 提案⼿法 0.6867 0.6798 SVM 単⼀モデル 0.6889 0.68 SVM 提案⼿法 0.6928 0.6853 ランダムフォレスト 単⼀モデル 0.6869 0.6789 ランダムフォレスト 提案⼿法 0.6894 0.6827 XGBoost 単⼀モデル 0.6987 0.6884 XGBoost 提案⼿法 0.695 0.6862 • XGBoost以外は精度向上効果あり • ナイーブベイズは特に⼤きく向上 • ランダムフォレストは特にholdoutの精度向上が⼤きい