SlideShare a Scribd company logo
14             +WEB
          2011/10/16




Mahout Recommendation


       hamadakoichi
         濱田 晃一
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
hamadakoichi
         濱田晃一
http://iddy.jp/profile/hamadakoichi



                                      4
hamadakoichi 濱田晃一




データマイニング+WEB勉強会@東京

               主催者です



                       5
講師資料

   Mahout、R、データマイニング・機械学習、等
         各種講師資料を公開しています
   http://www.slideshare.net/hamadakoichi




                                            6
活動領域: ソーシャルメディアのデータマイニング




                           7
活動領域: ソーシャルメディアのデータマイニング

      楽しさのデータマイニング・ユーザー体験還元
              2900万人以上の人々へ
     各人のつながり・楽しみ・好み 個性にあった適切なサービス提供

               Data Mining
             Machine Learning
                  of Fun
              PatternMining Clustering
    Classification Regression Recommendation
       TimeSeriesAnalysis StatisticalAnalysis
         NaturalLanguageProcessing ..etc

                Social Media
                 Experience
                  Social Graph
                Detailed Actions
               Changes of Status
             Social Communications
                Personality ..etc               8
hamadakoichi 濱田晃一




                    9
hamadakoichi 濱田晃一
                     理論物理 博士(2004.3取得)
                       量子統計場の理論
Statistical Field Theory                        Spontaneously
                                        Time-Reversal Symmetry Breaking




                                       Anisotropic Massless Dirac Fermions




 博士論文: http://hosi.phys.s.u-tokyo.ac.jp/~koichi/PhD-thesis.pdf
                                                                        10
hamadakoichi 濱田晃一

             文部大臣に褒められた
   元 文部大臣・法務大臣      六法全書著者・元法学政治学研究科長
      森山眞弓さん             菅野和夫さん




                                    11
hamadakoichi 濱田晃一

         Los Angelesでプロダンサーに褒められた




  ・HIP HOP/House ダンス歴15年
  ・ダンス開始後 1年半でL.A.でプロダンサーに褒められる

  Youtube Channel: http://www.youtube.com/hamadakoichi
                                                         12
hamadakoichi 濱田晃一

           毎週末3時間ダンスコーチをしています




           ■過去、東京と京都でも
            ダンス部を創設。
            コーチをしていました
                          駒場物理ダンス部   京都大学基礎物理学研究所ダンス部
                          部長兼コーチ     部長兼コーチ

  現在: 毎週末 3時間ダンスコーチ
  Youtube Channel: http://www.youtube.com/hamadakoichi
                                                         13
数理解析手法の実ビジネスへの適用
             2004年 博士号取得後
        数理解析手法を実ビジネス適用の方法論構築
主な領域
◆活動の数理モデル化・解析手法
◆活動の分析手法・再構築手法
◆活動の実行制御・実績解析システム
…
 内容抜粋
 “Decoupling Executions in Navigating Manufacturing          "Unified graph representation of processes
 Processes for Shortening Lead Time and Its Implementation   for scheduling with flexible resource
 to an Unmanned Machine Shop”,                               assignment",




                                                                                                          14
数理解析手法の実ビジネスへの適用:活動例

                   活動の統一グラフモデルを構築・解析
                        Unified graphical model of processes and resources

                                                                                                 青字:割付モデル属性
                                                                                                 [ ] : Optional
Node             ・priority(優先度)                                                       Edge
                 ・duration(予定時間)
                 [・earliest(再早開始日時) ]                                                      Process Edge
Process          [・deadline(納期) ]
                 [・or(条件集約数) ]
                                                                                             前プロセスの終了後に後プロセスが
プロセスを表す                                                                                      開始できること表す
                 ・attributes(属性)
                                                                      preemptable(中断可否),
                                                                      successive(引継ぎ可否)
                                                                                           Uses Edge
                                                                      workload(作業負荷)         Processが使用する
                        uses     uses uses         uses   uses        uses                   Assign Region を表す

Assign Region                                                                              Assigns from Edge
同一Resourceを割付け続ける                                                                            Assign Regionに
                                  assigns from assigns from                                  指定Resourceの子Resource集合の
範囲を表す
               assigns                                           assigns                     中から割付けることを示す
                                 企業01                             [process]
                                 has         has                  [startDate(開始日時)]
                                                                  [endDate(終了日時)]          Assigns Edge
                  製品01                    組織A                                                StartDateからEndDateまでの間
Resource                                                                     has             Assign RegionにResourceを
割付対象要素を表す           has has      has      has   has       has                                割付けることを表す
                                                                    ・capacity(容量)
                                                                    ・calender(カレンダー)
                AAA01    AAB02    …     山田さん 田中さん 鈴木さん              ・attributes(属性)        Has Edge
                                                                           東さん               Resourceの所有関係を表す
                                                                                                                   15
数理解析手法の実ビジネスへの適用:活動例
                                    一品一様の業務プロセスの
                                  動的なプロセス制御数理体系を構築
  全体生産リードタイム中央値を                                                                                                                        1/2.7に短縮
      設計開始~頭だし出荷リードタイム
                                      設計開始~頭だし出荷CT対週集計開始日時の箱ひげ図                                                                         体系適用
                        500
                                                                                                                                                                     適用後
   設計開始~頭だし出荷CT




                        400

                                                                                            360.4h(15.0日)
                                                                                                                                                                                            1/2.7
                        300



                        200



                        100
                                        0          0          0          0           0          0          0          0           0          0          0
                                                                                                                                                                  141.6h(5.9日)
                                                                                                                                                                   0          0         0
                                   9: 0       9 :0       9 :0       9 :0        9: 0       9 :0       9 :0       9 :0        9: 0       9 :0       9 :0       9 :0       9: 0      9 :0
                               20         27         04         11          18         25         01         08          15         22         29         06         13         20
                          0 9/       0 9/       1 0/       1 0/        1 0/       1 0/       1 1/       1 1/        1 1/       1 1/       1 1/       1 2/       1 2/       1 2/
                       4/         4/         4/         4/         4/          4/         4/         4/         4/          4/         4/         4/         4/         4/
                  2 00       2 00       2 00       2 00       2 00        2 00       2 00       2 00       2 00        2 00       2 00       2 00       2 00       2 00
                                                                                               週集計開始日時




                                                                                                                                                                                                16
数理解析手法の実ビジネスへの適用:活動例
                                     ビジネスとともに
                                    学術分野でも貢献
変動性から生じる動的な課題
     ・リソースの競合 ・滞留 ・納期遅延                            …

一品一様な業務プロセスを含む
統計解析・制御数理モデル
     ・統計的な有効変数算出
     ・統計数理モデル化
        -優先順位制御
        -実行タイミング制御
        -統計フィードバック
        -適正リソース量算出
     ・予測数理体系
論文(体系の一部)
M.Nakao, N. Kobayashi, K.Hamada, T.Totsuka, S.Yamada,
“Decoupling Executions in Navigating Manufacturing Processes for Shortening Lead Time and Its Implementation
to an Unmanned Machine Shop”,
CIRP Annals - Manufacturing Technology Volume 56, Issue 1, Pages 171-174 (2007)                         17
思い
     より広く蓄積されたデータを有効活用し
     世界の未来をよりよいものにしていきたい
                データマイニング+WEB勉強会@東京




     Google Group: http://groups.google.com/group/webmining-tokyo   18
現在の活動領域

  ソーシャルメディアのデータマイニング活用
          2900万人以上の人々へ
 各人のつながり・楽しみ・好み 個性にあった適切なサービス配信
           日々20億以上の活動の活用


           Social Media
              Social Graph
          Fun Like Personality
           Objective Process

            Data Mining
          Machine Learning
       各人のつながり、楽しみ、好み、個性にあった
           より適切なサービス提供
                                  19
よりよい世界の実現
      ソーシャル・活動情報の活用により
 より適切な情報・サービス配信される世界を実現したい




            Social Media
                Social Graph
            Fun Like Personality
             Objective Process

          Data Mining
        Machine Learning
       各人のつながり、楽しみ、好み、個性にあった
           より適切なサービス提供
                                   20
