SlideShare a Scribd company logo
1 of 62
Download to read offline
Gunosyにおける
AWS上での⾃然⾔語処理・機械学習の活⽤事例
株式会社Gunosy 開発本部データ分析部
⼤曽根 圭輔
Gunosy Inc.
2017.5
Copyright© Gunosy Inc. All Rights Reserved 2
⾃⼰紹介
⼤曽根 圭輔 @dr_paradi 博⼠ (⼯学)
主な業務:
ニュースパス(明⽇でリリース1周年!)
のユーザ⾏動分析、記事配信アルゴリズム構築
⼤学時代の専攻:
⼈⼯知能の氷河期に
ファジィ理論の応⽤をやってました
Copyright© Gunosy Inc. All Rights Reserved 3
株式会社Gunosy –「情報を世界中の⼈に最適に届ける」
Gunosyは 情報キュレーションサービス「グノシー」と
2016年6⽉1⽇にKDDI株式会社と共同でリリースした
無料ニュース配信アプリ「ニュースパス」を提供する会社です
「情報を世界中の⼈に最適に届ける」をビジョンに活動しています
ネット上に存在するさまざまな情報を、
独⾃のアルゴリズムで収集、評価付けを⾏い
ユーザーに届けます。
情報キュレーションサービス「グノシー」
600媒体以上のニュースソースをベースに、
新たに開発した情報解析・配信技術を⽤いて⾃動的に
選定したニュースや情報をお客さまに届けます。
無料ニュース配信アプリ「ニュースパス」
Copyright© Gunosy Inc. All Rights Reserved 4
データ分析部
サービスのコア部分である記事配信アルゴリズム改善、
ユーザ⾏動分析を担当。ブログを開設しています
http://data.gunosy.io/
Copyright© Gunosy Inc. All Rights Reserved 5
データ分析部
サービスのコア部分である記事配信アルゴリズム改善、
ユーザ⾏動分析を担当。学会にも積極的に参加しています
JSAI	2017 COLING	2016
Copyright© Gunosy Inc. All Rights Reserved 6
はじめに
情報キュレーションサービスを対象に、AWS を⽤いて
⼈⼯知能技術を実サービスに応⽤する際の事例を紹介
機械学習ライブラリの充実により、ある程度の精度のもの(
分類器などは)を作成するコストは下がっている
=> 実際のサービスで動かすことが重要
Copyright© Gunosy Inc. All Rights Reserved 7
はじめに
情報キュレーションサービスを対象に、AWS を⽤いて
⼈⼯知能技術を実サービスに応⽤する際の事例を紹介
● 記事分類
● 属性推定 + スコアリング
● 効果測定 (ABテスト)
Copyright© Gunosy Inc. All Rights Reserved 8
本⽇の発表の流れ
● Gunosyと機械学習
● 記事分類
● 属性推定 + スコアリング
● 効果測定 (ABテスト)
Copyright© Gunosy Inc. All Rights Reserved 9
Gunosyと機械学習
インターネット上の
コンテンツ
(記事、商品、動画)
Gunosy では、ネット上に存在する様々な情報を独⾃のアルゴリズム
で収集し、評価付けを⾏い、ユーザーに届けます
Copyright© Gunosy Inc. All Rights Reserved 10
Gunosyと機械学習
推定したユーザの属性、コンテンツの評価でマッチングの精度を向上
性別
年齢
地域...
カテゴリ
著者
地域性...
インターネット上の
コンテンツ
(記事、商品、動画)
Copyright© Gunosy Inc. All Rights Reserved 11
カテゴリ
著者
地域性...
Gunosyと機械学習
今回はニュース領域での活⽤事例を紹介
性別
年齢
地域...
インターネット上の
コンテンツ
(記事、商品、動画)
Copyright© Gunosy Inc. All Rights Reserved 12
記事配信の流れ1
Copyright© Gunosy Inc. All Rights Reserved 13
本⽇の発表の流れ
● Gunosyと機械学習
● 記事分類
● 属性推定 + スコアリング
● 効果測定 (ABテスト)
Copyright© Gunosy Inc. All Rights Reserved 14
記事配信の流れ1
Copyright© Gunosy Inc. All Rights Reserved 15
記事分類
それぞれの記事に対してどのカテゴリに分類されるかを判定
教師あり多クラス分類問題
記事の例 大カテゴリ 中カテゴリ 小カテゴリ
日本代表のhogehogeが2試合ぶりゴール スポーツ サッカー 日本代表
fugafuga味のpiyopiyoが新発売!! グルメ 新商品
Copyright© Gunosy Inc. All Rights Reserved 16
記事分類の流れ
政治
記事 カテゴリ分類器
経済
スポーツ
グルメ
形態素解析
辞書
Copyright© Gunosy Inc. All Rights Reserved 17
AWS上で動かしてみる
●クローラが記事を取得した際にカテゴリ分類APIにエンキューし
分類、RDBに格納
●弊社のアプリは全てOpsWorksで管理
●モデルはS3に保存しておき、deploy時に取得
Copyright© Gunosy Inc. All Rights Reserved 18
AWS上で動かしてみる (学習時)
教師データ 構⽂解析
分類器
クラウドソーシングなどでカテゴリを付与された記
事(教師データ)を元に、本⽂の構⽂解析を⾏い、に
分類器を構築。S3にアップロード
Copyright© Gunosy Inc. All Rights Reserved 19
AWS上で動かしてみる (deploy時)
分類器
deploy時に各インスタンスが分類器を取得
記事分類API
Copyright© Gunosy Inc. All Rights Reserved 20
AWS上で動かしてみる (deploy時)
crawler stack
記事分類API
記事スコアリング
リスト⽣成
同⼀イベント判定
構⽂解析
Copyright© Gunosy Inc. All Rights Reserved 21
本⽇の発表の流れ
● Gunosyと機械学習
● 記事分類
● 属性推定 + スコアリング
● 効果測定 (ABテスト)
Copyright© Gunosy Inc. All Rights Reserved 22
記事配信の流れ1
Copyright© Gunosy Inc. All Rights Reserved 23
属性毎の記事閲覧傾向の違い
●性別
!男性はスポーツ記事をクリックしやすい
– 野球は男性
– フィギュアスケートは両⽅
!有名⼈の結婚・出産などのライフイベントは⼥性のほうがクリックしやすい
●年齢
!アーティストのニュースなどは年齢差が⽣まれやすい
●地域
!スポーツチームの勝敗や事件、イベントなどで地域毎でクリック傾向が異なる
Copyright© Gunosy Inc. All Rights Reserved 24
1.直接ユーザにきく
● ⼊⼒ストレスなどでサービスから離脱してしまう恐れもある
● 全ユーザが⼊⼒してくれるわけではない
● 上記を考慮して現時点では積極的には⾏わない
1.何かしらの⼿法で推定する
● ユーザが読んだ記事情報をもとに属性を推定
属性毎の記事閲覧傾向の違い
WebDB	Forum	2016での発表より
http://data.gunosy.io/entry/webdbf2016
Copyright© Gunosy Inc. All Rights Reserved 25
年齢推定の問題設定
クラス数
年齢を ~19歳,20~24歳,などに分けた多クラス分類問題
WebDB Forum 2016での発表より
http://data.gunosy.io/entry/webdbf2016
Copyright© Gunosy Inc. All Rights Reserved 26
6つに分類
⼊⼒データ
各フィルタの形状
縦 : (2, 4, 8),横 : 28
活性化関数
特徴マップを⽣成
Max
Pooling
結合する
Softma
x
畳み込み
年齢推定にはCNN for NLP を応⽤
WebDB Forum 2016での発表より
http://data.gunosy.io/entry/webdbf2016
Copyright© Gunosy Inc. All Rights Reserved 27
AWS上で動かしてみる (推定)
action-logs
user
demographics
bucket
性別推定
年齢推定
ユーザの⾏動ログから推定モデルを構築し、
ユーザ毎の推定結果をS3にアップロード
学習にはGPUインスタンス を利⽤
Copyright© Gunosy Inc. All Rights Reserved 28
AWS上で動かしてみる (推定)
action-logs
user
demographics
bucket
性別推定
年齢推定
ユーザの⾏動ログから推定モデルを構築し、
ユーザ毎の推定結果をS3にアップロード
学習にはGPUインスタンス を利⽤
{"article_id": 12345, "user_id": 12345, "action": "click"}
{"article_id": 12345, "user_id": 12345, "action": "impression"}
Copyright© Gunosy Inc. All Rights Reserved 29
AWS上で動かしてみる (推定)
action-logs
user
demographics
bucket
性別推定
年齢推定
user_id age_type
100 20
101 30
102 50
ユーザの⾏動ログから推定モデルを構築し、
ユーザ毎の推定結果をS3にアップロード
学習にはGPUインスタンス を利⽤
Copyright© Gunosy Inc. All Rights Reserved 30
AWS上で動かしてみる (推定)
action-logs
user
demographics
bucket
性別推定
年齢推定
user_id gen_type
100 male
101 female
102 other
ユーザの⾏動ログから推定モデルを構築し、
ユーザ毎の推定結果をS3にアップロード
学習にはGPUインスタンス を利⽤
Copyright© Gunosy Inc. All Rights Reserved 31
AWS上で動かしてみる (モニタリング)
user
demographics
bucket
性別推定
年齢推定
user_id gen_type
100 male
101 female
102 other
action-logs
Copyright© Gunosy Inc. All Rights Reserved 32
AWS上で動かしてみる (モニタリング)
user
demographics
bucket
user
demographics
DB
性別推定
年齢推定
user_id gen_type
100 male
101 female
102 other
action-logs
Copyright© Gunosy Inc. All Rights Reserved 33
AWS上で動かしてみる (モニタリング)
user
demographics
bucket
user
demographics
DB
性別推定
年齢推定
user_id age_type
100 20
101 30
102 50
action-logs
Copyright© Gunosy Inc. All Rights Reserved 34
AWS上で動かしてみる (モニタリング)
user
demographics
bucket
user
demographics
DB
性別推定
年齢推定
action-logs
user_id gen_type age_type
100 male 20
101 female 30
102 other 50
推定結果をJOINしたものをS3にも格納
(ストリーム処理で使⽤するため)
Copyright© Gunosy Inc. All Rights Reserved 35
AWS上で動かしてみる (モニタリング)
推定結果をRDBに格納し、⽇々の
改善に活⽤
action-logs
user
demographics
bucket presto
user
demographics
DB
性別推定
年齢推定
{"article_id": 12345, "user_id": 100, "action": "click"}
{"article_id": 12345, "user_id": 101, "action": "impression"}
Copyright© Gunosy Inc. All Rights Reserved 36
AWS上で動かしてみる (記事評価)
user
demographics
bucket
Amazon
kinesis stream
性別推定
年齢推定
user_id gen_type
100 male
101 female
102 other
Copyright© Gunosy Inc. All Rights Reserved 37
AWS上で動かしてみる (記事評価)
user
demographics
bucket
Amazon
kinesis stream
性別推定
年齢推定
{"article_id": 12345, "user_id": 100, "action": "click"}
{"article_id": 12345, "user_id": 101, "action": "impression"}
user_id gen_type
100 male
101 female
102 other
Copyright© Gunosy Inc. All Rights Reserved 38
AWS上で動かしてみる (記事評価)
user
demographics
bucket
Amazon
kinesis analytics
Amazon
kinesis stream
性別推定
年齢推定
{"article_id": 12345, "user_id": 100, "action": "click"}
{"article_id": 12345, "user_id": 101, "action": "impression"}
user_id gen_type
100 male
101 female
102 other
kinesis streamのデータとS3の
データをkinesis analyticsでjoin
Copyright© Gunosy Inc. All Rights Reserved 39
AWS上で動かしてみる (記事評価)
user
demographics
bucket
Amazon
kinesis analytics
Amazon
kinesis stream
性別推定
年齢推定
article_id gen_type impression click
12345 male 10 4
12345 female 8 1
12346 male 3 1
kinesis streamのデータとS3の
データをkinesis analyticsでjoin
Copyright© Gunosy Inc. All Rights Reserved 40
AWS上で動かしてみる (記事評価)
user
demographics
bucket
Amazon
kinesis analytics
Amazon
kinesis stream
Amazon
kinesis firehorse
Elasticsearch
Service
性別推定
年齢推定
kinesis streamのデータとS3の
データをkinesis analyticsでjoin
kinesis firehorseを通じて
Elasticsearchに格納
Copyright© Gunosy Inc. All Rights Reserved 41
AWS上で動かしてみる (記事評価)
リアルタイム性が求められる
ニュース記事への評価に適⽤
詳しくはブログを参照
記事スコア
評価
user
demographics
bucket
Amazon
kinesis analytics
Amazon
kinesis stream
Amazon
kinesis firehorse
Elasticsearch
Service
性別推定
年齢推定
http://data.gunosy.io/entry/dashboard-with-kinesis-analytics
Copyright© Gunosy Inc. All Rights Reserved 42
AWS上で動かしてみる (リアルタイム通知 )
ロジック改善のヒントの
ため、通知も⾏う
性別推定
年齢推定
user
demographics
bucket
Amazon
kinesis analytics
Amazon
kinesis stream
Amazon
kinesis firehorse
Elasticsearch
Service
Copyright© Gunosy Inc. All Rights Reserved 43
本⽇の発表の流れ
● Gunosyと機械学習
● 記事分類
● 属性推定 + スコアリング
● 効果測定 (ABテスト)
Copyright© Gunosy Inc. All Rights Reserved 44
効果測定 (A/Bテスト)
多くの機械学習の効果測定タスクでは評価関数の最適化が⽬的
Gunosyが提供するサービスで最適化すべきはユーザの満⾜度
- 測定が難しい
- ニュースアプリのであるため、時流や季節要因などの影響を受けや
すい
- データに予期しないノイズが乗り、計測が困難になる
- e.g 機能実装後にバグが発⽣し、実装により効果が上がったの
か確認できない
Copyright© Gunosy Inc. All Rights Reserved 45
効果測定 (A/Bテスト) よくない例
Copyright© Gunosy Inc. All Rights Reserved 46
効果測定 (A/Bテスト) よくない例
機能リリース
Copyright© Gunosy Inc. All Rights Reserved 47
効果測定 (A/Bテスト) よくない例
機能リリース
⼤きなイベント発⽣
Copyright© Gunosy Inc. All Rights Reserved 48
効果測定 (A/Bテスト) よくない例
機能リリース
⼤きなイベント発⽣
前より低い…?
Copyright© Gunosy Inc. All Rights Reserved 49
そこでA/Bテスト
特定のアルゴリズム(やUI)を2種類⽤意し、ユーザ毎に出
し分けて検証する
メリット
● 時間変化などのノイズが⼊りにくい
● 最適化すべきメトリクスが決まってさえいれば
単純なクロス集計で済む
Copyright© Gunosy Inc. All Rights Reserved 50
A/Bテストの例
特定のユーザ群にUIやアルゴリズムを出し分けるテストを⾏う
Test A Test B
クリック率 5% 6%
滞在時間 30 35
Copyright© Gunosy Inc. All Rights Reserved 51
この例の場合であれば
Test Bを全体に適応
(※)実際は複数の指標を見ている
A/Bテストの例
特定のユーザ群にUIやアルゴリズムを出し分けるテストを⾏う
Test A Test B
クリック率 5% 6%
滞在時間 30 35
Copyright© Gunosy Inc. All Rights Reserved 52
A/Bテストの例
機能リリース
⼤きなイベント発⽣
前より低い…?
この例の場合であれば
Test Bを全体に適応
(※)実際は複数の指標を⾒ている
Copyright© Gunosy Inc. All Rights Reserved 53
A/Bテスト対象の選定
userのidを利⽤した割り当てを以前は利⽤
しかし割った値だと、テストが同時に複数⾛った場合に、
バイアスがかかる可能性がある
e.g. 同じ⼈がコントロールに当たる
● 現在はハッシュ関数を利⽤した
割り当てを⾏っている
詳細: http://data.gunosy.io/entry/ab_testing_assignment
Copyright© Gunosy Inc. All Rights Reserved 54
AWS上でのA/Bテスト実施
アルゴリズム毎にkeyを分けてDynamo DBに保存
ユーザに記事を配信するAPI(Go製)がDynamo DBに格納されたデータをユーザに返す
ABテストAPI
記事リストAPI (Go)記事スコアリング Dynamo DB
Copyright© Gunosy Inc. All Rights Reserved 55
AWS上でのA/Bテスト実施
ユーザのログにどのABが割り当たっているかを付与して
送信、集計
action-logs
ABテストAPI
記事リストAPI (Go)記事スコアリング Dynamo DB
Copyright© Gunosy Inc. All Rights Reserved 56
集計
ABテストごとに⽬的となる変数 (KPI) に影響がないかを確認
主にPython (Jupyter notebook)を⽤いて集計
Github上で集計コードを共通化
Copyright© Gunosy Inc. All Rights Reserved 57
⾃動集計
Group Validation
ABテストが適切に割り当てられているかを確認、通知
⾃動化を進⾏中
Copyright© Gunosy Inc. All Rights Reserved 58
伝えたかったこと
情報キュレーションサービスを対象に、AWS を⽤いて
⼈⼯知能技術を実サービスに応⽤する際の事例を紹介
機械学習ライブラリの充実により、ある程度の精度のもの(
分類器などは)を作成するコストは下がっている
=> 実際のサービスで動かすことが重要
Copyright© Gunosy Inc. All Rights Reserved 59
おわりに
GunosyにおけるAWSを⽤いた機械学習の活⽤事例を紹介
- 記事分類
- 属性推定 + スコアリング
- 効果検証
今後はオンラインでの推薦や、より⾼度な⾃然⾔語処理、
画像処理などにもチャレンジしていきたい
Copyright© Gunosy Inc. All Rights Reserved 60
その他
「Gunosy データ分析ブログ」
http://data.gunosy.io/
→データに基づいたプロダクト改善のためのブログ
「Gunosy データマイニング勉強会」
https://gunosy-dm.connpass.com/
→ 輪読 + 論⽂紹介する会
Copyright© Gunosy Inc. All Rights Reserved 61
⼈材募集中です
機械学習・⾃然⾔語処理エンジニア https://www.wantedly.com/projects/83871
データ分析エンジニア https://www.wantedly.com/projects/83864
データプラットフォームエンジニア https://www.wantedly.com/projects/95424
ご静聴ありがとうございました

