コンテンツに移動
ソリューション

Google Cloud で予測市場を作成する

2021年12月14日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 12 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。

予測分析は長い間、革新的な企業が戦略的優位性を獲得するための情報源となってきました。高い業績を上げている企業は、将来の結果をより正確に予測し、未知の出来事に対する計画を立て、製品の機会や顧客機会を見つけるために、強力な予測分析を使用しています。

予測分析における課題の一つは、予測の精度を上げるために行う過去のデータの生成です。非常に重要な質問であっても、利用できるデータが少なく、機械学習モデルのトレーニングが困難な場合も少なくありません(例: COVID-19(新型コロナウイルス感染症)によってサプライ チェーンはどのような影響を受けているか、新しいテクノロジーにはどのような効果があるか)。

予測分析のお客様は、従業員、パートナー、ベンダーの判断に頼ることでそのギャップを埋めているのが現状です。そこで Google は考えました。どうすれば予測分析はより厳密なものになるでしょうか。Google の集合知を予測モデルで機械学習と組み合わせたらどうなるでしょうか。

2020 年、パンデミックにより先行きの見えない状況に直面した Google 社員の一グループは、これを Google Cloud で試すために内部的な予測市場を立ち上げました。Google は 2005 年から 2007 年にかけて初めて予測市場を実行し、有望な結果を残しました。現在のチームには、2005 年にはなかった 2 つの強みがありました。Google に参加できる多くの人材がいることと、Google Cloud 上にプラットフォームを構築できることです。

構造化と設計を繰り返し、1 万人以上の Google 社員から寄せられた 175,000 件以上の予測を分析しました。今回はその中で、COVID-19 や、エンジニアリング マイルストーン、新しいテクノロジーのトレンドなど、難易度の高い分野で正確な予測を生成するのに役立った設計パターンとテクノロジーをご紹介します。

予測市場を構造化する方法

予測市場の背後にある分析情報の中核は、適切な人にインセンティブを与えて正確な予測をさせることで、どの個人よりも正確なコンセンサス予測を生成することです。

たとえば、「2022 年に金利が上昇するか」という質問について予測するとします。顧客行動の予測や、さらにはマクロ経済の動向の予測を行う ML モデルがすでにあるかもしれません。しかし、この種のイベント予測には、組織内の人材の知識と判断を活用する必要があります。

このような質問について未来を正確に予測することは非常に困難です。その一方で、ついつい単純な答えに飛びつきたくなってしまいますし、反対に誰も知り得ないと悲嘆するのも簡単です。しかし実際には、正しい構造を使用すれば組織は驚くべき精度を達成できることが、予測市場や予測トーナメントによって実証されています。

Google はこれまでの経験に基づき、組織から正確な予測を引き出すための 5 つの基本原則を導き出しました。順を追って説明します。

1. 適切な UI を用意することで、きめ細かい正確な予測が表現しやすくなる。

ほとんどの質問は、確率(下の例を参照)、日付(「金利はいつ上昇するか」)、または数値(「来年の金利はいくらになるか」)の予測として提起できます。これらを予測するにあたり、2 つの方法を選べるようにしました。(a)ワンクリックで、現在のコンセンサスよりも確率 / 日付 / 数値が低いか高いかを予測する方法、そして(b)具体的な予測を範囲で示す方法です。

例として次のような確率の市場を考えてみましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Predictive_analytics.max-800x800.jpg
上部の UI から、確率がコンセンサスの範囲を下回っていると思うか、上回っていると思うかを素早く指定できます。また、確率の範囲を設定することで、よりきめ細かい予測の指定が可能になります。この際、確率が水準内に収まるかどうかの確信の度合いを下限と上限で個別に指定することができます。

全員が同じことを予想できるよう、解決の条件を厳密に設定することに特に注意を払ってください。正確な予測は、質問が正確に定義されて初めて可能になります。新しい質問の提案を確認するために組織から管理者を任命し、ソースデータと期間が正しく選択されるようにします。

