#gc_inside [レポート] 明日から役立つ BigQuery ML 5 つのヒント – Google Cloud INSIDE Games & Apps 第 11 回『祝 BigQuery 10 周年! 今こそ学ぶ BigQuery 徹底活用法』

2020.09.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2020年09月09日、『Google Cloud INSIDE Games & Apps』の第11回目のイベントがオンラインで開催されていました。今回はGoogle BigQuery 10周年とタイミングが重なったということで、タイトルも『祝 BigQuery 10 周年! 今こそ学ぶ BigQuery 徹底活用法』という形で全セッション、BigQueryに関する内容となっていました。

当エントリでは、その中から『明日から役立つ BigQuery ML 5 つのヒント』の内容について紹介します。

目次

セッション動画&スライド資料

 

YouTube動画

※当該セッションは2:14:00頃から始まります。

 

スライド資料(Slideshare)

 

セッションレポート

以下、セッション内容についてレポートします。

  • 登壇者: 葛木 美紀氏 (Google Cloud カスタマー エンジニア)

 

BigQuery ML概要

  • BigQueryの特徴:当セッションでは3つ目のトピックについてフォーカス。
    • 1.サーバレスプラットフォーム
    • 2.ストリーミングデータによるリアルタイムインサイト
    • 3.予測分析のための組み込みML
    • 4.高速なインメモリ BI Engine でより高速なレポーティングを実現
  • MLモデル作成の膨大な工数
    • 1から作ろうと思うと、以下のような作業を膨大な工数を掛けて行う必要があり、手間が掛かる→いっそのこと、DWH上で機械学習モデルを作る事が出来るのならば楽になるのではないか?というコンセプトで提供されたのが『BigQuery ML』。
      • タスク例
        • 少量のデータをBigQueryからエクスポート
        • データの前処理
        • モデルトレーニング
        • ハイパーパラメータチューニング
        • 精度の確認
        • モデル改善のための更なるデータ取得 などなど...
      • セキュリティの考慮点
        • 個人情報の保護
      • データへのアクセス権限設定
  • BigQuery ML概要
    • BigQuery ML の概要  |  Google Cloud
    • モデルの作成 / 予測
    • BigQueryからデータを移動せずに機械学習モデルを作成
    • 使い慣れたSQLで開発速度を向上
    • 一般的なMLタスクを自動化
    • セキュリティとコンプライアンス:保護されたインフラ上で動作
  • BigQuery ML でサポートされるモデル
    • 分類
      • ロジスティック回帰
      • DNN分類(TensorFlow)
      • XGBoost
      • AutoML Tables
    • 回帰
      • 線形回帰
      • DNN回帰(TensorFlow)
      • XGBoost
      • AutoML Tables
    • その他のモデル
      • k-meansクラスタリング
      • 時系列予測
      • リコメンデーション: Matrix factorization
    • モデルのインポート・エクスポート
      • バッチ及びオンライン予測用 TensorFlowモデル

 

BigQuery MLデモ実演x5

時系列分析

  • 日にちや日次など、一定の時間間隔毎に収集された時系列のデータから将来の値を予測する手法。 通常の構造化データと異なり、自分自身の過去の値の影響を受け、トレンドや季節性といった要素に分解する事が特徴。
  • 活用例
    • 需要予測
    • 売上分析
  • BigQuery MLではARIMAが時系列分析モデルとして対応。

クエリ実行例:

CREATE MODEL `project_id.mydataset.mymodel`
 OPTIONS(MODEL_TYPE='ARIMA',
         time_series_timestamp_col='date'
         time_series_data_col='transaction') AS
SELECT
  date,
  transaction
FROM
  `mydataset.mytable`
  • Google Analyticsの時系列の訪問データから将来のサイトの訪問数を予測するデモ実演。

リコメンデーション

クエリ実行例:

CREATE MODEL `project_id.mydataset.mymodel`
 OPTIONS(MODEL_TYPE='MATRIX_FACTORIZATION') AS
SELECT
  user,
  item,
  rating
FROM
  `mydataset.mytable`

オススメのアニメをリコメンデーションするデモを実施。

AutoMLでLTV(LifeTime Value)分析

k-meansによる異常検知

  • ユーザーの行動ログなどから不正ユーザー等を検出したい時などに利用可能。一般的に以下2種類のアプローチが可能。ここでは、教師なし学習の手法としてk-meansクラスタリングによる外れ値検出の手法を採用している。
    • 教師あり(Labeled)学習:過去のデータを活用し、何が異常で何が予期されているかを判断
    • 教師なし(Unlabeled)学習:データの性質に基づいて異常なイベントを特定
  • 顧客セグメンテーションやデータ品質の調査等に活用可能。

XGBoostで解約予測

CREATE MODEL project_id:mydataset.mymodel
OPTIONS(MODEL_TYPE='BOOSTED_TREE_CLASSIFIER',
        BOOSTER_TYPE = 'GBTREE',
        NUM_PARALLEL_TREE = 1,
        MAX_ITERATIONS = 50,
        TREE_METHOD = 'HIST',
        EARLY_STOP = FALSE,
        SUBSAMPLE = 0.85,
        INPUT_LABEL_COLS = ['mylabel'])
AS SELECT * FROM project_id:mydataset.mytable;

ユーザーがあるサービスにおいて、解約しそうかどうかを予測するデモを実演。

 

価格について

  • 定額(予約)及びフレックススロット
    • スロットをそのまま使用
    • Cloud AI Platformジョブは自動的にスロットに変換
  • オンデマンド
    • 通常のCloud AI Platformコストが発生
    • トレーニングコストは$300/TB(※東京リージョンの場合)
    • Matrix Factorizationは使用不可

 

Q&A

 

まとめ

という訳で、Google Cloud INSIDE Games & Apps 第11回のセッション『明日から役立つ BigQuery ML 5 つのヒント』の紹介でした。機械学習モデルそのものに関してはダイジェストでの紹介となり、また私自身この分野については詳しく無いため詳細については「?」でしたが、モデル作成と予測がSQLで全て完結してしまうというのはとても便利で素晴らしいものだな、と思いました。せっかくなのでこれを機に時間を見つけてちょっと触ってみようかなと思います。