予測のためのDeep Learning
確率的予測から Deep Learning へ
この第 5 世代の約 18 か月前、Lokad は第 4 世代の予測技術を導入しました。これは本物の確率的予測を実現した最初の世代でした。これは重要でした。なぜなら supply chain のコストは、需要が予想より大きく外れる統計的な極端値に集中するからです。従来の日次、週次、月次の予測は平均や中央値に注目しがちで、こうした極端値をほとんど捉えられません。その結果、十分な財務成果を生まないことが少なくありません。
第 5 世代はその基盤を捨てませんでした。むしろ確率的予測を受け入れ、前世代で得た知見の上に構築されました。その設計は、当時まだ比較的新しかった machine learning の一分野、deep learning に基づいていました。supply chain では、予測精度の向上はそのままサービス向上、実行速度の改善、在庫リスクの低減につながります。
ある意味では偶然に、deep learning は構造的に確率的予測と強く整合していました。この方向性はもともと supply chain 由来ではありませんでしたが、適合性は非常に高いものでした。Deep learning の手法は、確率論的・ベイズ的な最適化の見方を好み、クロスエントロピーのような指標を用います。これらの指標は、stochastic gradient descent に必要な大きな勾配を生み出し、現代的な deep learning を成立させるアルゴリズムの土台になっています。
Supply chain において、deep learning の数学的基盤は実際の業務要件と驚くほどよく整合しています。
人工知能ブームのその先
実務の世界で deep learning によって支えられた人工知能は、2017 年の大きな流行語でした。約束は野心的で魅力的でしたが、多くは曖昧でもありました。Lokad の視点では、企業向け AI の多くは期待に応えられていませんでした。Supply chain の課題をゼロから解くために、世界水準の deep learning チームと十分な資金を同時に用意できた企業はごくわずかでした。
このリリースによって、Lokad は AI グレードの予測技術を、十分にデジタル化された企業であれば利用できるものにしました。システムは引き続き supply chain の履歴データに依存していましたが、顧客側に deep learning の専門知識は必要ありませんでした。多くの enterprise AI 製品と異なり、Lokad は手作業の feature engineering に依存していませんでした。既存の Lokad 利用企業にとって、従来の確率的エンジンから deep learning への移行は、ほぼシームレスなものとして設計されていました。
その結果、Lokad は、小規模な ecommerce 事業者から、数千拠点・数百万 SKU を抱える大規模な supply chain ネットワークまで対応できる、ターンキー型の AI グレード予測技術を提供する先駆的なソフトウェア企業の一つとなりました。
GPU computing の時代
一方で、ごく小さなデータセットでは、この第 5 世代エンジンの方がやや遅く、数分余計にかかることもありましたが、実務上はほとんど問題になりませんでした。
新製品投入と販促
第 5 世代エンジンは、特に新製品投入と販促という難易度の高い予測状況で大きな改善をもたらしました。Lokad の見方では、新製品投入は難しいとはいえ、販促よりは少し扱いやすい課題でした。その違いは主にデータ品質にあります。販促データは、適切な品質管理プロセスが整うまでは、発売データよりもノイズが多く信頼性が低い傾向があります。
ファッションブランドにとって、deep learning は特に有望でした。なぜなら新製品投入が売上の大半を占め、さらに色やサイズのバリエーションによって予測対象 SKU 数が大きく膨らむからです。
予測 FAQ
どのような予測モデルを使っていますか?
私たちの deep forecasting engine は、deep learning の原理に基づく単一モデルに依存していました。古典的な統計モデルとは異なり、このモデルは数千万規模の学習可能パラメータを持ち、当時の最も複雑な非 deep machine learning モデルのおよそ 1,000 倍に相当しました。Deep learning は random forests や gradient-boosted trees のような古い手法を大きく上回りました。これらの手法ですら、Box-Jenkins、ARIMA、Holt-Winters、指数平滑法といった古典的な時系列手法をすでに上回っていました。
予測ミスから学習しますか?
はい。Deep learning モデルを生成する統計的トレーニング工程は、Lokad が保有するすべての履歴データを活用します。この履歴はバックテストによって利用されます。利用可能な履歴が多いほど、モデルは自らの誤りから学ぶ機会を多く得られます。
季節性、トレンド、曜日効果を扱えますか?
はい。エンジンは一般的な周期性だけでなく、しばしば業務上の重要性が過小評価される準周期も扱います。Deep learning モデルは複数時系列アプローチを用いて、関連する製品群で観測される周期性を捉えながら、各商品ごとに予測を適応させます。2 つの商品が同じ季節性を共有しつつ、曜日ごとのパターンは異なることがありますが、モデルはその差異を捉えられます。また、deep learning は季節性そのものの変動、たとえば天候によりシーズン開始が早まったり遅れたりする現象も表現しやすくします。
どのようなデータが必要ですか?
最低限必要なのは日次の需要履歴です。より望ましいのは、分解された受注履歴です。原則として、履歴は長いほど結果が良くなります。2 年未満の履歴では季節性の検出が難しく、3 年で良好、5 年で非常に良好です。Lead time を予測するには、通常、発注日と納品日を含む購買注文が必要です。商品属性や SKU 属性も予測を大きく改善します。在庫水準も有用で、Lokad が最初の意味ある在庫分析を行う助けになります。
Excel シートでも予測できますか?
経験則として、すべてのデータが 1 枚の Excel シートに収まる場合、Lokad でも他社でも有意義なことはあまりできません。表計算データは週次や月次に集約されていることが多く、元の signal が大きく失われます。また、製品挙動を理解するのに必要なカテゴリや階層が不足していることも一般的です。Lokad のエンジンは利用可能なデータの豊かさ全体から価値を引き出すため、ごく小さなサンプルでは意味のある結果になりにくいのです。
欠品や販促はどう扱いますか?
欠品も販促も、履歴売上に bias を持ち込みます。目的は売上ではなく需要を予測することなので、この bias は明示的に扱う必要があります。よくあるが誤った方法は、履歴を書き換えて欠損を埋め、ピークを切り落とすことです。私たちはこの方法を採りません。予測値を再び予測エンジンに流し込むことになり、過学習リスクが大きくなるからです。代わりに、Lokad は需要が切り詰められた箇所や膨らまされた箇所を示すネイティブなフラグをサポートしています。
新製品も予測できますか?
はい。新製品を予測するために、エンジンは比較可能な既存製品の発売日と、その発売時点での履歴需要を必要とします。商品カテゴリや階層も有用です。エンジンは新製品に類似する既存製品を識別します。新製品ではまだ需要が観測されていないため、初期予測は関連づけられた属性に完全に依存します。
外部データを使って予測を改善しますか?
はい。信頼できる外部データが利用できる場合には活用します。たとえば、専門業者が収集した競合価格データや Web トラフィックデータを利用できます。実務上の主なボトルネックは予測エンジン自体ではなく、そうした外部ソースの周囲に高品質なデータパイプラインを構築し維持するための労力です。