11/30、BigQueryのユーザ会であるbq_sushi主催の勉強会に参加したのでその内容と感想のご報告です。仕事でもプライベートでもBigQueryを触ることがあったので、前々から参加してみたかった勉強会です。
概要
今回の勉強会では、今年発表された新機能であるBigQueryMLとBIgQueryGISの実際に活用されている方による事例及び所感の発表、そして登壇者によるBigQueryのパネルディスカッションがありした。
BigQuery GISを用いた物件レコメンド
・スピーカー:中川帝人さん(株式会社オープンハウス)
・内容
自己紹介
・スピーカーさんは現職には入社10カ月目で情報システム部所属。経歴はずっとデータ分析の仕事。BigQuery歴6カ月。現職で使っているクラウドは主にGCP。
GISについて
GISは地理情報システムの略。専門的なツールもあるが高い。有名なのはPostGis。
・GISのツール
QGIS:オープンな地図情報システム
(あと1つ紹介がありましたが誤って名前でメモしたため分からない)
・地理情報の形状は、楕円形だったり多角形だったりするらしい。
・フォーマットは".ship"が有名
PostGisについて
PostgreSQL(以下、ポスグレ) の地理空間情報機能拡張。多様な測位や関数をつかえる*1
・課題:メモリや一時利用ファイルがすぐ枯渇する。リソース調整や拡張を(すぐに)できないから。
地理情報の精度について
・求められる制度は要件により異なる。
・物件だと、地価に影響するため測位結果が1m単位の精度が求めらえれる。
・世界表標準の世界測地系を国内の住所判定で使うと、郵便番号が1個ずれるぐらいは普通に発生する。
BigQuery GISの活用事例
導入箇所:物件検索レコメンドの物件スコアリング集計。検索内容に対して、マッチしている・買ってくれる可能性が高い物件をレコメンドしたい。
業務について:オープンハウスさんは家を建てて売る会社(パワービルダー)であり、Webサイトで物件検索・販売も行っている。
物件検索で見るところ:ユーザはほぼ場所で見たり、検索してくる。ただ、以下の様な事例で曖昧に場所を検索してくることもあり、正確なインプットやアウトプットが難しい。
①憧れ:実際は買えないけど、憧れの場所も検索範囲に含めてくる。
②緊急度が高い:Uターンや転勤などの理由で、すぐ買える家を広範囲に指定してくる。
BigQueryの活用:
・既存のポスグレと併用しており、ポスグレの座標データをpythonで書いたETLでBigQueryへ流している。座標データは日々手メンテするため、更新しやすいポスグレはそのまま利用している。
・集計に使うデータは物件検索に使われているデータ
・レコメンド:複数条件から最も適合する物件を出している。
・スコアリング:1次元回帰で予測モデリングをして、スコアリングしている。
*他にもあるようでしたが、主題からずれるのと業務にかかわる部分なのでこのぐらいだっと思います。
・SQLの性能:BigQueryといえどテーブル結合方法によっては遅かったり、落ちたりする。GISはもともと処理が重くなりやすいというのもある。今まで2、3回ぐらい落ちている。with句を使うなどして調整した。
所感
Good:とにかく集計できる。処理によるが早い。
リスク:
・取り込み時にデータを確認すること。ポスグレで入れることができても、BigQueryには入らない不正データがあったりする。
・バグがある。よく分からないが何か引っかかった。
ユースケース
〇:スマホアプリからの収集した大量の位置情報ログの集計
×:精微なポリゴンデータ
×:高精度な処理(測位図や超広域データ)
本題に入る前に、GISの基礎知識やサービスの紹介があったのは、私もGISの基礎を知らないので良かったです。住宅業界ならではの事例とBigQuery GISのユースケースがあったのも今後利用を検討するときの参考になります。
BigQuery ML を使ってみた話
・スピーカー:Wantedly 松村 優也さん (@yu-ya4)
・内容:
自己紹介
Wantedlyで検索・推薦を担当するエンジニア。所属するレコメンドチームは2名。
また、Data Driven Developer Meetupを運営している。
サービス紹介
Visit:企業に気軽に話に聴きに行くためのマッチングサービス
People:名刺サービス
BigQuery ML紹介
・Google Cloud Next'18で発表されたサービス
・BigQueryでSQLを使ってMLができる
・BigQueryで完結するので手軽
・現在サポートしているモデルは3つ
1.線形ロジスティック回帰
2.二項ロジスティック回帰
3.多項ロジスティック回帰
*当発表とは関係ないですが、今後ランダムフォレストに対応予定とDogrunで話がありましたね。
なぜBigQueryMLを使ことにしたのか
BigQueryを使う基盤・推薦環境がある
BigQueyを使い慣れている
使えそうな問題があった
チームの事情
人数が少ない、時間があまりないため小さい改善を素早く繰り返す必要があった。
レコメンド基盤にはやり方がいっぱいあるが、時間がかけられないのでBigQueryにすることで、改善を素早く繰り返せる。
活用した問題
1日2回ニュースのプッシュ通知を送ってもよいユーザーを探す。
過去約1カ月のユーザーの行動データから説明変数を作り、1日前に2回プッシュ通知に反応したユーザーを当てるモデル作成。
結果、プッシュ通知の開封率が大きく改善(無駄なプッシュ通知を減らした)
身近な問題にBigQueryMLを使ってみた事例でしたが、成果も出ており有用性があるのが分かります。MLを使える基盤・データがあるからすぐできるのは、自社サービスでデータを収集できていることによる利点だなと思います。
bq_sushiパネルディスカッション
スピーカー:セッションを行った2人
内容:参加者からの質問回答形式。
覚えている質問を何点か記載。
1.Q.MLの料金が変わるが使い続けられるか?
A.以前は何度もモデルの作り直しをしていたが、新しい料金体系ではコストがかかるようになるため、考えてモデル作りをしないといけないと思う。
2.Q.クラスタリングテーブルの実例はあるか?
A.(会場にいたsimetalさんから)merpayでも実例はない。中間テーブル作成に使うことができるのではないか。
懇親会
個人的に初めてのことがあったので懇親会のこともメモします。隣の方とBigQueryについてお話していたのだが、なんか話が合わない感じがしたので、所属会社について尋ねたらマーケティング系企業の方でありエンジニアでなかった。今まで参加した勉強会ではエンジニアの方としかお会いしていなかったので衝撃的で、BigQueryの勉強会だと、昨今のビジネスへのデータ活用が流行っているためか、非エンジニアの方もいらっしゃるのかなと思いました。BigQueryがどのようなものか知るために参加したらしく、私からも知っている範囲でご紹介をしています。また、2人に聞いた話ではTresureDataを使っているが、定額制なのを良いことに、性能が悪いクエリが特定の時間帯に集中して何度も投げられるため、高負荷となりレスポンスが悪い。もう1人の方はsplunkを使っているが、年間数千万円と高いので代わりがないか探していると課題を聞くことができる貴重な機会でもありました。
初めてのbq_sushiでしたが、新機能を使いこなしていることの羨ましさと有用性を感じることができたのと非エンジニアの方と話す貴重な体験があったので良かったです。スタッフとかやってみたいですね。