Google

セミナーレポート: 第2回Google Cloud Inside Games & Apps

Pocket

GoogleがGoogle の中のテクノロジーを知れる場。として開催しているエンジニア向けセミナー「Google Cloud Inside Games & Apps」に参加してきましたので、レポートします。

Google Cloud Inside Games & Apps 2017/11/22水

主に、Google Cloud Platformを利用したデータアナリティクス関連に関する内容です。

アジェンダ

  1. Google Cloud 下田 倫大「基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群」
  2. 株式会社リクルートライフスタイル 南谷 和毅 氏 「データプロダクトを支えるビッグデータ基盤」
  3. 株式会社プレイド 牧野 祐己 氏「」

Google Cloud 下田 倫大「基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群」

GCP上でのデータ分析の基本的考え方

データ分析のワークフロー」

  • 集める
  • 貯める
  • 処理する
  • 分析する
  • 可視化する

データサイエンス + データエンジニアの構成で仕事をすることが多い。

「データサイエンティスト」

ビジネス課題に対してデータを利用して科学的に課題を解決する

「データエンジニア」

データセットを用意するためのインフラを構築/運用/保守する

データサイエンティスト + データエンジニア うまくいかないことが多い。

サーバ負荷等気になる等
課題、守備範囲が分かれている

データ分析を簡単に効率的に。

「Cloud Pub/Sub 」(Cloud Publish/Subscribe)

大量に高速に安価に集めて保存
イベントメトリックなどをストリーミングで収集

Cloud Strage

オブジェクトのストレージサービス
生ログ、ファイルなどデータの保存場所

「Cloud Dataflow」

高速に、サーバレスでデータ処理
パイプラインのストローミングとバッチ実行をサポートする
フルマネージドどのデータサービス

特徴

フルマネージド
最適な実行パスのための自動グラフ最適化
ジョブのAuto Sacale
ジョブの動的な負荷のリバランシング

Cloud Dataproc」

マネージドhadoop, spark

「Cloud Dataprep」

GUIベースのデータ準備ツール
Cloud Dataflow上に構築され、コードは不要
データソース:CSV, JSON …
データ変換のレコメンド

データの分析(集計/検索)

大量のデータに素早くアクセス
BigQuery
ペタバイト級のデータも低料金で保存
フルマネージドのデータウェアハウス
スキーマの設定が不要
同時に複雑な処理が行える
生ログをストリーミングで挿入できる

データの分析(機械学習)

No Ops でのモデル作成 / 学習済みモデルへの提供
Cloud ML Engine
フルマネージドのTensorFlowの実行環境
分散学習やバッチ/オンライン予測も実行可能

ML APIs

学習済みモデルに対してデータを適用することのできるサービス

TensorFlow

機械学習のライブラリ
自由度高いが、使いこなすのは知識必要

Cloud ML Engine

マネージドなTensorFlow実行で環境
インラウフラはGCPに任せる

ML APIs

特定のタスクの学習済みモデルをAPI経由で利用
e.x. ) 翻訳、画像認識
モデルに変更はくわえられない
やりたいことにハマれば良い選択肢

データの可視化

「Cloud Datalab」

インタラクティブなデータの探索、分析、可視化、機械学習のための使いやすいインタラクティぶなツール
Jupiter notebookのクラウド版
オープンソースとしての開発
GCPの各サービスとのインテグレーション GCS, BigQuery

「Cloud Data Studio 」

データ可視化 / レポートサービス
定期的な定型的なレポート出力に向いている。
BIツールではない。

分析環境 on GCPのメリット

事実上無制限にスケールする
小さく初めて、同じ構成でそのまま使い続けられる

PaaS / Saa Sのみので構築できる
専任のインフラエンジニアが事実上不要

データの活用に専念できる

「データプロダクトを支えるビッグデータ基盤」リクルートライフスタイル南谷氏

アジェンダ

  • データプロダクトを支えるビッグデータ基板の設計
  • インフラ設計背景、 GCPプロダクト選定の背景
  • ノウハウ

クライアント向けBIツール を作っている

データプロダクト基板設計 意識

①誰もがデータを自律的に活かせる基板
このデータの意味を誰に聞けばいいんだろ
このデータをあるDBに入れたい、毎回頼む
データ処理したいけど、負荷が高い他に影響しないか。

→ 本質でないことに労力を避けない