More Related Content

What's hot

セキュアにユーザ行動情報を取得するための取り組み #yjdsnight
セキュアにユーザ行動情報を取得するための取り組み #yjdsnightセキュアにユーザ行動情報を取得するための取り組み #yjdsnight
セキュアにユーザ行動情報を取得するための取り組み #yjdsnight
Yahoo!デベロッパーネットワーク
 

What's hot (20)

ソフトウエアジャパン2017 IT Forum AITC(5)
ソフトウエアジャパン2017 IT Forum AITC(5)ソフトウエアジャパン2017 IT Forum AITC(5)
ソフトウエアジャパン2017 IT Forum AITC(5)
 
#ibis2017 Description: IBIS2017の企画セッションでの発表資料
#ibis2017 Description: IBIS2017の企画セッションでの発表資料#ibis2017 Description: IBIS2017の企画セッションでの発表資料
#ibis2017 Description: IBIS2017の企画セッションでの発表資料
 
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps] Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
 
PyData.Tokyo Hackathon#2 TensorFlow
PyData.Tokyo Hackathon#2 TensorFlowPyData.Tokyo Hackathon#2 TensorFlow
PyData.Tokyo Hackathon#2 TensorFlow
 
PyData Tokyo Tutorial & Hackathon #1
PyData Tokyo Tutorial & Hackathon #1PyData Tokyo Tutorial & Hackathon #1
PyData Tokyo Tutorial & Hackathon #1
 
