注:本記事は(2021年12月21日)に公開された(Every Snowflake Is Unique: Forecasting a Highly Variable Business)を翻訳して公開したものです。

課題は明白:企業の上場には、主な財務指標について、狭い範囲内で正しく予測し続ける必要がありました。そのためにはデータサイエンスや機械学習(ML)の使用や自社製品の活用による企業収益の正確な予測が不可欠でした。

Snowflakeが現在上場企業となっているのは、データサイエンスの力と当社製品が認められた証拠です。Snowflake財務部門のデータサイエンスチームにとって、チームや市場が信頼できる予測構築の鍵となるのは、パートナーシップ、プラットフォーム、そしてもちろんデータであるということが分かりました。

どのSnowflake(顧客)も唯一無二

Snowflakeは使用量ベースのビジネスであるため、当社の収益は本質的に、当社が使用者に提供する価値に直結しています。使用量ベースの価格設定は当社にとっても利用者にとっても最良の方法ですが、このビジネスモデルでは、収益やその他のトップラインメトリクスの予測が非常に複雑です。このような課題はSnowflakeに限ったことではありません。広告ベースのビジネスからプロフェッショナルサービスを提供する事業体まで、すべてのビジネスにはある程度の変動性があります。

主なビジネス指標の予測において直面した課題:

顧客の変動性

まず、どの顧客も唯一無二です。使用パターンから最大使用に至る時間など、顧客による当社プラットフォームの使用法は幅広いものとなっています。同じ業界に属する2社が、似たようなテクノロジースタックを使用し、似たような規模で、契約内容の多くの部分が共通しており、ユースケースも類似しているとしても、使用法がまったく異なるという場合もあります。

多数の顧客について、1日の使用量を時間軸でプロットすると、ノイズやばらつきの多い株式市場の価格変動表のようになります。集計スパンを長期的にしたり、顧客グループを絞ったとしても大きなばらつきがあることは変わりません。

過去の使用状況は今後の使用状況を示唆するものではない

2つ目に、顧客の将来的な使用のベースとなる要因の多くは、実際の使用量からのみ予測することができません。また、各顧客は唯一無二のため、別の似たようなSnowflakeユーザーの使用状況を、似たようなユーザーに適用して対応することもできません。新たな戦略的イニシアチブ、組織の再編、合併や売却、大規模な顧客プロジェクトの遅延や加速、顧客企業での重要な人材の異動、新たなコスト管理、顧客の市場に影響する規制の変更といった重要イベントはすべて使用状況に変化をもたらす要因であり、簡単に取得できるデータから使用量を予測することは不可能です。

何百万もの顧客を抱えるB2Cビジネスでは、そのデータボリュームにより、エンドツーエンドの機械学習ソリューションが多様な高変動イベント学習し、対処できるケースが多く見られます。さらに、ごく一部の顧客の重大な予測ミスが、トップライン予測に著しく影響する可能性はありません。一方で顧客が数千人という環境では、それぞれが過去の使用状況からは予測できないペースで消費を行うと、そのうちのわずかな数の顧客で重大な予測ミスがあれば、全体の予測からの大幅な逸脱が生じる場合があるため、異なるアプローチが必要となります。機械学習は不可欠ですが、ソリューションの一部でしかありません。

効率性の向上 = 変動性の増加

3つ目として、当社のエンジニアが製品を継続的に改善し、セールスエンジニアリングチームとサービスチームが顧客のワークロードの最適化をサポートしていくことで、顧客のクレジット使用量が減少するということも考えられます。

例えば、今年初め、当社のサービスプロフェッショナルはある顧客の大量のワークロードの最適化をサポートしました。当該の顧客はワークロードを迅速に増加する必要に迫られており、速度のために効率性を犠牲にしていました。最適化実施後、これらのワークロードにおける使用量は大幅に低減され、当該顧客によるSnowflake総使用量の大幅な低減につながりました。このような改善は、顧客にとってはもちろん、長期的に見れば当社のビジネスにとってもメリットをもたらします。しかし、予測という観点から見れば、内部の製品使用状況データからは把握しきれない将来的な変動要素が追加されたことになります。そのため結果的には、予測に対する継続的な調整が必要となります。

当社の予測プロセス

このような予測における課題に対する私たちのソリューションは、機械学習モデルにより得られた予測と、セールスや製品といった他部署が現場で得た、データからは推論できない知識を統合するプロセスです。Snowflakeプラットフォームを活用することでこのプロセスが強化され、さまざまな時間軸で、最上位の製品収益から個々の顧客の使用量まで、事業予測を日々見直すことが可能となります。