よりよい世界の実現
      ソーシャル・活動情報の活用により
 より適切な情報・サービス配信される世界を実現したい
            世界中の人々が
 個々人のつながり・楽しみ・好みにあった適切な情報・サービスを
      自ら探さなくても得ることができる世界

            Social Media
                Social Graph
            Fun Like Personality
             Objective Process

          Data Mining
        Machine Learning
       各人のつながり、楽しみ、好み、個性にあった
           より適切なサービス提供
                                   21
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
      (Hadoop:象, Mahout: 象使い)




             http://mahout.apache.org
                                        23
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
      (Hadoop:象, Mahout: 象使い)




             http://mahout.apache.org
                                        24
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
      (Hadoop:象, Mahout: 象使い)




             http://mahout.apache.org
                                        25
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
      (Hadoop:象, Mahout: 象使い)




             http://mahout.apache.org
                                        26
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
      (Hadoop:象, Mahout: 象使い)




             http://mahout.apache.org
                                        27
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
     ・Hadoop:象, Mahout: 象使い




           http://mahout.apache.org
                                      28
Mahoutとは
         Open Sourceでスケーラブルな
       機械学習・データマイニングのライブラリ

     ・Apache プロジェクト
     ・機械学習・データマイニングのライブラリ
     ・Java オープンソース
     ・Hadoop(大規模 分散処理基盤)上で動作
     ・Hadoop:象, Mahout: 象使い




           http://mahout.apache.org
                                      29
Mahoutとは
            Open Sourceでスケーラブルな
          機械学習・データマイニングのライブラリ

                               Applications



                                                           Examples


                 Freq.
    Genetic      Pattern    Classification    Clustering    Recommenders
                 Mining

                            Math
     Utilities                                     Collections    Apache
                            Vectors/Matrices/
     Lucene/Vectorizer                             (primitives)   Hadoop
                            SVD

       http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms
       http://www.slideshare.net/gsingers/intro-to-apache-mahout
                                                                           30
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
レコメンデーション
            各人の活動や関心にもとづき
            適した情報を提示・推薦する

例:Amazon.co.jp
                     検索・閲覧




                             32
レコメンデーション
            各人の活動や関心にもとづき
            適した情報を提示・推薦する

例:Amazon.co.jp
                     検索・閲覧




                     提示・推薦




                             33
レコメンデーション例
      「このアイテムを○○したユーザーは
    これらのアイテムについても○○しています」




                            34
レコメンデーション例
      「このアイテムを○○したユーザーは
    これらのアイテムについても○○しています」
             ○○ = ユーザーアクション




                              35
レコメンデーション例
      「このアイテムを○○したユーザーは
    これらのアイテムについても○○しています」
             ○○ = ユーザーアクション
         視聴     購入   閲覧   保存

             メール送信   ブックマーク

        お気に入りへの追加    共有   作成




                               36
レコメンデーション例
      「このアイテムを○○したユーザーは
    これらのアイテムについても○○しています」
             ○○ = ユーザーアクション
         視聴     購入   閲覧   保存

             メール送信   ブックマーク

        お気に入りへの追加    共有   作成

例
◆この動画を「視聴」したユーザーはこちらの動画も「視聴」しています
◆この記事に関連した新しいアイテムはこちらです
◆あなたに似たユーザーはこちらです
◆こちらの商品にも関心がありませんか?
                                37
レコメンデーションエンジンの入出力
        レコメンデーションエンジンの
             入出力




             レコメンデーション   レコメンドされた
               システム      アイテム・ユーザー




                                     38
レコメンデーションエンジンの入出力
                 レコメンデーションエンジンの
                      入出力

  アイテムの情報

アイテムのコンテンツ



      ユーザー          レコメンデーション     レコメンドされた
  プロファイル              システム        アイテム・ユーザー

年齢    性別
居住地   資産     …




                                              39
レコメンデーションエンジンの入出力
                 レコメンデーションエンジンの
                      入出力

  アイテムの情報

アイテムのコンテンツ



      ユーザー          レコメンデーション     レコメンドされた
  プロファイル              システム        アイテム・ユーザー

年齢    性別
居住地   資産     …

      ユーザー
 インタラクション
閲覧履歴 タグ付け
購入 保存 評価
メール送信履歴 …                                     40
レコメンデーションエンジンの入出力
                 レコメンデーションエンジンの
                      入出力
                     アイテム提示の
  アイテムの情報
                      コンテキスト
アイテムのコンテンツ                検討中アイテムの
                          カテゴリ …

      ユーザー          レコメンデーション        レコメンドされた
  プロファイル              システム           アイテム・ユーザー

年齢    性別
居住地   資産     …

      ユーザー
 インタラクション
閲覧履歴 タグ付け
購入 保存 評価
メール送信履歴 …                                        41
レコメンデーションエンジンの入出力
                 レコメンデーションエンジンの
                      入出力
                     アイテム提示の
  アイテムの情報
                      コンテキスト
アイテムのコンテンツ                検討中アイテムの
                          カテゴリ …

      ユーザー          レコメンデーション        レコメンドされた
  プロファイル              システム           アイテム・ユーザー

年齢    性別
居住地   資産     …

      ユーザー
 インタラクション
閲覧履歴 タグ付け
購入 保存 評価
メール送信履歴 …                                        42
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
Collaborative Filtering
     協調フィルタリング

ユーザー行動 (ユーザー・アイテム データ)を用い推薦
   購入、閲覧、保存、評価、ブックマークなど
Collaborative Filtering

                  Collaborative Filtering
         ユーザー行動 (ユーザー・アイテム データ)を用い推薦

                          アイテム提示の
   アイテムの情報
                           コンテキスト
 アイテムのコンテンツ                    検討中アイテムの
                               カテゴリ …

       ユーザー               レコメンデーション         レコメンドされた
    プロファイル                  システム            アイテム・ユーザー

 年齢    性別
 居住地   資産     …

       ユーザー
   インタラクション
 閲覧履歴 タグ付け
 購入 保存 評価
 メール送信履歴 …                                              45
Item Based Recommendation

                    アイテムベース
           アイテムの類似アイテムを分析・推薦




   アイテム           アイテム      アイテム   アイテム
     A             B         C      D




           ユーザー
              1




                                          46
Item Based Recommendation

                    アイテムベース
           アイテムの類似アイテムを分析・推薦




   アイテム           アイテム      アイテム   アイテム
     A             B         C      D


    好む

           ユーザー
              1




                                          47
Item Based Recommendation

                    アイテムベース
           アイテムの類似アイテムを分析・推薦

                  類似

   アイテム           アイテム      アイテム   アイテム
     A             B         C      D


    好む

           ユーザー
              1




                                          48
Item Based Recommendation

                    アイテムベース
           アイテムの類似アイテムを分析・推薦

                  類似

   アイテム           アイテム       アイテム   アイテム
     A             B           C     D


    好む                      レコメンド

           ユーザー
              1




                                           49
ユーザーベース分析

                  ユーザーベース
         類似ユーザーを分析、好むアイテムを推薦




  アイテム          アイテム          アイテム        アイテム
   A             B             C           D




          ユーザー         ユーザー        ユーザー
            1           2            3




                                                 50
ユーザーベース分析

                  ユーザーベース
         類似ユーザーを分析、好むアイテムを推薦




  アイテム          アイテム          アイテム        アイテム
   A             B             C           D




          ユーザー         ユーザー        ユーザー
            1           2            3



                       類似
                                                 51
ユーザーベース分析

                  ユーザーベース
         類似ユーザーを分析、好むアイテムを推薦




  アイテム          アイテム          アイテム        アイテム
   A             B             C           D



                                          好む

          ユーザー         ユーザー        ユーザー
            1           2            3



                       類似
                                                 52
ユーザーベース分析

                  ユーザーベース
         類似ユーザーを分析、好むアイテムを推薦




  アイテム          アイテム          アイテム        アイテム
   A             B             C           D

                     レコメンド
                                          好む

          ユーザー         ユーザー        ユーザー
            1           2            3



                       類似
                                                 53
Collaborative Filtering: アルゴリズム

                    アルゴリズム



  1. 類似アイテム(またはユーザー)を見つける



  2. 類似アイテム(またはユーザー)を利用し、予測する




                                  54
協調フィルタリング: アルゴリズム

              アルゴリズム



 1. 類似アイテム(またはユーザー)を見つける



 2. 類似アイテム(またはユーザー)を利用し、予測する




                               55
Collaborative Filtering: データ表現
                アイテムを
          N次元のユーザー行動ベクトルで表現

                   User3




       User1                     User2

                                         56
