SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
ゼロから始める
レコメンダシステム
谷田和章
谷田和章
エンジニア@白ヤギコーポレーション
kazuaki.tanida@shiroyagi.co.jp
自己紹介
最近本出ました
2
レコメンダシステムとは
ユーザにアイテムを推薦するシステム
用途は多岐にわたる
3
例: ECサイト
アイテム: 商品
ユーザ: 利用者
4
例: ニュースアプリ
アイテム: 記事
ユーザ: 利用者
5
例: Web広告
アイテム: 広告バナー
ユーザ: Webページ
6
例: ダイレクトメール送付
アイテム: 見込客
ユーザ: ダイレクトメール
7
話の流れ
用途に合うように推薦システムは設計されなければならない
本スライドの話は、
● 基本的な課題や手法
● 応用的な課題や手法
● 推薦システムを構成する例
8
基本編
9
推薦の基本問題
学習データ: ユーザ×アイテムのスコア
やりたいこと: 未知のユーザ×アイテムのスコアを推定
10
TI NH SW ST
Arice 3 4
Bob 5 2 3
Charlie 2 1
Dave 4 5
User
Item
TI NH SW ST
Arice 3 1 2 4
Bob 5 2 3 5
Charlie 4 2 1 2
Dave 5 4 3 5
User
Item
推薦のアプローチ
協調フィルタリング
特徴ベースシステム
統合型システム
11
協調フィルタリング
行動履歴が類似するユーザの好むアイテムを推薦
利点
● アイテムやユーザの属性情報に依らず推薦できる
欠点
● 新規のアイテムやユーザに適切な推薦ができない (コールドスタート)
12
協調フィルタリング: ユーザ間の類似度を用いる方法 (1/2)
13
ユーザuのアイテムiに対するスコアの推定値は
ちなみに
Uはiを評価したユーザの集合
  
https://en.wikipedia.org/wiki/Collaborative_filtering
類似ユーザのスコアの重み付き平均
協調フィルタリング: ユーザ間の類似度を用いる方法 (2/2)
14
ユーザuのアイテムiに対するスコアの推定値は
利点
● 直感的にわかりやすい
● パラメータの学習が不要
欠点
● 類似ユーザにアイテム iを評価している人が少ないと上手く推定できない
  https://en.wikipedia.org/wiki/Collaborative_filtering
