エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか

gree_tech
gree_techgree_tech
Copyright © LIMIA, Inc. All Rights Reserved.
エンジニア以外の方が自らSQL
を使ってセグメント分析を行うカ
ルチャーをどのように作っていっ
たか
July Tech Festa2019発表資料
Copyright © LIMIA, Inc. All Rights Reserved.
● グリーグループのリミア株式会社で、LIMIA という住まい領域のメディア
を作っています。ゲーム会社ですが、最近はメディアに力を入れていま
す。
● 機械学習(RecSys)のエンジニアですが、iOS, Android,JSなどもやってい
る何でも屋です。5歳の娘のパパ。twitter: @mahiguch1
● PHP Conferenceでgoの話をしたら、社内Slackがざわざわしました。w
● https://limia.jp/
● https://arine.jp/
● https://aumo.jp/
● https://www.mine-3m.com/mine/
Masahiro Higuchi/樋口雅拓
2
Copyright © LIMIA, Inc. All Rights Reserved.
グリーグループ公式部活動とし
て技術書典部を立ち上げ、合同
誌を作って頒布しました。
次の合同誌を制作着手してお
り、技術書典8にもサークル参加
予定です。
企業部活動として技術書典7にサークル参加
3
Copyright © LIMIA, Inc. All Rights Reserved.
オフィスが新宿に移
転しました。最大190
名収容可能な勉強会
スペースがあります。
社内外の勉強会を開
催できたらと思ってい
ます。
松屋自販機もありま
す!
最高すぎる勉強会スペースと松屋自販機
4
Copyright © LIMIA, Inc. All Rights Reserved.
「エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように
作っていったか」について、次の構成で説明します。
• 従来の分析
• 新しい分析
• 普及活動
• 事例1: プッシュ通知改善
• 事例2: 編成改善
アジェンダ
5
Copyright © LIMIA, Inc. All Rights Reserved.
従来の分析方式
Copyright © LIMIA, Inc. All Rights Reserved.
LIMIAとは?
7
● メディアサービス
● Android, iOS, Web
● 記事一覧を表示し、タップすると
記事詳細を閲覧できる。
● 記事一覧はパーソナライズ。
● 記事詳細読了後に関連記事を出
している。
● Fuel PHP/EC2, go/ECS
● 分析基盤はBigQuery
Copyright © LIMIA, Inc. All Rights Reserved.
画面遷移でGoogleAnalytics(GA)イベ
ントを飛ばし、PageView(PV)を計測して
いた。
広告はAdNetの管理画面の数字を
SpreadSheetにコピペして管理。
Adjust/Kintoneなどのサービスも同様
にSpreadSheet管理。
従来方式の計測手法
2017年12月時点の状況
8
Copyright © LIMIA, Inc. All Rights Reserved.
• GA画面でPVボリュームを見て、施策の優
先順位を提案。
• 施策の結果は一度確認するだけ。確認しな
いことも多かった。
• グループ内のメディアで、指標(PV)の基準
が違い、横比較できない。
• SpreadSheetは非常に精巧に作られてい
た。神Excel状態。外部参照やGASでコ
ピーを繰り返しており、中間ファイルを不用
意に変更すると大騒ぎに。
従来方式の分析手法
2017年12月時点の状況
9
Copyright © LIMIA, Inc. All Rights Reserved.
● 全ユーザに効果がありそうな施策は出尽くし感があり、効果が薄くなってい
た。
● ユーザをセグメントに分けて分析し、それぞれに合わせた施策が必要。
● 分析軸となるCustom Dimentionは上限の20個に達していた。
→ 誰でも自由にセグメント分析できるようにしたい。
→ FirebaseAnalyticsで計測して、BigQueryにログを落としたい!
従来方式の問題点
2017年12月時点の状況
10
Copyright © LIMIA, Inc. All Rights Reserved.
新しい分析方式
Copyright © LIMIA, Inc. All Rights Reserved.
同時期に別の課題が発生。
● グリーグループのメディア(LIMIA/arine/aumo/mine)は、それぞれで
数値管理を行っており、集計定義が異なった。
● 統一定義を作り、FirebaseAnalyticsで計測しようとした。
● これにより、計測、集計、レポートをグループ内のメディアで統一的に行う
事ができる。
→ セグメント分析のためFAを導入しようとしていたので、他メディア等と協
力して対応を行いました。
背景と目的
2017年12月開始の施策
12
Copyright © LIMIA, Inc. All Rights Reserved.
● 当時Web向けFirebaseAnalyticsはなかったので、Webは
GoogleAnalyticsを引き続き利用することに。定義に差がなかったため。
● iOS/AndroidはGoogleAnalyticsに飛ばしていたイベントを
FirebaseAnalyticsにも飛ばすようにした。
● GoogleAnalyticsのEventは、パラメータにactionとlabelという物を付
けていた。それをそのままFirebaseAnalyticsにも飛ばした。
イベントログ
2017年12月開始の施策
13
select
event_name,
(select value.string_value FROM UNNEST(event_params) WHERE key = 'action') as action,
(select value.string_value FROM UNNEST(event_params) WHERE key = 'label') as label,
from
`analytics_1234.events_*`
where
_TABLE_SUFFIX = REPLACE(CAST(DATE_SUB(CURRENT_DATE, INTERVAL 1 day) AS
string), '-', '')
Copyright © LIMIA, Inc. All Rights Reserved.
Embulkを使ってBigQueryへ転送している。Embulkコンテナを作り、ECS
Fargateで回している。以下に要点だけ示す。
● RDS: 負荷を考慮して1テーブルずつ転送。daily tableを切らずに上書
きしていく。履歴は残らないが、MySQLと同じqueryが使える。
● Dynamo: 構造化データはjson文字列として格納。
GCP service accountは、KMSで暗号化したファイルをcontainerに含めて
いる。embulkはfargateのExecRoleを見てくれないので、AWS IAM user
を環境変数で渡している。
マスターデータ
RDSとDynamoのデータをBigQueryへ
14
Copyright © LIMIA, Inc. All Rights Reserved.
● Search Console: golangバッチでAPIから取得し、BigQueryへ転送。
ECS fargate taskで毎晩実行。
● Google Analytics: 集計パターンをいくつか作り、それぞれをBigQuery
の対象テーブルへ転送。実行環境はSCと同じ。
● Kintone: 一部業務の管理ツールとしてKintoneが使われていたため、
Kintone APIをGASで叩いてBigQueryへ。
● Adjust: Cloud FunctionsにEndpointを作り、来たデータを全て
BigQueryに格納。AdjustのGlobal Callbackに設定。
→ 全てのデータをBigQueryに転送して分析可能に
周辺システムログ
SearchConsole/GoogleAnalytics/Adjust
15
Copyright © LIMIA, Inc. All Rights Reserved.
● Webは従来方式。各メディアでGASでGA
APIを叩いてSpreadSheetに出力。
● iOS/AndroidはBigQueryにあるデータを
統括部門が全メディアの集計を行い、
SpreadSheetに出力。それを各メディア側
で参照。
→ これにより、横比較が可能となった。
KPIシートの流れ
16
Copyright © LIMIA, Inc. All Rights Reserved.
● 協力して全メディアの基本指標のSpreadSheetを作った。
● 神Excel達のデータソースをこのシートに切り替えてもらった。
● 基本指標のSQLを共有し、知識と経験があれば、それをベースにセグメン
ト分析可能な状況を作った。
→ しかし、この時点ではSpreadSheetのみを使った分析が中心。ここから
セグメント分析の普及活動を開始した。
この時点での分析の進め方
17
Copyright © LIMIA, Inc. All Rights Reserved.
普及活動
Copyright © LIMIA, Inc. All Rights Reserved.
● 書籍「10年戦えるデータ分析入門」を読んでも
らった。
● 初回演習ではSQLへの抵抗を減らすため、サ
ンプルのSQLをベースに実行してもらった。
● 隔週で5回程度演習を行い、相談用Slack
Channelを作った。
→ このときの勉強会参加は約10名。そのうち半
数がSQLでセグメント分析可能に! その後は教
え合って、できる人が増えていった。
勉強会開催
2018年前半に実施
19
Copyright © LIMIA, Inc. All Rights Reserved.
様々な要望があったため、
re:dashを導入した。
BigQuery Consoleで実
装し、ここに貼り付けてレ
ビューします。
環境整備(redash)
20
Copyright © LIMIA, Inc. All Rights Reserved.
re:dashからquery結果をcsvで取得
できる。queryを定期実行させ、その
結果を参照することで、自動更新する
KPIシートを作成することができる。
KPIシート作成支援
21
Copyright © LIMIA, Inc. All Rights Reserved.
傾向を把握するため、協力して
Data Studioで主要KPIのダッ
シュボードを作成した。
メディアの横比較は、このグラフ
を見ていた。
ダッシュボード提供
22
Copyright © LIMIA, Inc. All Rights Reserved.
事例1: プッシュ通知改善
Copyright © LIMIA, Inc. All Rights Reserved.
● 起動経路で最も多かったのは、プッシュ通知からの
起動。
● 以前は人手で良さそうな記事を送信していた。
● 分析して特徴を見つけ、自動で最適な記事を送信
する。
● 2018年に行なった施策事例のため、現時点では仕
様が異なる可能性があります。
背景と目的
24
Copyright © LIMIA, Inc. All Rights Reserved.
目標はLTV - CPI > 0の状態を保つこと。
ブレストを行い、LTVに繋がりそうな仮説を立てた。
● ユーザの興味に合わせた記事を配信すると起動率が上がる
● 読了率が高い記事を配信すると起動率が上がる
● ユーザが普段使っている時刻に配信すると起動率が上がる
● 配信回数を減らすとアンインストールが減る
● 配信回数を増やすと起動数が増える
過去ログを使って想定効果を検証した。
仮説立案
25
Copyright © LIMIA, Inc. All Rights Reserved.
● ユーザが直近見た30記事のカテゴリを調べ、最
も多かったものをユーザの興味セグメントとし
た。
● 興味セグメント毎に起動率(=起動数/ユーザ数)
を集計。
● 配信した記事のカテゴリと興味関心が一致/不
一致で起動率を比較
● 一致していたケースでは不一致に比べて、20%
起動率が高かった。採択。
オフライン検証(採択事例)
ユーザの興味に合わせた記事を配信すると起動率が上がる
26
Copyright © LIMIA, Inc. All Rights Reserved.
● 15日前から2日前のログからアプリ起動時刻を調べ、時刻毎のユーザセグ
メントを作成。
● 1日前のログから「その時刻のみに送信」と「全時刻に送信」を比較。
● 対象時刻のみだと、起動数が40%減少。アンインストールが減ってもカ
バーしきれない減少幅だったため、棄却。
今考えると、訓練/テストはユーザを80/20に分けて検証した方が良かった。結
果は変わりそうもないが。
オフライン検証(棄却事例)
ユーザが普段使っている時刻に配信すると起動率が上がりアンインストール減少
27
Copyright © LIMIA, Inc. All Rights Reserved.
オフライン検証で効果が見込めるものをABテストした。
2週間を1ラウンドとし、ラウンド毎に異なる仮説を検証した。
30ラウンドあたりで収束したので、検証を終了した。
その結果、以下のパターンが最もLTVが高かった。
● 一斉送信は1日5回
● そのうち4回は興味関心と一致した記事
● 記事は直近2週間の読了率が高かったもの
この結果は当時のLIMIAユーザに対する最適値なので注意!
そのまま使っても上手くいかない可能性が高い。
参考にするなら結果ではなくプロセスを。
オンライン検証
ABテスト
28
Copyright © LIMIA, Inc. All Rights Reserved.
興味関心に合わせた記事を配信しようとすると、興味セグメント毎に配信記事
を選ぶ必要がある。興味セグメントを10個にした場合、10倍の記事を選ばな
ければならない。人手では10倍のコストがかかってしまうため、抽出作業を自
動化した。
● 配信枠に自動で3件づつ入稿
● それを人が確認し、最適なものを選ぶ。
完全自動化すると、季節外れの記事(イベント終了後にイベント記事など)を
送ってしまう可能性があるため、人手でのチェックを残した。
運用改善: 配信記事抽出自動化
ここからは少しシステムの話です
29
Copyright © LIMIA, Inc. All Rights Reserved.
条件を満たした記事をBigQueryで集計。バッチで結果を読
んで、MySQLに書き込む。当時の基準は、以下のもの。
● CTRが高い
● 読了率が高い
● 記事の長さが一定以上
システム構成(自動入稿)
30
Copyright © LIMIA, Inc. All Rights Reserved.
バッチが毎分起動して、送信時刻になると原
稿と対象ユーザをSQSに送る。送信バッチ
はSQSにqueueがあると、それをFCMに対
して送信する。
システム構成(配信)
31
Copyright © LIMIA, Inc. All Rights Reserved.
管理ツールでは、次の4つの画面を
作った。
● 通知: 配信時刻
● 条件: どの原稿を誰に送るか
● 原稿: 通知送信内容
● コンテンツ: 遷移先コンテンツ
条件を設定すれば、ABテストや特定
のユーザへの配信が可能。原稿を工
夫することで複雑な通知を送信可能。
管理ツール
32
Copyright © LIMIA, Inc. All Rights Reserved.
● 既存ユーザが多いため、起動率は低下傾向。
● しかし、施策稼働中は起動率をほぼ横ばいにすることができた。
● 入稿作業の属人性排除と工数削減ができた
改善結果
33
Copyright © LIMIA, Inc. All Rights Reserved.
事例2: 一覧表示改善
Copyright © LIMIA, Inc. All Rights Reserved.
● アプリを起動すると、記事一覧が表示される。
● 記事への導線として、一番大きい。
● ここを改善することで、記事閲覧数を増加を目指
す。
背景と目的
35
Copyright © LIMIA, Inc. All Rights Reserved.
目標はユーザにより多くの記事を閲覧してもらうこと。それに繋がりそうな、以
下の仮説を立てた。
● CTRが高い記事を掲載する
● ユーザの興味関心に合った記事を掲載する(パーソナライズ)
パーソナライズの方がポテンシャルは高そうだが難しい。
そこで、高CTRをベースラインとして、これを超えるようなパーソナライズモデル
を開発する。
仮説立案
36
Copyright © LIMIA, Inc. All Rights Reserved.
記事とUserの距離を計算し、近い物を出す。た
だし、全記事との距離をリアルタイムに計算す
ると遅いので、分類して中心点との距離を計算
することにした。クラスタ内での順位はCTRを
使った。
次に記事とユーザをベクトル化する仕組みを説
明します。
記事の推薦の仕組み
37
Copyright © LIMIA, Inc. All Rights Reserved.
記事が更新されると、
SQSに通知されます。そ
れをLambdaで読み込ん
で、単語に分割し、単語を
vectorにします。記事に
含まれる単語の平均を記
事のvectorとします。ただ
し頻出単語の影響緩和の
ため、IDFで補正します。
記事ベクトル作成
38
Copyright © LIMIA, Inc. All Rights Reserved.
ユーザが記事を閲覧すると、その情報がKinesisに流れます。
Lambdaで受け取り、直近30件の閲覧履歴をDynamoDBに保存
します。その変更をDynamoDB Streamに流し、Lambdaで受け
取って記事のベクトルの平均をユーザベクトルとしてDynamoDBに
書き込みます。
ユーザベクトル作成
39
Copyright © LIMIA, Inc. All Rights Reserved.
過去2週間のクリックログを使い、80%のユーザ情報で訓練させ、残り20%の
ユーザへの推薦を行い評価しました。まずは形態素解析に使った辞書を検証
します。評価はnDCGを使って行いました。
● ベースライン(高CTR): 0.100
● パーソナライズ(ipadic): 0.0846
● パーソナライズ(neologdを追加): 0.0866
● パーソナライズ(さらにユーザ辞書にLIMIAキーワードを追加): 0.100
結果が良かったLIMIA辞書付きの辞書を採択しました。
オフライン検証
どの辞書が最適か
40
Copyright © LIMIA, Inc. All Rights Reserved.
青が高CTR、赤がパーソナライズ。やや負けて
いる。
単純にCTRが高い順に出すより、CTR上位200
件をシャッフルして出した方が結果が良かった。
バグってシャッフルされたことにより発覚。
オンライン検証
41
Copyright © LIMIA, Inc. All Rights Reserved.
以前行なっていた手動編成に比べると、CTRが20%向上した。
2019年11月28日現在、高CTRとパーソナライズが同じぐらい。
パーソナライズの方がポテンシャルが高いため、引き続き改善を続けている。
注意: ユーザとコンテンツが異なると、結果も異なる。
参考にするなら、施策でなく進め方!
改善結果
42
Copyright © LIMIA, Inc. All Rights Reserved.
終わりに
Copyright © LIMIA, Inc. All Rights Reserved.
● エンジニア以外の方は最初SQLに抵抗がある。
● 覚えてしまえば、エンジニアより良い分析を行なってくれる。
● 現在は機械学習プロジェクトの分析や企画立案まで行なってくれるてい
る。
→ SQLを使った複雑な分析はエンジニアしかできないというのは、単なる思い
込み。運営側はエンジニアより分析が上手い!
みんなを巻き込むことで、より良いサービスを作っています。
まとめ
44
Copyright © LIMIA, Inc. All Rights Reserved.
グリーグループ及びリミアでは、一緒にメディアを作っていく仲間を募集中で
す。興味のある方は、以下のサイトをご覧ください。
http://corp.gree.net/jp/ja/recruit/
https://www.wantedly.com/companies/limia
ご静聴、ありがとうございました。
We are hiring!
45
1 of 45