Collaborative Filtering: データ表現

              ユーザー-アイテム行列を扱う

                  例:アイテムのユーザー評価

              User1   User2      User3   …
      Item1   3       2          1       …
      Item2   4       2          3       …
      Item3   2       4          5       …
      ….      …       …          …       …




                                             57
類似度の算出:コサインベース

            コサインベースの類似度計算
        (Cosine-based similarity computation)
Item間類似度
 ①Item Vectorの正規化
                  User1    User2     User3
         Item1    0.818    0.5345    0.2673     正規化
         Item2    0.7428   0.3714    0.557
         Item3    0.2981   0.5963    0.7454




                                                      58
類似度の算出:コサインベース

            コサインベースの類似度計算
        (Cosine-based similarity computation)
Item間類似度
 ①Item Vectorの正規化
                  User1    User2     User3
         Item1    0.818    0.5345    0.2673     正規化
         Item2    0.7428   0.3714    0.557
         Item3    0.2981   0.5963    0.7454

   Item間類似度                     ②Item Vectorの内積
                  Item1    Item2     Item3
         Item1    1        0.943     0.757
         Item2    0.7428   1         0.858
         Item3    0.2981   0.5963    1
                                                      59
類似度の算出:コサインベース

            コサインベースの類似度計算
        (Cosine-based similarity computation)
User間類似度
 ①User Vectorの正規化         正規化

                  User1     User2    User3
         Item1    0.5571    0.4082   0.1690
         Item2    0.7428    0.4082   0.5071
         Item3    0.3714    0.5071   0.8452




                                                60
類似度の算出:コサインベース

            コサインベースの類似度計算
        (Cosine-based similarity computation)
User間類似度
 ①User Vectorの正規化         正規化

                  User1     User2      User3
         Item1    0.5571    0.4082     0.1690
         Item2    0.7428    0.4082     0.5071
         Item3    0.3714    0.5071     0.8452

   User間類似度                        ②User Vectorの内積
                  User1     User2      User3
         User1    1         0.83       0.78
         User2    0.83      1          0.97
         User3    0.78      0.97
                                                     61
Collaborative Filtering: 類似度計算
              ユーザー-アイテム行列から
              3つの類似度計算の手法

     ◆コサインベース
      (Cosine-based similarity computation)


     ◆相関ベース
      (Correlation-based similarity computation)

     ◆調整コサインベース
      (Adjusted cosine-based similarity computation)


                                                       62
類似度の算出:相関ベース

                相関ベースの類似度計算
      (Correlation-based similarity computation)
Itemの相関行列 Item間の相関を見る
 (分散共分散行列)




      R: ItemのUser評価行列
       成分         : Item i に対する User uの評価
                 User1   User2    User3   …
        Item1    R11     R12      R13     …
        Item2    R21     R22      R23     …
        …        …       …        …       …

             : Item i のUser評価平均
             : User数
                                                   63
類似度の算出:相関ベース

               相関ベースの類似度計算
     (Correlation-based similarity computation)


 ①Itemの評価平均からの差分 行列
                 User1     User2     User3
                                                  評価平均
       Item1     1         0         -1
                                                  からのずれ値
       Item2     1         -1        0
       Item3     -5/3      1/3       4/3




                                                      64
類似度の算出:相関ベース

               相関ベースの類似度計算
     (Correlation-based similarity computation)


 ①Itemの評価平均からの差分 行列
                 User1     User2      User3
                                                  評価平均
       Item1     1         0          -1
                                                  からのずれ値
       Item2     1         -1         0
       Item3     -5/3      1/3        4/3

  Item間 相関行列                     ②Item Vectorの規格化・内積
                 Item1     Item2      Item3
       Item1     1         0.5        -0.982
       Item2     0.5       1          -0.655
       Item3     -0.982    -0.655     1
                                                      65
類似度の算出:相関ベース

               相関ベースの類似度計算
     (Correlation-based similarity computation)
                                     評価平均
 ①Userの評価平均からの差分 行列                  からのずれ値

                 User1     User2     User3
       Item1     0         -0.4083   -0.7071
       Item2     0.7071    -0.4083   0
       Item3     -0.7071   0.8166    0.7071




                                                  66
類似度の算出:相関ベース

               相関ベースの類似度計算
     (Correlation-based similarity computation)
                                     評価平均
 ①Userの評価平均からの差分 行列                  からのずれ値

                 User1     User2     User3
       Item1     0         -0.4083   -0.7071
       Item2     0.7071    -0.4083   0
       Item3     -0.7071   0.8166    0.7071

  User間 相関行列                   ②User Vectorの規格化・内積
                 User1     User2     User3
       User1     1         -0.866    -0.5
       User2     -0.866    1         0.87
       User3     -0.5      0.87      1
                                                  67
Collaborative Filtering: 類似度計算
              ユーザー-アイテム行列から
              3つの類似度計算の手法

     ◆コサインベース
      (Cosine-based similarity computation)


     ◆相関ベース
      (Correlation-based similarity computation)

     ◆調整コサインベース
      (Adjusted cosine-based similarity computation)


                                                       68
類似度の算出:調整コサインベース

         調整コサインベースの類似度計算
    (Adjusted cosine-based similarity computation)
            Userごとの評価の振れ幅の補正

                               (Item i のUser評価平均)ではなく
                               : User uの評価平均 を使用
  調整コサイン行列




      R: ItemのUser評価行列
      成分        : Item i に対する User uの評価
          : User数

                                                     69
類似度の算出:調整コサインベース

         調整コサインベースの類似度計算
    (Adjusted cosine-based similarity computation)
                                     User評価平均
 ①Userの評価平均からの差分 行列                  からのずれ値

                  User1     User2     User3
         Item1    0         -2/3      -2
         Item2    1         -2/3      0
         Item3    -1        4/3       2




                                                     70
類似度の算出:調整コサインベース

         調整コサインベースの類似度計算
    (Adjusted cosine-based similarity computation)
                                     User評価平均
 ①Userの評価平均からの差分 行列                  からのずれ値

                  User1     User2     User3
         Item1    0         -2/3      -2
         Item2    1         -2/3      0
         Item3    -1        4/3       2

   Item間 相関行列                   ②Item Vectorの規格化・内積
                  Item1     Item2     Item3
         Item1    1         0.1754    -0.891
         Item2    0.1754    1         0.604
         Item3    -0.981    0.604     1
                                                     71
類似度の算出:調整コサインベース

         調整コサインベースの類似度計算
    (Adjusted cosine-based similarity computation)


 ①Itemの評価平均からの差分 行列
                  User1     User2     User3
                                                 Item評価平均
         Item1    1         1         -1         からのずれ値
         Item2    1         -1        0
         Item3    -5/2      0         4/3




                                                      72
類似度の算出:調整コサインベース

         調整コサインベースの類似度計算
    (Adjusted cosine-based similarity computation)


 ①Itemの評価平均からの差分 行列
                  User1     User2     User3
                                                 Item評価平均
         Item1    1         1         -1         からのずれ値
         Item2    1         -1        0
         Item3    -5/2      0         4/3

   User間 相関行列                    ②User Vectorの規格化・内積
                  User1     User2     User3
         User1    1         -0.675    -0.884
         User2    -0.675    1         -0.253
         User3    -0.884    -0.253    1
                                                      73
Collaborative Filtering: アルゴリズム

                    アルゴリズム



  1. 類似アイテム(またはユーザー)を見つける



  2. 類似アイテム(またはユーザー)を利用し、予測する




                                  74
Collaborative Filtering: 評価予測

        類似アイテム・ユーザーを利用し予測する




                                75
Collaborative Filtering: 評価予測

        類似アイテム・ユーザーを利用し予測する
 K近傍法     K個の近いアイテム・ユーザーの評価を
          偏差を重み付けして和を取る




                                76
Collaborative Filtering: 評価予測

               類似アイテム・ユーザーを利用し予測する
 K近傍法          K個の近いアイテム・ユーザーの評価を
               偏差を重み付けして和を取る
ItemのUser評価行列 Riu
           User1   User2   User3   平均
   Item1   3       2       1       2
   Item2   4       2       3       3
   Item3   2       4       5       11/3
   平均      3       8/3     3       26/3




                                          77
Collaborative Filtering: 評価予測

               類似アイテム・ユーザーを利用し予測する
 K近傍法                 K個の近いアイテム・ユーザーの評価を
                      偏差を重み付けして和を取る
