
こんにちは、デジタルマーケティング事業に携わっている神崎です。 本記事では、Google Cloud の BigQuery で、ARIMA_PLUS 時系列モデルを使用して Google アナリティクスデータの異常検出を行う方法と、Data Science Agent の概要について紹介します。
本記事の目次は、下記のとおりです。
はじめに
BigQuery ML による異常検出は、BigQuery 上でトレーニングした機械学習モデルを用いて、時系列データや非時系列データから異常を検出できる機能です。
SQL のみで機械学習モデルを作成~異常検出を実行できるため、非データサイエンティストでも扱いやすい点が特長です。
その他概要やユースケースについては、以下の記事も参考にしてください。
cloud.google.com
BigQuery ML でモデルを作成する
下準備として、必要なデータだけをフラットにして抽出したテーブル(データマート)を用意します。

下準備の方法については、以下の記事を参考にしてください。
下準備が完了したら、以下のような SQL で ARIMA_PLUS 時系列モデルを作成します。
CREATE OR REPLACE MODEL `example-project.example_dataset.example_model` OPTIONS( model_type = 'ARIMA_PLUS', time_series_timestamp_col = 'event_date', time_series_data_col = 'total_sessions' ) AS SELECT event_date, COUNT(DISTINCT CONCAT(user_pseudo_id, ga_session_id)) AS total_sessions FROM `example-project.example_dataset.events_formatted` GROUP BY event_date;
OPTIONS 箇所で指定されている引数は、以下のとおりです。
- model_type:モデルの作成時に使用するモデルタイプを指定(例:ARIMA_PLUS)
- time_series_timestamp_col:日付や時間にあたるデータが入っているカラムを指定(例:event_date)
- time_series_data_col:異常検出したいデータが入っているカラムを指定(例:total_sessions)
詳細については、以下のリファレンスを参照してください。
The CREATE MODEL statement for ARIMA_PLUS models | BigQuery | Google Cloud Documentation
異常値を検出する
ARIMA_PLUS 時系列モデルの作成が完了したら、以下のような SQL で異常値が検出できるようになります。
SELECT * FROM ML.DETECT_ANOMALIES( MODEL `example-project.example_dataset.example_model`, STRUCT(0.95 AS anomaly_prob_threshold) -- 異常と判定するしきい値(95%) ) ORDER BY event_date DESC;
SQL を実行すると、以下のような結果が表示されます。

「anomaly_probability」が 0.95 を超えるレコードの「is_anomaly」カラムが「true」となっていることがわかります。 「lower_bound」と「upper_bound」は予測された正常範囲の下限値と上限値です。
Data Science Agent を使ってみた
Data Science Agent は、「データ エージェント ファミリー」と呼ばれる Google Cloud の AI エージェント群のうちのひとつで、データの分析や機械学習モデルの作成にかかわるタスクを支援します。

※出典:生成 AI が拓くデータ活用の新境地:Google Cloud の「データ エージェント」とは?
https://www.youtube.com/watch?v=YGZozq561iI
デジタルマーケティング、とりわけデータ活用の文脈では、以下の赤枠内を支援する機能となっています。

Data Science Agent との対話は、BigQuery の Colab Enterprise ノートブックより開始できます。

詳細については、以下のページも参考にしてください。
データ サイエンス エージェントを使用する | Colab Enterprise | Google Cloud Documentation
※本記事執筆時点において、本機能はプレビュー版で一般公開されていますが、機能は必ずしも完全ではなく、SLA やテクニカルサポートの確約はありません。
例として、ARIMA_PLUS 時系列モデルを作成してみます。テーブルを選択し、プロンプトを入力したら、送信します。

AI エージェントから計画が返ってくるので、内容を確認の上「承認して実行」します。 AI エージェントの計画が想定と異なる場合は、再度プロンプトを入力し、計画を変更することも可能です。

タスクはステップバイステップで処理されます。 以下は「時系列モデルのトレーニング」のタスクです。こちらも「承認して実行」します。

「異常検出」のタスクも「承認して実行」します。

以下のように、ARIMA_PLUS 時系列モデルによる異常検出が行われました。

Data Science Agent は、データの視覚化も実行してくれます。

最後に、サマリーを確認して「許可」したら、タスクの実行は完了です。

テーブルを選択してプロンプトを入力、あとは「承認して実行」し続けるだけで、異常検出まで実行できました。
Data Science Agent 利用時の留意事項
Data Science Agent で意図した結果を得るためには、プロンプトを実行するユーザー自身に、以下のような対応が求められます。
- AI エージェントの計画を都度評価し、意図と異なる場合は正していく
- AI エージェントがデータを正しく処理できるよう、データの背景情報などを AI エージェントに伝達する
「承認して実行」し続けるだけで、誰でも何でも実行できてしまうような、魔法のツールではない点には留意する必要があります。
また、本記事執筆時点において、Data Science Agent は VPC Service Controls をサポートしていません。 VPC Service Controls による IP アドレス制限などを設定している場合は、Data Science Agent は使用できない点に注意してください。

※ご参考:https://docs.cloud.google.com/bigquery/docs/colab-data-science-agent#limitations
おわりに
Google Cloud の「データ エージェント ファミリー」については、以下の記事もご参照ください。
| AI エージェント | 記事 |
|---|---|
| Conversational Analytics Agent | BigQuery の会話分析機能を活用する - NRIネットコムBlog |
| Data Governance Agent | BigQuery テーブルやカラムの説明(メタデータ)を自動生成する - NRIネットコムBlog |
AI エージェントの登場で、以前より容易に、かつコストをかけずにデータを活用できる土壌ができました。 今こそ、収集した Google アナリティクスなどのデータから価値を引き出していきましょう!
