私たちは、量的供給チェーン最適化のためのLokadプライベートベータ版の差分可能プログラミングの即時提供を誇りに思います。差分可能プログラミングは、ディープラーニングの子孫であり、2つのアルゴリズムフィールド、機械学習と数値最適化の収束を表しています。

Timeline of differentiable programming at Lokad

差分可能プログラミングは、従来ほとんど解決不可能とされていたサプライチェーンのシナリオを解き放ちます。価格と在庫の共同最適化、ロイヤリティに基づくアソート最適化、非標準製品(宝石、美術品など)の需要予測、大規模な多階層フロー最適化、多チャネルの共同最適化、部分的に不正確な電子在庫値の下での在庫最適化、多制約下での大規模なフロー最大化など、多くの他のシナリオに対して、差分可能プログラミングは、データサイエンティストの労力と計算リソースのオーバーヘッドの一部で優れた数値結果を提供します。

サプライチェーンへの応用

差分可能プログラミング(DP)の核心は、長い間分断されていた問題を統一し、アソートメント、価格設定、需要予測、計画、商品展開を共同で解決する道を提供します。このような統一は非現実的に思われるかもしれませんが、実際のところ、企業は既に自社プロセスに対して無数のダクトテープを適用しており、これらの課題が最初から組織内でシロ化されているという事実によって生成される問題に対処しています。たとえば、価格は明らかに需要に影響を与えますが、計画と予測は通常、価格を無視して行われます。

DPは、組織内で問題を解決する代わりに、ビジネス全体のホリスティックな視点から_おおよその正確さ_を提供する巨大な機会を開放します。逸話的に言えば、ビジネス全体を考慮しながらおおよその正確さを追求することは、スプレッドシート駆動の組織の本質です。しかし、DPのようなビジネス全体の視点を抱擁することができるテクノロジーの不足のために、スプレッドシートは最もましなオプションのままです。

Eコマース: 販売された商品の100%を既知の顧客に関連付けることができることは、市場に関する膨大な潜在的情報です。しかし、価格と在庫の最適化に関しては、ロイヤリティ情報は通常使用されません。DPは、時間系列の予測から、観測されたすべての個々の顧客-製品ペアが重要となる「時間的グラフ」予測に移行する可能性を提供し、在庫と価格の両方についてよりスマートな意思決定を行うことができます。

高級ブランド: 価格とアソートメントの最適化(店舗レベルまで)は、データの希薄性(製品ごとの店舗ごとの年間販売数量が1個以下)のために、ほとんど解決不可能と考えられてきました。DPは、通常のディープラーニング手法よりもはるかに優れたデータ効率性を提供するように設計されているため、このような超希薄なデータに対して動作する解決策のクラスを提供します。

ファッションブランド: 在庫と価格の共同最適化は明確な要件です。多くの商品の需要は価格に非常に敏感であるため、購入と価格の両方の共同最適化は実現できませんでした。つまり、低価格での購入能力が需要を増加させる(逆もまた然り)能力を理解することができるツールの不足が原因です。DPは、この課題に取り組むための表現力を提供します。

製造業: 大規模な多段階ネットワークの数値最適化は、古典的な数値ソルバーを用いて試みると崩壊します(以下の「ブランチ・アンド・カット最適化を超えて」を参照)。実際には、これらのソルバーは数百万の変数や確率的な振る舞いを扱う際にはほとんど実用的ではありません。残念ながら、製造業は多くの変数と確率的な振る舞いの両方を持っています。DPは、ネットワーク内の実際のフローパターンの複雑さを裏切ることなく、多段階の対処方法を提供します。

MRO(メンテナンス、修理、オーバーホール): システムの修理に必要な部品が欠けている場合、そのシステム全体(たとえば航空機)は停止します。確率的な予測は、このような不規則で断続的な需要パターンに対処するための第一歩ですが、必要な部品の共起の詳細を把握し、この分析を実行可能な在庫推奨に変換することは、実用的には複雑すぎます。DPは、このような問題の解決を効率化します。

小売ネットワーク: 小売ネットワーク内でのカニバリゼーション(通常は製品間、時には店舗間)は、長い間主要な問題として認識されてきました。この問題は、クライアントを一つのブランドから別のブランドに誘導するために精密に意図されたプロモーションによってさらに増幅されます。DPは、プロモーションの存在下でのカニバリゼーションに対処する可能性を提供します。DPは単に「プロモーションの予測」だけでなく、プロモーションを最適化する可能性を提供します。これは、配信チャネルとブランドの両方によって共同運営される収益性の高い取引です。