ItemのUser評価行列 Riu
           User1        User2        User3       平均
   Item1   3            2            1           2
   Item2   4            2            3           3
   Item3   2            4            5           11/3
   平均      3            8/3          3           26/3
        相関ベース類似度計算
User間 相関行列 Cuv
               User1          User2          User3
  User1        1              -0.866         -0.5
  User2        -0.866         1              0.87
  User3        -0.5           0.87           1          78
Collaborative Filtering: 評価予測

               類似アイテム・ユーザーを利用し予測する
 K近傍法                 K個の近いアイテム・ユーザーの評価を
                      偏差を重み付けして和を取る
ItemのUser評価行列 Riu
                                                        User1のItem1への評価期待値
           User1        User2        User3       平均
                                                         =User1の平均評価
   Item1   3            2            1           2
   Item2   4            2            3           3
                                                        +User2の重みづき偏差
   Item3   2            4            5           11/3   +User3の重みづき偏差
   平均      3            8/3          3           26/3
                                                        =R1
        相関ベース類似度計算
                                                         +C12/(C12+C13)*(R12 –R2)
User間 相関行列 Cuv
                                                         +C13/(C12+C13)*(R13 –R3)
               User1          User2          User3
  User1        1              -0.866         -0.5       =4.2
  User2        -0.866         1              0.87
  User3        -0.5           0.87           1                                      79
Amazon Collaborative Filtering
        共起行列




                                 80
Amazon Collaborative Filtering

     世界で最も知られているCollaborative Filtering


  Amazon.co.jp                   検索・閲覧




                                 レコメンデーション




                                             81
Amazon Collaborative Filtering

     世界で最も知られているCollaborative Filtering

  ◆Item-Item Collaborative Filtering
      アイテムベース
         同じアイテムを見たユーザーには、同じアイテムを推薦

      ユーザー数に依存せずスケールする
       処理
       ①アイテム-推薦アイテムのテーブルをオフラインで作る
        ②ユーザーアクセス時にはテーブルを参照するだけ



                                          82
Amazon-Item-Item Collaborative Filtering
                  Item-Item Collaborative Filtering
                            アルゴリズム




              User1   User2   User3   User4
      Item1   1               1
      Item2           1       1
      Item3   1               1       1
      Item4           1               1

                                                      83
Amazon-Item-Item Collaborative Filtering
                  Item-Item Collaborative Filtering
                            アルゴリズム
  1. 空のItem-Item の行列を作る




              User1   User2   User3   User4           Item1   Item2   Item3   Item4
      Item1   1               1               Item1
      Item2           1       1               Item2
      Item3   1               1       1       Item3
      Item4           1               1       Item4

                                                                                      84
Amazon-Item-Item Collaborative Filtering
                  Item-Item Collaborative Filtering
                            アルゴリズム
  1. 空のItem-Item の行列を作る

  2. 全アイテムに関し次の処理を行う
      2-1. あるアイテム(親アイテム)を購入した顧客全てに対し
           購入アイテム(子アイテム)をカウントする。
      2-2. 親アイテム列・子アイテム行にカウント数を入れる
      2-3. 親アイテム列のカウント数上位を推薦アイテムとする

              User1   User2   User3   User4           Item1   Item2   Item3   Item4
      Item1   1               1               Item1           1       2
      Item2           1       1               Item2
      Item3   1               1       1       Item3
      Item4           1               1       Item4

                                                                                      85
Amazon-Item-Item Collaborative Filtering
                  Item-Item Collaborative Filtering
                            アルゴリズム
  1. 空のItem-Item の行列を作る

  2. 全アイテムに関し次の処理を行う
      2-1. あるアイテム(親アイテム)を購入した顧客全てに対し
           購入アイテム(子アイテム)をカウントする。
      2-2. 親アイテム列・子アイテム行にカウント数を入れる
      2-3. 親アイテム列のカウント数上位を推薦アイテムとする

              User1   User2   User3   User4           Item1   Item2   Item3   Item4
      Item1   1               1               Item1           1       2
      Item2           1       1               Item2   1               1       1
      Item3   1               1       1       Item3   2       1               1
      Item4           1               1       Item4           1

                                                                                      86
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
Mahout Recommendation




                Recommender Documentation
Mahout Recommendation

                              Mahout Recommendation Sample

public class MahoutRecommendationSample {
    public static void main(String[] args) throws Exception {
        //データ設定
        DataModel model = new FileDataModel(new File("preference.csv"));
        //類似度設定
        UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
        UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
        //Recommender Engine生成 (ここでは User Base)
        Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
        //ユーザー 1 に1つのアイテムを推薦
        List<RecommendedItem> recommendations = recommender.recommend(1, 1);
        for (RecommendedItem recommendation : recommendations) {
            System.out.println(recommendation);
        }
    }
}



                                                                                                89
                                              Mahout In Action
Mahout Recommendation




Mahout Recommender

     ◆User Based Recommender
     ◆Item Based Recommender
     ◆Knn Item Based Recommender
     ◆SVD Recommender
     ◆Tree Clustering Recommender
     ◆SlopeOne Recommender

                                       90
                    Mahout In Action
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
分散処理フレームワーク:MapReduce

 MapがkeyとValueにデータを振り分け、Reduceがkeyごとに集計
                 分散処理を実現
 User毎の集計での例


    Map

                     userA            userD           userA   userC           userB         userD   key
   大量データに対する         3                7               1       2               6             5       value
   分散演算




    Shuffle & Sort



    Reduce
                                 userA            userB           userC           userD

   演算結果の集計               userA            userA   userB           userC   userD           userD
                         3                1       6               2       7            5



                                  userA           userB           userC           userD
                                  4               6           2                   12

                                                                                                            92
Mahout RecommendJob


                                      入力

                 userの評価データ                 推薦対象データ

                 movielens/prefs            movielens/users
         UserId, ItemId, Preference (評価値)   Userid

                    1,2,3                     1
                    1,3,4                     2
                    1,4,3                     3
                    1,5,3                     4
                    1,6,5                     5
                    1,7,4                     6
                    1,8,1                     7
                    1,9,5                     8
                    1,10,3                    9
                    1,11,2                    10
                    2,102,3                   11
                    …                         …



                                                              93
Mahout RecommenderJob


                                             出力

推薦結果
movielens/output
userid ¥t [itemid1: preferencePrediction1, itemid2, preferencePrediction2, …]

userid     itemid1 preferencePrediction1

 1   [1315:5.0,1226:5.0,1194:5.0,1129:5.0,1115:5.0,1101:5.0,1098:5.0,1097:5.0,1073:5.0,1067:5.0]
 2   [582:5.0,546:5.0,531:5.0,523:5.0,515:5.0,514:5.0,509:5.0,508:5.0,496:5.0,483:5.0]
 3   [14:5.0,137:5.0,285:5.0,311:4.765625,539:4.7058825,905:4.7058825,896:4.6969695,.,,, ]
 4   [1434:5.0,1024:5.0,1022:5.0,471:5.0,538:5.0,845:5.0,515:5.0,544:5.0,1265:5.0,873:5.0]
 5   [1047:5.0,1035:5.0,1016:5.0,1014:5.0,1065:5.0,1079:5.0,1101:5.0,969:5.0,1110:5.0,959:5.0]
 6   [1050:5.0,1021:5.0,1020:5.0,1011:5.0,1065:5.0,971:5.0,969:5.0,965:5.0,959:5.0,949:5.0]
 7   [1411:5.0,1303:5.0,1267:5.0,1239:5.0,1228:5.0,1221:5.0,1217:5.0,1210:5.0,1203:5.0,1194:5.0]
 8   [566:5.0,550:5.0,546:5.0,568:5.0,845:5.0,528:5.0,527:5.0,526:5.0,523:5.0,588:5.0]




                                                                                                   94
Mahout Distributed Recommender

                     User Vector作成
        User ごとに ItemId, 評価値のベクトルを分散集計
        Key: UserId
    Map Value: (ItemId, Preference)

                     keyA       keyD           keyA   keyC      keyB           keyD   key
    大量データに対する        val1       val2           val3   val4      val5           val6   value
    分散演算




    Shuffle & Sort



     Reduce
                              keyA      keyB           keyC          keyD

    演算結果の集計            keyA      keyA   keyB           keyC   keyD           keyD
                      val1       val3   val5           val4   val6           val2



                               keyA     keyB           keyC          keyD
                              val1+     val5                         val2+
                                                       val4
                              val3                                   val6

                                                                                              95