ソフトウエアジャパン2017 IT Forum AITC(2)
ソフトウエアジャパン2017 IT Forum AITC(2)ソフトウエアジャパン2017 IT Forum AITC(2)
ソフトウエアジャパン2017 IT Forum AITC(2)
 
ソフトウエアジャパン2017 IT Forum AITC(3)
ソフトウエアジャパン2017 IT Forum AITC(3)ソフトウエアジャパン2017 IT Forum AITC(3)
ソフトウエアジャパン2017 IT Forum AITC(3)
 
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたタクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
 
プロトタイプで終わらせない死の谷を超える機械学習プロジェクトの進め方 #MLCT4
プロトタイプで終わらせない死の谷を超える機械学習プロジェクトの進め方 #MLCT4プロトタイプで終わらせない死の谷を超える機械学習プロジェクトの進め方 #MLCT4
プロトタイプで終わらせない死の谷を超える機械学習プロジェクトの進め方 #MLCT4
 
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
 
GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例
 
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
 
20150128 cross2015
20150128 cross201520150128 cross2015
20150128 cross2015
 
20170419PFNオープンハウス リサーチャーの仕事_公開用
20170419PFNオープンハウス リサーチャーの仕事_公開用20170419PFNオープンハウス リサーチャーの仕事_公開用
20170419PFNオープンハウス リサーチャーの仕事_公開用
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
 
