Matrix Factorizationを使った評価予測

12
Matrix Factorization を使った評価予測 株式会社サイバーエージェント アメーバ事業本部 Ameba Technology Laboratory 服部 司

description

第1回CA×GREE勉強会のLTで発表した資料です。全然時間なくて時間内に収まりませんでした。 検証に使用した自作コードは以下にあります。 http://code.google.com/p/mf-predictor/

Transcript of Matrix Factorizationを使った評価予測

Page 1: Matrix Factorizationを使った評価予測

Matrix Factorization を使った評価予測

株式会社サイバーエージェント アメーバ事業本部 Ameba Technology Laboratory

服部 司

Page 2: Matrix Factorizationを使った評価予測

2 株式会社サイバーエージェント

・ ユーザーがアイテムにつける評価を予測する。

- 大半のレビューサイトには5星評価有

- 典型的な推薦の問題

今日紹介する話

Page 3: Matrix Factorizationを使った評価予測

3 株式会社サイバーエージェント

・ 購買履歴、評価データを使った 協調 Filtering

- 詳細は割愛

( “collaborative filter “ でググるべし )

実現方法

Page 4: Matrix Factorizationを使った評価予測

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

Page 5: Matrix Factorizationを使った評価予測

5 株式会社サイバーエージェント

・ 概要

Matrix Factorization

- 正則化項付きのSVDの亜種

- 利点

* 精度がいい

* 計算時間が速い

* モデルの柔軟性が非常に高い

- 悪点

* 並列計算が苦手

- MapReduceと相性が悪い

Page 6: Matrix Factorizationを使った評価予測

6 株式会社サイバーエージェント

・ 予測モデル

MF の種類 ( SVD )

iuitemuserui IUibubr )()('

uir '

userb

itemb U

I: 予測評価

: 全体平均 : 商品の影響

: 個人の影響 : 商品の属性 ( )

: 個人の属性 ( )

・ 学習方法

2222

),(

2||'min i

T

uitemuserRiu uiuiIUb

IUbbrr

最適化法 → 独特な確率的勾配法 (SGD)* ( * 本ケースでは理論的な収束保障が全くない )

)0,0( minu

mkRI

kuRU

Page 7: Matrix Factorizationを使った評価予測

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

Page 8: Matrix Factorizationを使った評価予測

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

Page 9: Matrix Factorizationを使った評価予測

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

* 精度は値が低い方が良い

Page 10: Matrix Factorizationを使った評価予測

10 株式会社サイバーエージェント

雑記 ・ TIPS

・ 評価予測だけでは推薦には使えない。 - 所詮人気の商品の評価は高い。 ( 個人の趣向による効果は薄い )

- 評価予測をいかに推薦に昇華させる方が結構大事。

・ SlopeOne を使うのなら、SVDの方が良いかも。

・ とはいえ、 - SlopeOneに比して0.04程度(rmse)の改善幅。 - 学習パラメータを決めるのに時間がかかる。

Page 11: Matrix Factorizationを使った評価予測

11 株式会社サイバーエージェント

・ timeSVD++

- 時間によるユーザーの興味の編成を考慮したモデル

- 精度は SVD++ より更に良い。 ( rmse で 0.02 程度改善 )

- パラメータを決めるのに時間がかかり過ぎる

・ サンプルコード - mf_predictor http://code.google.com/p/mf-predictor/

Page 12: Matrix Factorizationを使った評価予測

12 株式会社サイバーエージェント

ご清聴ありがとうございました!