SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Matrix Factorization を使った評価予測



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



今日紹介する話

・ ユーザーがアイテムにつける評価を予測する。
   - 大半のレビューサイトには5星評価有
   - 典型的な推薦の問題
株式会社サイバーエージェント
                                                          3



実現方法

・ 購買履歴、評価データを使った 協調 Filtering
   - 詳細は割愛
    ( “collaborative filter “ でググるべし )
株式会社サイバーエージェント
                                                                                           4



協調 Filtering のアルゴリズム

・ Netflix Prize
    -   Netflix : オンラインの映画レンタルショップ
        * user の映画の評価データいっぱい溜まってる。

    - 推薦アルゴリズムの精度(rmse)を10%改善したら100万ドル

          rmse     r           rij  n
                                      2
                     i, j   ij                ( i : user ,   j : item )




・ 流行のアルゴリズム
    -   PLSA、SlopeOne、KNN、Matrix Factorization*
             * Koren Y, Bell R : Advances in Collaborative Filtering (2011)
株式会社サイバーエージェント
                                                     5



Matrix Factorization
 ・ 概要
      - 正則化項付きのSVDの亜種

      - 利点
          *   精度がいい
          *   計算時間が速い
          *   モデルの柔軟性が非常に高い

      - 悪点
          *   並列計算が苦手
                - MapReduceと相性が悪い
株式会社サイバーエージェント
                                                                                                      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 uk )




・ 学習方法
   min
   bU I
           (u ,i )R rui  r 'ui 2   buser 2  bitem 2  | U uT |2  I i 2 
                   最適化法 → 独特な確率的勾配法 (SGD)*
                                           ( * 本ケースでは理論的な収束保障が全くない )
株式会社サイバーエージェント
                                                                                                                  7



MF の種類 ( SVD++ )

・ 予測モデル
                                                                                       
                                                                                0.5
   r 'ui    buser (u )  bitem (i )  (U u  R(u )                                      jR ( 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



評価実験
 データ: 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



結果
 ◆ 精度
            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)
株式会社サイバーエージェント
                                                   10



雑記 ・ TIPS

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


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


・ 評価予測だけでは推薦には使えない。
    - 所詮人気の商品の評価は高い。
      ( 個人の趣向による効果は薄い )
    - 評価予測をいかに推薦に昇華させる方が結構大事。
株式会社サイバーエージェント
                                                            11




・ timeSVD++
     - 時間によるユーザーの興味の編成を考慮したモデル
     - 精度は SVD++ より更に良い。
      ( rmse で 0.02 程度改善 )
     - パラメータを決めるのに時間がかかり過ぎる


・ サンプルコード
    - mf_predictor
      http://code.google.com/p/mf-predictor/
株式会社サイバーエージェント
                               12




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

Más contenido relacionado

La actualidad más candente

系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎Takatomo Isikawa
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類t dev
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめYuichiro MInato
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向Kensho Hara
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築Masayuki Ota
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised LearningまとめDeep Learning JP
 
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」Hitomi Yanaka
 
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれからcyberagent
 
DeepLearning 14章 自己符号化器
DeepLearning 14章 自己符号化器DeepLearning 14章 自己符号化器
DeepLearning 14章 自己符号化器hirono kawashima
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?Mr. Vengineer
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Hiroshi Shimizu
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギーHiroshi Shimizu
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列Kenjiro Sugimoto
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出MPRG_Chubu_University
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎Retrieva inc.
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!TransformerArithmer Inc.
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法Takeshi Mikami
 

La actualidad más candente (20)

系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
MICの解説
MICの解説MICの解説
MICの解説
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
 
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
 
DeepLearning 14章 自己符号化器
DeepLearning 14章 自己符号化器DeepLearning 14章 自己符号化器
DeepLearning 14章 自己符号化器
 
分散表現を用いたリアルタイム学習型セッションベース推薦システム
分散表現を用いたリアルタイム学習型セッションベース推薦システム分散表現を用いたリアルタイム学習型セッションベース推薦システム
分散表現を用いたリアルタイム学習型セッションベース推薦システム
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
 

Similar a Matrix Factorizationを使った評価予測

GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GREE/Art
 
人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)
人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)
人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)Shintaro Yoshida
 
DXRubyとスプライトエディタ
DXRubyとスプライトエディタDXRubyとスプライトエディタ
DXRubyとスプライトエディタmieki256 blawat
 
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)Takuji Tahara
 
20110909 品質シンポジウム2011発表資料
20110909 品質シンポジウム2011発表資料20110909 品質シンポジウム2011発表資料
20110909 品質シンポジウム2011発表資料Kenichiro Nakajima
 
130710 02
130710 02130710 02
130710 02openrtm
 
数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强Felicia Wenyi Fei
 
Analysis of Service Interface International Standardization Benefits
Analysis of Service Interface International Standardization BenefitsAnalysis of Service Interface International Standardization Benefits
Analysis of Service Interface International Standardization Benefitsnnakagoshi
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programmingYuichi Hasegawa
 

Similar a Matrix Factorizationを使った評価予測 (12)

GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
 
M5 sinchir0
M5 sinchir0M5 sinchir0
M5 sinchir0
 
Bee Style:vol.039
Bee Style:vol.039Bee Style:vol.039
Bee Style:vol.039
 
人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)
人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)
人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)
 
DXRubyとスプライトエディタ
DXRubyとスプライトエディタDXRubyとスプライトエディタ
DXRubyとスプライトエディタ
 
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
 
20110909 品質シンポジウム2011発表資料
20110909 品質シンポジウム2011発表資料20110909 品質シンポジウム2011発表資料
20110909 品質シンポジウム2011発表資料
 
130710 02
130710 02130710 02
130710 02
 
数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强
 
ADVENTURE_Solidの概要
ADVENTURE_Solidの概要ADVENTURE_Solidの概要
ADVENTURE_Solidの概要
 
Analysis of Service Interface International Standardization Benefits
Analysis of Service Interface International Standardization BenefitsAnalysis of Service Interface International Standardization Benefits
Analysis of Service Interface International Standardization Benefits
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
 

Más de JAVA DM

MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出JAVA DM
 
芸能人推薦のしくみ
芸能人推薦のしくみ芸能人推薦のしくみ
芸能人推薦のしくみJAVA DM
 
20100930sig startups learn
20100930sig startups learn20100930sig startups learn
20100930sig startups learnJAVA DM
 
お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010JAVA DM
 
双対定理
双対定理双対定理
双対定理JAVA DM
 
整数列圧縮
整数列圧縮整数列圧縮
整数列圧縮JAVA DM
 
NewPFD PForDelta
NewPFD PForDeltaNewPFD PForDelta
NewPFD PForDeltaJAVA DM
 
NaiveBayes+DAEM
NaiveBayes+DAEMNaiveBayes+DAEM
NaiveBayes+DAEMJAVA DM
 
lsh p-stable
lsh p-stablelsh p-stable
lsh p-stableJAVA DM
 

Más de JAVA DM (9)

MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出
 
芸能人推薦のしくみ
芸能人推薦のしくみ芸能人推薦のしくみ
芸能人推薦のしくみ
 
20100930sig startups learn
20100930sig startups learn20100930sig startups learn
20100930sig startups learn
 
お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010
 
双対定理
双対定理双対定理
双対定理
 
整数列圧縮
整数列圧縮整数列圧縮
整数列圧縮
 
NewPFD PForDelta
NewPFD PForDeltaNewPFD PForDelta
NewPFD PForDelta
 
NaiveBayes+DAEM
NaiveBayes+DAEMNaiveBayes+DAEM
NaiveBayes+DAEM
 
lsh p-stable
lsh p-stablelsh p-stable
lsh p-stable
 

Matrix Factorizationを使った評価予測

  • 2. 株式会社サイバーエージェント 2 今日紹介する話 ・ ユーザーがアイテムにつける評価を予測する。 - 大半のレビューサイトには5星評価有 - 典型的な推薦の問題
  • 3. 株式会社サイバーエージェント 3 実現方法 ・ 購買履歴、評価データを使った 協調 Filtering - 詳細は割愛 ( “collaborative filter “ でググるべし )
  • 4. 株式会社サイバーエージェント 4 協調 Filtering のアルゴリズム ・ Netflix Prize - Netflix : オンラインの映画レンタルショップ * user の映画の評価データいっぱい溜まってる。 - 推薦アルゴリズムの精度(rmse)を10%改善したら100万ドル rmse   r  rij  n 2 i, j ij ( i : user , j : item ) ・ 流行のアルゴリズム - PLSA、SlopeOne、KNN、Matrix Factorization* * Koren Y, Bell R : Advances in Collaborative Filtering (2011)
  • 5. 株式会社サイバーエージェント 5 Matrix Factorization ・ 概要 - 正則化項付きのSVDの亜種 - 利点 * 精度がいい * 計算時間が速い * モデルの柔軟性が非常に高い - 悪点 * 並列計算が苦手 - MapReduceと相性が悪い
  • 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 uk ) ・ 学習方法 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 ) jR ( 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)
  • 10. 株式会社サイバーエージェント 10 雑記 ・ TIPS ・ SlopeOne を使うのなら、SVDの方が良いかも。 ・ とはいえ、 - SlopeOneに比して0.04程度(rmse)の改善幅。 - 学習パラメータを決めるのに時間がかかる。 ・ 評価予測だけでは推薦には使えない。 - 所詮人気の商品の評価は高い。 ( 個人の趣向による効果は薄い ) - 評価予測をいかに推薦に昇華させる方が結構大事。
  • 11. 株式会社サイバーエージェント 11 ・ timeSVD++ - 時間によるユーザーの興味の編成を考慮したモデル - 精度は SVD++ より更に良い。 ( rmse で 0.02 程度改善 ) - パラメータを決めるのに時間がかかり過ぎる ・ サンプルコード - mf_predictor http://code.google.com/p/mf-predictor/
  • 12. 株式会社サイバーエージェント 12 ご清聴ありがとうございました!