グロースハック なぜ我々は無意味な施策を打ってしまうのか
グロースハック なぜ我々は無意味な施策を打ってしまうのかグロースハック なぜ我々は無意味な施策を打ってしまうのか
グロースハック なぜ我々は無意味な施策を打ってしまうのか
 
Combined analysis of Watson and Spark
Combined analysis of Watson and SparkCombined analysis of Watson and Spark
Combined analysis of Watson and Spark
 
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
 
[Japan Tech summit 2017] MAI 005
[Japan Tech summit 2017] MAI 005[Japan Tech summit 2017] MAI 005
[Japan Tech summit 2017] MAI 005
 
セキュアにユーザ行動情報を取得するための取り組み #yjdsnight
セキュアにユーザ行動情報を取得するための取り組み #yjdsnightセキュアにユーザ行動情報を取得するための取り組み #yjdsnight
セキュアにユーザ行動情報を取得するための取り組み #yjdsnight
 

Viewers also liked

いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標
圭輔 大曽根
 

Viewers also liked (14)

Gdmc v11 presentation
Gdmc v11 presentationGdmc v11 presentation
Gdmc v11 presentation
 
機械学習で大事なことをミニGunosyをつくって学んだ╭( ・ㅂ・)و ̑̑ 
機械学習で大事なことをミニGunosyをつくって学んだ╭( ・ㅂ・)و ̑̑ 機械学習で大事なことをミニGunosyをつくって学んだ╭( ・ㅂ・)و ̑̑ 
機械学習で大事なことをミニGunosyをつくって学んだ╭( ・ㅂ・)و ̑̑ 
 
Gunosyデータマイニング研究会 #118 これからの強化学習
Gunosyデータマイニング研究会 #118 これからの強化学習Gunosyデータマイニング研究会 #118 これからの強化学習
Gunosyデータマイニング研究会 #118 これからの強化学習
 
A/B Testing at Pinterest: Building a Culture of Experimentation
A/B Testing at Pinterest: Building a Culture of Experimentation A/B Testing at Pinterest: Building a Culture of Experimentation
A/B Testing at Pinterest: Building a Culture of Experimentation
 
あなただけにそっと教える弊社の分析事情 #data analyst meetup tokyo vol.1 LT
あなただけにそっと教える弊社の分析事情 #data analyst meetup tokyo vol.1 LTあなただけにそっと教える弊社の分析事情 #data analyst meetup tokyo vol.1 LT
あなただけにそっと教える弊社の分析事情 #data analyst meetup tokyo vol.1 LT
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
#cwt2016 Apache Kudu 構成とテーブル設計
#cwt2016 Apache Kudu 構成とテーブル設計#cwt2016 Apache Kudu 構成とテーブル設計
#cwt2016 Apache Kudu 構成とテーブル設計
 
「新製品 Kudu 及び RecordServiceの概要」 #cwt2015
「新製品 Kudu 及び RecordServiceの概要」 #cwt2015「新製品 Kudu 及び RecordServiceの概要」 #cwt2015
「新製品 Kudu 及び RecordServiceの概要」 #cwt2015
 