協調フィルタリング: 行列分解を用いる方法 (1/2)
15
ユーザuのアイテムiに対するスコアの推定値は
ちなみに
μ ∈ R, bi
∈ R, bu
∈ R, qi
∈ Rf
, pu
∈ Rf
※ fは潜在空間の次元数を表すハイパーパラメータ
Koren, Yehuda, Robert Bell, and Chris Volinsky. "Matrix factorization techniques for recommender systems." Computer 42.8 (2009).
全体のバイアス iのバイアス uのバイアス iとuの交互作用
データから学習
協調フィルタリング: 行列分解を用いる方法 (2/2)
16
ユーザuのアイテムiに対するスコアの推定値は
利点
● アイテム数が膨大な場合など、アイテムの評価が疎な場合でも推定が上手くいきやすい
Koren, Yehuda, Robert Bell, and Chris Volinsky. "Matrix factorization techniques for recommender systems." Computer 42.8 (2009).
iとuのベクトルの内積
協調フィルタリング: まとめ
行列分解を用いる方法は、近年の推薦システムの標準的なアプローチ
ただしコールドスタートの問題がある
17
特徴ベースシステム
アイテムとユーザの特徴量からスコアを推定
関数sには機械学習のモデルが利用可能 (ランダムフォレストなど)
利点
● 新規のアイテムやユーザに対しても推定できる
欠点
● 適切な特徴量を設計する必要がある
● 一般に協調フィルタリングに比べて推定性能が低い (属性から本来の特徴を表しきれないため )
18
統合型システム
協調フィルタリングと特徴ベースシステムの利点を合わせたシステム
● 行動データから個々のアイテムやユーザの特性を学習 (協調フィルタリング)
● 属性情報により新規のアイテムやユーザでもスコアが推定可能 (特徴ベース)
例
● 協調フィルタリングで、パラメータ(bi
, bu
, qi
, pu
)の初期値は特徴量から推定
● Factorization Machines (後述)
19
多腕バンディット
当たる確率が異なるスロットマシンが複数台あるとき、
どのような順でレバー(腕)を引いていけば報酬を最大化できるか
● 方策<活用>: これまでで最も良く当たっている腕を引く
● 方策<探索>: あまり引いていない腕を引く
いずれの方策だけでも報酬(スコア)の期待値を最大化できない
探索と活用のバランスを取る必要がある
20
多腕バンディット: UCB-1
推定スコアと信頼上限(不確実さ)の合計が最も大きい腕を選択
ちなみに
Cはハイパーパラメータ
ni
は腕iをこれまでに引いた回数
21https://jeremykun.com/2013/10/28/optimism-in-the-face-of-uncertainty-the-ucb1-algorithm/
多腕バンディット: 性能の保証
UCB-1でt回腕を引いたときのRegretはせいぜいO(log(t))
⇒ 回数を重ねるごとに最適な選択に近づいていく (漸近最適性)
※ Regretとは最善腕と選択腕の報酬の差の累積値
22https://jeremykun.com/2013/10/28/optimism-in-the-face-of-uncertainty-the-ucb1-algorithm/
多腕バンディット: その他のアプローチ
ε-greedy
一定の確率εでランダムに腕を引く (性能はあまり良くない)
Softmax
温度パラメータτによってランダムさを調節 (性能はτの値にシビア)
Thompson sampling
事後分布からサンプルした報酬が最も大きい腕を引く
23
応用編
24
Factorization Machines
機械学習の回帰モデル
Kaggleで良い成績を残して注目を集める
協調フィルタリング(行列分解を用いる方法)を拡張して、
属性情報も扱えるようにしたものとみなせる
利点
● 疎なデータに対して、非ゼロな要素数に線形な計算量で学習できる
○ (データが関係DBのような形で表せる場合は、さらに高速に学習できる )
● 疎な特徴ベクトルに対して、非ゼロな要素数に線形な計算量で推定できる
25Rendle, Steffen. "Factorization machines with libfm." ACM Transactions on Intelligent Systems and Technology (TIST) 3.3 (2012): 57.
FM: 推定
26
特徴ベクトルxの各要素について、
- 全体のバイアス
- 各次元のバイアス
- 交互作用
を各々計算して合計したものが推定値
学習されるパラメータは、
- 全体のスカラ: w0
- 各次元のスカラ: w*
- 各次元のベクトル: v*
Rendle, Steffen. "Factorization machines with libfm." ACM Transactions on Intelligent Systems and Technology (TIST) 3.3 (2012): 57.
FM: 特徴量の例
27
例) ユーザAが映画TIを評価したときのスコアは5 (x1
, y1
)
FM: 協調フィルタリング
ユーザuとアイテムiから
のように特徴ベクトルxを作ったとき、
となり、FMの推定式は行列分解を用いた協調フィルタリングと同一
28Rendle, Steffen. "Factorization machines with libfm." ACM Transactions on Intelligent Systems and Technology (TIST) 3.3 (2012): 57.
FM: 属性を持つ特徴量の例
29
ユーザ属性
例: ニュースアプリ (各ユーザに記事を推薦)
次のような特性が考えられる
● 時間帯や端末の種類によって
読まれやすい記事が異なる
● アイテムは刻々と増えていく
● 時間経過によってスコアが変化
○ 古い記事は読まれにくい
● ユーザ数やアイテム数は多くなりえる
● 得られるログは(ユーザ, 記事)のペア
30
コンテクストの活用
推薦時にユーザに関する情報だけでなく、時間帯や端末の種類なども活用したい
⇒ FMを使ってコンテクストに関する情報も特徴量に含める
31
FM: 属性とコンテクストを持つ特徴量の例
32
コンテクスト
モデルのリアルタイム性: オンライン学習
FMや行列分解による協調フィルタリングは確率的降下法(SGD)で学習できる
利点
● 新しいデータから即座に学習してモデルに反映できる
● 最近のデータを重視した学習ができる
○ 時間経過によりアイテムのスコアが下がる場合などに有効
○ ただし適切なOptimizerを用いる必要はある
33Rendle, Steffen, and Lars Schmidt-Thieme. "Online-updating regularized kernel matrix factorization models for large-scale recommender systems." Proceedings of the 2008 ACM conference on Recommender systems. ACM, 2008.
学習の並列化: データ並列
学習を非同期で並列に走らせる仕組み
2種類のサーバ群
● パラメータサーバ
パラメータの提供および更新
● ワーカ
勾配を計算してパラメータサーバに送信
各ノードは別々のデータを用いる
TensorFlowが実装に便利な仕組みを提供
34https://www.tensorflow.org/deploy/distributed
リアルタイムの推薦: 計算時間が問題
最新の情報にもとづいて推薦したい!
単純に解くと時間計算量は、
● リクエスト毎に計算: O(アイテム数)
⇒ アイテム数が多いとすぐに結果を返せない
● 事前計算: O(アイテム数 × ユーザ数)
● 事前計算(コンテクスト考慮): O(アイテム数 × ユーザ数 × コンテクストの種類数)
⇒ 計算に時間がかかりすぎる
35
リアルタイムの推薦: ALSH
ベクトルを入力(クエリ)として受けとり、
事前に登録してあるベクトルの中から内積を最大化するものを返す近似法
リクエストは登録ベクトル数に関してサブリニアな計算時間
仕組み
● LSH(cosine距離)で用いるハッシュ関数を、登録用とクエリ用で非対称とすることで内積に対応
● ちなみにLSH(Locality Sensitive Hashing)とは、類似のベクトルが同じハッシュ値になりやすいようなハッ
シュ関数を用いて、あらかじめ対応するハッシュ値に紐付けてベクトルを登録。クエリのベクトルが与えら
れたら、そのハッシュ値と対応する登録済みベクトルの一覧を取得して類似度を計算、距離の近い Top-N
ベクトルを返す方法
36Neyshabur, Behnam, and Nathan Srebro. "On symmetric and asymmetric LSHs for inner product search." arXiv preprint arXiv:1410.5518 (2014).
フィードバックの種類
教師データとするフィードバックの性質によって学習の目的が異なり得る
明示的なフィードバック
● 良し悪しをユーザが能動的に評価
● 例: レーティング情報など
● 学習法: SGD(最小二乗法), CDなど
暗黙的なフィードバック
● 良いものだけユーザが反応 (正例のみ得られる)
● 例: クリックログなど
● 学習法: SGD(BPR), WALSなど
37Rendle, Steffen, and Christoph Freudenthaler. "Improving pairwise learning for item recommendation from implicit feedback." Proceedings of the 7th ACM international conference on Web search and data mining. ACM, 2014.
推薦システムの例
レコメンダシステムの要件に合わせて手法を組み合わせる
要件の例
● ユーザごとにアイテムをお薦めしたい
● 新しいアイテムはすぐ出したいのでリアルタイムにモデルを更新してほしい
● 即座に学習してくれるならコールドスタートは許容
● アイテム数やユーザ数は結構多い
⇒ 行列分解を用いた協調フィルタリング(SGD) & UCB-1 & ALSH
38
例) 協調フィルタリング & UCB-1 & ALSH
ユーザuが与えられたとき次の式で得られるアイテムを返すとする
このとき
とおくと
このときsI
の各ベクトルをALSHで登録しておくと、高速にアイテムが求まる
39
ただしアイテムのスコアの推定値はユー
ザによって変わるが、
この手法(UCB-1)ではその点が考慮さ
れていないという問題がある
ただし、
まとめ
レコメンダシステムを設計開発するときは、要件に応じて
● 機械学習の手法
● 探索と活用の手法
● 学習方法
● 推薦のリアルタイム性
● フィードバックの性質
などが適切になるよう考慮に入れる必要がある
40
おまけ (宣伝)
様々なことを考慮して適切なレコメンダシステムを設計開発するのは結構大変
⇒ 白ヤギコーポレーションでは、
  様々な用途に利用可能な汎用レコメンドAPIを新規開発中!
  手軽にアプリやWebサイトなどにレコメンドの機能を導入できる
  今回の応用編の内容は、そのレコメンドAPIの事例から一部紹介
  2017年中のリリースに向けて現在テストユーザ募集中!
