SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Mahout の協調フィルタで遊ぼ

    Karubi Namuru
    June 20th, 2010
自己紹介

●   Karubi Namuru
●   博士(理学),情報科学
●   Kauli, inc. http://kau.li
●   Twitter: @karubi
●   Facebook: http://facebook.com/karubi
●   出身:広島 , 居住:東京 , Seongnam
学生時代の話


      ●   在学中の研究
          ●   統計的手法による日常行動分析
              –   実世界:ライフログ
              –   ウェブ:閲覧, clicks

200                      200
180                      180
160                      160
140                      140

120                      120

100                      100

80                       80

60                       60

40                       40

20                       20

 0                         0
現在使っている知識

●   膨大な情報の処理
    ●   疎な分散処理
●   時系列情報を参照する情報推薦
    ●   コンテクスト抽出
    ●   状況変化型の情報推薦
        –   いつも一緒ではない,時間は刻々と進む
会社

●   広告の会社,情報推薦を応用した配信最適化
●   Mahout を利用した商用システムも稼働中
    ●   2009 年 09 月から,(自称)世界初の商用利用
●   規模
    ●   2010 年 02 月 2200 万 UBs (ユニークブラウザ)
    ●   2010 年 03 月 2840 万 UBs
    ●   2010 月 04 月 3208 万 UBs
    ●   2010 月 05 月 3816 万 UBs
今日の内容

●   ネット上の資源で遊ぶ
    ●   前回のおさらい
    ●   ネット上の情報源
        –   映画の推薦情報
    ●   ネット上のライブラリ
        –   Mahout
    ●   動かしてみる
        –   本日はアイテムベース
    ●   検証
推薦(レコメンデーション)

●   概要
    ●   潜在的な顧客にその人が欲しい商品を勧める
    ●   ウェブ閲覧者のサイト閲覧履歴やクリック履歴など
        をもとにユーザの嗜好パターンを学習する
●   アプローチ
    ●   コンテンツベース
    ●   ルールベース
    ●   協調フィルタリング
協調フィルタリング


●   似た人が与えた評価を利用して,アイテムの評
    価を予測する
    ●   多くの利用者の嗜好情報を蓄積すること
    ●   ある人と嗜好の類似する他の人の情報
    ●   クチコミの原理と例えられる
        –   趣味の似た人からの意見を参考にする
考え方


●   ユーザ A がアイテム X を好む
●   アイテム X を好む別のユーザ B が好むアイテム
    Y が存在する
●   ユーザ A もアイテム Y を好むのではないか
    ●   実装で利用するのはユーザ同士の類似度
        –   たとえば,同じアイテムにつけた評価の相関係数
対象する情報


●   明示的な情報源
    ●   ユーザの評価がついているもの
        –   レビュー
    ●   明示的に選択したもの
        –   評価ポイント
●   暗示的な情報源
    ●   システムの操作履歴
        –   ブラウザの閲覧履歴
明示的な情報の具体例


●   評価の内容
    ●   例えば映画の場合
        –   この映画は面白かった,つまらなかった
        –   ◯◯ 点 や ☆の数
        –   評価を与えた映画の組み合わせ
            ●   レビューリスト
ネット上の情報源


●   公開されている明示的な情報源(一部)
    ●
        The Netflix prize datasets
        –   Netflix :アメリカのオンライン DVD レンタルサービス
        –   1 億レコード以上
        –   480,189 人が 17,770 タイトルについて評価
    ●
        Grouplens Research
        –   ミネソタ大の研究チーム, MovieLens プロジェクト
        –   10 万, 100 万, 1000 万レコードの 3 つのデータ
        –   71,567 人が 10,681 タイトルについて評価( 1000 万)
無料のライブラリで作ってみる


●   STEP 1. Java の開発環境の設定をします
    ●   今回は JRE 6 と Eclipse を使います
    ●   実際にやってみたいという方は,以下のページでも
        見てやってみてください
    ●   Javaの道,Eclipse -1.インストール
        –   この記事はわかりやすいのですが,ソフトウェアのバー
            ジョンが古いままです.最新版をダウンロードしても多
            分大丈夫だと思います.
動作環境を整える


