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
760
prophetの一般化線形モデルへの拡張
2018/08/10 第8回 釧路高専 若手理・工学セミナーでの、羽鳥の講演資料になります
Recruit Technologies
August 10, 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
複雑なState管理からの脱却
sansantech
PRO
1
150
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
The Rise of LLMOps
asei
7
1.7k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
100
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
Platform Engineering for Software Developers and Architects
syntasso
1
520
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
Featured
See All Featured
Faster Mobile Websites
deanohume
305
30k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Designing for humans not robots
tammielis
250
25k
Code Reviewing Like a Champion
maltzj
520
39k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Being A Developer After 40
akosma
87
590k
KATA
mclloyd
29
14k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Visualization
eitanlees
145
15k
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.