Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Gunosyにおけるデータドリブンなサービス開発とテキストアナリティクスの活用 / data-driven-service-development-in-gunosy
ysekky
September 20, 2017
Research
1
3.5k
Gunosyにおけるデータドリブンなサービス開発とテキストアナリティクスの活用 / data-driven-service-development-in-gunosy
ysekky
September 20, 2017
Tweet
Share
More Decks by ysekky
See All by ysekky
ysekky
3
1.3k
ysekky
0
1.1k
ysekky
1
490
ysekky
0
1.5k
ysekky
0
640
ysekky
0
490
ysekky
1
1.5k
ysekky
0
3.2k
ysekky
0
4.2k
Other Decks in Research
See All in Research
masakat0
0
210
sorami
1
1.2k
scatterlab
0
1.1k
aserg_ufmg
2
160
shunk031
0
770
kayceesrk
2
3.5k
scatterlab
0
1.3k
cfiken
1
490
beeeee
0
170
chikuwait
2
270
yuichiroh
0
110
supikiti
0
220
Featured
See All Featured
myddelton
109
11k
morganepeng
17
1.1k
jacobian
255
20k
mongodb
23
3.8k
colly
66
3k
andyhume
62
3.4k
jasonvnalue
82
8.1k
lemiorhan
626
42k
sferik
609
54k
addyosmani
494
110k
jmmastey
9
540
lara
590
61k
Transcript
Yoshifumi Seki(Gunosy Inc.) 第11回テキストアナリティクスシンポジウム 2017 年 9 月 7 日
Gunosyにおける データドリブンなサービス開発と テキストアナリティクスの活用
2 ©Gunosy Inc. 自己紹介 関 喜史 (Yoshifumi Seki) 株式会社Gunosy共同創業者 開発本部
データ分析部 東京大学大学院 工学系研究科 客員研究員 博士(工学) 東京大学工学部卒業、同大学院工学系研究科博士課程修了。 2011年度未踏OB。大学院在 籍中にGunosy(グノシー)を共同開発し、2012年当社創業。 創業期からニュース配信ロジックの開発を担当し、推薦システムを中心としたウェブマイニン グ、機械学習応用、自然言語処理応用を専門とする。 2017年4月より東京大学客員研究員に 着任。
3 ©Gunosy Inc. この発表で話すこと Gunosyにおけるデータ分析に基づいたプロダクト開発の流れと、その中で自然言語処理 の活用事例について
4 ©Gunosy Inc. テキストアナリティクスにおける本発表の位置づけ • ソフトウェア時代のサービス開発は改善の繰り返し ◦ Done is better
than perfect. ◦ 常にアップデートを求められる • ユーザの行動ログなどのデータから改善の仮説を立てることはサービス開発の重要 なプロセスの1つ ◦ テキストアナリティクスはその手段の 1つ ◦ データを元に意思決定をしてサービス開発をする方法論は、テキストアナリティ クスと重要な関係性をもつ • 一方でデータドリブンな方法論は成熟していると言い難い ◦ 「データばかりみていてはだめだ」という主張をする人が一定数いる ◦ 技術・手法に囚われ、成果につながっていない事例が散見される • Gunosyではどのような体制で、どのように成功しているのか
5 ©Gunosy Inc. ▪ 「データによる意思決定」と「アルゴリズムによる課題解決」が競争力であり、今 後も注力ポイント ▪ 扱うコンテンツはニュースのみではない – 動画、商品情報、、、
Gunosyとは 「ニュースアプリの会社」ではなく、「データとアルゴリズムの会社」
6 ©Gunosy Inc. Gunosyのミッション 「データとアルゴリズム」を活用して「情報を世界中の人に最適に届ける」
7 ©Gunosy Inc. Gunosyの使用技術① サービス側 コンテンツの収集・スコアリング・アプリで表示・ログ収集・分析と可視化が主な流れ
8 ©Gunosy Inc. Gunosyの使用技術① サービス側 全てのサービスでAWSを使用し、APIでGoをコンテンツ収集や推薦・分析で Pythonと Scalaを管理画面でRailsを使用することが多い
9 ©Gunosy Inc. Gunosyの使用技術② 分析側 定常的な可視化はRedashで、アドホックな分析はJupyter Notebookでやることが多い SQLで完結する場合はRedashで SQL以外もの場合はJupyter Notebookで
▪ Redash : SQLをブラウザで書き、グラフを 可視化出来るツール ▪ 非エンジニアも含め RedashでSQLを書き、 自らデータ分析を行う ▪ Jupyter Notebook : ブラウザでインタラク ティブにコードが書けるツール ▪ アルゴリズムのモックや、 SQLで完結しな い詳細のデータ分析を行う
10 ©Gunosy Inc. プロダクト開発の流れ プロダクト開発は「実験」のサイクル
11 ©Gunosy Inc. データ分析が根付いた環境 Gunosyはデータ分析に基づいたプロダクト開発のための環境が揃っている ▪ 起業以来、会社に根付いたデータ分析の文化 – データマイニングを研究していた 3人の東大大学院生によって始まった会
社 – サービス開始時点から、数値に基づく意思決定を繰り返してきた – データを自ら触り、プロダクト改善をした人が偉い ▪ データ分析者が能力を発揮し、評価される環境が整備されている – ログが整備されており、誰でもすぐに触ることが出来る – ABテスト基盤が整っており、自分で実装してすぐに検証できる – アルゴリズムによる少しの改善が、会社の成長に直結する
12 ©Gunosy Inc. データ分析に基づいたプロダクト開発の考え方 ▪ 「答えはユーザが知っている」 – 開発者の好きなものが、ユーザも好きとは限らない – ユーザは自分の気に入ったものを使い続ける
– 大規模なログを触って仮説を発見、検証していく ▪ 「いかに”賢く”失敗するか」 – 検証する仮説を明確にし、その仮説を最短経路で試す – 失敗する前提で何回試行錯誤が出来るのかを逆算する – 有限な時間の中で、筋の良い仮説の試行錯誤を繰り返す 「答えはユーザが知っている」 「いかに”賢く”失敗するか」
13 ©Gunosy Inc. 答えはユーザが知っている 大規模なログを触って仮説を発見、検証していく 経験・勘
14 ©Gunosy Inc. いかに”賢く”失敗するか ▪ ダメな例 – 世界の人口のうち35億人は男性である 有限な時間の中で、筋の良い仮説の試行錯誤を繰り返す 現状の把握だけではなく、仮説・検証・意思決定も含んだ分析が求められる。
15 ©Gunosy Inc. いかに”賢く”失敗するか ▪ ダメな例 – 世界の人口のうち35億人は男性である ▪ 良い例
– 自然界では花はミツバチを探しに行かない – 世界の人口のうち35億人は男性である – そのため女性は男を待つべきである 有限な時間の中で、筋の良い仮説の試行錯誤を繰り返す 現状の把握だけではなく、仮説・検証・意思決定も含んだ分析が求められる。
16 ©Gunosy Inc. 2種類のデータ分析タスク ▪ 施策分析 – 数値計画の作成、計画通りに進んでいるかの可視化 – 計画との差分埋めや上振れを作るための施策の立案
– 施策の実施と結果計測、次の施策に繋げる ▪ ロジック開発 – ユーザが満足するコンテンツに出会わせるのが目的 – ユーザの「満足度」とは?どう出会わせるか? – 満足度の定義と満足度を向上させるマッチングアルゴリズムの開発 大きく分けると施策分析とロジック開発の 2種類のタスクがある
17 ©Gunosy Inc. 地域別ニュース配信の例 : 前提 アプリのRR(リテンションレート、継続率)を高めたい 多くの記事を閲覧すると、RRが向上する傾向があることが分かっている RRを向上させるために、記事閲覧数が向上するような記事選定ロジックを開発した い!
18 ©Gunosy Inc. 地域別ニュース配信の例 : 可視化と仮説 居住地に関する記事を表示すると記事閲覧数が伸びるのではないか ユーザの居住地に関する記事を表示するロジックを試したい! ※こちらは実在しないサンプル記事です
19 ©Gunosy Inc. 地域別ニュース配信の例 : 最短コストでの検証 ▪ 大阪のユーザのX%に、手動で選定した大阪に関する記事を表示し、記事閲 覧数を比較する 手動運用や簡単なif文による実装で仮説を検証する
仮説が検証されたので、自動化と大規模反映して、より正確に検証したい!
20 ©Gunosy Inc. 地域別ニュース配信の例 : 自動化とロジック高度化 ▪ 全ユーザのX%に、居住地に関すると判定された記事を表示し、記事閲覧数を 比較する –
この段階になって初めて「記事の地域推定」という機械学習タスクが現れ る – 実際には、地域以外の多くの素性を利用して、記事の CTR推定を行い、 記事選定に用いている 全ユーザ、全時間帯に反映して検証するために、記事の地域推定を行う 仮説検証も自動化も終わったので、全ユーザに反映させよう!
21 ©Gunosy Inc. 地域別ニュース配信の試作フロー
22 ©Gunosy Inc. 自然言語処理活用事例 : パーソナライズド推薦 ▪ 背景:「話題性」のみを考慮したニュース推薦システムの限界 – 「話題性は低いが自分の興味に合ったニュースを読みたい」ユーザーの存在
▪ 問題設定 – 「ユーザーの興味」 := 過去にクリックした記事 – ユーザーと記事の特徴量を与えた時にクリック確率を算出するモデルを作成 – モデルによるスコアが上位になるニュース記事をユーザーに表示する ユーザー個人の興味嗜好に合わせてシステムをパーソナライズする
23 ©Gunosy Inc. 自然言語処理活用事例 : パーソナライズド推薦 ▪ システム設計上の要件 – 大量リクエストに対して高速にニュース記事を返す:数
msec 以内 ➔ ユーザーも記事も同じ空間に埋め込み&近傍探索により高スコア記事を検索 ▪ 特徴量:予めニュース記事コーパスを用いて学習させた分散表現を用いる – ニュース記事の特徴量 • タイトルの単語の分散表現をidf値で重み付け平均を取る – ユーザーの特徴量 • 直近にクリックしたニュース記事ベクトルの和 スコアリング = 内積計算
24 ©Gunosy Inc. 自然言語処理活用事例 : パーソナライズド推薦 オフライン検証 ▪ ユーザーに実際に表示された記事を提案モデル で並べ替えを行いMAP@10およびnDCG10で評
価した (fig 1.) ▪ CBOWによるベクトルをidf値で重み付けを行った 特徴量が最も良い性能を示した 実サービス上での検証 ▪ 実際にモデルをサービスに適用し、スコアリング とクリック率がどのような相関があるかを検証し た (fig 2.) ▪ 結果としてスコアリングとクリック率が正の相関を 持つことを確認した fig 1. オフラインでの検証 Gunosy1,2 : 既存システムによる表示順 CBOW-w / Skip-gram-w : idf値で重み付けされたモデル CBOW / Skip-gram : idf値で重み付けを行わないモデル tf-idf : tf-idfでベクトル化するモデル fig 2. サービス上での検証
25 ©Gunosy Inc. 自然言語処理活用事例 :クリックベイトの特定に向けて ▪ 背景 – PV数を高めたいメディアがタイトル付けを工夫 –
一方で過剰になりすぎてタイトルを見て読んだユーザが騙されたと感じてしまうこと がある • そのような現象をクリックベイトという ▪ 問題設定 – クリックベイトなニュース記事を特定し排除することで ,ユーザの満足度を向上させた い – ニュース記事滞在時間を元に、ニュース記事の類型化を行い、クリックベイトな ニュース記事の特性を明らかにする – その特性を元に、クリックベイトなニュース記事の特定を試みる
26 ©Gunosy Inc. 自然言語処理活用事例 :クリックベイトの特定に向けて ▪ 背景 – PV数を高めたいメディアがタイトル付けを工夫 –
一方で過剰になりすぎてタイトルを見て読んだユーザが騙されたと感じてしまうこと がある • そのような現象をクリックベイトという ▪ 問題設定 – クリックベイトなニュース記事を特定し排除することで ,ユーザの満足度を向上させた い – ニュース記事滞在時間を元に、ニュース記事の類型化を行い、クリックベイトな ニュース記事の特性を明らかにする – その特性を元に、クリックベイトなニュース記事の特定を試みる
27 ©Gunosy Inc. 自然言語処理活用事例 :クリックベイトの特定に向けて ▪ 滞在時間の短いニュース記事の分析 – 騙されたと感じた際の行動には様々なものがあると考えられる –
本文をみてすぐ戻る(直帰する)行動を対象にする • 以前、そのようなニュース記事を表示しなくする A/Bテストを行ったが、ユーザ満 足度を下げる結果となった – 滞在時間が短いニュース記事を類型化し、クリックベイトなニュース記事の特性を明 らかにする ▪ 滞在時間の短いニュース記事の類型化 – (a) タイトルに十分な情報量があり、本文に新しい情報量がない – (b) タイトルにあまり情報がなく、本文との乖離がある – (c) 画像を想起させるタイトルで、画像を拡大して満足する – (d) 画像を想起させるタイトルだが、その画像がない . (b), (d)はクリックベイトな内容である
28 ©Gunosy Inc. 自然言語処理活用事例 :クリックベイトの特定に向けて • クリックベイトの特定に向けた設問作成と回答 • タイトルと本文の一致性が重要だとして、類似度を用いてクリックベイトなニュース記事 の特定を試みる
◦ ある閾値以下のニュース記事をクリックベイトなニュース記事と判定するヒューリ スティクス ◦ 分散表現 + タイトルと1文目&2文目による類似度が一番良い ◦ Precisionが類似度が低いほど高くなるので、実サービス向き。
29 ©Gunosy Inc. Gunosyのデータ経営 大切なのはデータでもアルゴリズムでなく、 そのサービスにおいてユーザーが何に困っているかという仮説 データは仮説の修正に使う アルゴリズムはアルゴリズムが得意なことを理解して、仮説を分解した時のタスクに落とし こむ そこが自動化されることでものすごく生産性が上がることやそもそもアルゴリズムでないと
できないようなタスクに落としこむ。 このサイクルを回すことがGunosyのデータ経営の根幹
30 ©Gunosy Inc. サービス開発のためのデータ分析とは ▪ サービス開発はリソースとの戦い ▪ 人・時間・お金を効率良く使うための意思決定が必要 ▪ 現状の把握だけではなく、仮説・検証・意思決定も含んだ
分析が求められる 求められるのは意思決定のための分析
31 ©Gunosy Inc. データ分析者は施策立案者でもあり、意思決定者でもある • 施策の仮説を知っている ◦ 仮説を知らないで分析してもなにも得られない ◦ 仮説から分析対象まで落とせるか?
• その仮説が支持されるかを知ることができる ◦ 分析の目的はこれ ◦ 成功したか、失敗したかではない • その結果、その施策をどうするか決めることができる ◦ 分析せずに結果だけ聞いて決めるより、分析して決めたほうがいい ◦ 少なくとも分析のプロセスや、その結果の解釈の正しさは理解しておくべき
32 ©Gunosy Inc. データ分析は組織論 • データを重視することはデータに振り回されることではない ◦ それはそう ◦ しかし、データをみなくていいということではない
• 人の上にデータが有る ◦ 人がデータの上に居ると、「上司が納得するデータを出す」ことになる ◦ それはデータ分析ではない ◦ データを元に人が意思決定する • データを活用できる組織かどうかが重要 ◦ 1人のスターでは限界がくる ◦ 複数人で課題を解決できるか ◦ 組織全体で分析を行い、分析結果を尊重できているか
33 ©Gunosy Inc. まとめ ▪ Gunosyはニュースアプリの会社ではなく、データとアルゴリズムをもってあら ゆる課題解決に取り組む会社 ▪ 自然言語処理をルールベースと機械学習を組み合わせ、 A/Bテストを用いてう
まく実サービスで活用している ▪ サービス開発においてデータ分析・自然言語処理を活用しやすい組織体制が 整っており、研究に取り組んできた方が力を発揮しやすい会社 ▪ 実サービスでユーザの課題を泥臭く解決したい皆様をアルバイト/新卒/中 途問わずお待ちしております ▪ 共同研究も進めてまいりますので、ご相談させていただければと思います