●   STEP 2. Mahout ライブラリをダウンロード
    ●
        Apache Mahout - Downloads and Releases
        –   最新版は 0.3  ( 2010 年 6 月現在)
    ●   解凍する
動作環境を整える


●   STEP 3. 開発環境に登録する
    ●   ライブラリを Eclipse に登録する
        –   Mahout-**-0.3.jar を使う
        –   Javaの道, Eclipse-3.便利な機能(環境設定)
        –   「クラスパスの設定」の「4」参照
    ●   依存するライブラリも登録しておく
        –   「 lib 」から, commons-logging-1.1.1.jar , slf4j-api-
            1.5.8.jar , slf4j-jcl-1.5.8.jar , commons-cli-2.0-
            mahout.jar , uncommons-maths-1.2.jar
        –   「 lib 」全部登録しておいて問題ない
データダウンロード


●   Step 4. 情報源をダウンロードする
    http://www.grouplens.org/node/73
    ●   今回は 100 万レコードのデータを使う
データの中身


●   映画情報
    ●   1270::Back to the Future (1985)::  
        Comedy|Sci-Fi
    ●   MovieID::Title::Genres
    ●   それぞれ 1 本づつ
●   評価情報
    ●   1::1270::5::978300055
    ●   UserID::MovieID::Rating::Timestamp
    ●   一人あたり 20 本分の評価
データを整形する(1)


●   Step 5. Mahout で扱えるように整形
    ●   解凍する
    ●   評価情報のみ切り抜く
        –   テキストエディタなどでもなんとかできる量なので,切
            り取っちゃう
        –   タイトル情報を出力したいときは,タイトル情報やユー
            ザ情報部分も切り取る
データを整形する(2)

●   Mahout 用に整形
    –   Mahout で使うデータ形式は「 UserId, MovieId,
        Rating 」
    –   Perl や Python や Excel などで「,」と TimeStamp
        の列を消す.
プログラミング


●   Step 6. アイテムベース推薦のプログラム
    ●   説明します
実行


●   Step 7. 推薦を動かす
    ●   UserID: 1 について 5 タイトルが出力できた
           557::Mamma Roma (1962)::Drama
           53::Lamerica (1994)::Drama
           1149::JLG/JLG - autoportrait de d 馗 embre
           (1994)::Documentary|Drama
           1039::Synthetic Pleasures (1995)::Documentary
           572::Foreign Student (1994)::Drama
    ●   自分のデータを登録しても推薦できる
            –   「 java.lang.OutOfMemoryError: Java heap space Exception
                in thread "main" 」が出た場合は以下のリンク.
                  ● 以下のプログラムで出るエラーの意味がわかりません
まとめ


●   手軽に本格的なアイテムベースの推薦機能がつ
    くれた
    ●   ネット上のリソースを使ってみた
    ●   無料のライブラリを使ってみた
    ●   おもしろさを味わってみ
●   ご質問ございましたらメールください
        gogokarubi@gmail.com まで

Weitere ähnliche Inhalte

Was ist angesagt?

機械学習 入門
機械学習 入門機械学習 入門
機械学習 入門Hayato Maki
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームPreferred Networks
 