Recommended

行ってみよう、やってみよう! by
行ってみよう、やってみよう!行ってみよう、やってみよう!
行ってみよう、やってみよう!gree_tech
1.8K views20 slides
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜 by
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜gree_tech
3.9K views13 slides
DataEngConf NYC’18 セッションサマリー #1 by
DataEngConf NYC’18 セッションサマリー #1DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1gree_tech
8.1K views63 slides
インフラエンジニアの楽しい標準化活動 by
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動gree_tech
2.1K views13 slides
グリーにおけるAWS移行の必然性 by
グリーにおけるAWS移行の必然性グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性gree_tech
837 views37 slides

More Related Content

What's hot

インターネットの維持 近況 by
インターネットの維持 近況インターネットの維持 近況
インターネットの維持 近況gree_tech
808 views29 slides
DataEngConf NYC’18 セッションサマリー #2 by
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2gree_tech
3.6K views43 slides
第一回☆GREE AI Programming ContestでTensorFlow by
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlowgree_tech
1.2K views24 slides
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
729 views36 slides
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話 by
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話Terui Masashi
3.8K views15 slides
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcamp by
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcampスポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcamp
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcampYahoo!デベロッパーネットワーク
3.2K views23 slides

What's hot(20)

インターネットの維持 近況 by gree_tech
インターネットの維持 近況インターネットの維持 近況
インターネットの維持 近況
gree_tech808 views
DataEngConf NYC’18 セッションサマリー #2 by gree_tech
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
gree_tech3.6K views
第一回☆GREE AI Programming ContestでTensorFlow by gree_tech
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow
gree_tech1.2K views
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech729 views
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話 by Terui Masashi
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi3.8K views
[デブサミ2015] スクラムならうまくいく? 〜グリーのネイティブゲーム作りの歴史をひもとく、 そして未来へ〜 by gree_tech
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
[デブサミ2015] スクラムならうまくいく? 〜グリーのネイティブゲーム作りの歴史をひもとく、 そして未来へ〜
gree_tech5.1K views
国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~ by SPIRAL Inc.
国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~
国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~
SPIRAL Inc.51.5K views
グリーで行われている勉強会とその特徴 ✕ 勉強会を主催してみた話 by gree_tech
グリーで行われている勉強会とその特徴 ✕ 勉強会を主催してみた話グリーで行われている勉強会とその特徴 ✕ 勉強会を主催してみた話
グリーで行われている勉強会とその特徴 ✕ 勉強会を主催してみた話
gree_tech4.8K views
【kintone café松江#1】kintoneの可能性 by Koji Asaga
【kintone café松江#1】kintoneの可能性【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性
Koji Asaga10.3K views
RPKI勉強会/RPKIユーザBoF by gree_tech
RPKI勉強会/RPKIユーザBoFRPKI勉強会/RPKIユーザBoF
RPKI勉強会/RPKIユーザBoF
gree_tech2.5K views
クラウドの積極的利活用による生産性向上と経営に寄与する仕組みづくり by gree_tech
クラウドの積極的利活用による生産性向上と経営に寄与する仕組みづくりクラウドの積極的利活用による生産性向上と経営に寄与する仕組みづくり
クラウドの積極的利活用による生産性向上と経営に寄与する仕組みづくり
gree_tech1.4K views
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22) by Hiroshi Ohnuki
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Hiroshi Ohnuki391 views

