Slide 1

Slide 1 text

BigQuery MLの新機能紹介 Google Cloud Next ‘19

Slide 2

Slide 2 text

アジェンダ ▷ 話すこと・話さないこと ▷ 自己紹介 ▷ BigQuery MLとは? ▷ 新機能の紹介 ▷ デモ ▷ まとめ

Slide 3

Slide 3 text

話すこと・話さないこと 話すこと ● BigQuery MLの概要 ● 新機能の紹介 ● ユースケース(こういう用途に使えるよ) 話さないこと ● 機械学習の難しい話 ● 数学

Slide 4

Slide 4 text

自己紹介 ● 永江悠紀 @yukinagae ● データエンジニア(Go/Python + GCP) ○ SQL絶対に書きたくない(˘ω˘)スヤァ ● 経歴 ○ 元Java/Scalaエンジニア ○ オーストラリアでデータ分析を勉強 ○ 今はデータ分析基盤の構築・開発 ● 最近の趣味は勉強会を主催すること ○ Kaggleもくもく、競プロもくもく

Slide 5

Slide 5 text

本題、というか結論

Slide 6

Slide 6 text

Google、 機械学習で本気出すってよ

Slide 7

Slide 7 text

“ BigQuery MLは機械学習を民主化する 参照: Introduction to BigQuery ML

Slide 8

Slide 8 text

BigQuery MLとは?

Slide 9

Slide 9 text

BigQuery ML BigQuery(SQL) + ML = BigQuery ML ※つまり、BigQuery上の  SQLで機械学習のタスク全てが実行できる

Slide 10

Slide 10 text

今まで機械学習に必要だったスキル ● Python ○ Jupyter ○ scikit-learn等ライブラリ ● Java ● SQL ● etc

Slide 11

Slide 11 text

BigQuery ML以後の機械学習 ● SQLのみ BigQueryがあればよい (´∀`*)

Slide 12

Slide 12 text

BigQuery MLでプロセスが変わる Before After データ蓄積 モデル構築 予測

Slide 13

Slide 13 text

BigQuery MLによる機械学習の民主化 エンジニアだけでなく、SQLが使えれば 誰もが機械学習を使える(´∀`*)

Slide 14

Slide 14 text

BigQueryをMLに使う利点 データをBigQuery上で機械学習ができる ● データの移動が不要 ○ 開発スピードの高速化 ○ 複雑なアーキテクチャが不要 ● BigQueryのプロセスパワーを使える ○ 機械学習の学習処理は時間がかかるが、こ れを高速化できる(かも?)

Slide 15

Slide 15 text

BigQuery MLの新機能

Slide 16

Slide 16 text

今までの機能 ● Linear Regression: 線形回帰 ● Logistic Regression: ロジスティック分類 つまり、あんまり複雑なことはできなかった レコメンデーションの活用事例: Wantedly: BigQuery ML を使ってみた話

Slide 17

Slide 17 text

Cloud Next ‘19で発表された新機能 ● BigQuery UI上での機械学習モデルの評価指標の可視化 ● k-means クラスタリングのサポート (Beta) ● Matrix Factorization(行列分解)の サポート (Alpha) ● TensorFlow を用いたディープニューラルネットワークのサ ポート (Alpha) ● BigQuery 上でのプレディクション用のTensorFlow モデルの インポート (Alpha) ● 特徴量の前処理関数のサポート (Alpha)

Slide 18

Slide 18 text

各機能を見てみましょう

Slide 19

Slide 19 text

機械学習モデルの評価指標の可視化

Slide 20

Slide 20 text

機械学習の評価指標の可視化 機械学習のさまざまな評価指標が BigQueryのUIで見れる: ● Recall ● Precision ● ROC curve ● Confusion Matrix ● Loss curve ● などなど

Slide 21

Slide 21 text

(やってみた)モデル構築 参照: Getting started with BigQuery ML for data analysts

Slide 22

Slide 22 text

(やってみた)評価指標の可視化

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

