Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
⽬的変数が異なるモデル間の stackingモデルについて
Search
Recruit Technologies
March 12, 2018
Technology
0
420
⽬的変数が異なるモデル間の stackingモデルについて
2018/03/08 経営情報学会「春季全国研究発表大会」での、羽鳥の発表資料になります
Recruit Technologies
March 12, 2018
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
640
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
11k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
41k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
50k
TypeScript Bootcamp 2020
rtechkouhou
9
45k
Other Decks in Technology
See All in Technology
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
260
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
440
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
160
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
0
120
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
910
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.5k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Designing Experiences People Love
moore
138
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
KATA
mclloyd
29
14k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
What's in a price? How to price your products and services
michaelherold
243
12k
Designing the Hi-DPI Web
ddemaree
280
34k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Transcript
⽬的変数が異なるモデル間の stackingモデルについて 株式会社リクルートテクノロジーズ ⽻⿃ 冬星 (C) Recruit Technologies Co.,Ltd. All
rights reserved. 1
アジェンダ • 背景と課題 • リクルートの事業内容について • 予測モデルについて • 関連研究 •
n-fold stakingモデル • 提案⼿法 • ⽬的変数が異なるモデル間のstackingモデル • 数値実験 • まとめ (C) Recruit Technologies Co.,Ltd. All rights reserved. 2
リクルートの事業内容について ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児 旅⾏
ビジネス⽀援 ⽣活/地域情報 グルメ・美容 ライフスタイル領域 (C) Recruit Technologies Co.,Ltd. All rights reserved. 4
リクルートの事業内容について ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児 旅⾏
ビジネス⽀援 ⽣活/地域情報 グルメ・美容 ライフスタイル領域 選択・意思決定を⽀援する情報サービスを提供し、 「まだ、ここにない、出会い。」を実現する。 (C) Recruit Technologies Co.,Ltd. All rights reserved. 4
• リクルートテクノロジーズは、リクルートグループのIT・ネット マーケティング領域のテクノロジー開発を担う会社 • その中でもデータイノベーション推進部はデータにまつわるソ リューションで事業課題を解決している (C) Recruit Technologies Co.,Ltd.
All rights reserved. 5 リクルートの事業内容について
様々な予測モデルが⽇々運⽤されている • 広告コストを最適配分したい:応募数予測モデル " 広告コスト, ⼟⽇フラグ, 当⽉祝⽇数, ⋯ ⟹ 応募数
• 3カ年計画を精緻に策定したい:⻑期売上予測モデル & 昨々々年売上, 昨々々年予約数, 来⽉予約数 ⋯ ⟹ 3年後売上 • ログインなしユーザーの属性を判定したい:属性判定モデル ( 閲覧時間(ページ),閲覧時間(ページ), 訪問時間帯 ⋯ ⟹ 性別 • あるactionに対してユーザーのCVを予測したい:CV予測モデル - " , & , ⋯ ⟹ (C) Recruit Technologies Co.,Ltd. All rights reserved. 6
CV予測モデル-概要 •action : 施策 • ディスプレイ広告の投下、求⼈情報誌への掲載など、こちら の⾏動 •CV : コンバージョン
• クリック、会員登録、応募など、ユーザーがこちらが⽬指す 何かを達成すること • 以下CVと略す (C) Recruit Technologies Co.,Ltd. All rights reserved. 7
CV予測モデル-概要 (C) Recruit Technologies Co.,Ltd. All rights reserved. 8 action:
広告配信 CV: 購⼊ action: 雑誌掲載 CV: 応募 action: メール配信 CV:開封
CV予測モデル-特徴 「精度⽬標」と「⽬的変数における時間制約」 (C) Recruit Technologies Co.,Ltd. All rights reserved. 9
CV予測モデル-特徴 「精度⽬標」と「⽬的変数における時間制約」 (C) Recruit Technologies Co.,Ltd. All rights reserved. 10
• ビジネス要件として、限界まで精度向上を⽬指すことがしばしばある。 • ⼤規模システムに実装するロジックとなると、1%の精度改善が⼤き な⾦額規模に跳ね返ってくる。 • その結果精度⽬標はしばしば厳しいものに
CV予測モデル-特徴 「精度⽬標」と「⽬的変数における時間制約」 (C) Recruit Technologies Co.,Ltd. All rights reserved. 11
• CVの「有無」を当てるだけではなく、「それがいつ起こるのか」を当て ることも同時に求められる
CV予測モデル-時間制約が求められる例 • モデル概要:広告の⽂⾔、時給、勤務地などから応募があるかを予 測するモデル • 使い⽅:顧客が時給などを変えつつ、応募有無の変化をシミュレー トする • ×「この時給ならいつかは応募がありそうです」 •
◯「この時給なら1週間以内に応募がありそうです」 (C) Recruit Technologies Co.,Ltd. All rights reserved. 12
CV予測モデル-⽬的変数の時間制約 • 求⼈誌の掲載モデル • action : ある店舗の求⼈情報が求⼈誌に掲載開始 • CV :
雑誌を⾒た⼈が応募してくる • CVの「有無」と「時期」で下記のように整理できる (C) Recruit Technologies Co.,Ltd. All rights reserved. 13 期間内 期間外 CV有り 1週間以内にCV 1週間以降にCV CV無し 1週間以内に掲載落ち (他社CV) 1週間以降に掲載落ち (他社CV)
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
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
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
CV予測モデル-⽬的変数の時間制約 • 単純なCV有無よりは複雑な構造を持つ⽬的変数となる • CV有無を⽬的変数とするとauc0.8を超えるモデルでも、時 間制約を⼊れて⽬的変数を構成するとauc0.6を下回る事例 も・・・ üこのような時間制約があるCVの予測難度は⾼い。しかし、ビ ジネス要件で⾼精度が求められることも多い。 (C)
Recruit Technologies Co.,Ltd. All rights reserved. 17
CV予測モデル • 課題: • ⾼難度な、時間制約があるCVを予測する問題に対しても、 ⾼精度なモデルを構築する • ⼿段: 1. 特徴量・アルゴリズムを作り込む
2. アンサンブルモデルを使う (C) Recruit Technologies Co.,Ltd. All rights reserved. 18
CV予測モデル • 課題: • ⾼難度な、時間制約があるCVを予測する問題に対しても、 ⾼精度なモデルを構築する • ⼿段: 1. 特徴量・アルゴリズムを作り込む
2. アンサンブルモデルを使う (C) Recruit Technologies Co.,Ltd. All rights reserved. 19 • 特徴量を作り込んだり、アルゴリズムを検討することが第⼀にするべき こと • これで精度⽬標を達成できればそれでよし
CV予測モデル • 課題: • ⾼難度な、時間制約があるCVを予測する問題に対しても、 ⾼精度なモデルを構築する • ⼿段: 1. 特徴量・アルゴリズムを作り込む
2. アンサンブルモデルを使う (C) Recruit Technologies Co.,Ltd. All rights reserved. 20 • それでも精度⽬標を達成できない場合には、複数のモデルのアンサンブ ルで精度向上を狙えることもある • 劇的な精度向上というよりも、限界まで特徴量・アルゴリズムを詰めた あとの最後のひと押し
アンサンブルについて • 複数の学習器を組み合わせることで予測誤差を⼩さくする⼿法を アンサンブルという • 以下の⼿法が有名 • 平均や多数決を取るvoting • 前段の学習器の誤りを反映して次段の学習器を作成する
boosting • 初段の学習器の出⼒結果を次段の⼊⼒結果とするstacking • 代表的なアルゴリズムはn-fold stacking • 次スライド以下でアルゴリズム内容を説明 (C) Recruit Technologies Co.,Ltd. All rights reserved. 21
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: 学習には⽤いず、 最後の精度検証に⽤ いるデータ
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
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
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
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
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
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
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
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
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
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
n-fold stackingの利点と問題点 • 利点 • 初段のモデルによって⾮線形性が緩和される • 説明変数の[0, 1]への変換 •
精度向上 • 問題点 • 初段のモデルの精度が悪いと次段も良くならない • 本研究で対象とする時間制約付きCV予測問題は、初段 の予測精度が悪いことがしばしばある • そのためstackingをしても精度が上がらないことがある (C) Recruit Technologies Co.,Ltd. All rights reserved. 33
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」の個体差はそれほどない
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. 得られたモデルの予測精度が低いと、 説明変数として有効に機能せず、 全体の精度向上に寄与しない
提案⼿法-⽬的変数が異なるモデル間のstackingモデル • これらの問題点を踏まえ、「⽬的変数が異なるモデル間のstacking モデル」を提案する • 概要 • 初段⽬的変数:CV有無 • 次段⽬的変数:時間制約付きCV有無
(C) Recruit Technologies Co.,Ltd. All rights reserved. 36 )(0 )( )(0 1 )( 1 )(0 )( )(0 1 )( 1 ・時間制約付きCV有無 ・CV有無
提案⼿法-⽬的変数が異なるモデル間の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
提案⼿法-期待される効果 • stackingした特徴量の意味が変わる • 既存⼿法ではstackingした特徴量はそれ単独で時間制約付き CVを当てようとするもの → ⽬的変数に対しては直接的だが、確度が低い • 提案⼿法ではstackingした特徴量はCV有無だけを当てよう
とするもの → ⽬的変数に対しては間接的だが、確度が⾼い • 提案⼿法で作成した特徴量は、直接的に⽬的変数を予測するも のでは無いものの、⼀特徴量としてはある程度有効であること が予想される (C) Recruit Technologies Co.,Ltd. All rights reserved. 38
数値実験-使⽤したデータ 以下では数値実験の結果を⽰す • 使⽤データ • ⾏数:186万⾏ • 列数:151列 • 前処理(質的変数):one-hot
encoding • 前処理(⽋損処理):0を代⼊し、⽋損有無をフラグ変数化 • 時間制約付きCVを⽬的変数として持つデータ • 単純なn-fold stackingは効果なし • 単⼀モデルと提案⼿法の精度⽐較を⾏う • 評価指標:auc (C) Recruit Technologies Co.,Ltd. All rights reserved. 39
数値実験-モデル詳細 • 提案⼿法の初段で使⽤するアルゴリズム • ⽊のモデルと線形モデルの代表的なアルゴリズムを選定 (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)
数値実験-モデル詳細 • 次段で使⽤するアルゴリズム • できるだけ多様なアルゴリズムを選定 • ナイーブベイズ • ロジスティック回帰 •
SVM • ランダムフォレスト • XGBoost (C) Recruit Technologies Co.,Ltd. All rights reserved. 41
数値実験-結果 (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の精度向上が⼤きい
まとめ • 企業における予測モデルのうち、CV予測問題は精度向上が課題 になる場合がある。 • 精度向上のためにアンサンブルを⾏うこともあるが、時間制約 が付いたCVの精度向上は厳しいことも多い。 • 時間制約付きCV予測問題に対して、⽬的変数が異なるモデル間 のstackingモデルを提案した。
• 実データを⽤いて数値実験を⾏い、複数のアルゴリズムにおい て提案⼿法の有効性が確認された。 (C) Recruit Technologies Co.,Ltd. All rights reserved. 43