Enviar pesquisa
Carregar
捗るリコメンドシステムの裏事情(ハッカドール)
•
279 gostaram
•
212,903 visualizações
mosa siru
Seguir
ハッカドールの裏側を一部紹介。 高校生でも理解できるくらいの内容でかいてみました。
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 91
Baixar agora
Baixar para ler offline
Recomendados
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
Yuki Arase
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
Recruit Technologies
感情の出どころを探る、一歩進んだ感情解析
感情の出どころを探る、一歩進んだ感情解析
Takahiro Kubo
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
Satoshi Hara
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
joisino
リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例
Tetsutaro Watanabe
Mais conteúdo relacionado
Mais procurados
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
「いい検索」を考える
「いい検索」を考える
Shuryo Uchida
大規模言語モデルとChatGPT
大規模言語モデルとChatGPT
nlab_utokyo
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
ナレッジグラフ入門
ナレッジグラフ入門
KnowledgeGraph
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
情報検索とゼロショット学習
情報検索とゼロショット学習
kt.mako
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
PCFG構文解析法
PCFG構文解析法
Yusuke Oda
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理
Preferred Networks
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
Yoichi Ochiai
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
Hakky St
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
Yuta Kikuchi
【論文紹介】Distributed Representations of Sentences and Documents
【論文紹介】Distributed Representations of Sentences and Documents
Tomofumi Yoshida
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Yusuke Uchida
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624
Tetsuya Sodo
Mais procurados
(20)
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
「いい検索」を考える
「いい検索」を考える
大規模言語モデルとChatGPT
大規模言語モデルとChatGPT
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Data-Centric AIの紹介
Data-Centric AIの紹介
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ナレッジグラフ入門
ナレッジグラフ入門
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
情報検索とゼロショット学習
情報検索とゼロショット学習
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
PCFG構文解析法
PCFG構文解析法
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
【論文紹介】Distributed Representations of Sentences and Documents
【論文紹介】Distributed Representations of Sentences and Documents
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624
Destaque
TechFeedというテクノロジーキュレーションサービスを作った話
TechFeedというテクノロジーキュレーションサービスを作った話
yoshikawa_t
MySQLおじさんの逆襲
MySQLおじさんの逆襲
yoku0825
Elasticsearch for Hackadoll
Elasticsearch for Hackadoll
mosa siru
ニコニコ生放送の配信基盤改善
ニコニコ生放送の配信基盤改善
takahiro_yachi
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
Prunus 1350
登録数2倍にしてと言われた時の正しい対処法
登録数2倍にしてと言われた時の正しい対処法
Chihiro Kurosawa
現在のDNNにおける未解決問題
現在のDNNにおける未解決問題
Daisuke Okanohara
Destaque
(7)
TechFeedというテクノロジーキュレーションサービスを作った話
TechFeedというテクノロジーキュレーションサービスを作った話
MySQLおじさんの逆襲
MySQLおじさんの逆襲
Elasticsearch for Hackadoll
Elasticsearch for Hackadoll
ニコニコ生放送の配信基盤改善
ニコニコ生放送の配信基盤改善
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
登録数2倍にしてと言われた時の正しい対処法
登録数2倍にしてと言われた時の正しい対処法
現在のDNNにおける未解決問題
現在のDNNにおける未解決問題
Semelhante a 捗るリコメンドシステムの裏事情(ハッカドール)
Javakuche yono
Javakuche yono
yono05
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
Yuta Kashino
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21
Yuki Higuchi
Cloud principles and paradigms kimtea-2010-04-24
Cloud principles and paradigms kimtea-2010-04-24
Kazuki Aranami
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
Eiji Shinohara
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Tatsuya Tojima
おとなのテキストマイニング
おとなのテキストマイニング
Munenori Sugimura
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
x1 ichi
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
Groovyコンファレンス
Groovyコンファレンス
Shinichiro Takezaki
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法
Kenshi Muto
Pythonの非同期処理を始める前に
Pythonの非同期処理を始める前に
koralle
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
n-yuki
Hadoop conference Japan 2011
Hadoop conference Japan 2011
Takahiko Ito
Semelhante a 捗るリコメンドシステムの裏事情(ハッカドール)
(20)
Javakuche yono
Javakuche yono
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Jubatusでマルウェア分類
Jubatusでマルウェア分類
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21
Cloud principles and paradigms kimtea-2010-04-24
Cloud principles and paradigms kimtea-2010-04-24
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
おとなのテキストマイニング
おとなのテキストマイニング
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Groovyコンファレンス
Groovyコンファレンス
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法
Pythonの非同期処理を始める前に
Pythonの非同期処理を始める前に
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
Hadoop conference Japan 2011
Hadoop conference Japan 2011
Mais de mosa siru
LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)
mosa siru
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
KYC and identity on blockchain
KYC and identity on blockchain
mosa siru
マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法
mosa siru
Payment Channel Introduction
Payment Channel Introduction
mosa siru
Go, memcached, microservices
Go, memcached, microservices
mosa siru
ニュースパスのクローラーアーキテクチャとマイクロサービス
ニュースパスのクローラーアーキテクチャとマイクロサービス
mosa siru
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
lua_nginx_module JSON-RPC 2.0 Batch Request
lua_nginx_module JSON-RPC 2.0 Batch Request
mosa siru
Twitter SmartList (第5回若手webエンジニア交流会)
Twitter SmartList (第5回若手webエンジニア交流会)
mosa siru
コミュニティ分類アルゴリズムの高速化とソーシャルグラフへの応用
コミュニティ分類アルゴリズムの高速化とソーシャルグラフへの応用
mosa siru
how to make twitter list automatically
how to make twitter list automatically
mosa siru
Mais de mosa siru
(12)
LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
KYC and identity on blockchain
KYC and identity on blockchain
マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法
Payment Channel Introduction
Payment Channel Introduction
Go, memcached, microservices
Go, memcached, microservices
ニュースパスのクローラーアーキテクチャとマイクロサービス
ニュースパスのクローラーアーキテクチャとマイクロサービス
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
lua_nginx_module JSON-RPC 2.0 Batch Request
lua_nginx_module JSON-RPC 2.0 Batch Request
Twitter SmartList (第5回若手webエンジニア交流会)
Twitter SmartList (第5回若手webエンジニア交流会)
コミュニティ分類アルゴリズムの高速化とソーシャルグラフへの応用
コミュニティ分類アルゴリズムの高速化とソーシャルグラフへの応用
how to make twitter list automatically
how to make twitter list automatically
捗るリコメンドシステムの裏事情(ハッカドール)
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
Baixar agora