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
prophetの一般化線形モデルへの拡張
Search
Recruit Technologies
August 10, 2018
Technology
0
650
prophetの一般化線形モデルへの拡張
2018/08/10 第8回 釧路高専 若手理・工学セミナーでの、羽鳥の講演資料になります
Recruit Technologies
August 10, 2018
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
560
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
10k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.4k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.8k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
40k
【RTC新人研修 】 TPS
rtechkouhou
1
39k
Android Boot Camp 2020
rtechkouhou
0
40k
HTML/CSS
rtechkouhou
10
48k
TypeScript Bootcamp 2020
rtechkouhou
9
44k
Other Decks in Technology
See All in Technology
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
320
インシデントレスポンスのライフサイクルを廻すポイントってなに / Pinpoints of Incidentresponse Lifecycle for Operation
sakaitakeshi
1
300
元インフラエンジニアに成る / Human Resources to Human Relations
bobtani
3
760
Tebiki株式会社 エンジニア採用資料
tebiki
0
4.1k
コンテナセキュリティの基本と脅威への対策
kyohmizu
3
690
AIQ株式会社 エンジニア向け会社紹介資料
aiqlab
0
370
強みを伸ばすキャリアデザイン
yug1224
0
200
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
160
エンタープライズ環境下での Active Directory の運用 TIPS
tamaiyutaro
1
1.5k
Tableau事例紹介 / Tableau Case Study of Eureka
kazuya_araki_tokyo
1
170
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
1
190
4年前、あるじゃん老害エンジニアLT合戦に登壇、米国西海岸コンピュータ歴史博物館体験記の続編
toshi_atsumi
0
190
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
305
41k
Unsuck your backbone
ammeep
662
57k
Infographics Made Easy
chrislema
237
18k
Visualization
eitanlees
135
14k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Agile that works and the tools we love
rasmusluckow
324
20k
Faster Mobile Websites
deanohume
297
30k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
A Modern Web Designer's Workflow
chriscoyier
689
190k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
A designer walks into a library…
pauljervisheath
199
23k
BBQ
matthewcrist
80
8.7k
Transcript
株式会社リクルートテクノロジーズ データイノベーション推進部 データサイエンスG ⽻⿃ 冬星 prophetの ⼀般化線形モデルへの 拡張
アジェンダ lリクルートのビジネスについて l時系列予測について lprophetについて l⼀般化線形モデルへの拡張 lまとめ (C) Recruit Technologies Co.,
Ltd. All rights reserved. 2
ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児 旅⾏ ビジネス⽀援
⽣活/地域情報 グルメ・美容 ライフスタイル領域 選択・意思決定を⽀援する情報サービスを提供し、 「まだ、ここにない、出会い。」を実現する。 リクルートの事業内容について
リクルートテクノロジーズの事業内容について (C) Recruit Technologies Co., Ltd. All rights reserved. 4
, n c R T I R I T I T , H e d e Recruit Global Staffing B.V. . e RGF OHR USA, Inc. c &
時系列予測について • 時系列の予測は企業にとって重要なテーマであ る。 • ex: ‒ ⾃社の3カ年売上予測 ‒ 個社ごとの⽉内受注量予測
‒ 広告コストに対する1時間以内のコンバージョン量予 測など • 精緻な予測ができれば、ビジネスへの影響も⼤ きい (C) Recruit Technologies Co., Ltd. All rights reserved. 5
時系列データは難しい • トレンド、季節性、イベントの効果を推定して予測す るのは⼈には不可能 • また散発的なイベントが起こったり、トレンドが変化 したりといった時系列データ特有の難しさもある (C) Recruit Technologies
Co., Ltd. All rights reserved. 6
時系列データの例 • Google Trendsの「釧路湿原」の検索数 • x軸:時間 • y軸:[0, 100]のトレンド指標 7
(C) Recruit Technologies Co., Ltd. All rights reserved.
重回帰で予測した例 • 年、⽉、⽇、経過⽇数などを特徴量化し、重回 帰でfitting • 厳しい結果 8 (C) Recruit Technologies
Co., Ltd. All rights reserved.
prophetで予測した例 • ほぼデフォルトセッティングだが、いい感じに 当てはまっている • 季節性・トレンドも⾃動的に推定してくれる 9 (C) Recruit Technologies
Co., Ltd. All rights reserved.
prophetの紹介 • prophet • facebookが開発した時系列予測のライブ ラリ • R or python実装がオープンソースとして
公開されている ‒ https://github.com/facebook/prophet • 内部ロジックも論⽂として公開されている ‒ https://peerj.com/preprints/3190.pdf (C) Recruit Technologies Co., Ltd. All rights reserved. 10
モデルの特徴 11 (C) Recruit Technologies Co., Ltd. All rights reserved.
0 100 200 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 10 20 30 40 1 2015 4 2015 7 2015 10 2015 1 2016 ds y + +
モデルの特徴 12 (C) Recruit Technologies Co., Ltd. All rights reserved.
0 100 200 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 10 20 30 40 1 2015 4 2015 7 2015 10 2015 1 2016 ds y + + • 時系列データをトレンド、季節性、イベ ントで表現 • 既存⼿法では難しい⾮線形のトレンド、 季節性を表現可能 • 他案件でも既存モデルよりも⾼精度 トレンド 季節性 イベント 時系列=
モデルの特徴 13 (C) Recruit Technologies Co., Ltd. All rights reserved.
0 100 200 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 10 20 30 40 1 2015 4 2015 7 2015 10 2015 1 2016 ds y + + トレンド 季節性 イベント 時系列=
変化点や上限値を含む複雑なトレンドを推定可能 14 (C) Recruit Technologies Co., Ltd. All rights reserved.
0e+00 5e+04 1e+05 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −1e+05 −5e+04 0e+00 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −0.50 −0.25 0.00 0.25 0.50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0.5 0.6 0.7 0.8 0.9 1.0 1 2015 4 2015 7 2015 10 2015 1 2016 ds y ୯ௐ૿Ճ ୯ௐݮগ ಼ ંΕઢ ্ݶ༗Γ 既 存 ⼿ 法 prophet º º
理論的背景 15 (C) Recruit Technologies Co., Ltd. All rights reserved.
piecewise logistic growth model • t : 時間(t = 1, ..., T) • k : 傾き • m : 切⽚ • δ : 変化点 piecewise linear growth model
理論的背景 16 (C) Recruit Technologies Co., Ltd. All rights reserved.
piecewise logistic growth model piecewise linear growth model • 要するに折れ線回帰 • 部分区間ごとに切⽚と傾きを推定している
釧路湿原トレンドデータの例 17 (C) Recruit Technologies Co., Ltd. All rights reserved.
• 過去データの80%を⽤いて等間隔にデータを分割 • 各区間でトレンドが変化しているか推定する
釧路湿原トレンドデータの例 18 (C) Recruit Technologies Co., Ltd. All rights reserved.
• トレンドの変化点を⾃動的に推定できている • 変化が微⼩な点は無視される
モデルの特徴 19 (C) Recruit Technologies Co., Ltd. All rights reserved.
0 100 200 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 10 20 30 40 1 2015 4 2015 7 2015 10 2015 1 2016 ds y + + トレンド 季節性 イベント 時系列=
季節性の推定は難しかった 20 (C) Recruit Technologies Co., Ltd. All rights reserved.
• かつては年・⽉・週・曜⽇・時間帯などの要素を職⼈が洗い出 し、全てのパターンを試す必要があった。
季節性の推定を⾃動的に⾏う 21 (C) Recruit Technologies Co., Ltd. All rights reserved.
季節性(⻑⽅形の波)の フーリエ級数による表現 • 季節性をsin, cosの波として表現 • 週と⽉と年の周期が重要 • 週周期: • ⼈の⾏動は曜⽇によって変わる (平⽇ or 休⽇) • 年周期: • ⼈の⾏動は季節によって変わる (⻑期休暇、繁忙期など)
季節性の推定を⾃動的に⾏う 22 (C) Recruit Technologies Co., Ltd. All rights reserved.
季節性(⻑⽅形の波)の フーリエ級数による表現 • 年間の波、週間の波を⾃動的に推定 • これまで職⼈がデータを観察し、表現して いた下記のような事象を⾃動推定可能 • 「⼟⽇は売上が増える」 • 「2, 8⽉は落ち込む」 • 「⽉曜に最⾼値を付けた後は緩やかに減少 し、⼟曜にかけて盛り返す」 • 職⼈芸が不要に
理論的背景 23 (C) Recruit Technologies Co., Ltd. All rights reserved.
Fourier series to provide a flexible model of periodic effects • t : 時間(t = 1, ..., T) • P : 周期 • P=7 : 1週間の季節性 • P=365.25 : 1年間の季節性 • N : 級数パラメータ • このNを⼤きくすればよりデータにfitするが、過学習 のリスクも増える
prophetで予測した例 • Nを⼤きくしすぎると、容易に過学習する ‒ P=400, N=5000とした際の例 ‒ ほぼ「データの読み上げ」のような予測になっている 24 (C)
Recruit Technologies Co., Ltd. All rights reserved.
prophetで予測した例 • Nを⼤きくしすぎると、容易に過学習する ‒ トレンドの推定もおかしなことになる 25 (C) Recruit Technologies Co.,
Ltd. All rights reserved.
prophetで予測した例 • prophetのデフォルトセッティングでも結構よく当ては まる ‒ 年周期の波はN=10 ‒ 週単位の波はN=3 26 (C)
Recruit Technologies Co., Ltd. All rights reserved.
モデルの特徴 27 (C) Recruit Technologies Co., Ltd. All rights reserved.
0 100 200 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 10 20 30 40 1 2015 4 2015 7 2015 10 2015 1 2016 ds y + + トレンド 季節性 イベント 時系列=
不定期に発⽣するイベントの効果を取り込みたい 28 (C) Recruit Technologies Co., Ltd. All rights reserved.
• Google Trendsのとある漫画の検索数 • x軸:時間 • y軸:[0, 100]のトレンド指標
不定期に発⽣するイベントの効果を取り込みたい 29 (C) Recruit Technologies Co., Ltd. All rights reserved.
• Google Trendsのとある漫画の検索数 • x軸:時間 • y軸:[0, 100]のトレンド指標 ΞχϝԽ(1ظ) өըԽ ΞχϝԽ(2ظ)
不定期に発⽣するイベントの効果を取り込みたい 30 (C) Recruit Technologies Co., Ltd. All rights reserved.
• イベントの効果が⼤きすぎて、まともにfittingできてい ない
特異なイベントの⽇付を指定するだけで効果を取り込み可能 イベント ⽇付 前⽇効果 後⽇効果 アニメ化 2013-05-01 0 3 アニメ化
2017-04-01 0 3 アニメ化 2018-07-01 0 3 映画化 2015-08-01 0 3 クリスマス 2013-12-25 -1 0 ⁝ ⁝ ⁝ ⁝ クリスマス 2017-12-25 -1 0 クリスマス 2018-12-25 -1 0 お盆 2013/08/15 -1 1 お盆 2014/08/15 -1 1 お盆 2015/08/13 -1 1 ⁝ ⁝ ⁝ ⁝
不定期に発⽣するイベントの効果を取り込みたい 32 (C) Recruit Technologies Co., Ltd. All rights reserved.
• イベントの効果を取り込んだことで、よく当てはまるよ うになった
⼀旦まとめ 33 (C) Recruit Technologies Co., Ltd. All rights reserved.
0 100 200 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 50 100 1 2015 4 2015 7 2015 10 2015 1 2016 ds y −50 0 50 1 2015 4 2015 7 2015 10 2015 1 2016 ds y 0 10 20 30 40 1 2015 4 2015 7 2015 10 2015 1 2016 ds y + + トレンド g(t) 季節性 s(t) イベント h(t) 時系列= y(t) • prophetはトレンド・季節性・イベント をそれぞれ時間の関数として表現してい る • 誤差項には正規分布が仮定されている + 誤差項
本⽇話したかったこと • prophetはトレンド・季節性・イベントを それぞれ時間の関数として表現している • () = () + ()
+ ℎ() + . ‒ これらは結局ただの回帰モデル ‒ GLM(⼀般化線形モデル)の枠組みに拡張でき るのでは? 34 (C) Recruit Technologies Co., Ltd. All rights reserved.
⼀般化線形モデル • 線形予測⼦ – = + • リンク関数 ‒ 線形予測⼦を変換する関数のこと
‒ 例えばデータが0以上をとるものなら、予測の ⽅程式も0以上になってほしい – log = + ⟺ = 9:;< • 誤差分布 ‒ 統計モデルが従う確率分布 ‒ 正規分布、⼆項分布、ポアソン分布etc... 35 (C) Recruit Technologies Co., Ltd. All rights reserved.
⼀般化線形モデル • 今回扱ったページビューのデータは正規分 布で扱うのは適当か? ‒ データの範囲は0以上 ‒ データが取る値は整数 36 (C)
Recruit Technologies Co., Ltd. All rights reserved. ༧ଌ͕0ҎԼʹ ͳͬͯ͠·͍ͬͯΔ
⼀般化線形モデル • ページビューのデータは下記のような性質 がある ‒ ⾮負 ‒ 整数 ‒ 範囲は[0,
∞) • ポアソン分布で扱うのが適当 ‒ ⾮負 ‒ 離散の確率分布 ‒ 37 (C) Recruit Technologies Co., Ltd. All rights reserved.
prophetでページビューデータを表現するには • ⼀般化線形モデルにprophetを当てはめる • 線形予測⼦ – = () + ()
+ ℎ() • リンク関数 – log = + ⟺ = 9:;< • 誤差分布 ‒ ポアソン分布 • このように定式化することで、より正確な ページビューデータのモデリングが可能に ‒ なるかもしれない(実装中) 38 (C) Recruit Technologies Co., Ltd. All rights reserved.
まとめ • データを利活⽤する企業にとって、⾼精度 な時系列予測は重要 • prophetはトレンド・季節性・イベントで データを表現することで、⾼精度な予測を 実現している – =
() + () + ℎ() • ⼀般化線形モデルの枠組みに当てはめるこ とで、さらに現実に即したモデリングが可 能となる可能性がある 39 (C) Recruit Technologies Co., Ltd. All rights reserved.