第5回データマイニング+WEB勉強会@東京
           2010/06/20




ベイジアンネット と レコメンデーション
   Bayesian network and Recommendation




          hamadakoichi
            濱田 晃一
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
hamadakoichi
   濱田晃一
http://iddy.jp/profile/hamadakoichi




                                      4
自己紹介:hamadakoichi 濱田晃一




                         5
自己紹介:hamadakoichi 濱田晃一




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

              主催者です



                         6
自己紹介: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          7
自己紹介:hamadakoichi 濱田晃一

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




                                    8
自己紹介:hamadakoichi 濱田晃一

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




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

  Youtube Channel: http://www.youtube.com/hamadakoichi   9
自己紹介:hamadakoichi 濱田晃一

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




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

  現在: 毎週末 3時間ダンスコーチ
  Youtube Channel: http://www.youtube.com/hamadakoichi   10
数理解析手法の実ビジネスへの適用
            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",




                                                                                                          11
数理解析手法の実ビジネスへの適用:活動例
                         活動例
                  活動の統一グラフモデルを構築・解析
                        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の所有関係を表す
                                                                                                                   12
数理解析手法の実ビジネスへの適用:活動例
                                              一品一様の業務プロセスの
                                            動的なプロセス制御数理体系を構築
  全体生産リードタイム中央値を                                                                                                                                                                                                 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   0            0   0               0   0               0   0           0   0            0   0               0   0
                                                                                                                                                                                                                                                              141.6h(5.9日)
                                                                                                                                                                                                                                                                00 00
                                            9:              9:               9:                  9:                  9:              9:               9:                  9:                  9:              9:               9:                  9:                  9:              9:
                                   /   20          /   27           /   04              /   11              /   18          /   25           /   01              /   08              /   15          /   22           /   29              /   06              /   13          /   20
                          /   09          /   09           /   10           /   10             /   10              /   10           /   11           /   11             /   11              /   11           /   11           /   12             /   12              /   12
                       04              04               04               04                 04                  04               04               04                 04                  04               04               04                 04                  04
                  20           20                  20               20              20                  20                  20               20              20                  20                  20               20              20                  20
                                                                                                                                             週 集 計 開 始 日 時




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

一品一様な業務プロセスを含む
統計解析・制御数理モデル
     ・統計的な有効変数算出
     ・統計数理モデル化
        -優先順位制御
        -実行タイミング制御
        -統計フィードバック
        -適正リソース量算出
     ・予測数理体系
論文(体系の一部)
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)                         14
参加者
  自己紹介Time

(1分以内ずつ:計30分程度)


                  15
@karubi さん 「Mahoutの協調フィルタ」
@yanashiさん「グラフ理論とレコメンデーション」

     の導入となる形で話します




                              16
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に

                                17
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
レコメンデーション
            各人の活動や関心にもとづき
            適した情報を提示・推薦する

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




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

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




                     提示・推薦




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




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




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

             メール送信   ブックマーク

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




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

             メール送信   ブックマーク

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

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




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




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

  アイテムの情報

アイテムのコンテンツ


      ユーザー          レコメンデーション     レコメンドされた
  プロファイル              システム        アイテム・ユーザー
年齢    性別
居住地   資産     …




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

  アイテムの情報

アイテムのコンテンツ


      ユーザー          レコメンデーション     レコメンドされた
  プロファイル              システム        アイテム・ユーザー
年齢    性別
居住地   資産     …

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

      ユーザー          レコメンデーション       レコメンドされた
  プロファイル              システム          アイテム・ユーザー
年齢    性別
居住地   資産     …

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

      ユーザー          レコメンデーション       レコメンドされた
  プロファイル              システム          アイテム・ユーザー
年齢    性別
居住地   資産     …

      ユーザー
 インタラクション
閲覧履歴 タグ付け
購入 保存 評価
メール送信履歴 …                                      30
レコメンデーションの戦略
           レコメンデーションを
        売り込みと様子伺いの間で行う

◆売り込み
   ユーザーの趣向にぴったり合った
   アイテムを推薦


◆様子伺い
   ユーザーの新たな趣向を見つけるため
   ユーザーの趣向に合わないアイテムを提示
   →例:いくつかのアイテムをランダムに選ぶなど

                            31
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
アイテムベース分析

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



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




         ユーザー
            1




                                     33
アイテムベース分析

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



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


   好む

         ユーザー
            1




                                     34
アイテムベース分析

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

            類似・高確率

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


   好む

         ユーザー
            1




                                     35
アイテムベース分析

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

            類似・高確率

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


   好む                  レコメンド

         ユーザー
            1




                                      36
ユーザーベース分析

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



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




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




                                                 37
ユーザーベース分析

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



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




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



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

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



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



                                          好む

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



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

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



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

                     レコメンド
                                          好む

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



                       類似
                                                 40
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
類似度算出法の種類

             類似度算出法の種類
         コンテンツベース と 協調フィルタリング

分析手法 分析・推薦対象     類似度算出の対象
                 コンテンツベース      協調フィルタリング

アイテム   アイテムの類似   アイテムの         ユーザー行動
ベース    アイテム      タームベクトル       (購入、閲覧、保存、評価、
                               ブックマークなど)

ユーザー   ユーザーの類似 ユーザープロファイルの
ベース    ユーザーが好む タームベクトル
       アイテム    (年齢、ユーザー、居住地、
                 資産)




                                           43
協調フィルタリング

                 協調フィルタリング
           ユーザー行動 (ユーザー・アイテム データ)を分析

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

      ユーザー         レコメンデーション       レコメンドされた
  プロファイル             システム          アイテム・ユーザー
年齢    性別
居住地   資産     …

      ユーザー
 インタラクション
閲覧履歴 タグ付け
購入 保存 評価
メール送信履歴 …                                     44
協調フィルタリング: アルゴリズム

              アルゴリズム



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



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




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

              アルゴリズム



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



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




                               46
協調フィルタリング: データ表現
                ユーザー行動を
         アイテムとユーザーのN次元ベクトルで表現
       アイテムの                      ユーザーの
     ユーザー評価ベクトル                 アイテム評価ベクトル
          User3                     Item3
                  Item1
                                            User1




 User1              User2   Item1                   Item2



                                                        47
協調フィルタリング: データ表現

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

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

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




                                        48
協調フィルタリング: データ表現

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

                例:アイテムのユーザー評価
                            アイテムのユーザー評価ベクトル
            User1   User2   User3   …
    Item1   3       2       1       …
    Item2   4       2       3       …
    Item3   2       4       5       …
    ….      …       …       …       …




                                          49
協調フィルタリング: データ表現

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

                  例:アイテムのユーザー評価
                              アイテムのユーザー評価ベクトル
              User1   User2   User3   …
    Item1     3       2       1       …
    Item2     4       2       3       …
    Item3     2       4       5       …
    ….        …       …       …       …

            ユーザーのアイテム評価ベクトル




                                            50