Mahout Distributed Recommender: 分散処理例

                         共起行列の生成
         (ItemId1, ItemId2) ごとに評価アイテム数を集計
        Key: (ItemId1, ItemId2)
    Map Value: preference

                     keyA       keyD           keyA   keyC      keyB           keyD   key
   大量データに対する         val1       val2           val3   val4      val5           val6   value
   分散演算




    Shuffle & Sort



    Reduce
                              keyA      keyB           keyC          keyD

    演算結果の集計            keyA      keyA   keyB           keyC   keyD           keyD
                      val1       val3   val5           val4   val6           val2



                               keyA     keyB           keyC          keyD
                              val1+     val5                         val2+
                                                       val4
                              val3                                   val6

                                                                                              96
Mahout Distributed Recommender




            RecommenderJob の MapReduce実行 と HDFS入出力   Mahout In Action
Mahout RecommendJob


                       Recommender 実行例

 コマンドライン実行 (RecommenderJob 呼出)
     $HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/mahout-core-0.5-job.jar ¥
     org.apache.mahout.cf.taste.hadoop.item.RecommenderJob ¥
     -Dmapred.output.dir=movielens/output ¥
     -Dmapred.input.dir=movielens/prefs ¥
     --usersFile movielens/users ¥
     --similarityClassname SIMILARITY_COOCCURRENCE


 意味
     -Dmapred.output.dir= <出力ディレクトリのパス> ¥
     -Dmapred.input.dir=<ユーザーのアイテム評価データ> ¥
     --usersFile <レコメンド対象ユーザー> ¥
     --similarityClassname <類似度算出法>



                                                                          98
Mahout RecommendJob


                               実行オプション(抜粋)
  オプション ( 短縮表記 )                  特徴
  --numRecommendations (-n)       各ユーザーへの推薦数
  --usersFile (-u)                推薦対象ユーザーのファイルパス
  --itemsFile (-i)                推薦対象アイテムのファイルパス
  --filterFile (-f)               推薦を除外するユーザー、アイテム組合せ指定
                                  形式: (userid, itemid)
  --maxPrefsPerUser (-mp)         各ユーザーで用いる最大数評価 (上位から)
  --minPrefsPerUser (-mp)         各ユーザーで用いる最小評価数 (上位から)
                                  (Default : 1)
  --maxSimilaritiesPerItem (-m)   各アイテムで用いる最大類似アイテム数
  --maxCooccurrencesPerItem (-mo) 各アイテムで用いる最大共起アイテム数
                                  (Default : 100)
  --similarityClassname (-s)      用いる類似度
                                  SIMILARITY_COOCCURRENCE SIMILARITY_EUCLIDEAN_DISTANCE,
                                  SIMILARITY_TANIMOTO_COEFFICIENT, SIMILARITY_LOGLIKELIHOOD,
                                  SIMILARITY_PEARSON_CORRELATION, SIMILARITY_UNCENTERED_COSINE
                                  SIMILARITY_UNCENTERED_ZERO_ASSUMING_COSINE, SIMILARITY_CITY_BLOCK
                                                                                                      99
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
参考資料:

 ■ Apach Mahout
   http://mahout.apache.org
   http://cwiki.apache.org/MAHOUT
   http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms
   http://www.slideshare.net/gsingers/intro-to-apache-mahout

 ■ Mahout In Action




                                                                  101
参考資料:

        集合知イン・アクション




        集合知プログラミング




                      102
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に
最後に

      蓄積されたデータを有効活用してきたい




                           104
最後に

      蓄積されたデータを有効活用してきたい




  Google Group: http://groups.google.com/group/webmining-tokyo

                                                                 105
最後に
               データマイニング+WEB勉強会
                発表者を募集しています




 連絡
  Google Group: http://groups.google.com/group/webmining-tokyo
  Twitter     : http://twitter.com/hamadakoichi
                                                                 106
ご清聴ありがとうございました




                 107
AGENDA
 ◆講師紹介
 ◆Mahoutとは
 ◆Recommendation
 ◆Collaborative Filtering
 ◆Mahout Recommendation
 ◆Mahout Distributed Recommendation
 ◆参考資料
 ◆最後に

More Related Content