人工知能のハイプを超えて

人工知能(AI)は確かに2018年のテックのキーワードであり、2019年でもまだ注目を集めています。しかし、Lokadは通常AIのキーワードに該当する技術を広範に使用しているにもかかわらず、Lokadの技術の「AI」部分には重点を置いていませんでした。実際、_数量的なサプライチェーン最適化_に関しては、パッケージ化されたAIは単純に機能しません。サプライチェーンは、例えばコンピュータビジョンのようなものではありません:データ、メトリクス、タスクはすべて非常に異質です。その結果、「完全なソリューション」とされたAIソリューションを購入した企業は、それらのソリューションが単純な状況では「愚かな」ルールベースのシステムでも十分に機能したであろうことに気付き始めています。

サプライチェーンは、本質的に複雑な人工的なシステムであり、AIシステムがデータだけに基づいてドメインに関する基本的な洞察を自力で再発見することは通常非現実的です。例えば、次のような洞察です:

  • ラグジュアリーブランドのプロモーションは大きな失敗です。
  • ERPの販売注文は実際には商品の返品です。
  • 生鮮食品は指定された温度範囲内で輸送されなければなりません。
  • 色のバリエーションは良い衣類の代替品ですが、サイズのバリエーションはそうではありません1
  • 航空機のメンテナンスは飛行時間と飛行サイクルによって駆動されます。
  • イギリスの売上は、ERPが通貨としてEURを表示していても実際にはGBPです。
  • 人々は自分自身ではなく、自分の車の部品を購入します。
  • すべてのダイヤモンドはユニークですが、価格は主にカラット、クラリティ、カラー、カットに依存します。
  • 航空機からNOGOパーツが欠けていると、航空機は運航停止となります。
  • 多くの化学プラントは停止後数週間かかることがあります。

遠い将来、機械学習が人間の知能を模倣し、難解な問題に取り組んだ結果を出す時代が来るかもしれません2が、現時点では、結果は比較的_狭い_問題にしか得られていません。機械学習技術は、毎年境界を押し戻しており、「狭い」問題の範囲を広げています。数十年の努力の結果、安全な自動運転やまともな自動翻訳などの重要な問題は解決され、または非常に近い将来に解決されるでしょう。

それにもかかわらず、上記のリストに示されているように、サプライチェーンはパッケージ化された機械学習アルゴリズムを直接適用するにはあまりにも異種すぎます。深層学習は、これまでに最も強力な一般化能力を提供しているものの、アルゴリズムが動作するためには、サプライチェーンの科学者が課題を十分に狭くフレーム化する必要があります。

この点で、深層学習は非常に成功しています。なぜなら、従来の機械学習手法とは異なり、深層学習は根本的に_構成的_です。特定の状況でより良い学習をするために、モデルの_構造_を広範にカスタマイズすることが可能です。モデルの構造を調整することは、特徴エンジニアリングとして知られるモデル_入力_の調整とは異なります。特徴エンジニアリングは、ランダムフォレスト3などの非深層機械学習アルゴリズムにとっては通常唯一の選択肢でした。

しかし、深層学習フレームワークは、機械学習の「ビッグプロブレム」であるコンピュータビジョン、音声認識、音声合成、自動翻訳から派生しました。これらのフレームワークは、サプライチェーンで直面する問題とはまったく異なるシナリオに対して、徹底的に設計および調整されてきました。したがって、これらのフレームワーク4サプライチェーン最適化の目的で活用することは可能ですが、それは_簡単_でも_軽量_でもありませんでした。

結論として、深層学習フレームワークでは、サプライチェーンに対して多くのことが達成できますが、サプライチェーンと既存の深層学習フレームワークの間にはインピーダンスミスマッチがあります。これにより、これらの技術のコストが増加し、遅延が生じ、現実世界での適用範囲が制限されます。

differentiable programming

ブランチアンドカット最適化を超えて

サプライチェーンのほとんどの問題は、将来の不完全な知識、市場の現在の状態の不完全な知識、そして時にはサプライチェーンシステム自体の不完全な知識(例:在庫の不正確さ)によって引き起こされる学習の側面と、数値最適化の側面の両方を持っています。経済的なドライバに対して最適化された意思決定を行う必要がありますが、多くの非線形制約(例:購入時のMOQや生産時のバッチサイズ)を満たす必要があります。