2. 組織からスペシャリストを選出してインセンティブを与え、豊富な知見に基づいて質問に対する予測を行ってもらう。

他の予測市場と同様、Google のインセンティブ システムにもオプション市場との類似があります。予測を「bid(売値)」と「ask(買値)」に変換し、確率、数値、日付を「price(価格)」と解釈、信頼度を「volume(数量)」と解釈します。アプリケーション ブローカーは、対立する bid と ask を最適な price でマッチさせます。次の疑似コードで示されるように、取引が行われると、当事者間に契約が成立します。

読み込んでいます...

金融市場が注文を効率的にマッチさせることでコンセンサス価格を見つけるのと同様に、予測市場は予測を効率的にマッチさせることでコンセンサス予測を見つけます。これにより、予測者のインセンティブが最大化され、よりよい予測を行うことで市場を修正する機会を生み出します。現実の世界で更新が行われて問題が解決すると、取引された契約一つ一つで、一方の当事者がインセンティブを得ます。同時に、双方ともにその経験から学ぶことができます。

3. 継続的な予測をサポートすることで、新しい情報が入ってきたときにコンセンサス予測がリアルタイムに更新されるようにする。

予測分析でとりわけ問題となるのは、新しい情報がどの時点でも表面化する可能性があることです。bid と ask として解釈された予測の傾向は、時間の経過とともに、参加者全員のコンセンサスを表すようになります。bid-ask スプレッド(取引相手が見つかっていない時点の bid と ask の値)をグラフ化することで、コンセンサスの進化を確認できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Predictive_analytics.max-1000x1000.jpg
これは、COVID-19 に関連する確率(0~100%)の質問に対するコンセンサス予測の例です。青い線は bid の最高値、赤い線は ask の最低値を表しています。イベントが 9 か月間にわたって展開されるにつれ、確率が最低 10% から最高 90% まで変動しているのが確認できます。

4. 予測者へのパフォーマンスに関するフィードバックで、予測精度の長期的な改善を促す。

質問が解決したら、ユーザーに結果を通知するだけでなく、パフォーマンスを状況に合わせて分析できます。たとえば、そのカテゴリ、または現四半期でどのくらいの成果を上げているでしょうか。トップの予測者と比べてどうでしょうか。

好成績の予測者へのインセンティブとして、リーダーボードやバッジを付与するだけでなく、市場コンセンサスへの影響力が強まるよう、その人の予測の信頼性を高めます。次第に予測者は、より正確に予測できるトピックに魅力を感じるようになり、結果的に市場全体の予測精度も向上します。

職場で使用する他の多くのスキルと同様に、予測も時間をかけて改善させていくものです。インセンティブとフィードバックが適切に構造に組み込まれていれば、個人レベルでも市場全体でも精度の向上が期待できます。ここで重要なのは、より短い時間軸で質問を設定することです。「来年の新しいサービスの採用率はどうなるか」を問うのではなく、次の四半期の採用率を予測することから始め、それを反復します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Predictive_analytics.max-700x700.jpg

Google の内部予測市場に寄せられた、確率に関する最初の 200 の質問。質問に対する答えが得られる 6 か月前、3 か月前、2 か月前、1 か月前、1 週間前に集計した Google 社員のコンセンサスの確率(0~10%、10~20% など)を基準に質問をグループ化し、実際に起こったことと比較します。

青い線は完全な精度を表しています。つまり、10% の確率で起こると予測されたイベントが、10% の確率で実際に起こるということです。赤い線は市場コンセンサスの予測を表しています。非常に難易度の高い質問であっても、市場はかなり正確です。

5. 市場予測を機械学習と総合的に扱う

予測市場は、過去のデータが十分でなく、機械学習だけに頼ることができない場合に、そのギャップを埋めることができます。戦略的な意思決定に役立つデータはある程度持っているものの、正しい選択を判断できるほど十分ではないというのはよく見受けられる状況です。たとえば、あるプラットフォームにはお客様の消費行動に関する十分な時系列データがあるが、リリース前の新しいプラットフォームにはまだ何もないかもしれません。