"Mahout Recommendation" - #TokyoWebmining 14th

  • 1. 14 +WEB 2011/10/16 Mahout Recommendation hamadakoichi 濱田 晃一
  • 2. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 3. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 4. hamadakoichi 濱田晃一 http://iddy.jp/profile/hamadakoichi 4
  • 6. 講師資料 Mahout、R、データマイニング・機械学習、等 各種講師資料を公開しています http://www.slideshare.net/hamadakoichi 6
  • 8. 活動領域: ソーシャルメディアのデータマイニング 楽しさのデータマイニング・ユーザー体験還元 2900万人以上の人々へ 各人のつながり・楽しみ・好み 個性にあった適切なサービス提供 Data Mining Machine Learning of Fun PatternMining Clustering Classification Regression Recommendation TimeSeriesAnalysis StatisticalAnalysis NaturalLanguageProcessing ..etc Social Media Experience Social Graph Detailed Actions Changes of Status Social Communications Personality ..etc 8
  • 10. hamadakoichi 濱田晃一 理論物理 博士(2004.3取得) 量子統計場の理論 Statistical Field Theory Spontaneously Time-Reversal Symmetry Breaking Anisotropic Massless Dirac Fermions 博士論文: http://hosi.phys.s.u-tokyo.ac.jp/~koichi/PhD-thesis.pdf 10
  • 11. hamadakoichi 濱田晃一 文部大臣に褒められた 元 文部大臣・法務大臣 六法全書著者・元法学政治学研究科長 森山眞弓さん 菅野和夫さん 11
  • 12. hamadakoichi 濱田晃一 Los Angelesでプロダンサーに褒められた ・HIP HOP/House ダンス歴15年 ・ダンス開始後 1年半でL.A.でプロダンサーに褒められる Youtube Channel: http://www.youtube.com/hamadakoichi 12
  • 13. hamadakoichi 濱田晃一 毎週末3時間ダンスコーチをしています ■過去、東京と京都でも ダンス部を創設。 コーチをしていました 駒場物理ダンス部 京都大学基礎物理学研究所ダンス部 部長兼コーチ 部長兼コーチ 現在: 毎週末 3時間ダンスコーチ Youtube Channel: http://www.youtube.com/hamadakoichi 13
  • 14. 数理解析手法の実ビジネスへの適用 2004年 博士号取得後 数理解析手法を実ビジネス適用の方法論構築 主な領域 ◆活動の数理モデル化・解析手法 ◆活動の分析手法・再構築手法 ◆活動の実行制御・実績解析システム … 内容抜粋 “Decoupling Executions in Navigating Manufacturing "Unified graph representation of processes Processes for Shortening Lead Time and Its Implementation for scheduling with flexible resource to an Unmanned Machine Shop”, assignment", 14
  • 15. 数理解析手法の実ビジネスへの適用:活動例 活動の統一グラフモデルを構築・解析 Unified graphical model of processes and resources 青字:割付モデル属性 [ ] : Optional Node ・priority(優先度) Edge ・duration(予定時間) [・earliest(再早開始日時) ] Process Edge Process [・deadline(納期) ] [・or(条件集約数) ] 前プロセスの終了後に後プロセスが プロセスを表す 開始できること表す ・attributes(属性) preemptable(中断可否), successive(引継ぎ可否) Uses Edge workload(作業負荷) Processが使用する uses uses uses uses uses uses Assign Region を表す Assign Region Assigns from Edge 同一Resourceを割付け続ける Assign Regionに assigns from assigns from 指定Resourceの子Resource集合の 範囲を表す assigns assigns 中から割付けることを示す 企業01 [process] has has [startDate(開始日時)] [endDate(終了日時)] Assigns Edge 製品01 組織A StartDateからEndDateまでの間 Resource has Assign RegionにResourceを 割付対象要素を表す has has has has has has 割付けることを表す ・capacity(容量) ・calender(カレンダー) AAA01 AAB02 … 山田さん 田中さん 鈴木さん ・attributes(属性) Has Edge 東さん Resourceの所有関係を表す 15
  • 16. 数理解析手法の実ビジネスへの適用:活動例 一品一様の業務プロセスの 動的なプロセス制御数理体系を構築 全体生産リードタイム中央値を 1/2.7に短縮 設計開始~頭だし出荷リードタイム 設計開始~頭だし出荷CT対週集計開始日時の箱ひげ図 体系適用 500 適用後 設計開始~頭だし出荷CT 400 360.4h(15.0日) 1/2.7 300 200 100 0 0 0 0 0 0 0 0 0 0 0 141.6h(5.9日) 0 0 0 9: 0 9 :0 9 :0 9 :0 9: 0 9 :0 9 :0 9 :0 9: 0 9 :0 9 :0 9 :0 9: 0 9 :0 20 27 04 11 18 25 01 08 15 22 29 06 13 20 0 9/ 0 9/ 1 0/ 1 0/ 1 0/ 1 0/ 1 1/ 1 1/ 1 1/ 1 1/ 1 1/ 1 2/ 1 2/ 1 2/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 4/ 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 2 00 週集計開始日時 16
  • 17. 数理解析手法の実ビジネスへの適用:活動例 ビジネスとともに 学術分野でも貢献 変動性から生じる動的な課題 ・リソースの競合 ・滞留 ・納期遅延 … 一品一様な業務プロセスを含む 統計解析・制御数理モデル ・統計的な有効変数算出 ・統計数理モデル化 -優先順位制御 -実行タイミング制御 -統計フィードバック -適正リソース量算出 ・予測数理体系 論文(体系の一部) M.Nakao, N. Kobayashi, K.Hamada, T.Totsuka, S.Yamada, “Decoupling Executions in Navigating Manufacturing Processes for Shortening Lead Time and Its Implementation to an Unmanned Machine Shop”, CIRP Annals - Manufacturing Technology Volume 56, Issue 1, Pages 171-174 (2007) 17
  • 18. 思い より広く蓄積されたデータを有効活用し 世界の未来をよりよいものにしていきたい データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 18
  • 19. 現在の活動領域 ソーシャルメディアのデータマイニング活用 2900万人以上の人々へ 各人のつながり・楽しみ・好み 個性にあった適切なサービス配信 日々20億以上の活動の活用 Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供 19
  • 20. よりよい世界の実現 ソーシャル・活動情報の活用により より適切な情報・サービス配信される世界を実現したい Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供 20
  • 21. よりよい世界の実現 ソーシャル・活動情報の活用により より適切な情報・サービス配信される世界を実現したい 世界中の人々が 個々人のつながり・楽しみ・好みにあった適切な情報・サービスを 自ら探さなくても得ることができる世界 Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供 21
  • 22. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 23. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 23
  • 24. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 24
  • 25. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 25
  • 26. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 26
  • 27. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 27
  • 28. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 ・Hadoop:象, Mahout: 象使い http://mahout.apache.org 28
  • 29. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 ・Hadoop:象, Mahout: 象使い http://mahout.apache.org 29
  • 30. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ Applications Examples Freq. Genetic Pattern Classification Clustering Recommenders Mining Math Utilities Collections Apache Vectors/Matrices/ Lucene/Vectorizer (primitives) Hadoop SVD http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms http://www.slideshare.net/gsingers/intro-to-apache-mahout 30
  • 31. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 32. レコメンデーション 各人の活動や関心にもとづき 適した情報を提示・推薦する 例:Amazon.co.jp 検索・閲覧 32
  • 33. レコメンデーション 各人の活動や関心にもとづき 適した情報を提示・推薦する 例:Amazon.co.jp 検索・閲覧 提示・推薦 33
  • 34. レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 34
  • 35. レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 ○○ = ユーザーアクション 35
  • 36. レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 ○○ = ユーザーアクション 視聴 購入 閲覧 保存 メール送信 ブックマーク お気に入りへの追加 共有 作成 36
  • 37. レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 ○○ = ユーザーアクション 視聴 購入 閲覧 保存 メール送信 ブックマーク お気に入りへの追加 共有 作成 例 ◆この動画を「視聴」したユーザーはこちらの動画も「視聴」しています ◆この記事に関連した新しいアイテムはこちらです ◆あなたに似たユーザーはこちらです ◆こちらの商品にも関心がありませんか? 37
  • 38. レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 レコメンデーション レコメンドされた システム アイテム・ユーザー 38
  • 39. レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテムの情報 アイテムのコンテンツ ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … 39
  • 40. レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテムの情報 アイテムのコンテンツ ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 40
  • 41. レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテム提示の アイテムの情報 コンテキスト アイテムのコンテンツ 検討中アイテムの カテゴリ … ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 41
  • 42. レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテム提示の アイテムの情報 コンテキスト アイテムのコンテンツ 検討中アイテムの カテゴリ … ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 42
  • 43. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 44. Collaborative Filtering 協調フィルタリング ユーザー行動 (ユーザー・アイテム データ)を用い推薦 購入、閲覧、保存、評価、ブックマークなど
  • 45. Collaborative Filtering Collaborative Filtering ユーザー行動 (ユーザー・アイテム データ)を用い推薦 アイテム提示の アイテムの情報 コンテキスト アイテムのコンテンツ 検討中アイテムの カテゴリ … ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 45
  • 46. Item Based Recommendation アイテムベース アイテムの類似アイテムを分析・推薦 アイテム アイテム アイテム アイテム A B C D ユーザー 1 46
  • 47. Item Based Recommendation アイテムベース アイテムの類似アイテムを分析・推薦 アイテム アイテム アイテム アイテム A B C D 好む ユーザー 1 47
  • 48. Item Based Recommendation アイテムベース アイテムの類似アイテムを分析・推薦 類似 アイテム アイテム アイテム アイテム A B C D 好む ユーザー 1 48
  • 49. Item Based Recommendation アイテムベース アイテムの類似アイテムを分析・推薦 類似 アイテム アイテム アイテム アイテム A B C D 好む レコメンド ユーザー 1 49
  • 50. ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D ユーザー ユーザー ユーザー 1 2 3 50
  • 51. ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D ユーザー ユーザー ユーザー 1 2 3 類似 51
  • 52. ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D 好む ユーザー ユーザー ユーザー 1 2 3 類似 52
  • 53. ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D レコメンド 好む ユーザー ユーザー ユーザー 1 2 3 類似 53
  • 54. Collaborative Filtering: アルゴリズム アルゴリズム 1. 類似アイテム(またはユーザー)を見つける 2. 類似アイテム(またはユーザー)を利用し、予測する 54
  • 55. 協調フィルタリング: アルゴリズム アルゴリズム 1. 類似アイテム(またはユーザー)を見つける 2. 類似アイテム(またはユーザー)を利用し、予測する 55
  • 56. Collaborative Filtering: データ表現 アイテムを N次元のユーザー行動ベクトルで表現 User3 User1 User2 56
  • 57. Collaborative Filtering: データ表現 ユーザー-アイテム行列を扱う 例:アイテムのユーザー評価 User1 User2 User3 … Item1 3 2 1 … Item2 4 2 3 … Item3 2 4 5 … …. … … … … 57
  • 58. 類似度の算出:コサインベース コサインベースの類似度計算 (Cosine-based similarity computation) Item間類似度 ①Item Vectorの正規化 User1 User2 User3 Item1 0.818 0.5345 0.2673 正規化 Item2 0.7428 0.3714 0.557 Item3 0.2981 0.5963 0.7454 58
  • 59. 類似度の算出:コサインベース コサインベースの類似度計算 (Cosine-based similarity computation) Item間類似度 ①Item Vectorの正規化 User1 User2 User3 Item1 0.818 0.5345 0.2673 正規化 Item2 0.7428 0.3714 0.557 Item3 0.2981 0.5963 0.7454 Item間類似度 ②Item Vectorの内積 Item1 Item2 Item3 Item1 1 0.943 0.757 Item2 0.7428 1 0.858 Item3 0.2981 0.5963 1 59
  • 60. 類似度の算出:コサインベース コサインベースの類似度計算 (Cosine-based similarity computation) User間類似度 ①User Vectorの正規化 正規化 User1 User2 User3 Item1 0.5571 0.4082 0.1690 Item2 0.7428 0.4082 0.5071 Item3 0.3714 0.5071 0.8452 60
  • 61. 類似度の算出:コサインベース コサインベースの類似度計算 (Cosine-based similarity computation) User間類似度 ①User Vectorの正規化 正規化 User1 User2 User3 Item1 0.5571 0.4082 0.1690 Item2 0.7428 0.4082 0.5071 Item3 0.3714 0.5071 0.8452 User間類似度 ②User Vectorの内積 User1 User2 User3 User1 1 0.83 0.78 User2 0.83 1 0.97 User3 0.78 0.97 61
  • 62. Collaborative Filtering: 類似度計算 ユーザー-アイテム行列から 3つの類似度計算の手法 ◆コサインベース (Cosine-based similarity computation) ◆相関ベース (Correlation-based similarity computation) ◆調整コサインベース (Adjusted cosine-based similarity computation) 62
  • 63. 類似度の算出:相関ベース 相関ベースの類似度計算 (Correlation-based similarity computation) Itemの相関行列 Item間の相関を見る (分散共分散行列) R: ItemのUser評価行列 成分 : Item i に対する User uの評価 User1 User2 User3 … Item1 R11 R12 R13 … Item2 R21 R22 R23 … … … … … … : Item i のUser評価平均 : User数 63
  • 64. 類似度の算出:相関ベース 相関ベースの類似度計算 (Correlation-based similarity computation) ①Itemの評価平均からの差分 行列 User1 User2 User3 評価平均 Item1 1 0 -1 からのずれ値 Item2 1 -1 0 Item3 -5/3 1/3 4/3 64
  • 65. 類似度の算出:相関ベース 相関ベースの類似度計算 (Correlation-based similarity computation) ①Itemの評価平均からの差分 行列 User1 User2 User3 評価平均 Item1 1 0 -1 からのずれ値 Item2 1 -1 0 Item3 -5/3 1/3 4/3 Item間 相関行列 ②Item Vectorの規格化・内積 Item1 Item2 Item3 Item1 1 0.5 -0.982 Item2 0.5 1 -0.655 Item3 -0.982 -0.655 1 65
  • 66. 類似度の算出:相関ベース 相関ベースの類似度計算 (Correlation-based similarity computation) 評価平均 ①Userの評価平均からの差分 行列 からのずれ値 User1 User2 User3 Item1 0 -0.4083 -0.7071 Item2 0.7071 -0.4083 0 Item3 -0.7071 0.8166 0.7071 66
  • 67. 類似度の算出:相関ベース 相関ベースの類似度計算 (Correlation-based similarity computation) 評価平均 ①Userの評価平均からの差分 行列 からのずれ値 User1 User2 User3 Item1 0 -0.4083 -0.7071 Item2 0.7071 -0.4083 0 Item3 -0.7071 0.8166 0.7071 User間 相関行列 ②User Vectorの規格化・内積 User1 User2 User3 User1 1 -0.866 -0.5 User2 -0.866 1 0.87 User3 -0.5 0.87 1 67
  • 68. Collaborative Filtering: 類似度計算 ユーザー-アイテム行列から 3つの類似度計算の手法 ◆コサインベース (Cosine-based similarity computation) ◆相関ベース (Correlation-based similarity computation) ◆調整コサインベース (Adjusted cosine-based similarity computation) 68
  • 69. 類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) Userごとの評価の振れ幅の補正 (Item i のUser評価平均)ではなく : User uの評価平均 を使用 調整コサイン行列 R: ItemのUser評価行列 成分 : Item i に対する User uの評価 : User数 69
  • 70. 類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) User評価平均 ①Userの評価平均からの差分 行列 からのずれ値 User1 User2 User3 Item1 0 -2/3 -2 Item2 1 -2/3 0 Item3 -1 4/3 2 70
  • 71. 類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) User評価平均 ①Userの評価平均からの差分 行列 からのずれ値 User1 User2 User3 Item1 0 -2/3 -2 Item2 1 -2/3 0 Item3 -1 4/3 2 Item間 相関行列 ②Item Vectorの規格化・内積 Item1 Item2 Item3 Item1 1 0.1754 -0.891 Item2 0.1754 1 0.604 Item3 -0.981 0.604 1 71
  • 72. 類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) ①Itemの評価平均からの差分 行列 User1 User2 User3 Item評価平均 Item1 1 1 -1 からのずれ値 Item2 1 -1 0 Item3 -5/2 0 4/3 72
  • 73. 類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) ①Itemの評価平均からの差分 行列 User1 User2 User3 Item評価平均 Item1 1 1 -1 からのずれ値 Item2 1 -1 0 Item3 -5/2 0 4/3 User間 相関行列 ②User Vectorの規格化・内積 User1 User2 User3 User1 1 -0.675 -0.884 User2 -0.675 1 -0.253 User3 -0.884 -0.253 1 73
  • 74. Collaborative Filtering: アルゴリズム アルゴリズム 1. 類似アイテム(またはユーザー)を見つける 2. 類似アイテム(またはユーザー)を利用し、予測する 74
  • 75. Collaborative Filtering: 評価予測 類似アイテム・ユーザーを利用し予測する 75
  • 76. Collaborative Filtering: 評価予測 類似アイテム・ユーザーを利用し予測する K近傍法 K個の近いアイテム・ユーザーの評価を 偏差を重み付けして和を取る 76
  • 77. Collaborative Filtering: 評価予測 類似アイテム・ユーザーを利用し予測する K近傍法 K個の近いアイテム・ユーザーの評価を 偏差を重み付けして和を取る ItemのUser評価行列 Riu User1 User2 User3 平均 Item1 3 2 1 2 Item2 4 2 3 3 Item3 2 4 5 11/3 平均 3 8/3 3 26/3 77
  • 78. Collaborative Filtering: 評価予測 類似アイテム・ユーザーを利用し予測する K近傍法 K個の近いアイテム・ユーザーの評価を 偏差を重み付けして和を取る ItemのUser評価行列 Riu User1 User2 User3 平均 Item1 3 2 1 2 Item2 4 2 3 3 Item3 2 4 5 11/3 平均 3 8/3 3 26/3 相関ベース類似度計算 User間 相関行列 Cuv User1 User2 User3 User1 1 -0.866 -0.5 User2 -0.866 1 0.87 User3 -0.5 0.87 1 78
  • 79. Collaborative Filtering: 評価予測 類似アイテム・ユーザーを利用し予測する K近傍法 K個の近いアイテム・ユーザーの評価を 偏差を重み付けして和を取る ItemのUser評価行列 Riu User1のItem1への評価期待値 User1 User2 User3 平均 =User1の平均評価 Item1 3 2 1 2 Item2 4 2 3 3 +User2の重みづき偏差 Item3 2 4 5 11/3 +User3の重みづき偏差 平均 3 8/3 3 26/3 =R1 相関ベース類似度計算 +C12/(C12+C13)*(R12 –R2) User間 相関行列 Cuv +C13/(C12+C13)*(R13 –R3) User1 User2 User3 User1 1 -0.866 -0.5 =4.2 User2 -0.866 1 0.87 User3 -0.5 0.87 1 79
  • 81. Amazon Collaborative Filtering 世界で最も知られているCollaborative Filtering Amazon.co.jp 検索・閲覧 レコメンデーション 81
  • 82. Amazon Collaborative Filtering 世界で最も知られているCollaborative Filtering ◆Item-Item Collaborative Filtering アイテムベース 同じアイテムを見たユーザーには、同じアイテムを推薦 ユーザー数に依存せずスケールする 処理 ①アイテム-推薦アイテムのテーブルをオフラインで作る ②ユーザーアクセス時にはテーブルを参照するだけ 82
  • 83. Amazon-Item-Item Collaborative Filtering Item-Item Collaborative Filtering アルゴリズム User1 User2 User3 User4 Item1 1 1 Item2 1 1 Item3 1 1 1 Item4 1 1 83
  • 84. Amazon-Item-Item Collaborative Filtering Item-Item Collaborative Filtering アルゴリズム 1. 空のItem-Item の行列を作る User1 User2 User3 User4 Item1 Item2 Item3 Item4 Item1 1 1 Item1 Item2 1 1 Item2 Item3 1 1 1 Item3 Item4 1 1 Item4 84
  • 85. Amazon-Item-Item Collaborative Filtering Item-Item Collaborative Filtering アルゴリズム 1. 空のItem-Item の行列を作る 2. 全アイテムに関し次の処理を行う 2-1. あるアイテム(親アイテム)を購入した顧客全てに対し 購入アイテム(子アイテム)をカウントする。 2-2. 親アイテム列・子アイテム行にカウント数を入れる 2-3. 親アイテム列のカウント数上位を推薦アイテムとする User1 User2 User3 User4 Item1 Item2 Item3 Item4 Item1 1 1 Item1 1 2 Item2 1 1 Item2 Item3 1 1 1 Item3 Item4 1 1 Item4 85
  • 86. Amazon-Item-Item Collaborative Filtering Item-Item Collaborative Filtering アルゴリズム 1. 空のItem-Item の行列を作る 2. 全アイテムに関し次の処理を行う 2-1. あるアイテム(親アイテム)を購入した顧客全てに対し 購入アイテム(子アイテム)をカウントする。 2-2. 親アイテム列・子アイテム行にカウント数を入れる 2-3. 親アイテム列のカウント数上位を推薦アイテムとする User1 User2 User3 User4 Item1 Item2 Item3 Item4 Item1 1 1 Item1 1 2 Item2 1 1 Item2 1 1 1 Item3 1 1 1 Item3 2 1 1 Item4 1 1 Item4 1 86
  • 87. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 88. Mahout Recommendation Recommender Documentation
  • 89. Mahout Recommendation Mahout Recommendation Sample public class MahoutRecommendationSample { public static void main(String[] args) throws Exception { //データ設定 DataModel model = new FileDataModel(new File("preference.csv")); //類似度設定 UserSimilarity similarity = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model); //Recommender Engine生成 (ここでは User Base) Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity); //ユーザー 1 に1つのアイテムを推薦 List<RecommendedItem> recommendations = recommender.recommend(1, 1); for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation); } } } 89 Mahout In Action
  • 90. Mahout Recommendation Mahout Recommender ◆User Based Recommender ◆Item Based Recommender ◆Knn Item Based Recommender ◆SVD Recommender ◆Tree Clustering Recommender ◆SlopeOne Recommender 90 Mahout In Action
  • 91. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 92. 分散処理フレームワーク:MapReduce MapがkeyとValueにデータを振り分け、Reduceがkeyごとに集計 分散処理を実現 User毎の集計での例 Map userA userD userA userC userB userD key 大量データに対する 3 7 1 2 6 5 value 分散演算 Shuffle & Sort Reduce userA userB userC userD 演算結果の集計 userA userA userB userC userD userD 3 1 6 2 7 5 userA userB userC userD 4 6 2 12 92
  • 93. Mahout RecommendJob 入力 userの評価データ 推薦対象データ movielens/prefs movielens/users UserId, ItemId, Preference (評価値) Userid 1,2,3 1 1,3,4 2 1,4,3 3 1,5,3 4 1,6,5 5 1,7,4 6 1,8,1 7 1,9,5 8 1,10,3 9 1,11,2 10 2,102,3 11 … … 93
  • 94. Mahout RecommenderJob 出力 推薦結果 movielens/output userid ¥t [itemid1: preferencePrediction1, itemid2, preferencePrediction2, …] userid itemid1 preferencePrediction1 1 [1315:5.0,1226:5.0,1194:5.0,1129:5.0,1115:5.0,1101:5.0,1098:5.0,1097:5.0,1073:5.0,1067:5.0] 2 [582:5.0,546:5.0,531:5.0,523:5.0,515:5.0,514:5.0,509:5.0,508:5.0,496:5.0,483:5.0] 3 [14:5.0,137:5.0,285:5.0,311:4.765625,539:4.7058825,905:4.7058825,896:4.6969695,.,,, ] 4 [1434:5.0,1024:5.0,1022:5.0,471:5.0,538:5.0,845:5.0,515:5.0,544:5.0,1265:5.0,873:5.0] 5 [1047:5.0,1035:5.0,1016:5.0,1014:5.0,1065:5.0,1079:5.0,1101:5.0,969:5.0,1110:5.0,959:5.0] 6 [1050:5.0,1021:5.0,1020:5.0,1011:5.0,1065:5.0,971:5.0,969:5.0,965:5.0,959:5.0,949:5.0] 7 [1411:5.0,1303:5.0,1267:5.0,1239:5.0,1228:5.0,1221:5.0,1217:5.0,1210:5.0,1203:5.0,1194:5.0] 8 [566:5.0,550:5.0,546:5.0,568:5.0,845:5.0,528:5.0,527:5.0,526:5.0,523:5.0,588:5.0] 94
  • 95. Mahout Distributed Recommender User Vector作成 User ごとに ItemId, 評価値のベクトルを分散集計 Key: UserId Map Value: (ItemId, Preference) keyA keyD keyA keyC keyB keyD key 大量データに対する val1 val2 val3 val4 val5 val6 value 分散演算 Shuffle & Sort Reduce keyA keyB keyC keyD 演算結果の集計 keyA keyA keyB keyC keyD keyD val1 val3 val5 val4 val6 val2 keyA keyB keyC keyD val1+ val5 val2+ val4 val3 val6 95
  • 96. Mahout Distributed Recommender: 分散処理例 共起行列の生成 (ItemId1, ItemId2) ごとに評価アイテム数を集計 Key: (ItemId1, ItemId2) Map Value: preference keyA keyD keyA keyC keyB keyD key 大量データに対する val1 val2 val3 val4 val5 val6 value 分散演算 Shuffle & Sort Reduce keyA keyB keyC keyD 演算結果の集計 keyA keyA keyB keyC keyD keyD val1 val3 val5 val4 val6 val2 keyA keyB keyC keyD val1+ val5 val2+ val4 val3 val6 96
  • 97. Mahout Distributed Recommender RecommenderJob の MapReduce実行 と HDFS入出力 Mahout In Action
  • 98. Mahout RecommendJob Recommender 実行例 コマンドライン実行 (RecommenderJob 呼出) $HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/mahout-core-0.5-job.jar ¥ org.apache.mahout.cf.taste.hadoop.item.RecommenderJob ¥ -Dmapred.output.dir=movielens/output ¥ -Dmapred.input.dir=movielens/prefs ¥ --usersFile movielens/users ¥ --similarityClassname SIMILARITY_COOCCURRENCE 意味 -Dmapred.output.dir= <出力ディレクトリのパス> ¥ -Dmapred.input.dir=<ユーザーのアイテム評価データ> ¥ --usersFile <レコメンド対象ユーザー> ¥ --similarityClassname <類似度算出法> 98
  • 99. Mahout RecommendJob 実行オプション(抜粋) オプション ( 短縮表記 ) 特徴 --numRecommendations (-n) 各ユーザーへの推薦数 --usersFile (-u) 推薦対象ユーザーのファイルパス --itemsFile (-i) 推薦対象アイテムのファイルパス --filterFile (-f) 推薦を除外するユーザー、アイテム組合せ指定 形式: (userid, itemid) --maxPrefsPerUser (-mp) 各ユーザーで用いる最大数評価 (上位から) --minPrefsPerUser (-mp) 各ユーザーで用いる最小評価数 (上位から) (Default : 1) --maxSimilaritiesPerItem (-m) 各アイテムで用いる最大類似アイテム数 --maxCooccurrencesPerItem (-mo) 各アイテムで用いる最大共起アイテム数 (Default : 100) --similarityClassname (-s) 用いる類似度 SIMILARITY_COOCCURRENCE SIMILARITY_EUCLIDEAN_DISTANCE, SIMILARITY_TANIMOTO_COEFFICIENT, SIMILARITY_LOGLIKELIHOOD, SIMILARITY_PEARSON_CORRELATION, SIMILARITY_UNCENTERED_COSINE SIMILARITY_UNCENTERED_ZERO_ASSUMING_COSINE, SIMILARITY_CITY_BLOCK 99
  • 100. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 101. 参考資料: ■ Apach Mahout http://mahout.apache.org http://cwiki.apache.org/MAHOUT http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms http://www.slideshare.net/gsingers/intro-to-apache-mahout ■ Mahout In Action 101
  • 102. 参考資料: 集合知イン・アクション 集合知プログラミング 102
  • 103. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に
  • 104. 最後に 蓄積されたデータを有効活用してきたい 104
  • 105. 最後に 蓄積されたデータを有効活用してきたい Google Group: http://groups.google.com/group/webmining-tokyo 105
  • 106. 最後に データマイニング+WEB勉強会 発表者を募集しています 連絡 Google Group: http://groups.google.com/group/webmining-tokyo Twitter : http://twitter.com/hamadakoichi 106
  • 108. AGENDA ◆講師紹介 ◆Mahoutとは ◆Recommendation ◆Collaborative Filtering ◆Mahout Recommendation ◆Mahout Distributed Recommendation ◆参考資料 ◆最後に