ちょうど1年以上前、私たちはクォンタイルグリッドを私たちの3.0予測技術として発表しました。Lokadは、技術が生み出す最高の予測を提供し続けることに取り組んでおり、今日、私たちの4世代目の予測技術である確率的予測エンジンがすべてのクライアントに対して本番環境で利用可能になりました。この新しいエンジンは、私たちの予測技術スタックの完全な書き直しであり、私たちが直面していた多くの長年の課題に取り組んでいます。

真の確率

予測技術がどれほど優れていても、未来は不確実です。Lokadが最初に_quantile forecasting_の深淵に足を踏み入れた2012年、私たちはすぐに、不確実性は古典的な予測手法で行われるように単純に無視されるべきではなく、むしろ受け入れられるべきだと気づきました。単純に言えば、供給チェーンのコストは統計的な極値に集中しています。驚くほど高い需要が在庫切れを引き起こし、驚くほど低い需要が不良在庫を引き起こします。中間では、供給チェーンは非常にスムーズに動作します。

クォンタイルグリッドを使用することで、Lokadは可能な未来の結果についてより詳細なビジョンを提供していました。ただし、その名前が示すように、私たちの_quantile grids_は私たちの_quantile forecasts_の上に構築されていました。これらのクォンタイルグリッドは、過去1年間で非常に有用であることが証明されましたが、私たちの予測エンジンは確率を生成していましたが、内部的にはほとんどのロジックが直接確率で動作していませんでした。私たちが計算した確率は、quantile forecastingシステムの副産物でした。

これらのクォンタイルのルーツのため、私たちの予測エンジン3.0には多くの微妙な制限がありました。そして、これらの制限のほとんどはクライアントには気付かれないほど微妙でしたが、LokadのR&Dチームには無視されませんでした。そのため、真のネイティブ確率的予測の視点で私たちの予測技術全体を再起動することを決定しました。これが予測エンジン4.0の始まりでした。

リードタイムの予測

リードタイムは「与えられた」とよく仮定されます。しかし、過去のリードタイムはわかっていても、将来のリードタイムは「推定」するしかありません。数年間、Lokadは将来のリードタイムを正確に近似するという課題を過小評価していました。リードタイムは微妙です。季節性(特に中国の新年)など、需要に影響を与えるほとんどの統計的パターンは、リードタイムにも影響を与えます。

私たちの予測エンジン4.0では、リードタイムは独自のリードタイム予測モードを持つ第一級の市民となりました。リードタイムは、不確実な期間に関連する確率の分布として表されるようになりました。リードタイム予測は、予測エンジンによって以前に見たように、専用の組み込み予測モデルを利用しています。

統合需要予測

リードタイムは変動しますが、私たちの予測エンジン3.0は固定リードタイムで立ち往生していました。従来の視点からすると、クラシックな安全在庫分析では、リードタイムは正規分布に従うと仮定されますが、私たちが行ったほとんどの測定では、変動するリードタイムは明らかに正規分布ではありませんでした。私たちの実験は、不完全なモデルよりも固定リードタイムの方が良いことを定期的に示していましたが、静的なリードタイムに固執することは、私たちが求めていた完全に満足のいく解決策ではありませんでした。

予測エンジン4.0では、リードタイムを統合需要予測の概念を導入しています。ここで「統合」とは、「リードタイムにわたって統合された」という意味です。エンジンは、リードタイムの確率の完全な分布を取り、対応する確率的需要予測を生成します。実際には、リードタイムの分布も予測エンジンによって計算されます。統合需要予測は、変動するリードタイムの取り扱いに対する満足のいく解決策を提供します。

新製品の予測

新製品の需要予測は非常に困難です。この場合、予測は明らかに販売履歴に依存することはできませんので、予測エンジンは製品の発売前に既知の他のデータに依存する必要があります。予測エンジン3.0では、この特定のユースケースに適したタグフレームワークが既に存在しました。しかし、タグには望んでいたほどの情報が含まれておらず、精度が向上しなかったのです。

4.0では、この特定の課題をカテゴリと階層の導入によって改善しました。カテゴリと階層はタグよりも表現力があり、より構造化されており、より多くの情報を伝えます。予測エンジン4.0は、この豊かなデータフレームワークをフルに活用して、より正確な予測を提供します。特に新製品の予測は最も重要なユースケースです。

在庫切れとプロモーション

予測エンジンの目的は将来の「需要」を予測することです。しかし、過去の需要に関する知識は通常不完全であり、過去の「販売」のみが実際に知られています。販売は需要の合理的な近似値である場合がありますが、販売には複数のバイアスがあります。最も一般的なケースは「在庫切れ」と「プロモーション」です。予測エンジン3.0では、このバイアスに対処するためのいくつかのヒューリスティックが既に存在しました。また、分位点予測は(古典的な)平均予測よりも頑健です。しかし、再び、この状況は完全に満足のいくものではありませんでした。

エンジン4.0では、「バイアスのある需要」という概念が導入されています。バイアスのある需要は「検閲された」または「膨張した」ものになります。ある製品のある日の需要が「検閲された」とマークされた場合、予測エンジンに対してその日の需要が「もっと高かったはず」と伝え、その日の真の需要は未知のままです。エンジンはこの情報を活用して予測を改善します。これは、過去のイベントが需要信号を歪めた場合でも適用されます。

超まれな需要

分位点予測は、まれなイベントの確率を推定する際に古典的な平均値や中央値の予測よりもはるかに優れていますが、超まれなイベントの確率を推定する際には限界があります。例えば、当社の分位点モデルは、年に1回または2回しか販売されないアイテムや、98%以上のサービスレベルの取り扱いに苦労していました。

当社のエンジン4.0で実装されたネイティブの確率モデルは、超まれな需要や一般的な「まれな」イベントに対してははるかに優れた振る舞いを示します。これらのモデルは分位点予測フレームワーク内に実装することもできましたが(確率的予測は簡単に分位点予測に変換できます)、当社のエンジン3.0にはそれらをサポートするインフラストラクチャがありませんでした。そのため、それらは代わりにエンジン4.0に実装されました。

Envisionに統合

当社の予測エンジンのバージョン2.0および3.0には、Webユーザーインターフェースが付属していました。一見すると簡単に見えましたが、実際には、(どの)予測エンジンを使用する上での真の課題であるデータの完全な制御を提供することを無視していました。実際には、ゴミの入力はゴミの出力となることが依然として頻繁な問題です。

エンジン4.0は、当社の商業向けの量的最適化に特化したドメイン固有言語であるEnvisionからインターフェースされています。予測エンジンの呼び出しは、Envisionスクリプトから提供される一連のデータ引数を使用します。このアプローチは少しの前向きな努力を必要としますが、入力データの調整が行われるとすぐに生産性の利点が現れます。

予測エンジン4.0のリリースは、過去数週間にわたってLokadにもたらされた重要な改善の最初の部分に過ぎません。さらなる情報にご期待ください。