#gc_inside [レポート] 明日から役立つ BigQuery ML 5 つのヒント – Google Cloud INSIDE Games & Apps 第 11 回『祝 BigQuery 10 周年! 今こそ学ぶ BigQuery 徹底活用法』
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からエクスポート
- データの前処理
- モデルトレーニング
- ハイパーパラメータチューニング
- 精度の確認
- モデル改善のための更なるデータ取得 などなど...
- セキュリティの考慮点
- 個人情報の保護
- データへのアクセス権限設定
- タスク例
- 1から作ろうと思うと、以下のような作業を膨大な工数を掛けて行う必要があり、手間が掛かる→いっそのこと、DWH上で機械学習モデルを作る事が出来るのならば楽になるのではないか?というコンセプトで提供されたのが『BigQuery ML』。
- 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の時系列の訪問データから将来のサイトの訪問数を予測するデモ実演。
リコメンデーション
- ECサイト等で『これを買った人はこれも買っています』といったオススメ商品を予測する際に用いられる手法。BigQuery MLではMatrix factorizationに対応している。
クエリ実行例:
CREATE MODEL `project_id.mydataset.mymodel` OPTIONS(MODEL_TYPE='MATRIX_FACTORIZATION') AS SELECT user, item, rating FROM `mydataset.mytable`
オススメのアニメをリコメンデーションするデモを実施。
- 参考:BigQueryML で好みのアニメを探してみる. この記事では、BigQueryML(BQML)… | by Miki Katsuragi | google-cloud-jp | Medium
AutoMLでLTV(LifeTime Value)分析
- AutoML Tables(表形式[構造化]データに対応したAutoML)をを使った分析
- 生涯価値、購入予測等で活用可能。優良顧客をセグメント
k-meansによる異常検知
- ユーザーの行動ログなどから不正ユーザー等を検出したい時などに利用可能。一般的に以下2種類のアプローチが可能。ここでは、教師なし学習の手法としてk-meansクラスタリングによる外れ値検出の手法を採用している。
- 教師あり(Labeled)学習:過去のデータを活用し、何が異常で何が予期されているかを判断
- 教師なし(Unlabeled)学習:データの性質に基づいて異常なイベントを特定
- 顧客セグメンテーションやデータ品質の調査等に活用可能。
XGBoostで解約予測
- 「決定木」と呼ばれる比較的単純な機械学習モデルを組み合わせて多様性を持たせた機械学習モデル。
- XGBoost を使用したブーストツリー モデルの CREATE MODEL ステートメント | BigQuery ML
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
- Q.BigQueryMLとAutoMLの使い分けについて
- A.一番の違いは、モデル作成にかかる時間。AutoML Tables は最短でも1時間程度かかるため、数分程度でモデル作成する場合は BigQueryML を利用。
まとめ
という訳で、Google Cloud INSIDE Games & Apps 第11回のセッション『明日から役立つ BigQuery ML 5 つのヒント』の紹介でした。機械学習モデルそのものに関してはダイジェストでの紹介となり、また私自身この分野については詳しく無いため詳細については「?」でしたが、モデル作成と予測がSQLで全て完結してしまうというのはとても便利で素晴らしいものだな、と思いました。せっかくなのでこれを機に時間を見つけてちょっと触ってみようかなと思います。