Efficient multichannel nonnegative matrix factorization with rank-1 spatial model (in Japanese)
Matrix Factorizationを使った評価予測
-
Upload
java-dm -
Category
Technology
-
view
12.103 -
download
4
description
Transcript of Matrix Factorizationを使った評価予測
Matrix Factorization を使った評価予測
株式会社サイバーエージェント アメーバ事業本部 Ameba Technology Laboratory
服部 司
2 株式会社サイバーエージェント
・ ユーザーがアイテムにつける評価を予測する。
- 大半のレビューサイトには5星評価有
- 典型的な推薦の問題
今日紹介する話
3 株式会社サイバーエージェント
・ 購買履歴、評価データを使った 協調 Filtering
- 詳細は割愛
( “collaborative filter “ でググるべし )
実現方法
4 株式会社サイバーエージェント
・ Netflix Prize
- Netflix : オンラインの映画レンタルショップ * user の映画の評価データいっぱい溜まってる。
- 推薦アルゴリズムの精度(rmse)を10%改善したら100万ドル
協調 Filtering のアルゴリズム
・ 流行のアルゴリズム
- PLSA、SlopeOne、KNN、Matrix Factorization*
ji ijij nrrrmse
,
2
* Koren Y, Bell R : Advances in Collaborative Filtering (2011)
):,:( itemjuseri
5 株式会社サイバーエージェント
・ 概要
Matrix Factorization
- 正則化項付きのSVDの亜種
- 利点
* 精度がいい
* 計算時間が速い
* モデルの柔軟性が非常に高い
- 悪点
* 並列計算が苦手
- MapReduceと相性が悪い
6 株式会社サイバーエージェント
・ 予測モデル
MF の種類 ( SVD )
iuitemuserui IUibubr )()('
uir '
userb
itemb U
I: 予測評価
: 全体平均 : 商品の影響
: 個人の影響 : 商品の属性 ( )
: 個人の属性 ( )
・ 学習方法
2222
),(
2||'min i
T
uitemuserRiu uiuiIUb
IUbbrr
最適化法 → 独特な確率的勾配法 (SGD)* ( * 本ケースでは理論的な収束保障が全くない )
)0,0( minu
mkRI
kuRU
7 株式会社サイバーエージェント
・ 予測モデル
MF の種類 ( SVD++ )
iuRj juitemuserui IyuRUibubr ))(()()(')(
5.0
)(uR
y
: ユーザーU が評価したアイテム集合
: 商品へのあるアクションの効果 ( )
・ 学習方法
222
2
22
1),(
2||'min ji
T
uitemuserRiu uiuiIUb
yIUbbrr
mkRy
- 今回は ”あるアクション = 商品を評価したという行為”
最適化法 → SVDの方法を改良したSGD
8 株式会社サイバーエージェント
評価実験
データ: MovieLens 100k ( http://www.grouplens.org/node/73 )
◆ user num : 938 ◆ item num : 1682 ◆ record num : 100,000
評価 : MAE、RMSE ( 5fold-cross-validation )
環境 : os : windows7 cpu : i7 (2.7G×4HT) memory: 8G 比較アルゴリズム ・ Random、SlopeOne、SVD、SVD++
ij ijij nrrmae / ):,:( itemjuseri
9 株式会社サイバーエージェント
結果
◆ 精度
◆ 計算時間
random SlopeOne SVD SVD++
MAE 1.71757 0.74244 0.71411 0.71098
RMSE 2.10189 0.94264 0.90573 0.90293
random SlopeOne SVD SVD++
time (ms)
- 6,843 13,187 1,724,436
* 精度は値が低い方が良い
10 株式会社サイバーエージェント
雑記 ・ TIPS
・ 評価予測だけでは推薦には使えない。 - 所詮人気の商品の評価は高い。 ( 個人の趣向による効果は薄い )
- 評価予測をいかに推薦に昇華させる方が結構大事。
・ SlopeOne を使うのなら、SVDの方が良いかも。
・ とはいえ、 - SlopeOneに比して0.04程度(rmse)の改善幅。 - 学習パラメータを決めるのに時間がかかる。
11 株式会社サイバーエージェント
・ timeSVD++
- 時間によるユーザーの興味の編成を考慮したモデル
- 精度は SVD++ より更に良い。 ( rmse で 0.02 程度改善 )
- パラメータを決めるのに時間がかかり過ぎる
・ サンプルコード - mf_predictor http://code.google.com/p/mf-predictor/
12 株式会社サイバーエージェント
ご清聴ありがとうございました!