Apache Kudu - Updatable Analytical Storage #rakutentech
Apache Kudu - Updatable Analytical Storage #rakutentechApache Kudu - Updatable Analytical Storage #rakutentech
Apache Kudu - Updatable Analytical Storage #rakutentech
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
 
WebDB Forum 2016 gunosy
WebDB Forum 2016 gunosyWebDB Forum 2016 gunosy
WebDB Forum 2016 gunosy
 
いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標
 
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
 

Similar to Gunosy における AWS 上での自然言語処理・機械学習の活用事例

Similar to Gunosy における AWS 上での自然言語処理・機械学習の活用事例 (20)

【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
 
Amazon Mobile Analyticsのいろは
Amazon Mobile AnalyticsのいろはAmazon Mobile Analyticsのいろは
Amazon Mobile Analyticsのいろは
 
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理
 
IBM Data Science Experience and Watson Machine Learning 20170429
IBM Data Science Experience and Watson Machine Learning 20170429IBM Data Science Experience and Watson Machine Learning 20170429
IBM Data Science Experience and Watson Machine Learning 20170429
 
Game technight16 lt_ai_drivensocialmedia
Game technight16 lt_ai_drivensocialmediaGame technight16 lt_ai_drivensocialmedia
Game technight16 lt_ai_drivensocialmedia
 
kintoneとAWSでできるIoT
kintoneとAWSでできるIoTkintoneとAWSでできるIoT
kintoneとAWSでできるIoT
 
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
 
GDC2018 Amazon Overview
GDC2018 Amazon OverviewGDC2018 Amazon Overview
GDC2018 Amazon Overview
 
Security Operations and Automation on AWS
Security Operations and Automation on AWSSecurity Operations and Automation on AWS
Security Operations and Automation on AWS
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionElastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
 
InterBEE 2018 AWS & AWS Elemental Booth Review
InterBEE 2018 AWS & AWS Elemental Booth ReviewInterBEE 2018 AWS & AWS Elemental Booth Review
InterBEE 2018 AWS & AWS Elemental Booth Review
 
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
 
JAWSUG 20190620
JAWSUG 20190620JAWSUG 20190620
JAWSUG 20190620
 
AWSの様々なアーキテクチャ
AWSの様々なアーキテクチャAWSの様々なアーキテクチャ
AWSの様々なアーキテクチャ
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
 
ぐるなびが活用するElastic Cloud
ぐるなびが活用するElastic Cloudぐるなびが活用するElastic Cloud
ぐるなびが活用するElastic Cloud
 
Security JAWS#10 Public sector summit re:cap
Security JAWS#10 Public sector summit re:capSecurity JAWS#10 Public sector summit re:cap
Security JAWS#10 Public sector summit re:cap
 
JAWS-UG Nagoya 20130406 物体認識システムを支えるAWS
JAWS-UG Nagoya 20130406 物体認識システムを支えるAWSJAWS-UG Nagoya 20130406 物体認識システムを支えるAWS
JAWS-UG Nagoya 20130406 物体認識システムを支えるAWS
 
JAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートJAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデート
 

More from 圭輔 大曽根

5分で分かった気になるリーンスタートアップ(用語編)
5分で分かった気になるリーンスタートアップ(用語編)5分で分かった気になるリーンスタートアップ(用語編)
5分で分かった気になるリーンスタートアップ(用語編)
圭輔 大曽根
 

More from 圭輔 大曽根 (7)

累計DL数3,600万のアプリを成長させ続けるためのピボット
累計DL数3,600万のアプリを成長させ続けるためのピボット累計DL数3,600万のアプリを成長させ続けるためのピボット
累計DL数3,600万のアプリを成長させ続けるためのピボット
 
2015/08/24 第15回 HTML5+JS 勉強会【TechBuzz】資料「HTML5とデータ可視化とExcel」
2015/08/24 第15回 HTML5+JS 勉強会【TechBuzz】資料「HTML5とデータ可視化とExcel」 2015/08/24 第15回 HTML5+JS 勉強会【TechBuzz】資料「HTML5とデータ可視化とExcel」
2015/08/24 第15回 HTML5+JS 勉強会【TechBuzz】資料「HTML5とデータ可視化とExcel」
 
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソンd3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
 
2014/06/13 若手Webエンジニア交流会発表資料「博士課程の新卒エンジニアがデータ分析環境を作った話」
2014/06/13 若手Webエンジニア交流会発表資料「博士課程の新卒エンジニアがデータ分析環境を作った話」2014/06/13 若手Webエンジニア交流会発表資料「博士課程の新卒エンジニアがデータ分析環境を作った話」
2014/06/13 若手Webエンジニア交流会発表資料「博士課程の新卒エンジニアがデータ分析環境を作った話」
 
第一回チキチキ秋のデータサイエンスアイデアソン&ハッカソン』開催報告会 アプリ名: 守備視え〜る
第一回チキチキ秋のデータサイエンスアイデアソン&ハッカソン』開催報告会 アプリ名: 守備視え〜る第一回チキチキ秋のデータサイエンスアイデアソン&ハッカソン』開催報告会 アプリ名: 守備視え〜る
第一回チキチキ秋のデータサイエンスアイデアソン&ハッカソン』開催報告会 アプリ名: 守備視え〜る
 
5分で分かった気になるリーンスタートアップ(用語編)
5分で分かった気になるリーンスタートアップ(用語編)5分で分かった気になるリーンスタートアップ(用語編)
5分で分かった気になるリーンスタートアップ(用語編)
 
HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜
HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜
HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜
 