Similar to エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか

PHPからgoへの移行で分かったこと by
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
6.4K views39 slides
(2017.9.7) Neo4jご紹介 by
(2017.9.7) Neo4jご紹介(2017.9.7) Neo4jご紹介
(2017.9.7) Neo4jご紹介Mitsutoshi Kiuchi
840 views30 slides
hifiveで実現するエンタープライズHTML5システム開発 by
hifiveで実現するエンタープライズHTML5システム開発hifiveで実現するエンタープライズHTML5システム開発
hifiveで実現するエンタープライズHTML5システム開発Osamu Shimoda
1.6K views32 slides
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座 by
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
255 views71 slides
多対多のクラウド利用を支えるデータ標準化技術 by
多対多のクラウド利用を支えるデータ標準化技術 多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術 CData Software Japan
482 views19 slides
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう by
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しようMasayuki Abe
1.5K views78 slides

Similar to エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか(20)

PHPからgoへの移行で分かったこと by gree_tech
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech6.4K views
hifiveで実現するエンタープライズHTML5システム開発 by Osamu Shimoda
hifiveで実現するエンタープライズHTML5システム開発hifiveで実現するエンタープライズHTML5システム開発
hifiveで実現するエンタープライズHTML5システム開発
Osamu Shimoda1.6K views
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座 by DIVE INTO CODE Corp.
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
多対多のクラウド利用を支えるデータ標準化技術 by CData Software Japan
多対多のクラウド利用を支えるデータ標準化技術 多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう by Masayuki Abe
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
Masayuki Abe1.5K views
「企業のデジタルトランスフォーメーション ビッグデータ利活用に関する活動と課題」 by scirexcenter
「企業のデジタルトランスフォーメーション   ビッグデータ利活用に関する活動と課題」「企業のデジタルトランスフォーメーション   ビッグデータ利活用に関する活動と課題」
「企業のデジタルトランスフォーメーション ビッグデータ利活用に関する活動と課題」
scirexcenter2.3K views
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28) by Ryusuke Ashiya
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
分析のモダナイズへのヒント:データ価値を最大化するビジュアル分析とエンタープライズ組織への展開 - 経営課題解決シンポジウム (2018/09/28)
Ryusuke Ashiya360 views
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます by Nanae Matsushima
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせますSHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
Nanae Matsushima301 views
SocialAnalyticsとCQ5がスゴイ by Makoto Shimizu
SocialAnalyticsとCQ5がスゴイSocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイ
Makoto Shimizu1.8K views
Drupal business consortiam in Japan:DBCJ 20140909 by Hidekazu Ikeda
Drupal business consortiam in Japan:DBCJ  20140909Drupal business consortiam in Japan:DBCJ  20140909
Drupal business consortiam in Japan:DBCJ 20140909
Hidekazu Ikeda4.7K views
Unification of the middle scale services by Nuxt.js by HajimeSasanuma
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
HajimeSasanuma2.6K views
『Mobageの大規模データマイニング活用と 意思決定』- #IBIS 2012 -ビジネスと機械学習の接点- by Koichi Hamada
『Mobageの大規模データマイニング活用と 意思決定』- #IBIS 2012 -ビジネスと機械学習の接点- 『Mobageの大規模データマイニング活用と 意思決定』- #IBIS 2012 -ビジネスと機械学習の接点-
『Mobageの大規模データマイニング活用と 意思決定』- #IBIS 2012 -ビジネスと機械学習の接点-
Koichi Hamada7.9K views
Intelligent Enterprise 実現に向けた拡張開発の必要性 ~ SAP Cloud Platform Extension Factory ~ by Kento Yoshimura
Intelligent Enterprise 実現に向けた拡張開発の必要性  ~ SAP Cloud Platform Extension Factory ~Intelligent Enterprise 実現に向けた拡張開発の必要性  ~ SAP Cloud Platform Extension Factory ~
Intelligent Enterprise 実現に向けた拡張開発の必要性 ~ SAP Cloud Platform Extension Factory ~
Kento Yoshimura504 views
公式部活動技術書典部の活動紹介 by gree_tech
公式部活動技術書典部の活動紹介公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
gree_tech1.9K views
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~ by NTT DATA OSS Professional Services
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~