協調フィルタリング:類似度
             ベクトルの距離の近さから
          類似アイテム・類似ユーザーを抽出する


         アイテム類似度                     ユーザー類似度
           User3                      Item3

                   Item1

   Item1とItem2の                        User1とUser2の
   類似度(距離)                             類似度(距離)
                    Item2                         User2

 User1               User2   Item1                Item2
                                       User1

                                                      51
協調フィルタリング: 類似度計算
            ユーザー-アイテム行列から
            3つの類似度計算の手法

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


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

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


                                                     52
協調フィルタリング: 類似度計算
            ユーザー-アイテム行列から
            3つの類似度計算の手法

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


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

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


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

            コサインベースの類似度計算
        (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




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

            コサインベースの類似度計算
        (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
                                                      55
類似度の算出:コサインベース

            コサインベースの類似度計算
        (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




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

            コサインベースの類似度計算
        (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
                                                     57
協調フィルタリング: 類似度計算
            ユーザー-アイテム行列から
            3つの類似度計算の手法

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


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

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


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

                相関ベースの類似度計算
      (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数
                                                   59
類似度の算出:相関ベース

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


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




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

               相関ベースの類似度計算
     (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
                                                      61
類似度の算出:相関ベース

               相関ベースの類似度計算
     (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




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

               相関ベースの類似度計算
     (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
                                                  63
協調フィルタリング: 類似度計算
            ユーザー-アイテム行列から
            3つの類似度計算の手法

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


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

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


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

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

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




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

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

         調整コサインベースの類似度計算
    (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




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

         調整コサインベースの類似度計算
    (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
                                                     67
類似度の算出:調整コサインベース

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


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




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

         調整コサインベースの類似度計算
    (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
                                                      69
協調フィルタリング: アルゴリズム

              アルゴリズム



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



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




                               70
協調フィルタリング: 評価予測

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




                           71
協調フィルタリング: 評価予測

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




                             72
協調フィルタリング: 評価予測

              類似アイテム・ユーザーを利用し予測する
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




                                         73
協調フィルタリング: 評価予測

              類似アイテム・ユーザーを利用し予測する
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          74
協調フィルタリング: 評価予測

              類似アイテム・ユーザーを利用し予測する
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                                      75
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
Amazon協調フィルタリング

     世界で最も知られている協調フィルタリング


 Amazon.co.jp     検索・閲覧




                  レコメンデーション




                              77
Amazon協調フィルタリング

     世界で最も知られている協調フィルタリング

 ◆アイテム-アイテム協調フィルタリング
    アイテムベース
      同じアイテムを見たユーザーには、同じアイテムを推薦

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



                                  78
Amazon-アイテム-アイテム協調フィルタリング
             アイテム-アイテム協調フィルタリング
                   アルゴリズム




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

                                            79
Amazon-アイテム-アイテム協調フィルタリング
             アイテム-アイテム協調フィルタリング
                   アルゴリズム
  1. 空のアイテム-アイテム の行列を作る




            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

                                                                                    80
Amazon-アイテム-アイテム協調フィルタリング
             アイテム-アイテム協調フィルタリング
                   アルゴリズム
  1. 空のアイテム-アイテム の行列を作る

  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

                                                                                    81
Amazon-アイテム-アイテム協調フィルタリング
             アイテム-アイテム協調フィルタリング
                   アルゴリズム
  1. 空のアイテム-アイテム の行列を作る

  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

                                                                                    82
レコメンデーションの手法

            レコメンデーションの手法

分析手法 分析・推薦対象     類似度算出の対象
                 コンテンツベース      コラボレーションベース
                               (協調フィルタリング)
アイテム   アイテムの類似   アイテムの         ユーザー行動
ベース    アイテム      タームベクトル       (購入、閲覧、保存、評価、
                               ブックマークなど)

ユーザー   ユーザーの類似 ユーザープロファイルの
ベース    ユーザーが好む タームベクトル
       アイテム    (年齢、ユーザー、居住地、
                 資産)



                                             83
類似度の計算手法

                       利点と難点
類似度算出法     利点                         難点
コンテンツ      ◆少ないデータでも動作:               ◆コンテンツの質が評価不可:
ベース        行動履歴が少ない新規ユーザー・            タームベクトルのみ用いる。記事が
           アイテムに対しても適用できる。            良し悪しはアルゴリズムには分から
                                      ない。



協調フィルタリン   ◆コンテンツの質が評価可能:             ◆少ないデータの予測能力が
グ          例:PageRank(Google):リンク構造   低い:
           ◆展開が容易:           行動履歴が少ない新規ユーザー・
                             アイテムに対し精度が低い。
           ・言語に依存しない
                             (※通常、十分な数の評価がある
           ・画像、音楽、動画へも同様に適用
                             まで、新規ユーザー・アイテムを推
           アイテムをブラックボックスとして扱 薦しない)
           えるため。
           (コンテンツ情報を必要としない)
                                                    84
類似度の計算手法

                       利点と難点
類似度算出法     利点                         難点
コンテンツ      ◆少ないデータでも動作:               ◆コンテンツの質が評価不可:
ベース        行動履歴が少ない新規ユーザー・            タームベクトルのみ用いる。記事が
           アイテムに対しても適用できる。            良し悪しはアルゴリズムには分から
                                      ない。



協調フィルタリン   ◆コンテンツの質が評価可能:             ◆少ないデータの予測能力が
グ          例:PageRank(Google):リンク構造   低い:
           ◆展開が容易:           行動履歴が少ない新規ユーザー・
                             アイテムに対し精度が低い。
           ・言語に依存しない
                             (※通常、十分な数の評価がある
           ・画像、音楽、動画へも同様に適用
                             まで、新規ユーザー・アイテムを推
           アイテムをブラックボックスとして扱 薦しない)
           えるため。
           (コンテンツ情報を必要としない)
                                                    85
類似度の計算手法

                       利点と難点
類似度算出法     利点                         難点
コンテンツ      ◆少ないデータでも動作:               ◆コンテンツの質が評価不可:
ベース        行動履歴が少ない新規ユーザー・            タームベクトルのみ用いる。記事が
           アイテムに対しても適用できる。            良し悪しはアルゴリズムには分から
                                      ない。



協調フィルタリン   ◆コンテンツの質が評価可能:             ◆少ないデータの予測能力が
グ          例:PageRank(Google):リンク構造   低い:
           ◆展開が容易:           行動履歴が少ない新規ユーザー・
                             アイテムに対し精度が低い。
           ・言語に依存しない
                             (※通常、十分な数の評価がある
           ・画像、音楽、動画へも同様に適用
                             まで、新規ユーザー・アイテムを推
           アイテムをブラックボックスとして扱 薦しない)
           えるため。
           (コンテンツ情報を必要としない)
                                                    86
類似度の計算手法

                       利点と難点
類似度算出法     利点                         難点
コンテンツ      ◆少ないデータでも動作:               ◆コンテンツの質が評価不可:
ベース        行動履歴が少ない新規ユーザー・            タームベクトルのみ用いる。記事が
           アイテムに対しても適用できる。            良し悪しはアルゴリズムには分から
                                      ない。



協調フィルタリン   ◆コンテンツの質が評価可能:             ◆少ないデータの予測能力が
グ          例:PageRank(Google):リンク構造   低い:
           ◆展開が容易:           行動履歴が少ない新規ユーザー・
                             アイテムに対し精度が低い。
           ・言語に依存しない
                             (※通常、十分な数の評価がある
           ・画像、音楽、動画へも同様に適用
                             まで、新規ユーザー・アイテムを推
           アイテムをブラックボックスとして扱 薦しない)
           えるため。
           (コンテンツ情報を必要としない)
                                                    87
類似度の計算手法

                       利点と難点
類似度算出法     利点                         難点
コンテンツ      ◆少ないデータでも動作:               ◆コンテンツの質が評価不可:
ベース        行動履歴が少ない新規ユーザー・            タームベクトルのみ用いる。記事が
           アイテムに対しても適用できる。            良し悪しはアルゴリズムには分から
                                      ない。



協調フィルタリン   ◆コンテンツの質が評価可能:             ◆少ないデータの予測能力が
グ          例:PageRank(Google):リンク構造   低い:
           ◆展開が容易:           行動履歴が少ない新規ユーザー・
                             アイテムに対し精度が低い。
           ・言語に依存しない
                             (※通常、十分な数の評価がある
           ・画像、音楽、動画へも同様に適用
                             まで、新規ユーザー・アイテムを推
           アイテムをブラックボックスとして扱 薦しない)
           えるため。
           (コンテンツ情報を必要としない)
                                                    88
類似度の計算手法

                       利点と難点
類似度算出法     利点                         難点
コンテンツ      ◆少ないデータでも動作:               ◆コンテンツの質が評価不可:
ベース        行動履歴が少ない新規ユーザー・            タームベクトルのみ用いる。記事が
           アイテムに対しても適用できる。            良し悪しはアルゴリズムには分から
                                      ない。



協調フィルタリン   ◆コンテンツの質が評価可能:             ◆少ないデータの予測能力が
グ          例:PageRank(Google):リンク構造   低い:
           ◆展開が容易:           行動履歴が少ない新規ユーザー・
                             アイテムに対し精度が低い。
           ・言語に依存しない
                             (※通常、十分な数の評価がある
           ・画像、音楽、動画へも同様に適用
                             まで、新規ユーザー・アイテムを推
           アイテムをブラックボックスとして扱 薦しない)
           えるため。
           (コンテンツ情報を必要としない)
                                                    89
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
ベイジアンネットワークとは
         ベイジアンネットワーク
      事象間の依存関係を表した確率グラフ




                          92
ベイジアンネットワークとは
         ベイジアンネットワーク
      事象間の依存関係を表した確率グラフ
    ある事象の発生時の他事象の発生確率を計算できる




                              93
ベイジアンネットワークとは
         ベイジアンネットワーク
      事象間の依存関係を表した確率グラフ
    ある事象の発生時の他事象の発生確率を計算できる
               X
                          事象X
              PYX         事象間の条件付確率
          X         Y     Xの発生後にYが発生する確率

                          B     PFB   F
                    PBA                   PEF
           A                  PFC               E
                    PCA                   PED
                          C PDC D
      有向非循環グラフ(DAG: Directed Acyclic Graph)を構築      94
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
ベイジアンネットワークによるレコメンデーション




 実績




                          96
ベイジアンネットワークによるレコメンデーション



      構造学習
 実績     ベイジアンネットワーク
         事象間の確率グラフ
             B   F

        A

            C    D




                          97
ベイジアンネットワークによるレコメンデーション



      構造学習
 実績     ベイジアンネットワーク
         事象間の確率グラフ
             B   F

        A            E

            C    D

                 事象発生


                     A   D


                             98
ベイジアンネットワークによるレコメンデーション



      構造学習               確率推論
 実績     ベイジアンネットワーク               発生確率
         事象間の確率グラフ
             B   F                B   F

        A            E        A           E

            C    D                C   D

                 事象発生


                     A    D


                                              99
ベイジアンネットワークによるレコメンデーション



      構造学習               確率推論             推薦
 実績     ベイジアンネットワーク               発生確率        推薦対象
         事象間の確率グラフ                             高確率

             B   F                B   F          F
                                                 B
        A            E        A           E
                                                 E
            C    D                C   D          C

                 事象発生


                     A    D


                                                     100
ベイジアンネットワークによるレコメンデーション



      構造学習               確率推論             推薦
 実績     ベイジアンネットワーク               発生確率        推薦対象
         事象間の確率グラフ                             高確率

             B   F                B   F          F
                                                 B
        A            E        A           E
                                                 E
            C    D                C   D          C

                 事象発生


                     A    D


                                                     101
ベイジアンネットワークによるレコメンデーション



      構造学習               確率推論             推薦
 実績     ベイジアンネットワーク               発生確率        推薦対象
         事象間の確率グラフ                             高確率

             B   F                B   F          F
                                                 B
        A            E        A           E
                                                 E
            C    D                C   D          C

                 事象発生


                     A    D


                                                     102
構造学習アルゴリズム例




              103
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm




                                                     104
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
     大規模データにも適し予測効果がよいとされている
        計算量がノード数に対し高々 O(N^2)




                                                     105
構造学習アルゴリズム例

                 MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
        大規模データにも適し予測効果がよいとされている
           計算量がノード数に対し高々 O(N^2)

    条件付確率が一番大きくなるSpanning Treeを構成する
                        Spanning Tree
                        グラフ全てのノードを含み構成される木
                                              B
    A    C   E                         PAB         PCB
                                   A                     C
    B    D   F                  PDA          PEA         PFC
                               D               E         F     106
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
                                             A   B   …
 ①データから全事象組合せ N(N-1)/2 の                 A

  相互情報量を算出する (N:事象数)                     B
                                         …




                                                         107
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
                                             A   B   …
 ①データから全事象組合せ N(N-1)/2 の                 A

  相互情報量を算出する (N:事象数)                     B
                                         …


 ②最も大きな相互情報量を持つ枝を
  木に入れる




                                                         108
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
                                             A   B   …
 ①データから全事象組合せ N(N-1)/2 の                 A

  相互情報量を算出する (N:事象数)                     B
                                         …


 ②最も大きな相互情報量を持つ枝を
  木に入れる



 ③次に大きな相互情報量を持つ枝を木に加える
  もしループができる場合は、枝を捨てる
       N-1個の枝が木に加わるまで繰り返す




                                                         109
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
                                             A   B   …
 ①データから全事象組合せ N(N-1)/2 の                 A

  相互情報量を算出する (N:事象数)                     B
                                         …


 ②最も大きな相互情報量を持つ枝を
  木に入れる



 ③次に大きな相互情報量を持つ枝を木に加える
  もしループができる場合は、枝を捨てる
       N-1個の枝が木に加わるまで繰り返す


 ④最大の発生確率を持つ事象をルートノードとし
  根から葉に枝へ向けるように、枝を方向付ける
                                                         110
構造学習アルゴリズム例

               MWSTアルゴリズム
   Maximum Weighted Spanning Tree (MWST) Algorithm
                                             A   B   …
 ①データから全事象組合せ N(N-1)/2 の                 A

  相互情報量を算出する (N:事象数)                     B
                                         …


 ②最も大きな相互情報量を持つ枝を
  木に入れる



 ③次に大きな相互情報量を持つ枝を木に加える
  もしループができる場合は、枝を捨てる
       N-1個の枝が木に加わるまで繰り返す


 ④最大の発生確率を持つ要素を根ノードとし
  根から葉に枝へ向けるように、枝を方向付ける
                                                         111
ベイジアンネットワークによるレコメンデーション



      構造学習               確率推論             推薦
 実績     ベイジアンネットワーク               発生確率        推薦対象
         事象間の確率グラフ                             高確率

             B   F                B   F          F
                                                 B
        A            E        A           E
                                                 E
            C    D                C   D          C

                 事象発生


                     A    D


                                                     112
確率推論アルゴリズム例

     Pearl's Passage Passing Algorithm
    高速かつ厳密に全ノードの周辺事後確率を求めることができる


  ①証拠データを与えられたノードから
   周辺ノードへ向けてのメッセージ送信を行う
                                 B       F

  ②メッセージを受信したノードは            A               E
   受信したメッセージを用いて、
   自分の周辺事後確率を更新する                C       D

  ③周辺事後確率を更新したノードは、
   メッセージの送信元以外の
   自分の周辺ノードにメッセージ送信する

      全てのノードの周辺事後確率を更新する


                                                 113
詳しくは3Talk目の
    @yanashiさん
グラフ理論とレコメンデーションで




                   114
例:ページ推薦

          閲覧確率の計算


 閲覧したページを
 ベイジアンネットワークに与え推論、閲覧確率を算出

 与えられた閲覧確率から閲覧回数の期待値を求める

 期待値が大きいページからユーザーに推薦


                            115
ベイズ レコメンデーションの種類


   ユーザー・アイテム・ベイジアン
      ・ユーザーが評価したアイテムの「メタデータ」と
       他アイテムの「メタデータ」を比較する
      ・他アイテムを選ぶ確率を算出する

   ユーザー・ユーザー・ベイジアン
      ・ユーザーが好むアイテムどうしのメタデータを比較
      ・ユーザーどうしの好みの近さを算出する

   アイテム・アイテム・ベイジアン
      ・アイテムメタデータを比較
      ・商品ごとの近さを算出
                                 116
AGENDA

   ◆自己紹介
   ◆レコメンデーションとは
     ●レコメンデーションとは
     ●2つのレコメンド経路
   ◆協調フィルタリング
     ●協調フィルタリングの体系
     ●Amazon協調フィルタリング
   ◆ベイジアンネットワークによるレコメンデーション
     ●ベイジアンネットワーク
     ●ベイジアンネットワークによるレコメンデーション
   ◆最後に
最後に

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




                           118
最後に

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




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

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




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




                 121
目的: データマイニング+WEB勉強会@東京
        データマイニングの方法論を用い
     蓄積されたデータを有効活用していく方法を学ぶ
                                               統計解析
               Web API
                                             データマイニング
             Amazon Web Service
               楽天 Web Service            対応分析        時系列分析
    Twitter API Recruit Web Service          回帰分析
                  Yahoo! Web Service                   クラスター分析
    はてな Web Service                                       判別分析
                                         主成分分析 因子分析
    (Bookmark/Graph/Keyword,…)
                                             カーネル法
       Google Data API                            樹木モデル
       (Calendar/Maps/BookSearch/
        FinancePortfolioData,…)                   ニューラルネットワーク
                                                 サポートベクターマシン
                 …        免疫型最適化       Particle Swam    …
                         Memetic           Ant Colony
                         遺伝的   熱力学的
                              シミュレーテドアニーリング
                               力学モデルによる最適化
                         タブーサーチ    グラフ
                                               …
                                    最適解探索
                                    アルゴリズム
                                                                 122
AGENDA
         ◆自己紹介
         ◆ソーシャルウェブとレコメンデーション
         ◆レコメンデーション
          ●レコメンデーションとは
          ●2つのレコメンド経路
          ●類似度によるレコメンド手法
           ○コンテンツベースフィルタリング
           ○協調フィルタリング
          ●その他のレコメンド手法
          ●開発用ライブラリ (Java)
         ◆最後に
                               123
推薦文献




       124
推薦文献

       確率モデルによるWebデータ解析法
       - データマイニング技法からe-コマースまで




       パターン認識と機械学習 下




                                125
推薦文献

       集合知イン・アクション




       集合知プログラミング




                     126

ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京

  • 1.
    第5回データマイニング+WEB勉強会@東京 2010/06/20 ベイジアンネット と レコメンデーション Bayesian network and Recommendation hamadakoichi 濱田 晃一
  • 2.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 3.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 4.
    hamadakoichi 濱田晃一 http://iddy.jp/profile/hamadakoichi 4
  • 5.
  • 6.
  • 7.
    自己紹介: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 7
  • 8.
    自己紹介:hamadakoichi 濱田晃一 文部大臣に褒められた 元 文部大臣・法務大臣 六法全書著者・元法学政治学研究科長 森山眞弓さん 菅野和夫さん 8
  • 9.
    自己紹介:hamadakoichi 濱田晃一 Los Angelesでプロダンサーに褒められた ・HIP HOP/House ダンス歴13年 ・ダンス開始後 1年半でL.A.でプロダンサーに褒められる Youtube Channel: http://www.youtube.com/hamadakoichi 9
  • 10.
    自己紹介:hamadakoichi 濱田晃一 毎週末3時間ダンスコーチをしています ■過去、東京と京都でも ダンス部を創設。 コーチをしていました 駒場物理ダンス部 京都大学基礎物理学研究所ダンス部 部長兼コーチ 部長兼コーチ 現在: 毎週末 3時間ダンスコーチ Youtube Channel: http://www.youtube.com/hamadakoichi 10
  • 11.
    数理解析手法の実ビジネスへの適用 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", 11
  • 12.
    数理解析手法の実ビジネスへの適用:活動例 活動例 活動の統一グラフモデルを構築・解析 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の所有関係を表す 12
  • 13.
    数理解析手法の実ビジネスへの適用:活動例 一品一様の業務プロセスの 動的なプロセス制御数理体系を構築 全体生産リードタイム中央値を 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 0 0 0 0 0 0 0 0 0 0 0 0 0 141.6h(5.9日) 00 00 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: / 20 / 27 / 04 / 11 / 18 / 25 / 01 / 08 / 15 / 22 / 29 / 06 / 13 / 20 / 09 / 09 / 10 / 10 / 10 / 10 / 11 / 11 / 11 / 11 / 11 / 12 / 12 / 12 04 04 04 04 04 04 04 04 04 04 04 04 04 04 20 20 20 20 20 20 20 20 20 20 20 20 20 20 週 集 計 開 始 日 時 13
  • 14.
    数理解析手法の実ビジネスへの適用:活動例 ビジネスとともに 学術分野でも貢献 変動性から生じる動的な課題 ・リソースの競合 ・滞留 ・納期遅延 … 一品一様な業務プロセスを含む 統計解析・制御数理モデル ・統計的な有効変数算出 ・統計数理モデル化 -優先順位制御 -実行タイミング制御 -統計フィードバック -適正リソース量算出 ・予測数理体系 論文(体系の一部) 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) 14
  • 15.
  • 16.
  • 17.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に 17
  • 18.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 19.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 20.
    レコメンデーション 各人の活動や関心にもとづき 適した情報を提示・推薦する 例:Amazon.co.jp 検索・閲覧 20
  • 21.
    レコメンデーション 各人の活動や関心にもとづき 適した情報を提示・推薦する 例:Amazon.co.jp 検索・閲覧 提示・推薦 21
  • 22.
    レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 22
  • 23.
    レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 ○○ = ユーザーアクション 23
  • 24.
    レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 ○○ = ユーザーアクション 視聴 購入 閲覧 保存 メール送信 ブックマーク お気に入りへの追加 共有 作成 24
  • 25.
    レコメンデーション例 「このアイテムを○○したユーザーは これらのアイテムについても○○しています」 ○○ = ユーザーアクション 視聴 購入 閲覧 保存 メール送信 ブックマーク お気に入りへの追加 共有 作成 例 ◆この動画を「視聴」したユーザーはこちらの動画も「視聴」しています ◆この記事に関連した新しいアイテムはこちらです ◆あなたに似たユーザーはこちらです ◆こちらの商品にも関心がありませんか? 25
  • 26.
    レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 レコメンデーション レコメンドされた システム アイテム・ユーザー 26
  • 27.
    レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテムの情報 アイテムのコンテンツ ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … 27
  • 28.
    レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテムの情報 アイテムのコンテンツ ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 28
  • 29.
    レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテム提示の アイテムの情報 コンテキスト アイテムのコンテンツ 検討中アイテムの カテゴリ … ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 29
  • 30.
    レコメンデーションエンジンの入出力 レコメンデーションエンジンの 入出力 アイテム提示の アイテムの情報 コンテキスト アイテムのコンテンツ 検討中アイテムの カテゴリ … ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 30
  • 31.
    レコメンデーションの戦略 レコメンデーションを 売り込みと様子伺いの間で行う ◆売り込み ユーザーの趣向にぴったり合った アイテムを推薦 ◆様子伺い ユーザーの新たな趣向を見つけるため ユーザーの趣向に合わないアイテムを提示 →例:いくつかのアイテムをランダムに選ぶなど 31
  • 32.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 33.
    アイテムベース分析 アイテムベース アイテムの類似アイテムを分析・推薦 アイテム アイテム アイテム アイテム A B C D ユーザー 1 33
  • 34.
    アイテムベース分析 アイテムベース アイテムの類似アイテムを分析・推薦 アイテム アイテム アイテム アイテム A B C D 好む ユーザー 1 34
  • 35.
    アイテムベース分析 アイテムベース アイテムの類似アイテムを分析・推薦 類似・高確率 アイテム アイテム アイテム アイテム A B C D 好む ユーザー 1 35
  • 36.
    アイテムベース分析 アイテムベース アイテムの類似アイテムを分析・推薦 類似・高確率 アイテム アイテム アイテム アイテム A B C D 好む レコメンド ユーザー 1 36
  • 37.
    ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D ユーザー ユーザー ユーザー 1 2 3 37
  • 38.
    ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D ユーザー ユーザー ユーザー 1 2 3 類似 38
  • 39.
    ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D 好む ユーザー ユーザー ユーザー 1 2 3 類似 39
  • 40.
    ユーザーベース分析 ユーザーベース 類似ユーザーを分析、好むアイテムを推薦 アイテム アイテム アイテム アイテム A B C D レコメンド 好む ユーザー ユーザー ユーザー 1 2 3 類似 40
  • 41.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 42.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 43.
    類似度算出法の種類 類似度算出法の種類 コンテンツベース と 協調フィルタリング 分析手法 分析・推薦対象 類似度算出の対象 コンテンツベース 協調フィルタリング アイテム アイテムの類似 アイテムの ユーザー行動 ベース アイテム タームベクトル (購入、閲覧、保存、評価、 ブックマークなど) ユーザー ユーザーの類似 ユーザープロファイルの ベース ユーザーが好む タームベクトル アイテム (年齢、ユーザー、居住地、 資産) 43
  • 44.
    協調フィルタリング 協調フィルタリング ユーザー行動 (ユーザー・アイテム データ)を分析 アイテム提示の アイテムの情報 コンテキスト アイテムのコンテンツ 検討中アイテムの カテゴリ … ユーザー レコメンデーション レコメンドされた プロファイル システム アイテム・ユーザー 年齢 性別 居住地 資産 … ユーザー インタラクション 閲覧履歴 タグ付け 購入 保存 評価 メール送信履歴 … 44
  • 45.
    協調フィルタリング: アルゴリズム アルゴリズム 1. 類似アイテム(またはユーザー)を見つける 2. 類似アイテム(またはユーザー)を利用し、予測する 45
  • 46.
    協調フィルタリング: アルゴリズム アルゴリズム 1. 類似アイテム(またはユーザー)を見つける 2. 類似アイテム(またはユーザー)を利用し、予測する 46
  • 47.
    協調フィルタリング: データ表現 ユーザー行動を アイテムとユーザーのN次元ベクトルで表現 アイテムの ユーザーの ユーザー評価ベクトル アイテム評価ベクトル User3 Item3 Item1 User1 User1 User2 Item1 Item2 47
  • 48.
    協調フィルタリング: データ表現 ユーザー-アイテム行列を扱う 例:アイテムのユーザー評価 User1 User2 User3 … Item1 3 2 1 … Item2 4 2 3 … Item3 2 4 5 … …. … … … … 48
  • 49.
    協調フィルタリング: データ表現 ユーザー-アイテム行列を扱う 例:アイテムのユーザー評価 アイテムのユーザー評価ベクトル User1 User2 User3 … Item1 3 2 1 … Item2 4 2 3 … Item3 2 4 5 … …. … … … … 49
  • 50.
    協調フィルタリング: データ表現 ユーザー-アイテム行列を扱う 例:アイテムのユーザー評価 アイテムのユーザー評価ベクトル User1 User2 User3 … Item1 3 2 1 … Item2 4 2 3 … Item3 2 4 5 … …. … … … … ユーザーのアイテム評価ベクトル 50
  • 51.
    協調フィルタリング:類似度 ベクトルの距離の近さから 類似アイテム・類似ユーザーを抽出する アイテム類似度 ユーザー類似度 User3 Item3 Item1 Item1とItem2の User1とUser2の 類似度(距離) 類似度(距離) Item2 User2 User1 User2 Item1 Item2 User1 51
  • 52.
    協調フィルタリング: 類似度計算 ユーザー-アイテム行列から 3つの類似度計算の手法 ◆コサインベース (Cosine-based similarity computation) ◆相関ベース (Correlation-based similarity computation) ◆調整コサインベース (Adjusted cosine-based similarity computation) 52
  • 53.
    協調フィルタリング: 類似度計算 ユーザー-アイテム行列から 3つの類似度計算の手法 ◆コサインベース (Cosine-based similarity computation) ◆相関ベース (Correlation-based similarity computation) ◆調整コサインベース (Adjusted cosine-based similarity computation) 53
  • 54.
    類似度の算出:コサインベース コサインベースの類似度計算 (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 54
  • 55.
    類似度の算出:コサインベース コサインベースの類似度計算 (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 55
  • 56.
    類似度の算出:コサインベース コサインベースの類似度計算 (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 56
  • 57.
    類似度の算出:コサインベース コサインベースの類似度計算 (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 57
  • 58.
    協調フィルタリング: 類似度計算 ユーザー-アイテム行列から 3つの類似度計算の手法 ◆コサインベース (Cosine-based similarity computation) ◆相関ベース (Correlation-based similarity computation) ◆調整コサインベース (Adjusted cosine-based similarity computation) 58
  • 59.
    類似度の算出:相関ベース 相関ベースの類似度計算 (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数 59
  • 60.
    類似度の算出:相関ベース 相関ベースの類似度計算 (Correlation-based similarity computation) ①Itemの評価平均からの差分 行列 User1 User2 User3 評価平均 Item1 1 0 -1 からのずれ値 Item2 1 -1 0 Item3 -5/3 1/3 4/3 60
  • 61.
    類似度の算出:相関ベース 相関ベースの類似度計算 (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 61
  • 62.
    類似度の算出:相関ベース 相関ベースの類似度計算 (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 62
  • 63.
    類似度の算出:相関ベース 相関ベースの類似度計算 (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 63
  • 64.
    協調フィルタリング: 類似度計算 ユーザー-アイテム行列から 3つの類似度計算の手法 ◆コサインベース (Cosine-based similarity computation) ◆相関ベース (Correlation-based similarity computation) ◆調整コサインベース (Adjusted cosine-based similarity computation) 64
  • 65.
    類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) Userごとの評価の振れ幅の補正 (Item i のUser評価平均)ではなく : User uの評価平均 を使用 調整コサイン行列 R: ItemのUser評価行列 成分 : Item i に対する User uの評価 : User数 65
  • 66.
    類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (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 66
  • 67.
    類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (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 67
  • 68.
    類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (Adjusted cosine-based similarity computation) ①Itemの評価平均からの差分 行列 User1 User2 User3 Item評価平均 Item1 1 1 -1 からのずれ値 Item2 1 -1 0 Item3 -5/2 0 4/3 68
  • 69.
    類似度の算出:調整コサインベース 調整コサインベースの類似度計算 (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 69
  • 70.
    協調フィルタリング: アルゴリズム アルゴリズム 1. 類似アイテム(またはユーザー)を見つける 2. 類似アイテム(またはユーザー)を利用し、予測する 70
  • 71.
    協調フィルタリング: 評価予測 類似アイテム・ユーザーを利用し予測する 71
  • 72.
    協調フィルタリング: 評価予測 類似アイテム・ユーザーを利用し予測する K近傍法 K個の近いアイテム・ユーザーの評価を 偏差を重み付けして和を取る 72
  • 73.
    協調フィルタリング: 評価予測 類似アイテム・ユーザーを利用し予測する 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 73
  • 74.
    協調フィルタリング: 評価予測 類似アイテム・ユーザーを利用し予測する 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 74
  • 75.
    協調フィルタリング: 評価予測 類似アイテム・ユーザーを利用し予測する 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 75
  • 76.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 77.
    Amazon協調フィルタリング 世界で最も知られている協調フィルタリング Amazon.co.jp 検索・閲覧 レコメンデーション 77
  • 78.
    Amazon協調フィルタリング 世界で最も知られている協調フィルタリング ◆アイテム-アイテム協調フィルタリング アイテムベース 同じアイテムを見たユーザーには、同じアイテムを推薦 ユーザー数に依存せずスケールする 処理 ①アイテム-推薦アイテムのテーブルをオフラインで作る ②ユーザーアクセス時にはテーブルを参照するだけ 78
  • 79.
    Amazon-アイテム-アイテム協調フィルタリング アイテム-アイテム協調フィルタリング アルゴリズム User1 User2 User3 User4 Item1 1 1 Item2 1 1 Item3 1 1 1 Item4 1 1 79
  • 80.
    Amazon-アイテム-アイテム協調フィルタリング アイテム-アイテム協調フィルタリング アルゴリズム 1. 空のアイテム-アイテム の行列を作る 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 80
  • 81.
    Amazon-アイテム-アイテム協調フィルタリング アイテム-アイテム協調フィルタリング アルゴリズム 1. 空のアイテム-アイテム の行列を作る 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 81
  • 82.
    Amazon-アイテム-アイテム協調フィルタリング アイテム-アイテム協調フィルタリング アルゴリズム 1. 空のアイテム-アイテム の行列を作る 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 82
  • 83.
    レコメンデーションの手法 レコメンデーションの手法 分析手法 分析・推薦対象 類似度算出の対象 コンテンツベース コラボレーションベース (協調フィルタリング) アイテム アイテムの類似 アイテムの ユーザー行動 ベース アイテム タームベクトル (購入、閲覧、保存、評価、 ブックマークなど) ユーザー ユーザーの類似 ユーザープロファイルの ベース ユーザーが好む タームベクトル アイテム (年齢、ユーザー、居住地、 資産) 83
  • 84.
    類似度の計算手法 利点と難点 類似度算出法 利点 難点 コンテンツ ◆少ないデータでも動作: ◆コンテンツの質が評価不可: ベース 行動履歴が少ない新規ユーザー・ タームベクトルのみ用いる。記事が アイテムに対しても適用できる。 良し悪しはアルゴリズムには分から ない。 協調フィルタリン ◆コンテンツの質が評価可能: ◆少ないデータの予測能力が グ 例:PageRank(Google):リンク構造 低い: ◆展開が容易: 行動履歴が少ない新規ユーザー・ アイテムに対し精度が低い。 ・言語に依存しない (※通常、十分な数の評価がある ・画像、音楽、動画へも同様に適用 まで、新規ユーザー・アイテムを推 アイテムをブラックボックスとして扱 薦しない) えるため。 (コンテンツ情報を必要としない) 84
  • 85.
    類似度の計算手法 利点と難点 類似度算出法 利点 難点 コンテンツ ◆少ないデータでも動作: ◆コンテンツの質が評価不可: ベース 行動履歴が少ない新規ユーザー・ タームベクトルのみ用いる。記事が アイテムに対しても適用できる。 良し悪しはアルゴリズムには分から ない。 協調フィルタリン ◆コンテンツの質が評価可能: ◆少ないデータの予測能力が グ 例:PageRank(Google):リンク構造 低い: ◆展開が容易: 行動履歴が少ない新規ユーザー・ アイテムに対し精度が低い。 ・言語に依存しない (※通常、十分な数の評価がある ・画像、音楽、動画へも同様に適用 まで、新規ユーザー・アイテムを推 アイテムをブラックボックスとして扱 薦しない) えるため。 (コンテンツ情報を必要としない) 85
  • 86.
    類似度の計算手法 利点と難点 類似度算出法 利点 難点 コンテンツ ◆少ないデータでも動作: ◆コンテンツの質が評価不可: ベース 行動履歴が少ない新規ユーザー・ タームベクトルのみ用いる。記事が アイテムに対しても適用できる。 良し悪しはアルゴリズムには分から ない。 協調フィルタリン ◆コンテンツの質が評価可能: ◆少ないデータの予測能力が グ 例:PageRank(Google):リンク構造 低い: ◆展開が容易: 行動履歴が少ない新規ユーザー・ アイテムに対し精度が低い。 ・言語に依存しない (※通常、十分な数の評価がある ・画像、音楽、動画へも同様に適用 まで、新規ユーザー・アイテムを推 アイテムをブラックボックスとして扱 薦しない) えるため。 (コンテンツ情報を必要としない) 86
  • 87.
    類似度の計算手法 利点と難点 類似度算出法 利点 難点 コンテンツ ◆少ないデータでも動作: ◆コンテンツの質が評価不可: ベース 行動履歴が少ない新規ユーザー・ タームベクトルのみ用いる。記事が アイテムに対しても適用できる。 良し悪しはアルゴリズムには分から ない。 協調フィルタリン ◆コンテンツの質が評価可能: ◆少ないデータの予測能力が グ 例:PageRank(Google):リンク構造 低い: ◆展開が容易: 行動履歴が少ない新規ユーザー・ アイテムに対し精度が低い。 ・言語に依存しない (※通常、十分な数の評価がある ・画像、音楽、動画へも同様に適用 まで、新規ユーザー・アイテムを推 アイテムをブラックボックスとして扱 薦しない) えるため。 (コンテンツ情報を必要としない) 87
  • 88.
    類似度の計算手法 利点と難点 類似度算出法 利点 難点 コンテンツ ◆少ないデータでも動作: ◆コンテンツの質が評価不可: ベース 行動履歴が少ない新規ユーザー・ タームベクトルのみ用いる。記事が アイテムに対しても適用できる。 良し悪しはアルゴリズムには分から ない。 協調フィルタリン ◆コンテンツの質が評価可能: ◆少ないデータの予測能力が グ 例:PageRank(Google):リンク構造 低い: ◆展開が容易: 行動履歴が少ない新規ユーザー・ アイテムに対し精度が低い。 ・言語に依存しない (※通常、十分な数の評価がある ・画像、音楽、動画へも同様に適用 まで、新規ユーザー・アイテムを推 アイテムをブラックボックスとして扱 薦しない) えるため。 (コンテンツ情報を必要としない) 88
  • 89.
    類似度の計算手法 利点と難点 類似度算出法 利点 難点 コンテンツ ◆少ないデータでも動作: ◆コンテンツの質が評価不可: ベース 行動履歴が少ない新規ユーザー・ タームベクトルのみ用いる。記事が アイテムに対しても適用できる。 良し悪しはアルゴリズムには分から ない。 協調フィルタリン ◆コンテンツの質が評価可能: ◆少ないデータの予測能力が グ 例:PageRank(Google):リンク構造 低い: ◆展開が容易: 行動履歴が少ない新規ユーザー・ アイテムに対し精度が低い。 ・言語に依存しない (※通常、十分な数の評価がある ・画像、音楽、動画へも同様に適用 まで、新規ユーザー・アイテムを推 アイテムをブラックボックスとして扱 薦しない) えるため。 (コンテンツ情報を必要としない) 89
  • 90.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 91.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 92.
    ベイジアンネットワークとは ベイジアンネットワーク 事象間の依存関係を表した確率グラフ 92
  • 93.
    ベイジアンネットワークとは ベイジアンネットワーク 事象間の依存関係を表した確率グラフ ある事象の発生時の他事象の発生確率を計算できる 93
  • 94.
    ベイジアンネットワークとは ベイジアンネットワーク 事象間の依存関係を表した確率グラフ ある事象の発生時の他事象の発生確率を計算できる X 事象X PYX 事象間の条件付確率 X Y Xの発生後にYが発生する確率 B PFB F PBA PEF A PFC E PCA PED C PDC D 有向非循環グラフ(DAG: Directed Acyclic Graph)を構築 94
  • 95.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 96.
  • 97.
    ベイジアンネットワークによるレコメンデーション 構造学習 実績 ベイジアンネットワーク 事象間の確率グラフ B F A C D 97
  • 98.
    ベイジアンネットワークによるレコメンデーション 構造学習 実績 ベイジアンネットワーク 事象間の確率グラフ B F A E C D 事象発生 A D 98
  • 99.
    ベイジアンネットワークによるレコメンデーション 構造学習 確率推論 実績 ベイジアンネットワーク 発生確率 事象間の確率グラフ B F B F A E A E C D C D 事象発生 A D 99
  • 100.
    ベイジアンネットワークによるレコメンデーション 構造学習 確率推論 推薦 実績 ベイジアンネットワーク 発生確率 推薦対象 事象間の確率グラフ 高確率 B F B F F B A E A E E C D C D C 事象発生 A D 100
  • 101.
    ベイジアンネットワークによるレコメンデーション 構造学習 確率推論 推薦 実績 ベイジアンネットワーク 発生確率 推薦対象 事象間の確率グラフ 高確率 B F B F F B A E A E E C D C D C 事象発生 A D 101
  • 102.
    ベイジアンネットワークによるレコメンデーション 構造学習 確率推論 推薦 実績 ベイジアンネットワーク 発生確率 推薦対象 事象間の確率グラフ 高確率 B F B F F B A E A E E C D C D C 事象発生 A D 102
  • 103.
  • 104.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm 104
  • 105.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm 大規模データにも適し予測効果がよいとされている 計算量がノード数に対し高々 O(N^2) 105
  • 106.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm 大規模データにも適し予測効果がよいとされている 計算量がノード数に対し高々 O(N^2) 条件付確率が一番大きくなるSpanning Treeを構成する Spanning Tree グラフ全てのノードを含み構成される木 B A C E PAB PCB A C B D F PDA PEA PFC D E F 106
  • 107.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm A B … ①データから全事象組合せ N(N-1)/2 の A 相互情報量を算出する (N:事象数) B … 107
  • 108.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm A B … ①データから全事象組合せ N(N-1)/2 の A 相互情報量を算出する (N:事象数) B … ②最も大きな相互情報量を持つ枝を 木に入れる 108
  • 109.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm A B … ①データから全事象組合せ N(N-1)/2 の A 相互情報量を算出する (N:事象数) B … ②最も大きな相互情報量を持つ枝を 木に入れる ③次に大きな相互情報量を持つ枝を木に加える もしループができる場合は、枝を捨てる N-1個の枝が木に加わるまで繰り返す 109
  • 110.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm A B … ①データから全事象組合せ N(N-1)/2 の A 相互情報量を算出する (N:事象数) B … ②最も大きな相互情報量を持つ枝を 木に入れる ③次に大きな相互情報量を持つ枝を木に加える もしループができる場合は、枝を捨てる N-1個の枝が木に加わるまで繰り返す ④最大の発生確率を持つ事象をルートノードとし 根から葉に枝へ向けるように、枝を方向付ける 110
  • 111.
    構造学習アルゴリズム例 MWSTアルゴリズム Maximum Weighted Spanning Tree (MWST) Algorithm A B … ①データから全事象組合せ N(N-1)/2 の A 相互情報量を算出する (N:事象数) B … ②最も大きな相互情報量を持つ枝を 木に入れる ③次に大きな相互情報量を持つ枝を木に加える もしループができる場合は、枝を捨てる N-1個の枝が木に加わるまで繰り返す ④最大の発生確率を持つ要素を根ノードとし 根から葉に枝へ向けるように、枝を方向付ける 111
  • 112.
    ベイジアンネットワークによるレコメンデーション 構造学習 確率推論 推薦 実績 ベイジアンネットワーク 発生確率 推薦対象 事象間の確率グラフ 高確率 B F B F F B A E A E E C D C D C 事象発生 A D 112
  • 113.
    確率推論アルゴリズム例 Pearl's Passage Passing Algorithm 高速かつ厳密に全ノードの周辺事後確率を求めることができる ①証拠データを与えられたノードから 周辺ノードへ向けてのメッセージ送信を行う B F ②メッセージを受信したノードは A E 受信したメッセージを用いて、 自分の周辺事後確率を更新する C D ③周辺事後確率を更新したノードは、 メッセージの送信元以外の 自分の周辺ノードにメッセージ送信する 全てのノードの周辺事後確率を更新する 113
  • 114.
    詳しくは3Talk目の @yanashiさん グラフ理論とレコメンデーションで 114
  • 115.
    例:ページ推薦 閲覧確率の計算 閲覧したページを ベイジアンネットワークに与え推論、閲覧確率を算出 与えられた閲覧確率から閲覧回数の期待値を求める 期待値が大きいページからユーザーに推薦 115
  • 116.
    ベイズ レコメンデーションの種類 ユーザー・アイテム・ベイジアン ・ユーザーが評価したアイテムの「メタデータ」と 他アイテムの「メタデータ」を比較する ・他アイテムを選ぶ確率を算出する ユーザー・ユーザー・ベイジアン ・ユーザーが好むアイテムどうしのメタデータを比較 ・ユーザーどうしの好みの近さを算出する アイテム・アイテム・ベイジアン ・アイテムメタデータを比較 ・商品ごとの近さを算出 116
  • 117.
    AGENDA ◆自己紹介 ◆レコメンデーションとは ●レコメンデーションとは ●2つのレコメンド経路 ◆協調フィルタリング ●協調フィルタリングの体系 ●Amazon協調フィルタリング ◆ベイジアンネットワークによるレコメンデーション ●ベイジアンネットワーク ●ベイジアンネットワークによるレコメンデーション ◆最後に
  • 118.
    最後に 蓄積されたデータを有効活用してきたい 118
  • 119.
    最後に 蓄積されたデータを有効活用してきたい Google Group: http://groups.google.com/group/webmining-tokyo 119
  • 120.
    最後に データマイニング+WEB勉強会 発表者を募集しています 連絡 Google Group: http://groups.google.com/group/webmining-tokyo Twitter : http://twitter.com/hamadakoichi 120
  • 121.
  • 122.
    目的: データマイニング+WEB勉強会@東京 データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 統計解析 Web API データマイニング Amazon Web Service 楽天 Web Service 対応分析 時系列分析 Twitter API Recruit Web Service 回帰分析 Yahoo! Web Service クラスター分析 はてな Web Service 判別分析 主成分分析 因子分析 (Bookmark/Graph/Keyword,…) カーネル法 Google Data API 樹木モデル (Calendar/Maps/BookSearch/ FinancePortfolioData,…) ニューラルネットワーク サポートベクターマシン … 免疫型最適化 Particle Swam … Memetic Ant Colony 遺伝的 熱力学的 シミュレーテドアニーリング 力学モデルによる最適化 タブーサーチ グラフ … 最適解探索 アルゴリズム 122
  • 123.
    AGENDA ◆自己紹介 ◆ソーシャルウェブとレコメンデーション ◆レコメンデーション ●レコメンデーションとは ●2つのレコメンド経路 ●類似度によるレコメンド手法 ○コンテンツベースフィルタリング ○協調フィルタリング ●その他のレコメンド手法 ●開発用ライブラリ (Java) ◆最後に 123
  • 124.
  • 125.
    推薦文献 確率モデルによるWebデータ解析法 - データマイニング技法からe-コマースまで パターン認識と機械学習 下 125
  • 126.
    推薦文献 集合知イン・アクション 集合知プログラミング 126