6. 株式会社サイバーエージェント
6
MF の種類 ( SVD )
・ 予測モデル
r 'ui buser (u ) bitem (i ) U u I i (0 u n , 0 i m )
r'ui : 予測評価 buser : 個人の影響 I : 商品の属性 ( I R k m )
: 全体平均 bitem : 商品の影響 U : 個人の属性 ( U R uk )
・ 学習方法
min
bU I
(u ,i )R rui r 'ui 2 buser 2 bitem 2 | U uT |2 I i 2
最適化法 → 独特な確率的勾配法 (SGD)*
( * 本ケースでは理論的な収束保障が全くない )
7. 株式会社サイバーエージェント
7
MF の種類 ( SVD++ )
・ 予測モデル
0.5
r 'ui buser (u ) bitem (i ) (U u R(u ) jR ( u )
y j )Ii
R (u ) : ユーザーU が評価したアイテム集合
k m
y : 商品へのあるアクションの効果 ( y R )
- 今回は ”あるアクション = 商品を評価したという行為”
・ 学習方法
min
bU I
( u ,i )R
rui r 'ui
2
1 buser bitem
2 2
| U
2
T 2
u | Ii y j
2 2
最適化法 → SVDの方法を改良したSGD
8. 株式会社サイバーエージェント
8
評価実験
データ: MovieLens 100k ( http://www.grouplens.org/node/73 )
◆ user num : 938
◆ item num : 1682
◆ record num : 100,000
評価 : MAE、RMSE ( 5fold-cross-validation )
mae ij rij rij / n ( i : user, j : item )
環境 : os : windows7 cpu : i7 (2.7G×4HT)
memory: 8G
比較アルゴリズム
・ Random、SlopeOne、SVD、SVD++
9. 株式会社サイバーエージェント
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
- 6,843 13,187 1,724,436
(ms)