More from gree_tech

GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
229 views13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
1K views18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
1.9K views84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
347 views116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
689 views31 slides
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介 by
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介gree_tech
601 views28 slides

More from gree_tech(20)

GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech1K views
アプリ起動時間高速化 ~推測するな、計測せよ~ by gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech1.9K views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech347 views
Cloud Spanner をより便利にする運用支援ツールの紹介 by gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech689 views
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介 by gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech601 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について by gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech626 views
海外展開と負荷試験 by gree_tech
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
gree_tech593 views
翻訳QAでのテスト自動化の取り組み by gree_tech
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech305 views
組み込み開発のテストとゲーム開発のテストの違い by gree_tech
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech577 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介 by gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech209 views
データエンジニアとアナリストチーム兼務になった件について by gree_tech
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech308 views
シェアドサービスとしてのデータテクノロジー by gree_tech
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech433 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて- by gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 by gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech1.1K views
比較サイトの検索改善(SPA から SSR に変換) by gree_tech
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech699 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行 by gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜 by gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech399 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮) by gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech753 views
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方- by gree_tech
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
gree_tech446 views

エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか

  • 1. Copyright © LIMIA, Inc. All Rights Reserved. エンジニア以外の方が自らSQL を使ってセグメント分析を行うカ ルチャーをどのように作っていっ たか July Tech Festa2019発表資料
  • 2. Copyright © LIMIA, Inc. All Rights Reserved. ● グリーグループのリミア株式会社で、LIMIA という住まい領域のメディア を作っています。ゲーム会社ですが、最近はメディアに力を入れていま す。 ● 機械学習(RecSys)のエンジニアですが、iOS, Android,JSなどもやってい る何でも屋です。5歳の娘のパパ。twitter: @mahiguch1 ● PHP Conferenceでgoの話をしたら、社内Slackがざわざわしました。w ● https://limia.jp/ ● https://arine.jp/ ● https://aumo.jp/ ● https://www.mine-3m.com/mine/ Masahiro Higuchi/樋口雅拓 2
  • 3. Copyright © LIMIA, Inc. All Rights Reserved. グリーグループ公式部活動とし て技術書典部を立ち上げ、合同 誌を作って頒布しました。 次の合同誌を制作着手してお り、技術書典8にもサークル参加 予定です。 企業部活動として技術書典7にサークル参加 3
  • 4. Copyright © LIMIA, Inc. All Rights Reserved. オフィスが新宿に移 転しました。最大190 名収容可能な勉強会 スペースがあります。 社内外の勉強会を開 催できたらと思ってい ます。 松屋自販機もありま す! 最高すぎる勉強会スペースと松屋自販機 4
  • 5. Copyright © LIMIA, Inc. All Rights Reserved. 「エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように 作っていったか」について、次の構成で説明します。 • 従来の分析 • 新しい分析 • 普及活動 • 事例1: プッシュ通知改善 • 事例2: 編成改善 アジェンダ 5
  • 6. Copyright © LIMIA, Inc. All Rights Reserved. 従来の分析方式
  • 7. Copyright © LIMIA, Inc. All Rights Reserved. LIMIAとは? 7 ● メディアサービス ● Android, iOS, Web ● 記事一覧を表示し、タップすると 記事詳細を閲覧できる。 ● 記事一覧はパーソナライズ。 ● 記事詳細読了後に関連記事を出 している。 ● Fuel PHP/EC2, go/ECS ● 分析基盤はBigQuery
  • 8. Copyright © LIMIA, Inc. All Rights Reserved. 画面遷移でGoogleAnalytics(GA)イベ ントを飛ばし、PageView(PV)を計測して いた。 広告はAdNetの管理画面の数字を SpreadSheetにコピペして管理。 Adjust/Kintoneなどのサービスも同様 にSpreadSheet管理。 従来方式の計測手法 2017年12月時点の状況 8
  • 9. Copyright © LIMIA, Inc. All Rights Reserved. • GA画面でPVボリュームを見て、施策の優 先順位を提案。 • 施策の結果は一度確認するだけ。確認しな いことも多かった。 • グループ内のメディアで、指標(PV)の基準 が違い、横比較できない。 • SpreadSheetは非常に精巧に作られてい た。神Excel状態。外部参照やGASでコ ピーを繰り返しており、中間ファイルを不用 意に変更すると大騒ぎに。 従来方式の分析手法 2017年12月時点の状況 9
  • 10. Copyright © LIMIA, Inc. All Rights Reserved. ● 全ユーザに効果がありそうな施策は出尽くし感があり、効果が薄くなってい た。 ● ユーザをセグメントに分けて分析し、それぞれに合わせた施策が必要。 ● 分析軸となるCustom Dimentionは上限の20個に達していた。 → 誰でも自由にセグメント分析できるようにしたい。 → FirebaseAnalyticsで計測して、BigQueryにログを落としたい! 従来方式の問題点 2017年12月時点の状況 10
  • 11. Copyright © LIMIA, Inc. All Rights Reserved. 新しい分析方式
  • 12. Copyright © LIMIA, Inc. All Rights Reserved. 同時期に別の課題が発生。 ● グリーグループのメディア(LIMIA/arine/aumo/mine)は、それぞれで 数値管理を行っており、集計定義が異なった。 ● 統一定義を作り、FirebaseAnalyticsで計測しようとした。 ● これにより、計測、集計、レポートをグループ内のメディアで統一的に行う 事ができる。 → セグメント分析のためFAを導入しようとしていたので、他メディア等と協 力して対応を行いました。 背景と目的 2017年12月開始の施策 12
  • 13. Copyright © LIMIA, Inc. All Rights Reserved. ● 当時Web向けFirebaseAnalyticsはなかったので、Webは GoogleAnalyticsを引き続き利用することに。定義に差がなかったため。 ● iOS/AndroidはGoogleAnalyticsに飛ばしていたイベントを FirebaseAnalyticsにも飛ばすようにした。 ● GoogleAnalyticsのEventは、パラメータにactionとlabelという物を付 けていた。それをそのままFirebaseAnalyticsにも飛ばした。 イベントログ 2017年12月開始の施策 13 select event_name, (select value.string_value FROM UNNEST(event_params) WHERE key = 'action') as action, (select value.string_value FROM UNNEST(event_params) WHERE key = 'label') as label, from `analytics_1234.events_*` where _TABLE_SUFFIX = REPLACE(CAST(DATE_SUB(CURRENT_DATE, INTERVAL 1 day) AS string), '-', '')
  • 14. Copyright © LIMIA, Inc. All Rights Reserved. Embulkを使ってBigQueryへ転送している。Embulkコンテナを作り、ECS Fargateで回している。以下に要点だけ示す。 ● RDS: 負荷を考慮して1テーブルずつ転送。daily tableを切らずに上書 きしていく。履歴は残らないが、MySQLと同じqueryが使える。 ● Dynamo: 構造化データはjson文字列として格納。 GCP service accountは、KMSで暗号化したファイルをcontainerに含めて いる。embulkはfargateのExecRoleを見てくれないので、AWS IAM user を環境変数で渡している。 マスターデータ RDSとDynamoのデータをBigQueryへ 14
  • 15. Copyright © LIMIA, Inc. All Rights Reserved. ● Search Console: golangバッチでAPIから取得し、BigQueryへ転送。 ECS fargate taskで毎晩実行。 ● Google Analytics: 集計パターンをいくつか作り、それぞれをBigQuery の対象テーブルへ転送。実行環境はSCと同じ。 ● Kintone: 一部業務の管理ツールとしてKintoneが使われていたため、 Kintone APIをGASで叩いてBigQueryへ。 ● Adjust: Cloud FunctionsにEndpointを作り、来たデータを全て BigQueryに格納。AdjustのGlobal Callbackに設定。 → 全てのデータをBigQueryに転送して分析可能に 周辺システムログ SearchConsole/GoogleAnalytics/Adjust 15
  • 16. Copyright © LIMIA, Inc. All Rights Reserved. ● Webは従来方式。各メディアでGASでGA APIを叩いてSpreadSheetに出力。 ● iOS/AndroidはBigQueryにあるデータを 統括部門が全メディアの集計を行い、 SpreadSheetに出力。それを各メディア側 で参照。 → これにより、横比較が可能となった。 KPIシートの流れ 16
  • 17. Copyright © LIMIA, Inc. All Rights Reserved. ● 協力して全メディアの基本指標のSpreadSheetを作った。 ● 神Excel達のデータソースをこのシートに切り替えてもらった。 ● 基本指標のSQLを共有し、知識と経験があれば、それをベースにセグメン ト分析可能な状況を作った。 → しかし、この時点ではSpreadSheetのみを使った分析が中心。ここから セグメント分析の普及活動を開始した。 この時点での分析の進め方 17
  • 18. Copyright © LIMIA, Inc. All Rights Reserved. 普及活動
  • 19. Copyright © LIMIA, Inc. All Rights Reserved. ● 書籍「10年戦えるデータ分析入門」を読んでも らった。 ● 初回演習ではSQLへの抵抗を減らすため、サ ンプルのSQLをベースに実行してもらった。 ● 隔週で5回程度演習を行い、相談用Slack Channelを作った。 → このときの勉強会参加は約10名。そのうち半 数がSQLでセグメント分析可能に! その後は教 え合って、できる人が増えていった。 勉強会開催 2018年前半に実施 19
  • 20. Copyright © LIMIA, Inc. All Rights Reserved. 様々な要望があったため、 re:dashを導入した。 BigQuery Consoleで実 装し、ここに貼り付けてレ ビューします。 環境整備(redash) 20
  • 21. Copyright © LIMIA, Inc. All Rights Reserved. re:dashからquery結果をcsvで取得 できる。queryを定期実行させ、その 結果を参照することで、自動更新する KPIシートを作成することができる。 KPIシート作成支援 21
  • 22. Copyright © LIMIA, Inc. All Rights Reserved. 傾向を把握するため、協力して Data Studioで主要KPIのダッ シュボードを作成した。 メディアの横比較は、このグラフ を見ていた。 ダッシュボード提供 22
  • 23. Copyright © LIMIA, Inc. All Rights Reserved. 事例1: プッシュ通知改善
  • 24. Copyright © LIMIA, Inc. All Rights Reserved. ● 起動経路で最も多かったのは、プッシュ通知からの 起動。 ● 以前は人手で良さそうな記事を送信していた。 ● 分析して特徴を見つけ、自動で最適な記事を送信 する。 ● 2018年に行なった施策事例のため、現時点では仕 様が異なる可能性があります。 背景と目的 24
  • 25. Copyright © LIMIA, Inc. All Rights Reserved. 目標はLTV - CPI > 0の状態を保つこと。 ブレストを行い、LTVに繋がりそうな仮説を立てた。 ● ユーザの興味に合わせた記事を配信すると起動率が上がる ● 読了率が高い記事を配信すると起動率が上がる ● ユーザが普段使っている時刻に配信すると起動率が上がる ● 配信回数を減らすとアンインストールが減る ● 配信回数を増やすと起動数が増える 過去ログを使って想定効果を検証した。 仮説立案 25
  • 26. Copyright © LIMIA, Inc. All Rights Reserved. ● ユーザが直近見た30記事のカテゴリを調べ、最 も多かったものをユーザの興味セグメントとし た。 ● 興味セグメント毎に起動率(=起動数/ユーザ数) を集計。 ● 配信した記事のカテゴリと興味関心が一致/不 一致で起動率を比較 ● 一致していたケースでは不一致に比べて、20% 起動率が高かった。採択。 オフライン検証(採択事例) ユーザの興味に合わせた記事を配信すると起動率が上がる 26
  • 27. Copyright © LIMIA, Inc. All Rights Reserved. ● 15日前から2日前のログからアプリ起動時刻を調べ、時刻毎のユーザセグ メントを作成。 ● 1日前のログから「その時刻のみに送信」と「全時刻に送信」を比較。 ● 対象時刻のみだと、起動数が40%減少。アンインストールが減ってもカ バーしきれない減少幅だったため、棄却。 今考えると、訓練/テストはユーザを80/20に分けて検証した方が良かった。結 果は変わりそうもないが。 オフライン検証(棄却事例) ユーザが普段使っている時刻に配信すると起動率が上がりアンインストール減少 27
  • 28. Copyright © LIMIA, Inc. All Rights Reserved. オフライン検証で効果が見込めるものをABテストした。 2週間を1ラウンドとし、ラウンド毎に異なる仮説を検証した。 30ラウンドあたりで収束したので、検証を終了した。 その結果、以下のパターンが最もLTVが高かった。 ● 一斉送信は1日5回 ● そのうち4回は興味関心と一致した記事 ● 記事は直近2週間の読了率が高かったもの この結果は当時のLIMIAユーザに対する最適値なので注意! そのまま使っても上手くいかない可能性が高い。 参考にするなら結果ではなくプロセスを。 オンライン検証 ABテスト 28
  • 29. Copyright © LIMIA, Inc. All Rights Reserved. 興味関心に合わせた記事を配信しようとすると、興味セグメント毎に配信記事 を選ぶ必要がある。興味セグメントを10個にした場合、10倍の記事を選ばな ければならない。人手では10倍のコストがかかってしまうため、抽出作業を自 動化した。 ● 配信枠に自動で3件づつ入稿 ● それを人が確認し、最適なものを選ぶ。 完全自動化すると、季節外れの記事(イベント終了後にイベント記事など)を 送ってしまう可能性があるため、人手でのチェックを残した。 運用改善: 配信記事抽出自動化 ここからは少しシステムの話です 29
  • 30. Copyright © LIMIA, Inc. All Rights Reserved. 条件を満たした記事をBigQueryで集計。バッチで結果を読 んで、MySQLに書き込む。当時の基準は、以下のもの。 ● CTRが高い ● 読了率が高い ● 記事の長さが一定以上 システム構成(自動入稿) 30
  • 31. Copyright © LIMIA, Inc. All Rights Reserved. バッチが毎分起動して、送信時刻になると原 稿と対象ユーザをSQSに送る。送信バッチ はSQSにqueueがあると、それをFCMに対 して送信する。 システム構成(配信) 31
  • 32. Copyright © LIMIA, Inc. All Rights Reserved. 管理ツールでは、次の4つの画面を 作った。 ● 通知: 配信時刻 ● 条件: どの原稿を誰に送るか ● 原稿: 通知送信内容 ● コンテンツ: 遷移先コンテンツ 条件を設定すれば、ABテストや特定 のユーザへの配信が可能。原稿を工 夫することで複雑な通知を送信可能。 管理ツール 32
  • 33. Copyright © LIMIA, Inc. All Rights Reserved. ● 既存ユーザが多いため、起動率は低下傾向。 ● しかし、施策稼働中は起動率をほぼ横ばいにすることができた。 ● 入稿作業の属人性排除と工数削減ができた 改善結果 33
  • 34. Copyright © LIMIA, Inc. All Rights Reserved. 事例2: 一覧表示改善
  • 35. Copyright © LIMIA, Inc. All Rights Reserved. ● アプリを起動すると、記事一覧が表示される。 ● 記事への導線として、一番大きい。 ● ここを改善することで、記事閲覧数を増加を目指 す。 背景と目的 35
  • 36. Copyright © LIMIA, Inc. All Rights Reserved. 目標はユーザにより多くの記事を閲覧してもらうこと。それに繋がりそうな、以 下の仮説を立てた。 ● CTRが高い記事を掲載する ● ユーザの興味関心に合った記事を掲載する(パーソナライズ) パーソナライズの方がポテンシャルは高そうだが難しい。 そこで、高CTRをベースラインとして、これを超えるようなパーソナライズモデル を開発する。 仮説立案 36
  • 37. Copyright © LIMIA, Inc. All Rights Reserved. 記事とUserの距離を計算し、近い物を出す。た だし、全記事との距離をリアルタイムに計算す ると遅いので、分類して中心点との距離を計算 することにした。クラスタ内での順位はCTRを 使った。 次に記事とユーザをベクトル化する仕組みを説 明します。 記事の推薦の仕組み 37
  • 38. Copyright © LIMIA, Inc. All Rights Reserved. 記事が更新されると、 SQSに通知されます。そ れをLambdaで読み込ん で、単語に分割し、単語を vectorにします。記事に 含まれる単語の平均を記 事のvectorとします。ただ し頻出単語の影響緩和の ため、IDFで補正します。 記事ベクトル作成 38
  • 39. Copyright © LIMIA, Inc. All Rights Reserved. ユーザが記事を閲覧すると、その情報がKinesisに流れます。 Lambdaで受け取り、直近30件の閲覧履歴をDynamoDBに保存 します。その変更をDynamoDB Streamに流し、Lambdaで受け 取って記事のベクトルの平均をユーザベクトルとしてDynamoDBに 書き込みます。 ユーザベクトル作成 39
  • 40. Copyright © LIMIA, Inc. All Rights Reserved. 過去2週間のクリックログを使い、80%のユーザ情報で訓練させ、残り20%の ユーザへの推薦を行い評価しました。まずは形態素解析に使った辞書を検証 します。評価はnDCGを使って行いました。 ● ベースライン(高CTR): 0.100 ● パーソナライズ(ipadic): 0.0846 ● パーソナライズ(neologdを追加): 0.0866 ● パーソナライズ(さらにユーザ辞書にLIMIAキーワードを追加): 0.100 結果が良かったLIMIA辞書付きの辞書を採択しました。 オフライン検証 どの辞書が最適か 40
  • 41. Copyright © LIMIA, Inc. All Rights Reserved. 青が高CTR、赤がパーソナライズ。やや負けて いる。 単純にCTRが高い順に出すより、CTR上位200 件をシャッフルして出した方が結果が良かった。 バグってシャッフルされたことにより発覚。 オンライン検証 41
  • 42. Copyright © LIMIA, Inc. All Rights Reserved. 以前行なっていた手動編成に比べると、CTRが20%向上した。 2019年11月28日現在、高CTRとパーソナライズが同じぐらい。 パーソナライズの方がポテンシャルが高いため、引き続き改善を続けている。 注意: ユーザとコンテンツが異なると、結果も異なる。 参考にするなら、施策でなく進め方! 改善結果 42
  • 43. Copyright © LIMIA, Inc. All Rights Reserved. 終わりに
  • 44. Copyright © LIMIA, Inc. All Rights Reserved. ● エンジニア以外の方は最初SQLに抵抗がある。 ● 覚えてしまえば、エンジニアより良い分析を行なってくれる。 ● 現在は機械学習プロジェクトの分析や企画立案まで行なってくれるてい る。 → SQLを使った複雑な分析はエンジニアしかできないというのは、単なる思い 込み。運営側はエンジニアより分析が上手い! みんなを巻き込むことで、より良いサービスを作っています。 まとめ 44
  • 45. Copyright © LIMIA, Inc. All Rights Reserved. グリーグループ及びリミアでは、一緒にメディアを作っていく仲間を募集中で す。興味のある方は、以下のサイトをご覧ください。 http://corp.gree.net/jp/ja/recruit/ https://www.wantedly.com/companies/limia ご静聴、ありがとうございました。 We are hiring! 45