• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
"Mahout Recommendation" -  #TokyoWebmining 14th
 

"Mahout Recommendation" - #TokyoWebmining 14th

on

  • 24,570 views

Mahout recommendation - #TokyoWebmining 14th

Mahout recommendation - #TokyoWebmining 14th

Statistics

Views

Total Views
24,570
Views on SlideShare
14,378
Embed Views
10,192

Actions

Likes
14
Downloads
0
Comments
0

13 Embeds 10,192

http://d.hatena.ne.jp 8998
https://d2k8l6v2fkfjas9nqhsgletiuinl84j3-a-sites-opensocial.googleusercontent.com 933
http://d2k8l6v2fkfjas9nqhsgletiuinl84j3-a-sites-opensocial.googleusercontent.com 197
http://a0.twimg.com 21
http://paper.li 18
http://webcache.googleusercontent.com 9
http://us-w1.rockmelt.com 4
http://b.hatena.ne.jp 3
http://s.deeeki.com 3
http://news.google.com 2
https://twitter.com 2
http://twitter.com 1
http://dhatenane.greatbabyfood.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    "Mahout Recommendation" -  #TokyoWebmining 14th "Mahout Recommendation" - #TokyoWebmining 14th Presentation Transcript

    • 14 +WEB 2011/10/16Mahout 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 青字:割付モデル属性 [ ] : OptionalNode ・priority(優先度) Edge ・duration(予定時間) [・earliest(再早開始日時) ] Process EdgeProcess [・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 Implementationto 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 Samplepublic 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 RecommendationMahout 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/outputuserid ¥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 ◆参考資料 ◆最後に