まず結論から言います。私が見てきた倉庫AI需要予測プロジェクトの中で、モデルの選定ミスが原因で死んだものはひとつもありません。
最近、倉庫事業者から「AI需要予測」についての相談が増えています——需要予測、補充提案、人員計画の見積もりなどです。デモはいつも同じです。チームは次々とモデルを試します——グラディエントブースティング、Prophet、流行りのもの——ハイパーパラメータを小数点以下4桁まで調整します。そこで私はひとつだけ質問します。「どの特徴量をモデルに与えていますか?」返ってくるスプレッドシートはたいてい3列だけです。日付、SKU、売上。
そういうプロジェクトは最初から死んでいます。モデルはシェフ、特徴量は材料です。シェフに腐った野菜の詰まったカゴを渡したら、誰が作っても料理の味は同じです。需要予測では、本当の仕事はプロンプトの外側にあります——データがモデルに届く前に誰もやりたがらない地味な作業、すなわち特徴量エンジニアリングにあります。
倉庫データの9割はそのままではモデルに使えない
2023年、私はカリフォルニア州オンタリオにある120,000平方フィートの3PLを訪ねました。彼らは売上予測モデルにかなりのお金を払っていました。稼働開始から3ヶ月たっても、ベテランの現場監督——現場で10年以上を過ごしてきた——の勘に勝てませんでした。「このモデルはブラックフライデーが何なのかも知らないんだよ」と彼は言いました。
診断結果:モデルは過去の受注量だけで学習していました。ブラックフライデー?システムに販促カレンダーはありません。秋の新学期商戦?何もなし。輸入遅延で港が混雑し、到着が2週間遅れて補充予測を全部吹き飛ばす?当然、何もなし。
これが最初の落とし穴です。倉庫で最も充実したデータセット——過去の売上——は、同時に最も薄い特徴量です。それは「何が起きたか」を教えてくれますが、「なぜ」は決して教えてくれません。売上曲線だけを読むモデルは、昨日の形をなぞって明日の形を当てようとしているだけです。販促、在庫切れ、新SKUの発売といった構造的な変化が起きた瞬間、崩壊します。
だから、どんなモデルにも触れる前に、まずデータの土台を整えます。私がクライアントに渡すチェックリストはこうです。
SKU別・拠点別の日次売上——最低2年分、できれば3年分。販促カレンダー:誰が決めたか、値引きの深さ、日数、すべてのイベント。在庫切れの記録——需要はあったが在庫がなかった日は、売上ゼロの日ではありません。システムはどちらも0と記録しますが。祝日と学校の休み(感謝祭は毎年日付が変わります)。天気データ——地域の小売DCでは、異常気象が需要を大きく動かします。港と幹線輸送の混雑——輸入オペレーションでは、これが到着時期を決めます。SKU別返品——返品率が高いところでは、総売上と純売上はまったく別の話です。
このリストの半分以上はWMSの中にはありません。マーケティング部のスプレッドシート、オペレーションマネージャーの頭の中、フォワーダーのメールの中にあります。AIの前に、それらを集めて、構造化して、ひとつのテーブルにまとめます。近道はありませんし、大規模言語モデルが代わりにやってくれることもありません。
倉庫ならではの「材料」
一般的なチュートリアルでは、ラグ特徴量、移動平均、曜日フラグなどを教えてくれます。それらは全部やってください。でも倉庫には独自の味があり、チュートリアルには決して出てこない特徴量がいくつかあります。
輸送中在庫。 システム上の「在庫」と「売れる在庫」は、しばしば別物です。輸入オペレーションでは、コンテナが海上輸送で30日を費やします。その30日間、システム在庫はゼロと表示されますが、販売計画はそれをゼロとして扱えません。「発注済みだが未入荷」の輸送中数量を特徴量として与え、「在庫が少ないが慌てる必要なし」と「在庫が少なくて本当に危険」の違いをモデルに学ばせます。2024年の紅海の迂回では、あるホームグッズの倉庫で海上輸送が35日から60日に延びました——その間、モデルは「補充は不要です」と言い続けました。商品はまだ船の上でした。
ロケーション速度(スロッティング・ベロシティ)。 同じSKUでも、ゴールドゾーンから売れる場合と最上段のラックから売れる場合では売れ方が違います——ピッキング効率がフルフィルメント速度を上げ、速度がリピート購入を生みます。あまり誰も思いつかない特徴量です。「過去30日間の平均ピッキング移動距離」や、単に「販促用エンドキャップにあったかどうか」。そうでなければ謎の売上変動のかなりの部分を吸収してくれます。
移動返品率。 アパレルや靴のDCでは、返品率が20%台や30%台になることがあります。総売上で学習したモデルは、実需を系統的に過大評価します。「このSKUの過去8週間の返品率」を与え、モデルにそれを割り引くことを学ばせましょう。
在庫切れフラグ。 最も見落とされがちで、最も効果の大きい特徴量です。売上ゼロの日——需要がなかったのか、在庫がなかったのか?システムはどちらも0と記録します。「その日、販売可能な在庫がゼロだったか」を示すバイナリフラグがなければ、モデルは在庫切れから「このSKUは誰も欲しがらない」と学習し、次はさらに少ない安全在庫を勧めます——死のスパイラルです。

