捗るリコメンドシステムの裏事情(ハッカドール)
Upcoming SlideShare
Loading in...5
×
 

捗るリコメンドシステムの裏事情(ハッカドール)

on

  • 0 views

ハッカドールの裏側を一部紹介。

ハッカドールの裏側を一部紹介。
高校生でも理解できるくらいでかいてみました

あとでかきます

Statistics

Views

Total Views
0
Views on SlideShare
0
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

捗るリコメンドシステムの裏事情(ハッカドール) Presentation Transcript

  • 1. 捗る! リコメンドシステムの裏事情 2014/10/11 @mosa_siru (榎本悠介) 1
  • 2. 自己紹介 2
  • 3. @mosa_siru • 「もさ」って呼んでください • 大学:複雑ネットワーク研究 • ネットワーククラスタリングの高速化手法 • Twitter SmartList 開発 3
  • 4. @mosa_siru • DeNA(2年目) • プラットフォーム API開発・運用 • ハッカドール 立ち上げからジョイン • サーバーAPI 設計・開発・運用(ほぼ全部) • フロント/バックエンド Web開発 • ログ設計・リコメンドシステムをうんうん考える • 社内の分析チームと密に連携 4
  • 5. 特技 5
  • 6. Bomberman 6
  • 7. ボンバーマン • 2年間引きこもって極めてました • 戦績をつけてRatingで可視化しながら対戦 • 極めるとぷよぷよ化する 7
  • 8. 解説動画がホットエントリ入り 8
  • 9. アジェンダ 9
  • 10. アジェンダ 1. ハッカドールって? 2. ターゲットユーザーの特徴 3. リコメンドシステムの紹介 10
  • 11. 1. ハッカドールって? 11
  • 12. ハッカドールって? • アニメ・マンガ・ゲームなど、 オタク系の記事のみを扱った ニュース配信アプリ • 政治・スポーツなどのニュー スは一切扱わない • 使えば使うほど学習していく 12
  • 13. ハッカドールって? • ゲーミフィケーション ! • というかゲームできる ! • オタクユーザーに刺さる機能 が満載 13
  • 14. 2014夏コミに合わせてリリース 14
  • 15. 極めて高いユーザー評価 • 1ヶ月あまりで数十万DL突破 • 高いリターンレート(継続率) 15
  • 16. なんでこんなアプリ 作ったの? 16
  • 17. 捗りたい! • 好きなゲームの情報を毎日調 べる辛さ • え、あの漫画の新刊出てたん だ… • もっともっと、まだ見ぬ面白 いコンテンツに出会いたい! 17
  • 18. コンテンツのマッチング • 増え続けるコンテンツ • 漫画の1日あたり新刊数はどんどん増えている • でも売上は横ばい • 面白いコンテンツと、それを求めるユーザーを マッチングさせて、エンタメ業界を活性化させ たい 18
  • 19. こんな人達が開発してます 19
  • 20. 開発陣 • 「オタク以外はチー ムに入れません」 20
  • 21. 開発風景 社内での観光名所化 21
  • 22. 2. ターゲットユーザーの特徴 22
  • 23. 情報収集力が高い 23
  • 24. 情報収集力が高い • 自力でどんどん好きな情報を集める • 受動的でない • そのためには多少の苦労はいとわない 24
  • 25. こだわりが強い 25
  • 26. こだわりが強い • 「絶対にラブライブ!の情報は逃したくな い!」 • 1秒でも速く知りたい!! • 興味のある・ないでの差が激しい • 「~のニュースとか本当にどうでもいい」 26
  • 27. ニッチな記事も好む 27
  • 28. ニッチな記事も好む • 必ずしもTweet数、はてブ数が高い記事を好む わけでもない • 例:声優ブログ 28
  • 29. とにかく嗜好にマッチ していることが重要 29
  • 30. ハッカドールのリコメンドの 仕組み 30
  • 31. 一般的なリコメンド手法って? 31
  • 32. 一般的なリコメンド手法 • 大きく分けて二分される • ユーザーベース • 「この商品を買った人はこんな商品 32 も買っています」 • アイテムベース • 「この商品はキルラキルのフィギュ アなので、キルラキルが好きな人に 推薦しよう」
  • 33. ユーザーベースの特徴 • 推薦されるアイテムの中身に依存しな いので、汎用的 • ユーザーアクティビティの情報が大量 に必要 • コールドスタート問題 • ニュースや新商品のアクティビティ情 報が少ない • 計算量の工夫が必要 33
  • 34. アイテムベースの特徴 • 推薦対象となるアイテムの情報が必要 • 全体のアクティビティ量は必ずしも多くなく て良い • ニュース・新情報に対応可能 • 計算量はユーザー数に対して線形 34
  • 35. ハッカドールでは • リリース当初はアイテムベースがメイン • 現在はユーザーベースも組み合わせて記事を 配信しています • 試行錯誤し、各種ABテストで検証しながら 35 導入しています • 今回は、アイテムベースの手法を紹介します
  • 36. アイテムベースの手法 (ベクトル空間モデルの紹介) 36
  • 37. アイテムの持つ情報とは • ニュースの場合 • タイトル • 記事本文 • 画像 • サイト情報、メタ情報、Tweet情報 etc.. 37
  • 38. ベクトル空間モデル • 例えば文章情報に着目 • たとえば文章に含まれる「単語の登場数」にだ け着目してみると 38
  • 39. 39 キーワード登場数 立体機動装置1 講談社1 漫画2 エレン1 リヴァイ1 ウサイン・ボルト3 進撃の巨人1 空想科学読本3 諫山創1 (略) ※実際は各種の 重み調整が必要
  • 40. ベクトル空間モデル • アイテムを全てベクトルで表現 • ユーザーの嗜好もベクトルで表現 • 例:読んだ記事のベクトルを足していく • ベクトルの”近さ”は簡単に計算できる • ユーザーのベクトルと”近い”記事を推薦 40
  • 41. 今回はどうやって 良いベクトル空間を作るか?に フォーカスを当てます 41
  • 42. どうやって単語を抜き出すか 42
  • 43. 形態素解析 • wikipedia「対象言語の文法の知識(文法のルールの集まり) や辞書(品詞等の情報付きの単語リスト)を情報源として用い、 自然言語で書かれた文を形態素(Morpheme, おおまかにいえ ば、言語で意味を持つ最小単位)の列に分割し、それぞれの品 詞を判別する作業を指す。」 43
  • 44. 44
  • 45. 45
  • 46. mecab 46
  • 47. mecab • 日本製のオープンソースの形態素解析エンジン 47 • 簡単、シンプル、速い • すぐに試せる brew install mecab mecab-ipadic
  • 48. 48
  • 49. がっ…!ダメっ…! 49
  • 50. ちゃんとした辞書が必要 • 形態素解析は、辞書(単語リスト)をもとに分割している • デフォルトのmecabの辞書では、一般用語しか入っていない • 「ラブライブ!」「μ's」などに対応するには、独自のユー ザー辞書が必要 50
  • 51. オタク辞書の作り方 51
  • 52. 外部リソースを使う • wikipedia • データが全公開されている 52 • ニコニコ大百科 • オタクキーワードが満載 • 記事のタイトルから、ニッチな キーワードを取得
  • 53. でも全然必要ない単語もいっぱい… 53
  • 54. うーむ… 54
  • 55. とある声優ソムリエが 思いついた手法 55
  • 56. wikipediaにはカテゴリ情報がある 56
  • 57. どんどんサブカテゴリを辿っていくと… 57
  • 58. !!! 58
  • 59. 親カテゴリからの幅優先探索 で専門辞書を作成 59
  • 60. 必要な単語だけ 抽出することに概ね成功 60
  • 61. before 61
  • 62. after 62
  • 63. まだまだこだわる 63 • 100%完璧な手法ではない • 探索の深さはadhoc • 公開直後の情報など、wikipediaに記事がない場合がある • 辞書の管理ツールを作成 • 手動で辞書に必要単語を追加できる • 新単語にいち早く対応
  • 64. 結論:なんだかんだで泥臭い 64
  • 65. オタク辞書ができた後の話 65
  • 66. 「続きを読む」を含んだ記事を 良く読んでいるので、 「続きを読む」を含んだ記事が 推薦される 66
  • 67. ??? 67
  • 68. リコメンドに不要な単語 • 辞書には欲しいが、リコメンドには不要かもしれない単語 • 「そもそも」「こちら」「続き」 (各種一般用語) 68 • 数字、記号 etc…
  • 69. リコメンドに不要な単語 • オタク辞書にない単語は使わない • 不要単語(ブラックリスト)管理ツールも作成 69
  • 70. シノニム変換 • 「アイマス」=「アイドルマスター」 • 「ごちうさ」=「ご注文はうさぎですか?」 70 ! • シノニム管理ツールも作成
  • 71. いいかんじになってきたので プロトタイプつくってみた 71
  • 72. ラブライブ! の記事しか出ない… 72
  • 73. 重み調整 73 • TFIDF • 「アニメ」を含む記事を1回読むことと、 「ボンバーマン」を含む記事を1回読むことの重みは異なる • TFIDFだけじゃうまくいかなくなってきた • キーワードの重み管理ツールも作成
  • 74. 重み調整 • よりオタク向けなキーワードの重みを上げる • 一般記事全体と、オタク向け記事全体でのキーワード登場回 数の違いを考慮 74
  • 75. どんどん捗る ようになってきた 75
  • 76. 試行錯誤と泥臭さの連続 76
  • 77. 今でも議論・検証しながら 着実に改善しています 77
  • 78. おわりです 78
  • 79. ありがとうございました! @mosa_siru 79
  • 80. おまけ 80
  • 81. ターゲットユーザーに さらにフォーカスした機能 81
  • 82. 捗った?機能 82
  • 83. 捗った?機能 • ハッカドールちゃんに、リコメンドの フィードバックをするシンプルな機能 83 • 学習を加速させる ! • 「自動学習じゃないじゃん!」 • 能動的であるターゲットユーザーから、 よりはやく正確な情報が集められる
  • 84. ウォッチリスト 84
  • 85. ウォッチリスト • 好きなタイトル名などを登録しておくと、 そのキーワードを含んだニュースが出る たびに教えてくれる 85 ! • 全文検索エンジンから取得
  • 86. めちゃくちゃ評判が良い 86
  • 87. もはやリコメンドじゃない 87
  • 88. ユーザーのことを考えると 絶対に必要な機能だった (というか俺が欲しい) 88
  • 89. 僕らが提供しているのは ”サービス” 技術とかアルゴリズムはその手段 89
  • 90. ハッカドールはまだ発展途上。 より多くの「捗る!」を 提供していきます 90
  • 91. おわり 91 @mosa_siru