41

Weitere ähnliche Inhalte

Was ist angesagt?

データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
Tokoroten Nakayama
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
 

Was ist angesagt? (20)

データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
 
因果推論の基礎
因果推論の基礎因果推論の基礎
因果推論の基礎
 
レコメンド研究のあれこれ
レコメンド研究のあれこれレコメンド研究のあれこれ
レコメンド研究のあれこれ
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 
分析のビジネス展開を考える―状態空間モデルを例に @TokyoWebMining #47
分析のビジネス展開を考える―状態空間モデルを例に @TokyoWebMining #47分析のビジネス展開を考える―状態空間モデルを例に @TokyoWebMining #47
分析のビジネス展開を考える―状態空間モデルを例に @TokyoWebMining #47
 
MICの解説
MICの解説MICの解説
MICの解説
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
 
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
 

Ähnlich wie ゼロから始めるレコメンダシステム

DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
Sho Nakamura
 
Hadoop conference Japan 2011
Hadoop conference Japan 2011Hadoop conference Japan 2011
Hadoop conference Japan 2011
Takahiko Ito
 
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
Yuya Unno
 

Ähnlich wie ゼロから始めるレコメンダシステム (20)

YJTC18 D-4 AnnexML: 近似最近傍検索を⽤いたextreme multi-label分類の⾼速化
YJTC18 D-4 AnnexML: 近似最近傍検索を⽤いたextreme multi-label分類の⾼速化YJTC18 D-4 AnnexML: 近似最近傍検索を⽤いたextreme multi-label分類の⾼速化
YJTC18 D-4 AnnexML: 近似最近傍検索を⽤いたextreme multi-label分類の⾼速化
 
