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
870
prophetの一般化線形モデルへの拡張
2018/08/10 第8回 釧路高専 若手理・工学セミナーでの、羽鳥の講演資料になります
Recruit Technologies
August 10, 2018
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
700
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
12k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
42k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
51k
TypeScript Bootcamp 2020
rtechkouhou
9
46k
Other Decks in Technology
See All in Technology
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
190
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
150
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
280
Lambda Web Adapterについて自分なりに理解してみた
smt7174
3
120
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
400
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
350
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
15
5.3k
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
470
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
120
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
310
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
Rails Girls Zürich Keynote
gr2m
94
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Building an army of robots
kneath
306
45k
Writing Fast Ruby
sferik
628
61k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
220
The Cult of Friendly URLs
andyhume
79
6.5k
BBQ
matthewcrist
89
9.7k
How to train your dragon (web standard)
notwaldorf
94
6.1k
How STYLIGHT went responsive
nonsquared
100
5.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Building Adaptive Systems
keathley
43
2.6k
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.