予測市場と機械学習を総合的に利用する方法は 2 つあります。1 つ目の方法は、予測市場の出力をより大規模な予測分析システムの入力として使用する方法です。入力用のデータは、時系列データに対して機械学習の推論を実行することでも引き出すことができます。2 つ目の方法は、機械学習システムをマーケット メーカーとして追加し、ベースラインとなる bid-ask スプレッドと流動性を提供することで、正確な予測に対するインセンティブを高める方法です。

Google Cloud 上でプラットフォームを設計する

Google Cloud Platform(GCP)を活用することで、Google は少人数のチームで 1 年以内にプラットフォーム全体を構築し、何千人ものユーザーにスケーリングできました。堅牢なプラットフォームを非常に短期間でプロトタイプ化、構築、拡張するために使用した GCP ツールを具体的にご紹介します。

  • サーバーレスをプラットフォームの主軸として使用しました。App Engine を使用し、さらに取引のバックエンドを実装するために Cloud Run と Cloud Functions でもテストを行っています。

    • サーバーレスは優れたツールキットで、アプリケーションをビルドしてから、Compute Engine 上で使用するセルフ マネージドのバックエンドの種類を決定できます。デプロイ、バージョニング、リソースのスケーリングに追加のコードを記述する必要がないため、バックエンドのアーキテクチャの柔軟性が確保されます。

  • Cloud Scheduler と Cloud Tasks はサーバーレス アーキテクチャをうまく補完し、成績優秀者へのバッジ付与のような定期ジョブや、市場の解決や分析の計算といった長時間にわたるバックグラウンド タスクの実行が容易になります。

  • Cloud Firestore は Datastore モードで実行し、アプリケーション データベースとして利用します。スケーラブルな NoSQL クラウド データベースなので、フロントエンドを柔軟性に作成でき、新しい機能を設計してビルドしてもすぐにスキーマを更新できます。また、複雑な階層構造のデータもサポートしています。今回のケースでは、bid、ask、取引済みポジションをマーケット エンティティの子として保存することで、データのクエリを迅速かつ簡単に実行できるようにしました。

    • データポータルを使用することで、たとえば、時間の経過に伴う市場全体のトレンドを可視化するなど、予測結果から得られる分析情報をダッシュボード化できます。Looker を使用すれば、市場予測と既存の予測分析を集約して、どちらか一方だけでは生成できない優れた分析情報を生み出すことができます。  

    • 分析向けの BigQuery や機械学習向けの BigQuery ML への簡単なエクスポートにも対応しており、人間のコンセンサスをアルゴリズムで絞り込むことができます。そのデータを基に GCP の Vertex AI の機能で予測モデルをトレーニングすれば(ほとんどコードを記述する必要はありません)、難しい戦略的な質問に対しても、人間と機械の推論を最良の形で組み合わせることができます。

  • Dataflow では、バックアップからの復元など、データストアでの大規模なバッチ処理を、マネージド プロセスとして実行できます。

予測市場の運営面でも、さまざまな基本的な GCP ツールを使用しています。使用したもの:

  • Logs Explorer を使用して、クエリがタイムアウトしたときや、内部 API で問題が発生したときなど、厄介な状況でのデバッグを実行しました。

  • Cloud Profiler と Cloud Trace は、非同期でよい Cloud Firestore クエリの不必要な同期実行といったスケーリングのボトルネックを早期に特定するのに役立ちました。

  • Cloud Error Reporting により、エラーのモニタリングの構成、根本的な問題への素早いアプローチ、より頻繁に発生しているエラーの特定が容易になりました。

使ってみる

予測分析を一つ上のレベルに引き上げ、組織の知恵を存分に活用する準備はできましたか。Google Cloud を利用したこのようなプラットフォームの構築についてさらに説明をお受けになりたい場合は、こちらのフォームにご自身の情報をご記入ください。

- シニア ソフトウェア エンジニア Dan Schwarz

- 製造担当主要アカウント ディレクター Lindsay Taylor

投稿先