Gunosy における AWS 上での自然言語処理・機械学習の活用事例

  • 2. Copyright© Gunosy Inc. All Rights Reserved 2 ⾃⼰紹介 ⼤曽根 圭輔 @dr_paradi 博⼠ (⼯学) 主な業務: ニュースパス(明⽇でリリース1周年!) のユーザ⾏動分析、記事配信アルゴリズム構築 ⼤学時代の専攻: ⼈⼯知能の氷河期に ファジィ理論の応⽤をやってました
  • 3. Copyright© Gunosy Inc. All Rights Reserved 3 株式会社Gunosy –「情報を世界中の⼈に最適に届ける」 Gunosyは 情報キュレーションサービス「グノシー」と 2016年6⽉1⽇にKDDI株式会社と共同でリリースした 無料ニュース配信アプリ「ニュースパス」を提供する会社です 「情報を世界中の⼈に最適に届ける」をビジョンに活動しています ネット上に存在するさまざまな情報を、 独⾃のアルゴリズムで収集、評価付けを⾏い ユーザーに届けます。 情報キュレーションサービス「グノシー」 600媒体以上のニュースソースをベースに、 新たに開発した情報解析・配信技術を⽤いて⾃動的に 選定したニュースや情報をお客さまに届けます。 無料ニュース配信アプリ「ニュースパス」
  • 4. Copyright© Gunosy Inc. All Rights Reserved 4 データ分析部 サービスのコア部分である記事配信アルゴリズム改善、 ユーザ⾏動分析を担当。ブログを開設しています http://data.gunosy.io/
  • 5. Copyright© Gunosy Inc. All Rights Reserved 5 データ分析部 サービスのコア部分である記事配信アルゴリズム改善、 ユーザ⾏動分析を担当。学会にも積極的に参加しています JSAI 2017 COLING 2016
  • 6. Copyright© Gunosy Inc. All Rights Reserved 6 はじめに 情報キュレーションサービスを対象に、AWS を⽤いて ⼈⼯知能技術を実サービスに応⽤する際の事例を紹介 機械学習ライブラリの充実により、ある程度の精度のもの( 分類器などは)を作成するコストは下がっている => 実際のサービスで動かすことが重要
  • 7. Copyright© Gunosy Inc. All Rights Reserved 7 はじめに 情報キュレーションサービスを対象に、AWS を⽤いて ⼈⼯知能技術を実サービスに応⽤する際の事例を紹介 ● 記事分類 ● 属性推定 + スコアリング ● 効果測定 (ABテスト)
  • 8. Copyright© Gunosy Inc. All Rights Reserved 8 本⽇の発表の流れ ● Gunosyと機械学習 ● 記事分類 ● 属性推定 + スコアリング ● 効果測定 (ABテスト)
  • 9. Copyright© Gunosy Inc. All Rights Reserved 9 Gunosyと機械学習 インターネット上の コンテンツ (記事、商品、動画) Gunosy では、ネット上に存在する様々な情報を独⾃のアルゴリズム で収集し、評価付けを⾏い、ユーザーに届けます
  • 10. Copyright© Gunosy Inc. All Rights Reserved 10 Gunosyと機械学習 推定したユーザの属性、コンテンツの評価でマッチングの精度を向上 性別 年齢 地域... カテゴリ 著者 地域性... インターネット上の コンテンツ (記事、商品、動画)
  • 11. Copyright© Gunosy Inc. All Rights Reserved 11 カテゴリ 著者 地域性... Gunosyと機械学習 今回はニュース領域での活⽤事例を紹介 性別 年齢 地域... インターネット上の コンテンツ (記事、商品、動画)
  • 12. Copyright© Gunosy Inc. All Rights Reserved 12 記事配信の流れ1
  • 13. Copyright© Gunosy Inc. All Rights Reserved 13 本⽇の発表の流れ ● Gunosyと機械学習 ● 記事分類 ● 属性推定 + スコアリング ● 効果測定 (ABテスト)
  • 14. Copyright© Gunosy Inc. All Rights Reserved 14 記事配信の流れ1
  • 15. Copyright© Gunosy Inc. All Rights Reserved 15 記事分類 それぞれの記事に対してどのカテゴリに分類されるかを判定 教師あり多クラス分類問題 記事の例 大カテゴリ 中カテゴリ 小カテゴリ 日本代表のhogehogeが2試合ぶりゴール スポーツ サッカー 日本代表 fugafuga味のpiyopiyoが新発売!! グルメ 新商品
  • 16. Copyright© Gunosy Inc. All Rights Reserved 16 記事分類の流れ 政治 記事 カテゴリ分類器 経済 スポーツ グルメ 形態素解析 辞書
  • 17. Copyright© Gunosy Inc. All Rights Reserved 17 AWS上で動かしてみる ●クローラが記事を取得した際にカテゴリ分類APIにエンキューし 分類、RDBに格納 ●弊社のアプリは全てOpsWorksで管理 ●モデルはS3に保存しておき、deploy時に取得
  • 18. Copyright© Gunosy Inc. All Rights Reserved 18 AWS上で動かしてみる (学習時) 教師データ 構⽂解析 分類器 クラウドソーシングなどでカテゴリを付与された記 事(教師データ)を元に、本⽂の構⽂解析を⾏い、に 分類器を構築。S3にアップロード
  • 19. Copyright© Gunosy Inc. All Rights Reserved 19 AWS上で動かしてみる (deploy時) 分類器 deploy時に各インスタンスが分類器を取得 記事分類API
  • 20. Copyright© Gunosy Inc. All Rights Reserved 20 AWS上で動かしてみる (deploy時) crawler stack 記事分類API 記事スコアリング リスト⽣成 同⼀イベント判定 構⽂解析
  • 21. Copyright© Gunosy Inc. All Rights Reserved 21 本⽇の発表の流れ ● Gunosyと機械学習 ● 記事分類 ● 属性推定 + スコアリング ● 効果測定 (ABテスト)
  • 22. Copyright© Gunosy Inc. All Rights Reserved 22 記事配信の流れ1
  • 23. Copyright© Gunosy Inc. All Rights Reserved 23 属性毎の記事閲覧傾向の違い ●性別 !男性はスポーツ記事をクリックしやすい – 野球は男性 – フィギュアスケートは両⽅ !有名⼈の結婚・出産などのライフイベントは⼥性のほうがクリックしやすい ●年齢 !アーティストのニュースなどは年齢差が⽣まれやすい ●地域 !スポーツチームの勝敗や事件、イベントなどで地域毎でクリック傾向が異なる
  • 24. Copyright© Gunosy Inc. All Rights Reserved 24 1.直接ユーザにきく ● ⼊⼒ストレスなどでサービスから離脱してしまう恐れもある ● 全ユーザが⼊⼒してくれるわけではない ● 上記を考慮して現時点では積極的には⾏わない 1.何かしらの⼿法で推定する ● ユーザが読んだ記事情報をもとに属性を推定 属性毎の記事閲覧傾向の違い WebDB Forum 2016での発表より http://data.gunosy.io/entry/webdbf2016
  • 25. Copyright© Gunosy Inc. All Rights Reserved 25 年齢推定の問題設定 クラス数 年齢を ~19歳,20~24歳,などに分けた多クラス分類問題 WebDB Forum 2016での発表より http://data.gunosy.io/entry/webdbf2016
  • 26. Copyright© Gunosy Inc. All Rights Reserved 26 6つに分類 ⼊⼒データ 各フィルタの形状 縦 : (2, 4, 8),横 : 28 活性化関数 特徴マップを⽣成 Max Pooling 結合する Softma x 畳み込み 年齢推定にはCNN for NLP を応⽤ WebDB Forum 2016での発表より http://data.gunosy.io/entry/webdbf2016
  • 27. Copyright© Gunosy Inc. All Rights Reserved 27 AWS上で動かしてみる (推定) action-logs user demographics bucket 性別推定 年齢推定 ユーザの⾏動ログから推定モデルを構築し、 ユーザ毎の推定結果をS3にアップロード 学習にはGPUインスタンス を利⽤
  • 28. Copyright© Gunosy Inc. All Rights Reserved 28 AWS上で動かしてみる (推定) action-logs user demographics bucket 性別推定 年齢推定 ユーザの⾏動ログから推定モデルを構築し、 ユーザ毎の推定結果をS3にアップロード 学習にはGPUインスタンス を利⽤ {"article_id": 12345, "user_id": 12345, "action": "click"} {"article_id": 12345, "user_id": 12345, "action": "impression"}
  • 29. Copyright© Gunosy Inc. All Rights Reserved 29 AWS上で動かしてみる (推定) action-logs user demographics bucket 性別推定 年齢推定 user_id age_type 100 20 101 30 102 50 ユーザの⾏動ログから推定モデルを構築し、 ユーザ毎の推定結果をS3にアップロード 学習にはGPUインスタンス を利⽤
  • 30. Copyright© Gunosy Inc. All Rights Reserved 30 AWS上で動かしてみる (推定) action-logs user demographics bucket 性別推定 年齢推定 user_id gen_type 100 male 101 female 102 other ユーザの⾏動ログから推定モデルを構築し、 ユーザ毎の推定結果をS3にアップロード 学習にはGPUインスタンス を利⽤
  • 31. Copyright© Gunosy Inc. All Rights Reserved 31 AWS上で動かしてみる (モニタリング) user demographics bucket 性別推定 年齢推定 user_id gen_type 100 male 101 female 102 other action-logs
  • 32. Copyright© Gunosy Inc. All Rights Reserved 32 AWS上で動かしてみる (モニタリング) user demographics bucket user demographics DB 性別推定 年齢推定 user_id gen_type 100 male 101 female 102 other action-logs
  • 33. Copyright© Gunosy Inc. All Rights Reserved 33 AWS上で動かしてみる (モニタリング) user demographics bucket user demographics DB 性別推定 年齢推定 user_id age_type 100 20 101 30 102 50 action-logs
  • 34. Copyright© Gunosy Inc. All Rights Reserved 34 AWS上で動かしてみる (モニタリング) user demographics bucket user demographics DB 性別推定 年齢推定 action-logs user_id gen_type age_type 100 male 20 101 female 30 102 other 50 推定結果をJOINしたものをS3にも格納 (ストリーム処理で使⽤するため)
  • 35. Copyright© Gunosy Inc. All Rights Reserved 35 AWS上で動かしてみる (モニタリング) 推定結果をRDBに格納し、⽇々の 改善に活⽤ action-logs user demographics bucket presto user demographics DB 性別推定 年齢推定 {"article_id": 12345, "user_id": 100, "action": "click"} {"article_id": 12345, "user_id": 101, "action": "impression"}
  • 36. Copyright© Gunosy Inc. All Rights Reserved 36 AWS上で動かしてみる (記事評価) user demographics bucket Amazon kinesis stream 性別推定 年齢推定 user_id gen_type 100 male 101 female 102 other
  • 37. Copyright© Gunosy Inc. All Rights Reserved 37 AWS上で動かしてみる (記事評価) user demographics bucket Amazon kinesis stream 性別推定 年齢推定 {"article_id": 12345, "user_id": 100, "action": "click"} {"article_id": 12345, "user_id": 101, "action": "impression"} user_id gen_type 100 male 101 female 102 other
  • 38. Copyright© Gunosy Inc. All Rights Reserved 38 AWS上で動かしてみる (記事評価) user demographics bucket Amazon kinesis analytics Amazon kinesis stream 性別推定 年齢推定 {"article_id": 12345, "user_id": 100, "action": "click"} {"article_id": 12345, "user_id": 101, "action": "impression"} user_id gen_type 100 male 101 female 102 other kinesis streamのデータとS3の データをkinesis analyticsでjoin
  • 39. Copyright© Gunosy Inc. All Rights Reserved 39 AWS上で動かしてみる (記事評価) user demographics bucket Amazon kinesis analytics Amazon kinesis stream 性別推定 年齢推定 article_id gen_type impression click 12345 male 10 4 12345 female 8 1 12346 male 3 1 kinesis streamのデータとS3の データをkinesis analyticsでjoin
  • 40. Copyright© Gunosy Inc. All Rights Reserved 40 AWS上で動かしてみる (記事評価) user demographics bucket Amazon kinesis analytics Amazon kinesis stream Amazon kinesis firehorse Elasticsearch Service 性別推定 年齢推定 kinesis streamのデータとS3の データをkinesis analyticsでjoin kinesis firehorseを通じて Elasticsearchに格納
  • 41. Copyright© Gunosy Inc. All Rights Reserved 41 AWS上で動かしてみる (記事評価) リアルタイム性が求められる ニュース記事への評価に適⽤ 詳しくはブログを参照 記事スコア 評価 user demographics bucket Amazon kinesis analytics Amazon kinesis stream Amazon kinesis firehorse Elasticsearch Service 性別推定 年齢推定 http://data.gunosy.io/entry/dashboard-with-kinesis-analytics
  • 42. Copyright© Gunosy Inc. All Rights Reserved 42 AWS上で動かしてみる (リアルタイム通知 ) ロジック改善のヒントの ため、通知も⾏う 性別推定 年齢推定 user demographics bucket Amazon kinesis analytics Amazon kinesis stream Amazon kinesis firehorse Elasticsearch Service
  • 43. Copyright© Gunosy Inc. All Rights Reserved 43 本⽇の発表の流れ ● Gunosyと機械学習 ● 記事分類 ● 属性推定 + スコアリング ● 効果測定 (ABテスト)
  • 44. Copyright© Gunosy Inc. All Rights Reserved 44 効果測定 (A/Bテスト) 多くの機械学習の効果測定タスクでは評価関数の最適化が⽬的 Gunosyが提供するサービスで最適化すべきはユーザの満⾜度 - 測定が難しい - ニュースアプリのであるため、時流や季節要因などの影響を受けや すい - データに予期しないノイズが乗り、計測が困難になる - e.g 機能実装後にバグが発⽣し、実装により効果が上がったの か確認できない
  • 45. Copyright© Gunosy Inc. All Rights Reserved 45 効果測定 (A/Bテスト) よくない例
  • 46. Copyright© Gunosy Inc. All Rights Reserved 46 効果測定 (A/Bテスト) よくない例 機能リリース
  • 47. Copyright© Gunosy Inc. All Rights Reserved 47 効果測定 (A/Bテスト) よくない例 機能リリース ⼤きなイベント発⽣
  • 48. Copyright© Gunosy Inc. All Rights Reserved 48 効果測定 (A/Bテスト) よくない例 機能リリース ⼤きなイベント発⽣ 前より低い…?
  • 49. Copyright© Gunosy Inc. All Rights Reserved 49 そこでA/Bテスト 特定のアルゴリズム(やUI)を2種類⽤意し、ユーザ毎に出 し分けて検証する メリット ● 時間変化などのノイズが⼊りにくい ● 最適化すべきメトリクスが決まってさえいれば 単純なクロス集計で済む
  • 50. Copyright© Gunosy Inc. All Rights Reserved 50 A/Bテストの例 特定のユーザ群にUIやアルゴリズムを出し分けるテストを⾏う Test A Test B クリック率 5% 6% 滞在時間 30 35
  • 51. Copyright© Gunosy Inc. All Rights Reserved 51 この例の場合であれば Test Bを全体に適応 (※)実際は複数の指標を見ている A/Bテストの例 特定のユーザ群にUIやアルゴリズムを出し分けるテストを⾏う Test A Test B クリック率 5% 6% 滞在時間 30 35
  • 52. Copyright© Gunosy Inc. All Rights Reserved 52 A/Bテストの例 機能リリース ⼤きなイベント発⽣ 前より低い…? この例の場合であれば Test Bを全体に適応 (※)実際は複数の指標を⾒ている
  • 53. Copyright© Gunosy Inc. All Rights Reserved 53 A/Bテスト対象の選定 userのidを利⽤した割り当てを以前は利⽤ しかし割った値だと、テストが同時に複数⾛った場合に、 バイアスがかかる可能性がある e.g. 同じ⼈がコントロールに当たる ● 現在はハッシュ関数を利⽤した 割り当てを⾏っている 詳細: http://data.gunosy.io/entry/ab_testing_assignment
  • 54. Copyright© Gunosy Inc. All Rights Reserved 54 AWS上でのA/Bテスト実施 アルゴリズム毎にkeyを分けてDynamo DBに保存 ユーザに記事を配信するAPI(Go製)がDynamo DBに格納されたデータをユーザに返す ABテストAPI 記事リストAPI (Go)記事スコアリング Dynamo DB
  • 55. Copyright© Gunosy Inc. All Rights Reserved 55 AWS上でのA/Bテスト実施 ユーザのログにどのABが割り当たっているかを付与して 送信、集計 action-logs ABテストAPI 記事リストAPI (Go)記事スコアリング Dynamo DB
  • 56. Copyright© Gunosy Inc. All Rights Reserved 56 集計 ABテストごとに⽬的となる変数 (KPI) に影響がないかを確認 主にPython (Jupyter notebook)を⽤いて集計 Github上で集計コードを共通化
  • 57. Copyright© Gunosy Inc. All Rights Reserved 57 ⾃動集計 Group Validation ABテストが適切に割り当てられているかを確認、通知 ⾃動化を進⾏中
  • 58. Copyright© Gunosy Inc. All Rights Reserved 58 伝えたかったこと 情報キュレーションサービスを対象に、AWS を⽤いて ⼈⼯知能技術を実サービスに応⽤する際の事例を紹介 機械学習ライブラリの充実により、ある程度の精度のもの( 分類器などは)を作成するコストは下がっている => 実際のサービスで動かすことが重要
  • 59. Copyright© Gunosy Inc. All Rights Reserved 59 おわりに GunosyにおけるAWSを⽤いた機械学習の活⽤事例を紹介 - 記事分類 - 属性推定 + スコアリング - 効果検証 今後はオンラインでの推薦や、より⾼度な⾃然⾔語処理、 画像処理などにもチャレンジしていきたい
  • 60. Copyright© Gunosy Inc. All Rights Reserved 60 その他 「Gunosy データ分析ブログ」 http://data.gunosy.io/ →データに基づいたプロダクト改善のためのブログ 「Gunosy データマイニング勉強会」 https://gunosy-dm.connpass.com/ → 輪読 + 論⽂紹介する会
  • 61. Copyright© Gunosy Inc. All Rights Reserved 61 ⼈材募集中です 機械学習・⾃然⾔語処理エンジニア https://www.wantedly.com/projects/83871 データ分析エンジニア https://www.wantedly.com/projects/83864 データプラットフォームエンジニア https://www.wantedly.com/projects/95424