② PDCAを高速に回しデータから価値をうむ基板
データの取り込みからユーザー提供までをトライアンドエラーで一気通貫できるインフラ

③ 誰もがデータから価値を生み出せる。
他領域への横展開が容易な基板
誰もがデータプロダクトを開発・運用できる基板
凄腕エンジニアでなくても開発できる。

アーキテクチャ

Datarobot も使っている。

データ処理 機械学習

コストを抑えるため us-central-1リージョンを利用

用途に合わせて最適なプロダクト/ 使い方をする

BigQuery 日次バッチ コストを意識。事前に用意できるデータ 9割型

Cloud Dataflow

SQLでもかけるが、将来性を考えて
BigQueryでパフォーマンスが出ない。
Javaではなくデータ処理に適しhたPythonを採用

Apache beamドキュメントを参考 Dataflowのドキュメント古い場合も
開発デバッグはDirectRunner (ローカル実行モード)を利用。

BigQuery オンライン

事前にデータを準備難しい
e.x. A,B,C店舗のD商品とF日とG日のデータが欲しい

Dataroboto(機械学習)

YAMLを書くだけでBigQueryのデータを使って誰でも簡単に予測可能できるようにしている

データロード

レイテンシーを意識し、BigQueryなどで加工したデータはDatastoreへ保存

Memcacheの更新について

Dataflow -> NDB使えない、毎度flushで初期化

データ表示

十数行のコードでデータ加工したデータがユーザーに届くようにAPIを設計
App Engine +Datastore + Memcache + BigQuery

RedShiftとBigQueryをどのように使い分けているか

基本は慣れているRedShift。BigQueryクエリ投げ放題プランで気軽に使えるので、BQも使っている。

「データアナリティクスの新たないっぽとそれを支えるインフラ」PLAID牧野祐己氏

PLAID (プレイド)牧野祐己氏
主にリアルタイム解析システムの開発

データ分析のステップ

「処理」
古典統計
ベイズ統計 & Machine Learning ☆ここがHOT 非線形モデル、ディープなやつ。人の解釈が必ずしも必要とされない
「理解」
理解
モデルの作成 -> Science
「意思決定」

課題より現実的な意思決定、創造につなげようとすると元お動的で複雑なモデルが必要

→ 結構難しい

→ 人を挟んで、意思決定や想像をさせる
その結果に基づく学びを取り入れる、制御や強化学習的なスタンス
意思決定も取り組んだアナリティクス が有効と考え、これができるシステムを作っている。

それに必要なこと

感じさせる

意思決定につながる可視化(!= data visualization) 類推 自然な理解
多様なデータをまとめる
すぐに意思決定、創造

→ 具体的にはWeb接客、KARTEというサービスを提供。
リアルタイムにWebサイト嬢のアクションが行えるプラットフォーム

大量データの代表的な処理方法

「バッチ処理」
最短数秒で大量のデータを処理
BigQuery, Presto, Spark, Hadoop
「ストリーミング処理」
秒以内で短時間のウィンドウのデータを処理
Spark Streaming, Storm

秒以内に全データの解析処理結果が欲しい

→ 作った。ただし、解析軸は決定

なぜGCPなのか

コストパフォーマンスが良い

Bigtableのポイント

主にリアルタイム分析

BigQueryのポイント

ニアリアルタイムのユーザー軸以上の解析にしよう
Streaming Insertがバッファリングなど考えないで良いので非常に便利
中間レイヤが少なくて済む
データ連携が用意

おわりに

GCPで何の問題が解決できるのか、短時間で理解が深まり有意義でした。
次回は 2018年2月に開催予定となっていて、次回も楽しみです。

第 2 回 Google Cloud INSIDE Games & Apps 開催のお知らせ

Google Mapsで冥王星と火星が追加

Pocket

Google Mapsに冥王星と火星が追加されました。

Google TensorFlowを使って動画のシーンや被写体を自動抽出するAPIを提供

Pocket

Googleが、機械学習系のライブラリTensorFlowをベースとして、動画のシーンや被写体を自動抽出するAPIの提供を開始しました。
静止画については、googleや、AWSから提供されていましたが、動画についても提供されるとは、すごいなと思います。
私たち開発者は、動画(画像)認識の技術は大手にまかせて、提供されたサービスを使ってどうやって顧客満足度を上げられるかに注力するのが良さそうです。