なぜ評価指標を見たいの? ● 機械学習モデルの学習結果を確認したい ● どこで間違えているか知りたい ● オーバーフィットしていないか確認したい ○ 既存データには精度がよくても、  未知 のデータの精度が悪いことがある ● リリースバージョン毎のモデルの精度を見て、 必要なら切り戻す等できる(かも)

Slide 25

Slide 25 text

k-meansクラスタリング(Beta)

Slide 26

Slide 26 text

k-means クラスタリング ● 教師なし学習の手法の一つ ○ 人間が答えを教える必要がない ● 入力データをグルーピング

Slide 27

Slide 27 text

k-means クラスタリングのユースケース ● ユーザーセグメンテーション 1. ユーザーに関する特徴(変数)が  多い 場合に、任意のグループに分割 2. そのグループ毎に施策を実施する ● データクオリティの改善 ○ これを次のスライドから説明します

Slide 28

Slide 28 text

Booking.com(宿泊予約サイト)の例 ● kmeansクラスタリングで        データク オリティ改善

Slide 29

Slide 29 text

Booking.com ● 検索フィルタが充実(176個!)

Slide 30

Slide 30 text

しかし、データの質の問題がある 例)有料チャネルあり & TVなし ↓ データがおかしい! しかし、 if/elseのルールベースや人手でチェックするのは 難しい

Slide 31

Slide 31 text

不整合データ(外れ値)を見つける 1. ほとんどのデータの質は高い 2. 質が高いデータ同士は似ている 3. 似ていないデータ(外れ値)は   不整合データでは?  (右図では緑丸が外れ値) 4. 外れ値のデータを人力チェック

Slide 32

Slide 32 text

Matrix Factorization(行列分解) (Alpha)

Slide 33

Slide 33 text

Matrix Factorization(行列分解) ユーザー 商品 既知の rating 未知の rating ● 既知から未知の値(レーティング)を埋める

Slide 34

Slide 34 text

Matrix Factorization(行列分解) ユースケース ● 商品レコメンデーション ○ Netflix ○ Spotify ○ etc

Slide 35

Slide 35 text

TensorFlowを用いた深層学習 (Alpha)

Slide 36

Slide 36 text

TensorFlowを用いた深層学習 (Alpha) ● 深層学習(Deep Neural Network)だとデータ の非線形な特徴を捉えられる ↓ ● ただの線形回帰では捉えられない複雑性を 扱える

Slide 37

Slide 37 text

BigQueryにTensorFlowモデルの インポート (Alpha)

Slide 38

Slide 38 text

TensorFlowモデルのインポート (Alpha) ● GCSにおいた学習済みのTensorFlowモデル を読み込むだけ 制限 ● モデルサイズ制限: 250MB ● RNNやLSTMなどは使えない

Slide 39

Slide 39 text

特徴量の前処理のサポート (Alpha)

Slide 40

Slide 40 text

特徴量の前処理のサポート (Alpha) ● 特徴量変換をモデル構築中に定義できる ● 汎用的に使える ● 前処理に関してSQL関数が使える

Slide 41

Slide 41 text

まとめ ● BigQuery MLを使うと、    SQLだ けで機械学習ができる ● 新機能 ○ 評価指標の可視化 ○ 色々なモデルやTensorFlowのサポート ○ 前処理関数のサポート ● 実用的に使えそうな予感 ● 今後の新機能も期待大(´∀`*)

Slide 42

Slide 42 text

参考資料 ● Introduction to BigQuery ML ● What’s New with BigQuery ML and Using it to Assess Data Quality (Cloud Next ’19) - YouTube ● CREATE MODEL ステートメント | BigQuery | Google Cloud ● Google Cloud Next 2019 in SF , BigQuery 関連発表まとめ – google-cloud-jp – Medium ● How to use K-Means clustering in BigQuery ML to understand and describe your data better ● 「BigQuery ML」でSQLを書いて機械学習モデルを構築&予 測できる!