NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

注目のタグ

    Google アナリティクスのデータの異常を BigQuery ML で検出してみた

    こんにちは、デジタルマーケティング事業に携わっている神崎です。 本記事では、Google Cloud の BigQuery で、ARIMA_PLUS 時系列モデルを使用して Google アナリティクスデータの異常検出を行う方法と、Data Science Agent の概要について紹介します。

    本記事の目次は、下記のとおりです。

    はじめに

    BigQuery ML による異常検出は、BigQuery 上でトレーニングした機械学習モデルを用いて、時系列データや非時系列データから異常を検出できる機能です。

    docs.cloud.google.com

    SQL のみで機械学習モデルを作成~異常検出を実行できるため、非データサイエンティストでも扱いやすい点が特長です。

    その他概要やユースケースについては、以下の記事も参考にしてください。
    cloud.google.com

    BigQuery ML でモデルを作成する

    下準備として、必要なデータだけをフラットにして抽出したテーブル(データマート)を用意します。

    下準備の方法については、以下の記事を参考にしてください。

    tech.nri-net.com

    下準備が完了したら、以下のような 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 で意図した結果を得るためには、プロンプトを実行するユーザー自身に、以下のような対応が求められます。

    1. AI エージェントの計画を都度評価し、意図と異なる場合は正していく
    2. 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 アナリティクスなどのデータから価値を引き出していきましょう!

    執筆者神崎健太

    「Google マーケティング プラットフォーム」をはじめとしたマーケティングテクノロジーにかかわるコンサルティングおよび、テクニカルサポートを担当しています。


    Amazon 著者ページ:神崎 健太:作品一覧、著者略歴 - Amazon.co.jp