以下の手順は、当社の使用量ベースビジネスにおいて正確な予測を立てる上で非常に効果的です。

  1. 仮のML予測の生成。私たちは日々、顧客アカウント別の使用量を予測し、一連の機械学習モデルを使用することで当社事業のボトムアップ予測を構築しています。これらのモデルでは、製品の使用状況データだけでなくセールスやマーケティングの情報も利用しています。時間の経過とともに個々の顧客に関するより多くのデータが収集され、顧客の使用パターンも成熟していくため、アカウントは過去の統計のみに基づいたモデルから離れ、よりカスタマイズされた機械学習モデルへと移行していきます。
  2. フィードバックの要求とインプットの収集。日々の未加工のML予測を現場から得られた情報で強化するため、四半期ごとに最新の日次予測をセールスチームに配信し、使用履歴からははっきり分からない、顧客行動において予測される変化についてのインサイトを要求しています。また製品の近々予定されている変更やさまざまな要因の会計処理についてのインプットも収集しています。こういった情報を組み合わせることにより、ML予測にどのような調整が必要かを判断することができます。このような調整は、特定の月や四半期、年といった期間、アカウントレベルで日々適用される金額となります。また、すべてのアカウントやアカウントグループに分散されるトップサイドの調整も実施されます。
  3. レコードのML予測の生成および調整。必要なインプットで強化した後に、最新のML予測を調整パイプラインに送ります。
  4. 調整後予測の分析、見直し、更新。調整後の予測に対し、多数の健全性チェックや過去の予測バイアスの分析、使用量トレンド、季節性を含む厳しいレビュープロセスを実施します。このプロセスを経ることで、予測に必要な追加の調整が明らかになることが少なくありません。
  5. 日々の更新情報を伴う最終予測の展開。最終的なレビューに終えると、予測は四半期の収益計画として展開されます。これには、最新の予測を伴う四半期計画を表示するレポーティングダッシュボードへのプッシュが含まれます。この四半期ごとのプロセスで決定される調整は、以降の未加工の日次予測にも適用されます。日次の再予測に適用される調整の中には、四半期が進むにつれて新たな情報を取得することにより規模が縮小するものもありますが、会計上の調整のように四半期末まで規模が変わらないものもあります。さらに、必要に応じて、四半期半ばに調整を更新することもあります。

当社の予測プロセス

有効な予測構築の鍵:データ、パートナーシップ、プラットフォーム

データ、データ、データ

データサイエンティストである私たちは、通常、モデリングプロセスという観点に焦点を当てがちです。メトリクス、機能、エンジニアリング、モデル選定、ハイパーパラメータ調整、検証方法といった側面のすべてが重要なトピックスですが、1つの場所から適切なデータすべてに迅速にアクセス可能にするということの重要性を見失ってはいけません。

Snowflake内では、ERPから得られたデータ、Salesforceなどのビジネスシステムから得られたデータ、Dun & BradstreetといったSnowflakeデータマーケットプレイスのパートナーから得られたサードパーティデータ、さらに、社内のビルディングエンジンのような社内開発されたデータソースから得られたデータや当社製品から生成された膨大なメタデータが一元化されています。一元化された信頼できる情報源により、日々更新されるビジネスの包括的な可視化の開発が可能となっています。

Snowflakeは、関連するすべてのデータを一元化した信頼できる情報源

幅広い部署との連携

当社のビジネスは変動性が非常に高いため、予測プロセスにはSnowflake全体にまたがるチームとの連携が重要です。前述のように、私たちはセールスチームと密に連携し、予測が実際の状況に照らし合わせてどうなのかというフィードバックを収集しています。これは、取得可能なデータからは予測できない、顧客の使用状況における予期しない変化を特定し理解するのに役立ちます。

セールスチームだけでなく、製品、会計、経営企画といった部署とも連携し、使用量に影響を与えるその他の要因の理解に努めています。

拡張性、柔軟性、制御機能を備えたデータプラットフォーム

適切なデータクラウドプラットフォームを保有することにより、チームはより迅速に対応でき、チームやデータソースをまたぐ連携も容易となります。Snowflakeの以下のような側面がチームに大きな違いをもたらします。

  • 全般的な高性能性:ユーザー数の多いSnowflakeにおいては、他部署とのリソースの競合や重要な局面でのクエリの遅延を発生させないことが重要です。マルチクラスターコンピュートや自動スケーリング機能を備えたSnowflakeは、どのような量のデータやユーザーでも対応することができます。
  • 安全かつ管理された環境:私たちのチームは、重要な財務データを大量に取り扱っています。行レベルのアクセスポリシーやデータマスキングといったマルチパーティガバナンス管理により、適切なデータを適切な人員で共有するという点において、綿密な統制が実現しています。
  • 一元化された信頼できる情報源:先程も触れましたが、一元化された場所に格納された関連データに素早くアクセスすることができる(当社ERPから得られたデータでもサードパーティデータプロバイダーによるデータでも)ため、ビジネスを全方位から見渡せるビューを構築できます。
  • 自動化:私たちは日々、多くの指標の再予測を行っています。Snowflakeの性能は非常に優れているため、1日を通して必要とされる複雑かつ大規模な変換に対応することができます。さらに、Snowflakeは使いやすいため、この大規模なデータパイプラインを小さなチームで維持することができ、チームは基礎的なプラットフォームの複雑性への対応を迫られることなく、自身の業務内容に注力することができます。

ますます多くの企業が使用量ベースのビジネスモデルを採用する中、主要な財務指標を正確に予測するには、次の3つの要素が重要となります。1)財務部署へのデータサイエンティストの採用。2)データのシームレスな一元化、活用、ガバナンスを可能にするデータクラウドの使用。3)組織全体にまたがるチームとの密な関係の構築および維持