ディープラーニングで株価予測をやってみた
ディープラーニングで株価予測をやってみたディープラーニングで株価予測をやってみた
ディープラーニングで株価予測をやってみた卓也 安東
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?KSK Analytics Inc.
 
Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会
Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会
Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会Yuya Unno
 
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCTJubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCTYuya Unno
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
人工知能の概論の概論と セキュリティへの応用(的な~(改)
人工知能の概論の概論とセキュリティへの応用(的な~(改)人工知能の概論の概論とセキュリティへの応用(的な~(改)
人工知能の概論の概論と セキュリティへの応用(的な~(改)Typhon 666
 
Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Preferred Networks
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Yuya Unno
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定Akira Masuda
 
機械学習CROSS 前半資料
機械学習CROSS 前半資料機械学習CROSS 前半資料
機械学習CROSS 前半資料Shohei Hido
 
Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤Shohei Hido
 
(道具としての)データサイエンティストのつかい方
(道具としての)データサイエンティストのつかい方(道具としての)データサイエンティストのつかい方
(道具としての)データサイエンティストのつかい方Shohei Hido
 
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―Hisao Soyama
 
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” Hajime Sasaki
 
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探るTakashi J OZAKI
 
いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標圭輔 大曽根
 

Was ist angesagt? (20)

機械学習 入門
機械学習 入門機械学習 入門
機械学習 入門
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
 
ディープラーニングで株価予測をやってみた
ディープラーニングで株価予測をやってみたディープラーニングで株価予測をやってみた
ディープラーニングで株価予測をやってみた
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?
 
Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会
Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会
Twitter分析のためのリアルタイム分析基盤@第4回Twitter研究会
 
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCTJubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCT
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
人工知能の概論の概論と セキュリティへの応用(的な~(改)
人工知能の概論の概論とセキュリティへの応用(的な~(改)人工知能の概論の概論とセキュリティへの応用(的な~(改)
人工知能の概論の概論と セキュリティへの応用(的な~(改)
 
Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
TokyoR42_around_chaining
TokyoR42_around_chainingTokyoR42_around_chaining
TokyoR42_around_chaining
 
機械学習CROSS 前半資料
機械学習CROSS 前半資料機械学習CROSS 前半資料
機械学習CROSS 前半資料
 
Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤
 
(道具としての)データサイエンティストのつかい方
(道具としての)データサイエンティストのつかい方(道具としての)データサイエンティストのつかい方
(道具としての)データサイエンティストのつかい方
 
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
 
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
 
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
 
いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標いまさら聞けない機械学習の評価指標
いまさら聞けない機械学習の評価指標
 

Andere mochten auch

Introduction to Mahout Clustering - #TokyoWebmining #6
Introduction to Mahout Clustering - #TokyoWebmining #6Introduction to Mahout Clustering - #TokyoWebmining #6
Introduction to Mahout Clustering - #TokyoWebmining #6Koichi Hamada
 
"Mahout Recommendation" - #TokyoWebmining 14th
"Mahout Recommendation" -  #TokyoWebmining 14th"Mahout Recommendation" -  #TokyoWebmining 14th
"Mahout Recommendation" - #TokyoWebmining 14thKoichi Hamada
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築Masayuki Ota
 
Apache Mahout お手軽レコメンド
Apache Mahout お手軽レコメンドApache Mahout お手軽レコメンド
Apache Mahout お手軽レコメンドYoshiyuki MIYAGI
 
Mahoutにパッチを送ってみた
Mahoutにパッチを送ってみたMahoutにパッチを送ってみた
Mahoutにパッチを送ってみたissaymk2
 
ComplementaryNaiveBayesClassifier
ComplementaryNaiveBayesClassifierComplementaryNaiveBayesClassifier
ComplementaryNaiveBayesClassifierNaoki Yanai
 
Hadoop/Mahout/HBaseで テキスト分類器を作ったよ
Hadoop/Mahout/HBaseで テキスト分類器を作ったよHadoop/Mahout/HBaseで テキスト分類器を作ったよ
Hadoop/Mahout/HBaseで テキスト分類器を作ったよNaoki Yanai
 
ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京
ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京
ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京Koichi Hamada
 
Introduction to fuzzy kmeans on mahout
Introduction to fuzzy kmeans on mahoutIntroduction to fuzzy kmeans on mahout
Introduction to fuzzy kmeans on mahouttakaya imai
 
Kuroda & Hasebe NLP15 slides on Pattern Lattice Model
Kuroda & Hasebe NLP15 slides on Pattern Lattice ModelKuroda & Hasebe NLP15 slides on Pattern Lattice Model
Kuroda & Hasebe NLP15 slides on Pattern Lattice ModelKow Kuroda
 
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906Teruo Kawasaki
 
Apache Mahout - Random Forests - #TokyoWebmining #8
Apache Mahout - Random Forests - #TokyoWebmining #8 Apache Mahout - Random Forests - #TokyoWebmining #8
Apache Mahout - Random Forests - #TokyoWebmining #8 Koichi Hamada
 
Mahout Canopy Clustering - #TokyoWebmining 9
Mahout Canopy Clustering - #TokyoWebmining 9Mahout Canopy Clustering - #TokyoWebmining 9
Mahout Canopy Clustering - #TokyoWebmining 9Koichi Hamada
 
RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21horihorio
 
Azure Machine Learning getting started
Azure Machine Learning getting startedAzure Machine Learning getting started
Azure Machine Learning getting startedMasayuki Ota
 
Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...
Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...
Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...Salah Amean
 
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...MapR Technologies Japan
 

Andere mochten auch (20)

machine learning & apache mahout
machine learning & apache mahoutmachine learning & apache mahout
machine learning & apache mahout
 
Introduction to Mahout Clustering - #TokyoWebmining #6
Introduction to Mahout Clustering - #TokyoWebmining #6Introduction to Mahout Clustering - #TokyoWebmining #6
Introduction to Mahout Clustering - #TokyoWebmining #6
 
Frequency Pattern Mining
Frequency Pattern MiningFrequency Pattern Mining
Frequency Pattern Mining
 
"Mahout Recommendation" - #TokyoWebmining 14th
"Mahout Recommendation" -  #TokyoWebmining 14th"Mahout Recommendation" -  #TokyoWebmining 14th
"Mahout Recommendation" - #TokyoWebmining 14th
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 
Apache Mahout お手軽レコメンド
Apache Mahout お手軽レコメンドApache Mahout お手軽レコメンド
Apache Mahout お手軽レコメンド
 
Mahoutにパッチを送ってみた
Mahoutにパッチを送ってみたMahoutにパッチを送ってみた
Mahoutにパッチを送ってみた
 
ComplementaryNaiveBayesClassifier
ComplementaryNaiveBayesClassifierComplementaryNaiveBayesClassifier
ComplementaryNaiveBayesClassifier
 
Hadoop/Mahout/HBaseで テキスト分類器を作ったよ
Hadoop/Mahout/HBaseで テキスト分類器を作ったよHadoop/Mahout/HBaseで テキスト分類器を作ったよ
Hadoop/Mahout/HBaseで テキスト分類器を作ったよ
 
ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京
ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京
ソーシャルウェブ と レコメンデーション -第4回データマイニング+WEB勉強会@東京
 
Introduction to fuzzy kmeans on mahout
Introduction to fuzzy kmeans on mahoutIntroduction to fuzzy kmeans on mahout
Introduction to fuzzy kmeans on mahout
 
Kuroda & Hasebe NLP15 slides on Pattern Lattice Model
Kuroda & Hasebe NLP15 slides on Pattern Lattice ModelKuroda & Hasebe NLP15 slides on Pattern Lattice Model
Kuroda & Hasebe NLP15 slides on Pattern Lattice Model
 
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
 
Mahout
MahoutMahout
Mahout
 
Apache Mahout - Random Forests - #TokyoWebmining #8
Apache Mahout - Random Forests - #TokyoWebmining #8 Apache Mahout - Random Forests - #TokyoWebmining #8
Apache Mahout - Random Forests - #TokyoWebmining #8
 
Mahout Canopy Clustering - #TokyoWebmining 9
Mahout Canopy Clustering - #TokyoWebmining 9Mahout Canopy Clustering - #TokyoWebmining 9
Mahout Canopy Clustering - #TokyoWebmining 9
 
RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21
 
Azure Machine Learning getting started
Azure Machine Learning getting startedAzure Machine Learning getting started
Azure Machine Learning getting started
 
Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...
Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...
Data Mining: Concepts and Techniques chapter 07 : Advanced Frequent Pattern M...
 
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
 

Ähnlich wie 協調フィルタリング with Mahout

レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎Katsuhiro Takata
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネスMie Mori
 
マイニング探検会#09 情報レコメンデーションとは
マイニング探検会#09 情報レコメンデーションとはマイニング探検会#09 情報レコメンデーションとは
マイニング探検会#09 情報レコメンデーションとはYoji Kiyota
 
Hadoop conference Japan 2011
Hadoop conference Japan 2011Hadoop conference Japan 2011
Hadoop conference Japan 2011Takahiko Ito
 
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -Masakazu Ishihata
 
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させるElasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させるnobu_k
 
100622 学術情報セミナー
100622 学術情報セミナー100622 学術情報セミナー
100622 学術情報セミナーShuhei Otani
 
20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向dstn
 
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)Sho Nakamura
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップYou&I
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Etsuji Nakai
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
Movable type seminar 20120703
Movable type seminar 20120703Movable type seminar 20120703
Movable type seminar 20120703Six Apart
 
WWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and MiningWWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and Miningcyberagent
 
tokyo_webmining_no51
tokyo_webmining_no51tokyo_webmining_no51
tokyo_webmining_no51Shu (shoe116)
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方Kosuke Tanabe
 

Ähnlich wie 協調フィルタリング with Mahout (20)

レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
マイニング探検会#09 情報レコメンデーションとは
マイニング探検会#09 情報レコメンデーションとはマイニング探検会#09 情報レコメンデーションとは
マイニング探検会#09 情報レコメンデーションとは
 
Hadoop conference Japan 2011
Hadoop conference Japan 2011Hadoop conference Japan 2011
Hadoop conference Japan 2011
 
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
 
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させるElasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
 
100622 学術情報セミナー
100622 学術情報セミナー100622 学術情報セミナー
100622 学術情報セミナー
 
20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向
 
JAWS DAYS 2022
JAWS DAYS 2022JAWS DAYS 2022
JAWS DAYS 2022
 
全文検索入門
全文検索入門全文検索入門
全文検索入門
 
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップ
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
 
jubatus pressrelease
jubatus pressreleasejubatus pressrelease
jubatus pressrelease
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Movable type seminar 20120703
Movable type seminar 20120703Movable type seminar 20120703
Movable type seminar 20120703
 
WWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and MiningWWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and Mining
 
tokyo_webmining_no51
tokyo_webmining_no51tokyo_webmining_no51
tokyo_webmining_no51
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方
 

Kürzlich hochgeladen

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Kürzlich hochgeladen (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

協調フィルタリング with Mahout

  • 1. Mahout の協調フィルタで遊ぼ Karubi Namuru June 20th, 2010
  • 2. 自己紹介 ● Karubi Namuru ● 博士(理学),情報科学 ● Kauli, inc. http://kau.li ● Twitter: @karubi ● Facebook: http://facebook.com/karubi ● 出身:広島 , 居住:東京 , Seongnam
  • 3. 学生時代の話 ● 在学中の研究 ● 統計的手法による日常行動分析 – 実世界:ライフログ – ウェブ:閲覧, clicks 200 200 180 180 160 160 140 140 120 120 100 100 80 80 60 60 40 40 20 20 0 0
  • 4. 現在使っている知識 ● 膨大な情報の処理 ● 疎な分散処理 ● 時系列情報を参照する情報推薦 ● コンテクスト抽出 ● 状況変化型の情報推薦 – いつも一緒ではない,時間は刻々と進む
  • 5. 会社 ● 広告の会社,情報推薦を応用した配信最適化 ● Mahout を利用した商用システムも稼働中 ● 2009 年 09 月から,(自称)世界初の商用利用 ● 規模 ● 2010 年 02 月 2200 万 UBs (ユニークブラウザ) ● 2010 年 03 月 2840 万 UBs ● 2010 月 04 月 3208 万 UBs ● 2010 月 05 月 3816 万 UBs
  • 6. 今日の内容 ● ネット上の資源で遊ぶ ● 前回のおさらい ● ネット上の情報源 – 映画の推薦情報 ● ネット上のライブラリ – Mahout ● 動かしてみる – 本日はアイテムベース ● 検証
  • 7. 推薦(レコメンデーション) ● 概要 ● 潜在的な顧客にその人が欲しい商品を勧める ● ウェブ閲覧者のサイト閲覧履歴やクリック履歴など をもとにユーザの嗜好パターンを学習する ● アプローチ ● コンテンツベース ● ルールベース ● 協調フィルタリング
  • 8. 協調フィルタリング ● 似た人が与えた評価を利用して,アイテムの評 価を予測する ● 多くの利用者の嗜好情報を蓄積すること ● ある人と嗜好の類似する他の人の情報 ● クチコミの原理と例えられる – 趣味の似た人からの意見を参考にする
  • 9. 考え方 ● ユーザ A がアイテム X を好む ● アイテム X を好む別のユーザ B が好むアイテム Y が存在する ● ユーザ A もアイテム Y を好むのではないか ● 実装で利用するのはユーザ同士の類似度 – たとえば,同じアイテムにつけた評価の相関係数
  • 10. 対象する情報 ● 明示的な情報源 ● ユーザの評価がついているもの – レビュー ● 明示的に選択したもの – 評価ポイント ● 暗示的な情報源 ● システムの操作履歴 – ブラウザの閲覧履歴
  • 11. 明示的な情報の具体例 ● 評価の内容 ● 例えば映画の場合 – この映画は面白かった,つまらなかった – ◯◯ 点 や ☆の数 – 評価を与えた映画の組み合わせ ● レビューリスト
  • 12. ネット上の情報源 ● 公開されている明示的な情報源(一部) ● The Netflix prize datasets – Netflix :アメリカのオンライン DVD レンタルサービス – 1 億レコード以上 – 480,189 人が 17,770 タイトルについて評価 ● Grouplens Research – ミネソタ大の研究チーム, MovieLens プロジェクト – 10 万, 100 万, 1000 万レコードの 3 つのデータ – 71,567 人が 10,681 タイトルについて評価( 1000 万)
  • 13. 無料のライブラリで作ってみる ● STEP 1. Java の開発環境の設定をします ● 今回は JRE 6 と Eclipse を使います ● 実際にやってみたいという方は,以下のページでも 見てやってみてください ● Javaの道,Eclipse -1.インストール – この記事はわかりやすいのですが,ソフトウェアのバー ジョンが古いままです.最新版をダウンロードしても多 分大丈夫だと思います.
  • 14. 動作環境を整える ● STEP 2. Mahout ライブラリをダウンロード ● Apache Mahout - Downloads and Releases – 最新版は 0.3  ( 2010 年 6 月現在) ● 解凍する
  • 15. 動作環境を整える ● STEP 3. 開発環境に登録する ● ライブラリを Eclipse に登録する – Mahout-**-0.3.jar を使う – Javaの道, Eclipse-3.便利な機能(環境設定) – 「クラスパスの設定」の「4」参照 ● 依存するライブラリも登録しておく – 「 lib 」から, commons-logging-1.1.1.jar , slf4j-api- 1.5.8.jar , slf4j-jcl-1.5.8.jar , commons-cli-2.0- mahout.jar , uncommons-maths-1.2.jar – 「 lib 」全部登録しておいて問題ない
  • 16. データダウンロード ● Step 4. 情報源をダウンロードする http://www.grouplens.org/node/73 ● 今回は 100 万レコードのデータを使う
  • 17. データの中身 ● 映画情報 ● 1270::Back to the Future (1985)::   Comedy|Sci-Fi ● MovieID::Title::Genres ● それぞれ 1 本づつ ● 評価情報 ● 1::1270::5::978300055 ● UserID::MovieID::Rating::Timestamp ● 一人あたり 20 本分の評価
  • 18. データを整形する(1) ● Step 5. Mahout で扱えるように整形 ● 解凍する ● 評価情報のみ切り抜く – テキストエディタなどでもなんとかできる量なので,切 り取っちゃう – タイトル情報を出力したいときは,タイトル情報やユー ザ情報部分も切り取る
  • 19. データを整形する(2) ● Mahout 用に整形 – Mahout で使うデータ形式は「 UserId, MovieId, Rating 」 – Perl や Python や Excel などで「,」と TimeStamp の列を消す.
  • 20. プログラミング ● Step 6. アイテムベース推薦のプログラム ● 説明します
  • 21. 実行 ● Step 7. 推薦を動かす ● UserID: 1 について 5 タイトルが出力できた 557::Mamma Roma (1962)::Drama 53::Lamerica (1994)::Drama 1149::JLG/JLG - autoportrait de d 馗 embre (1994)::Documentary|Drama 1039::Synthetic Pleasures (1995)::Documentary 572::Foreign Student (1994)::Drama ● 自分のデータを登録しても推薦できる – 「 java.lang.OutOfMemoryError: Java heap space Exception in thread "main" 」が出た場合は以下のリンク. ● 以下のプログラムで出るエラーの意味がわかりません
  • 22. まとめ ● 手軽に本格的なアイテムベースの推薦機能がつ くれた ● ネット上のリソースを使ってみた ● 無料のライブラリを使ってみた ● おもしろさを味わってみ ● ご質問ございましたらメールください gogokarubi@gmail.com まで