三大仕事道具:ラグ、移動ウィンドウ、アライメント
特徴量が決まったら、次は構築です。倉庫の需要予測は3つの仕事道具に頼っており、調整の仕方にこそ魔物がいます。
第一に、ラグ特徴量:過去N日間の売上を使って未来を予測します。7日では週のリズムしか見えません。90日では特徴量がノイズだらけになります。7、14、28から始めて、検証セットでどのバケットが最も効いているかを確認し、微調整します。初日から365日分を全部投入してはいけません——特徴量が多すぎると、モデルは学習する代わりに暗記を始めます。それは過学習への入り口です。
第二に、移動ウィンドウ:過去4週間の平均、過去8週間の最大値、過去12週間の標準偏差。移動ウィンドウはトレンドを捉えます。ただし4、8、12週のウィンドウは相関が非常に高く、同じことを3回言っているだけです。1つか2つで十分です。
第三——倉庫らしさが最も濃いもの——は時間のアライメント:原因と結果を一致させることです。販促は11月20日に始まりますが、在庫の意思決定は10月下旬に行われました——特徴量のタイムスタンプはイベント時点ではなく意思決定時点を反映すべきです。こうしたアライメントは倉庫ごとに違います。オペレーションや購買と一席ずつ設けて、ひとつひとつマッピングします。特徴量エンジニアリングで最も価値があり、最も真似されにくい部分です。
最も静かな死に方:データリーク
「どうやるか」は終わりました。次は「プロジェクトがどう死ぬか」です。データリークは需要予測の仕事で最も静かな殺し屋であり、死ぬときは立派な姿をしています——検証精度が高すぎてみんなが祝います。そして本番で完全に崩壊します。
典型的なリーク:「今月の実際の販促の深さ」を使って「今月の売上」を予測すること。学習では美しくうまくいきます——深い販促、高い売上。しかし予測時点では、来月の販促の深さはまだ決まっていません。モデルに未来のデータを与えているのです。それは需要予測ではなくタイムトラベルです。修正方法:決定時点で既知の「計画された販促」を使うか、特徴量を既知・未知のバージョンに分けます。
移動ウィンドウにもリークが潜みます:12月の予測に、12月の第1週を静かに含んだ「過去8週間の平均」を使う——予測時点では存在しないデータです。チェックは愚直ですが効果的です。学習の各行について、「予測時点で、この数字は本当に入手できただろうか?」と問います。できなかったら削除します。
そして正規化リーク:検証を含む全データでスケーリングの統計量を計算すること。些細に聞こえますが、サンプル数の少ないSKUでは検証スコアを数ポイント水増しします。統計量は学習データだけで計算し、検証とテストに適用します。
多ければ多いほど良い?トレードオフの話をしよう
不人気な結論をひとつ:特徴量は多ければ良いわけではありません。
かつて、200特徴量のモデルが30特徴量の兄弟モデルに検証で2ポイント勝つのを見ました。クライアントは大喜びでした。そこで数えてみました。60もの特徴量が外部フィード——天気API、混雑指数、ソーシャルシグナル——に依存していました。ひとつのフィードが落ちたり、フォーマットが変わったり、有料化されたりすれば、パイプラインの作り直しです。200特徴量のパイプラインには専任のデータエンジニアが必要です。30特徴量なら、オペレーションチームが自分たちで回せます。
2ポイントの精度はフルタイムの採用に見合いますか?月間400,000オーダーなら、ありえるでしょう。30,000なら、いいえ。目標は最も正確なモデルではありません——組織が維持し続けられる中で最も正確なモデルです。まず20から30の中核特徴量でリリースしましょう。本番に上げ、検証し、ビジネスインパクトを見て、増やすかどうかを決めます。2年間安定して動き続ける30特徴量のモデルは、3ヶ月後に誰もメンテしない200特徴量のモデルに勝ちます。
受け入れのとき、ひとつの精度の数字をじっと見つめないでください。私はクライアントに3つのことを確認させます。第一に、ベースラインに勝つ——「昨年の同期間」や「過去4週間の平均」といった素朴な代替手段に明確に勝つこと。勝てなければリリースしません。第二に、スライスする——売れ筋、ロングテール、新SKUを分けてスコアを見ること。平均は嘘をつきます。モデルは売れ筋を得意げに当て、テールでは当てずっぽうなことが多いのです。第三に、ビジネス価値を証明する——精度5ポイントの向上は、在庫切れを何件減らし、死に在庫をどれだけ減らすのか?P&Lに届かない指標は虚栄です。
冒頭の言葉に戻ります。間違ったモデルがあなたを殺すことはめったにありません。間違った特徴量は必ず殺します。次に誰かが倉庫のAI需要予測を売り込んできたら、どのモデルを使っているかではなく、特徴量テーブルがどうなっているかを聞いてください。答えられなければ、そのプロジェクトはまだ「美しいデモ」の段階です。本当の職人は、いつもプロンプトの向こう側にいます。
英語版からの翻訳。内容に相違がある場合は英語版を優先します。