数値最適化の分野では、整数計画法とその関連技術(ブランチアンドカットなど)が数十年にわたって主導的な役割を果たしてきました。しかし、これらのブランチアンドカットアルゴリズムとそれに関連するソフトウェアソリューションは、多くの場合、サプライチェーンの課題に対して柔軟性と拡張性を提供することには失敗してきました5。整数計画法は、変数が少ないタイトな問題(例:消費者電子機器内の部品配置)を解決する際には非常に優れたツールですが、ランダム性が関与する大規模な問題(例:確率的需要と確率的輸送時間の両方を考慮した1000万のSKU間の在庫の再バランス)には著しい制約があります。

深層学習の最も過小評価されている側面の1つは、その成功が_学習_側の突破口だけでなく、_最適化_側の突破口の結果であることです。科学界は、非常に効率的なアルゴリズムが大規模な最適化を実行していることを発見しました6

これらの「深層学習」最適化アルゴリズムは、すべて確率的勾配降下法を中心としていますが、その枝刈りによる対応物よりもはるかに効率的であり、実際にはSIMD CPUおよび(GP)GPUという計算ハードウェアにはるかに適しているため、2〜3桁の追加の高速化が得られます。

これらの純粋な_数値最適化_の突破口は、サプライチェーンにおいて_意思決定_を最適化するために非常に関連性が高いです。ただし、もし深層学習フレームワークがサプライチェーンの_学習_問題に対処するのにすでにある程度適していなかった場合、サプライチェーンの_最適化_問題に対処するのにはますます適していません。実際、これらの最適化問題は、制約と最適化されるメトリックをサプライチェーンの科学者が実装するためのフレームワークの表現力にさらに依存しています。

微分可能プログラミングへの道

理論と実践の間には違いはありませんが、実践では違いがあります。 ウォルター・J・サヴィッチ、Pascal: An Introduction to the Art and Science of Programming(1984年)

微分可能プログラミング(DP)は、サプライチェーンにおいて深層学習が学習フロントと数値最適化フロントの両方で提供する最高のものをもたらす答えです。DPを通じて、サプライチェーンの科学者は、ビジネスの目標に合わせて数値レシピを作成するために、人間の洞察力を最大限に活用することができます。

深層学習と微分可能プログラミングの間には絶対的な区別はありません。それは、最もスケーラブルなシステム(深層学習)から最も表現力のあるシステム(微分可能プログラミング)までの連続体であり、徐々に利用可能になる多くのプログラミング構造がありますが、生のスケーラビリティの犠牲になります。

しかし、Lokadでの経験から、コンピュータビジョンに主に適したツールから、サプライチェーンの課題に適したツールに移行することは、プロトタイプが本番環境に到達しない「興味深い」ものと、スケールで展開される産業用システムの違いを生み出すものです。

深層学習 微分可能プログラミング
主な目的 学習 学習+最適化
典型的な使用法 一度学習して、多くの評価を行う 一度学習して、一度評価する
入力の粒度 太いオブジェクト(画像、音声シーケンス、LiDARスキャン、全文ページ) 細いオブジェクト(製品、顧客、SKU、価格)
入力の多様性 同種のオブジェクト(例:すべての画像は同じ高さ/幅比を持つ) 異種のオブジェクト(関係テーブル、グラフ、時系列)
入力のボリューム メガバイトからペタバイトまで キロバイトから数十ギガバイトまで
ハードウェアアクセラレーション 非常に優れている 良い
表現力 テンソル演算の静的グラフ (ほぼ)任意のプログラム
確率的数値レシピ 組み込み 同様

典型的な使用法は微妙ですが重要なポイントです。 「ビッグAI」の観点からは、トレーニング時間は(ほぼ)任意に長くなる場合があります。計算ネットワークが数週間から数か月間トレーニングされることは問題ありません。後で、結果として得られる計算ネットワークは通常、リアルタイムで評価する必要があります(例:自動運転のパターン認識)。この視点は、サプライチェーンとはまったく異なり、最良の結果はネットワークを毎回再トレーニングすることによって得られます。さらに、DPの観点からは、トレーニングされたパラメータが頻繁に求める_結果_そのものであることがよくあり、全体のリアルタイム評価の制約は無意味です。