Toppers Project 3 major events.
Toppers Project 3 major events.Toppers Project 3 major events.
Toppers Project 3 major events.
 
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
 
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
 
Hadoop conference Japan 2011
Hadoop conference Japan 2011Hadoop conference Japan 2011
Hadoop conference Japan 2011
 
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
 
20050809
2005080920050809
20050809
 
Shared Questionnaire System Development Project
Shared Questionnaire System Development ProjectShared Questionnaire System Development Project
Shared Questionnaire System Development Project
 
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy LearningDiscriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
 
BigQuery MLの行列分解モデルを 用いた推薦システムの基礎
BigQuery MLの行列分解モデルを 用いた推薦システムの基礎BigQuery MLの行列分解モデルを 用いた推薦システムの基礎
BigQuery MLの行列分解モデルを 用いた推薦システムの基礎
 
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理
 
Semantic analysis and helpfulness prediction of text for online product reviews
Semantic analysis and helpfulness prediction of text  for online product reviewsSemantic analysis and helpfulness prediction of text  for online product reviews
Semantic analysis and helpfulness prediction of text for online product reviews
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
分散表現を用いたリアルタイム学習型セッションベース推薦システム
分散表現を用いたリアルタイム学習型セッションベース推薦システム分散表現を用いたリアルタイム学習型セッションベース推薦システム
分散表現を用いたリアルタイム学習型セッションベース推薦システム
 
Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤
 
情報検索のためのユーザモデル
情報検索のためのユーザモデル情報検索のためのユーザモデル
情報検索のためのユーザモデル
 
モデルベースソフトウェア開発
モデルベースソフトウェア開発モデルベースソフトウェア開発
モデルベースソフトウェア開発
 
20120620 idg(ontrox) v1.6
20120620 idg(ontrox) v1.620120620 idg(ontrox) v1.6
20120620 idg(ontrox) v1.6
 
2011研究室紹介
2011研究室紹介2011研究室紹介
2011研究室紹介
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
 

ゼロから始めるレコメンダシステム