粒度、多様性、ボリュームに関するデータ入力に対する期待も大きく異なります。通常、「ビッグAI」の視点では、トレーニングデータのほぼ無限の量(例:ウェブのすべてのテキストページ)が強調され、主な課題はそれらの大規模なデータセットに効果的にアクセスできる非常にスケーラブルな方法を見つけることです。対照的に、サプライチェーンの問題は、限られた量の高度に構造化されたが多様なデータで対処する必要があります。

このため、深層学習はテンソルベースのフレームワークに向かいます。これは、専用のコンピューティングハードウェア(最初はGPU、現在はますますTPU)を介して大幅に高速化することができます。また、確率的勾配降下法に基づく微分可能プログラミングも、テンソル演算の静的グラフと比較して、ハードウェアの高速化においてはある程度低い性能を示します。

確率的数値レシピの重要性は二つあります。まず、これらのレシピは「学習」の観点から重要な役割を果たします。変分オートエンコーダーやドロップアウトなどがその例です。また、これらのレシピは、サプライチェーンシステム内の確率的な振る舞い(例:リードタイムの変動)を適切に分解するために、モデリングの観点からも重要な役割を果たします。

一方、微分可能プログラミングと混合整数プログラミングの間には大きなギャップがあります。過去数十年間の主流のアプローチは、複雑な数値最適化を実行することでした。

混合整数プログラミング 微分可能プログラミング
主な目的 最適化 学習+最適化
入力の粒度と多様性 薄いオブジェクト、異種 同様
入力のボリューム バイトから数十メガバイトまで キロバイトから数十ギガバイトまで
ハードウェアの高速化 低い 高い
表現力 線形および二次形式の不等式 (ほぼ)任意のプログラム
確率的数値レシピ なし 組み込み

混合整数プログラミングツールの擁護として、これらのツールは問題に取り組むことに成功した場合、数学的な意味で最適解を得たことを証明することがあります。一方、深層学習や微分可能プログラミングは、この点において形式的な証明を提供しません。

結論

微分可能プログラミングは、サプライチェーンにとって重要なブレークスルーです。これは、コンピュータビジョンなどの多くの「ビッグAI」の問題を解決するのに非常に成功した「深層学習」をベースにしていますが、現実のサプライチェーンが直面する現実の課題に適したように再設計されています。

Lokadは、深層学習予測技術を基盤として、微分可能プログラミングに移行しています。これは、私たちの予測技術の次世代です。ただし、DPは単なる「予測」以上のものであり、最適化と学習を統合し、以前は解決策が存在しなかった多くの問題の解決策を提供します。

プライベートベータ版に参加したいですか?contact@lokad.comまでメールをお送りください。


  1. 興味深いことに、子供服というセグメントでは、サイズがあまり重要ではなく、代わりに良い代替品として機能することがあります。実際、予算に制約のある親は、子供の成長を予測して、強力な価格割引が提示された場合には数サイズ先を購入することがよくあります。 ↩︎

  2. 多くのサプライチェーンの問題は「悪い」問題であり、社会的な複雑さのために決定可能な終了点を持たないという意味です。詳細はWikipediaの悪い問題を参照してください。 ↩︎

  3. ランダムフォレストは、モデル自体のメタパラメータ化のためのわずかなオプションを提供します。木の最大深度、サンプリング比率などです。これは、ランダムフォレストが捉えられないパターンは、より良いオプションがないため、特徴エンジニアリングが必要とされることを意味します。また、カラムランダムフォレストも参照してください。 ↩︎

  4. サプライチェーンの目的に対して深層学習フレームワークが実際に動作するという事実は、これらのフレームワークの誕生につながった研究の元々の範囲をはるかに超える原則の驚異的な力を示しています。詳細は、Lokadのディープラーニングも参照してください。 ↩︎

  5. CPLEX、Gurobiなどの最適化ソフトウェアは、現在のオープンソースの相当品も含めて、30年以上も利用可能です。理論的には、MOQ(最小注文数量)や価格の変動に直面するすべての購買状況は、同様の機能を提供するソフトウェアによって対処されるべきです。しかし、過去10年間にさまざまなセクターで100以上の企業と接触する機会がありましたが、どの購買部門でもこれらのツールを使用しているのを見たことはありません。私自身の経験から言えるのは、実際には線形および二次形式のみを含む一連の静的不等式に適合する問題はほとんどないということです。 ↩︎

  6. アルゴリズムAdam(2015)は、機械学習全体を飛躍的に前進させた、シンプルで非常に効率的な最適化アルゴリズムの最良の代表例です。 ↩︎