SlideShare a Scribd company logo
1 of 50
Introduction to
Recommender
Systems
Zansa #3 2012.1.30 at D2 Communications
KOMIYA Atsushi (@komiya_atsushi)
Agenda
1. 自己紹介&本日の発表について
2. レコメンデーションとは?
3. レコメンデーションを実現する技術
4. 実サービスへの応用
5. 本日の発表のまとめ
1. 自己紹介
      &
本日の発表について
自己紹介・バックグラウンド
• 名前 / Twitter ID
 • 小宮 篤史(@komiya_atsushi)
• おしごと
 • Web / RIA エンジニア @ 中小 SIer
 • レコメンデーション関連やらテキストマイ
   ニング的な研究開発 ”支援” をしてます
• 学部・院時代
 • 情報理論・情報源符号化(データ圧縮)の
   研究をしてました
本日の発表の目的・ねらい
• 「レコメンデーション」を正しく理解
  していただき、よりよいサービス提供
  に貢献したい
• 何も考えずに「Mahout 使えば簡単だ
  よね」と言う輩を一人でも減らしたい
 • あ、Mahout はいいプロダクトですよ
おことわり
• 本勉強会で発表する内容は、主観的な
  意見・見解が多分に含まれています
• 所属する会社・組織の意見・見解とは
  無関係であることはもちろんのこと、
  業界の一般的な意見・見解でもないこ
  とにご注意ください
 • あくまでも一個人の意見です
2.レコメンデーションとは?
「レコメンデーション」
• 意味:「推薦」「おすすめ」
• サービスを利用するユーザにとって
  有用・有益・価値のある情報を、
  サービス側からユーザに提示すること
• 「情報フィルタリング」技術の応用
 • たくさんある情報の中から、価値のある
   情報を抽出するしくみ
 • 「価値の有無」はユーザ毎に異なる
Amazon
における商品レコメンデーションの例
Amazon
における商品レコメンデーションの例
asahi.com
における関連記事レコメンデーションの例
asahi.com
における関連記事レコメンデーションの例
last.fmにおける
アーティストのレコメンデーション例
last.fmにおける
アーティストのレコメンデーション例
いろんな「レコメンデーション」
• 「アイテム」の推薦
 • ECサイト(例:Amazon)
   • 販売している「商品」を推薦する
 • ニュースサイト(例:asahi.com)
   • 購読している記事の「関連記事」を推薦する
 • 音楽関連サービス(例:last.fm)
   • 「アーティスト」や「曲」を推薦する
• 「ユーザ」の推薦
 • 各種 SNS(Twitter, Facebook…)
   • リンクレコメンデーション
いろんな「レコメンデーション」
• 「アイテム」の推薦
 • ECサイト(例:Amazon)
   • 販売している「商品」を推薦する
 • ニュースサイト(例:asahi.com)
   • 購読している記事の「関連記事」を推薦する
 • 音楽関連サービス(例:last.fm)
   • 「アーティスト」や「曲」を推薦する
• 「ユーザ」の推薦
           今回お話するのは
  • 各種 SNS(Twitter, Facebook…)
               こちらです
    • リンクレコメンデーション
何のために「レコメンデーション」するのか?
• サービス提供サイド
 • 売り上げをアップさせたい
  • 興味のありそうな商品を提示することで、ユー
    ザの購入機会・意欲を増やす
  • ユーザの興味を開拓し、優良顧客に変えていく
  • PV 数を稼ぐことで、広告収入の増加を見込む
• ユーザサイド
 • セレンディピティ(幸運を掴み取る能力)
  • いままで知り得なかった「情報」を知ることが
    できる
  • 新たな「興味」を発掘することができる
レコメンデーションの精度・性能を測るには?
• 定性的評価
 • 被験者にレコメンデーション結果の良し悪
   しを評価してもらう
• 定量的評価
 • 正解アイテムの数に着目する
   (Precision, Recall)
 • 評点(レーティング)の誤差に着目する
   (MAE, RMSE)
 • レコメンデーション結果の提示順序を
   含めた質を測る (MAP, nDCG)
Precision, Recall (適合率、再現率)
• 定義
 • N…レコメンドされたアイテムの集合
 • C…ユーザにとっての正解アイテムの集合
 • R…N に含まれる正解アイテムの集合
                          ������
 • ������������������������������������������������������ =
                          ������
                    ������
 • ������������������������������������ =
                    ������
MAE, RMSE
(Mean absolute error, Root mean square error)
• 定義
  • ������…アイテムの個数
  • ������������ …アイテム i に対する予測評点
  • ������������ …アイテム i に対するユーザの評点
               1    ������
  • ������������������ =              ������������ − ������������
               ������
                     ������
                          (������������ −������������ )2
  • ������������������������ =
                             ������
MAP (Mean average precision)
• 定義
  • ������(������) … レコメンデーション結果の上位 k 個
    における適合率
  • ������������������(������) … レコメンデーション結果の上位から
    k 番目のアイテムが正解の場合に 1、不正解
    なら 0
  • ������������������������(������) … ユーザ u の平均適合率
                    ������
                    ������=1(������(������) × ������������������(������))
    ������������������������ ������ =
                              ������
               ������∈������ ������������������������(������)
  • ������������������ =
                     ������
2. レコメンデーションを
    実現する技術
言葉の定義
• アイテム
 • ユーザにより購入・消費される商品や
   コンテンツ
 • レコメンデーションの対象となる
• ユーザ
 • アイテムを購入・消費する存在
• 評点
 • レーティング、点数(Amazon の星の数)
• アクティブユーザ
 • アイテムのレコメンデーションを受けるユーザ
レコメンデーションを実現するには?
• ある「アイテム」に似ているほかの
  「アイテム」を探し出す
 • アクティブユーザが見ているアイテムに
   似ているアイテムを、レコメンドする
• アクティブユーザに似た(行動をとる)
  ほかのユーザを探し出す
 • アクティブユーザに似たユーザが購入・
   消費したアイテムを、レコメンドする
レコメンデーションに利用できる情報
• アイテムそのものの情報(内容)
 • ニュースの記事
• アイテムのメタデータ
 • 【例:書籍】タイトル、著者、ジャンル…
• ユーザ属性
 • 年齢、性別、家族構成、居住地、趣味…
• ユーザの行動履歴
 • 「ユーザ」と「アイテム」の関係性
 • レーティング、購買、視聴、閲覧履歴…
二つのアプローチ
• コンテンツベース
 • アイテムそのものの内容やメタデータを利用し、
   類似性・関連性を計算する
 • レコメンデーション結果がありきたりになりがち
• 協調フィルタリングベース
 • ユーザの行動履歴を利用し、類似度を計算する
 • 評点に基づく行動履歴であれば、類似度をもとに、
   アクティブユーザが付与するであろう予測評点を
   計算する
 • ユーザベースの手法とアイテムベースの
   手法が存在する
コンテンツベース・レコメンデーションの例

      「探偵ガリレオ」
       著者:東野 圭吾
       ジャンル:ミステリー、探偵モノ
コンテンツベース・レコメンデーションの例

        「探偵ガリレオ」
         著者:東野 圭吾
         ジャンル:ミステリー、探偵モノ




 容疑者Xの献身     さまよう刃      八つ墓村
(シリーズが同じ)   (著者が同じ)   (ジャンルが同じ)
協調フィルタリング
ユーザベースとアイテムベース (1/2)
• ユーザベース
 • ユーザを中心に考え、すべてのユーザ間
   の類似度を行動履歴をもとに算出する
 • 算出された類似度をもとに、特に類似度
   の高いユーザの持つアイテムを推薦する
• アイテムベース
 • アイテムを中心に考え、すべてのアイテ
   ム間の類似度を、ユーザの行動履歴をも
   とに算出する
協調フィルタリング
ユーザベースとアイテムベース (2/2)
          徳川   松平   山内    坂本
探偵ガリレオ    購入   購入
容疑者Xの献身   購入   購入   購入
さまよう刃               購入    購入
八つ墓村           購入         購入
• ユーザベースだと…
 • 「徳川」と「松平」は二つの同じ商品を購入しているから、
   二人のユーザは類似しているだろう
• アイテムベースだと…
 • 「探偵ガリレオ」と「容疑者Xの献身」を両方とも購入して
   いる二人のユーザがいるから、二つのアイテムは類似してい
   るだろう
ユーザベースの協調フィルタリング (1/2)
ユーザ間の類似度を算出する
• 定義
 • ������������������ … ユーザ a とユーザ u の行動履歴に共起するアイ
   テムの集合
 • ������������������ … ユーザ u がアイテム i に対して付与する評点
• コサイン類似度 (Cosine similarity)
                    ������∈������������������ ������������������ ������������������
 • ������������������ =
                           2
                        ������������������                  2
                                              ������������������
              ������∈������������������             ������∈������������������

• ピアソン相関係数 (Pearson correlation)
                      ������∈������������������ (������������������ −������������ )(������������������ −������������ )
 • ������������������ =                             2                             2
              ������∈������������������  ������������������ −������������          ������∈������������������ ������������������ −������������
ユーザベースの協調フィルタリング (2/2)
予測評点を計算する
• 定義
 • ������(������, ������) … ユーザ a に類似しており、アイテ
   ム i を評点づけしているユーザの集合
• 評点の予測値算出式
 • コサイン類似度
                ������∈������(������,������) ������������������ ������������������
  • ������′������������ =
                  ������∈������(������,������) ������������������

 • ピアソン相関係数
                          ������∈������(������,������) ������������������ (������������������ −������������ )
  • ������′������������ = ������������ +
                                 ������∈������(������,������) ������������������
ユーザベース協調フィルタリングの例 (1/3)
サンプルデータ
映画タイトル           徳川      松平      山内
ロード・オブ・ザ・リング    ★★★★★   ★★★★★     ★
ハリー・ポッター        ★★★★    ★★★★★    ★★
フォレスト・ガンプ        ★★★     ★★★     ★★★
ダイ・ハード           ★★       ★     ★★★★
ソウ                ★       ★     ★★★★★
13日の金曜日           ?       ★     ★★★★★
ナルニア国物語           ?     ★★★★★     ★


               徳川さんにおすすめするべき
               映画はどちらが好ましいか?
                 予測評点を算出して
                 比較してみましょう
ユーザベース協調フィルタリングの例 (2/3)
ユーザ間類似度を計算する
映画タイトル          徳川        松平      山内
ロード・オブ・ザ・リング   ★★★★★     ★★★★★     ★
ハリー・ポッター       ★★★★      ★★★★★    ★★
フォレスト・ガンプ      ★★★        ★★★    ★★★
ダイ・ハード          ★★
                       徳川さんと行動履歴が類似する
                           ★      ★★★★
                          ユーザは松平さん。
ソウ              ★          ★     ★★★★★
                       ピアソン相関係数の方がより
13日の金曜日         ?          ★     ★★★★★
                         明らかな結果となる。
ナルニア国物語         ?        ★★★★★     ★
徳川さんとの類似度
(コサイン類似度)                0.984   0.636
徳川さんとの類似度
(ピアソン相関係数)               0.949   -1.000
ユーザベース協調フィルタリングの例 (3/3)
評点予測値を計算する

     映画タイトル             松平      山内
 13日の金曜日                 ★     ★★★★★
 ナルニア国物語             ★★★★★       ★
 徳川さんとの類似度(コサイン)       0.984    0.636
 徳川さんとの類似度(ピアソン)       0.949    -1.000



  映画タイトル    予測値       予測値
           (コサイン)   (ピアソン)
                                 徳川さんには
 13日の金曜日    2.570    1.000
                               「ナルニア国物語」
 ナルニア国物語    3.429    5.000       がオススメ!
協調フィルタリングのいいところ
• アイテムのメタデータなどが要らない
 • メタデータを充実させるにはコストや手
   間がかかる
• 「ありきたり」ではないレコメンデー
  ションができる
 • 常識にとらわれない、意外性のあるレコ
   メンデーション
協調フィルタリングのダメなところ
• 計算量・オンライン処理
 • ユーザ・アイテムの規模が大きくなると、ナイーブ実装では
   計算量的にオンライン処理ができなくなる
• コールドスタート問題
 • 十分な行動履歴がないと、まともな推薦ができない
 • サービス開始直後や、新規ユーザ・新規アイテムの登録時に
   発生する
 • コンテンツベースの手法と組み合わせて改善可能
• スパース問題
 • アイテム数が多すぎて、ユーザ間・アイテム間の関係性が疎
   になってしまう
 • Random walk を取り入れることで改善可能
   http://www.slideshare.net/komiyaatsushi/tokyo-webmining-
   8cfrwr
そのほかの協調フィルタリング手法
• アイテムベース
 • Amazon の手法だと、オフラインの前処理が
   必要になるものの、オンラインでのレコメ
   ンデーションが可能になる
    • http://blog.k11i.biz/2011/06/amazon-item-to-item-
      cf.html
• Slope one
 • オンラインでのレコメンデーションが可能
   で、行動履歴の変更にもすぐに追従できる
    • http://lemire.me/fr/documents/publications/lemir
      emaclachlan_sdm05.pdf
Apache Mahout
協調フィルタリングの各種実装を提供
• スケーラブルであることを目指した
  機械学習ライブラリ
• 協調フィルタリングの下記実装を提供する
 • ユーザベース
 • アイテムベース
 • Slope One
• 独自に協調フィルタリングを実装する前に、
  まず利用を検討してみましょう
3. 実サービスへの適用

     ※注意!
ここから先の説明は、発表者の主観が特に
 強く現れていますのでご注意ください。
実サービスに適用するその前に!
• 「Mahout 使えば(レコメンデーションな
  んて)簡単だよね」
 • 本当にそうでしょうか?
 • 機械が計算して出した予測(レコメンデー
   ション)を、そのまま信じてユーザに提示
   していいの? ユーザは本当に喜ぶの?
• アイテムの内容やユーザの嗜好を考慮して、
  結果を取捨選択したり、レコメンデーショ
  ンエンジンのチューニングをする必要があ
  る
実サービスに適用する上で気をつけるべきこと

• ユーザ視点
 • レコメンドされてうれしいもの
 • ユーザの気分を損なわせない
 • レコメンデーションの理由付け
• サービス提供者視点
 • レコメンドする状況・タイミング
レコメンドされてうれしいもの (1/2)
• レコメンドされたアイテムが、アクティブ
  ユーザにとって妥当か?
 • アクション映画大好きなユーザに、
   「ダイ・ハード」を推薦したとして、果たして喜
   ぶだろうか?
• レコメンデーションの妥当性とは?
 • 「見当違い」であってはならない
 • でも、「当たり前」であってもダメ
• アクティブユーザにとって「意外」だったり
  「新鮮」なレコメンデーションであるべき
レコメンドされてうれしいもの (2/2)
• シリーズもののアイテム(コミック、TV
  ドラマの DVD など)を推薦する場合
 • 途中まで購入・消費しているユーザに、最
   終巻・最終回のアイテムを推薦する?
 • まったく購入・消費していないユーザに対
   して、シリーズ途中の(人気の高い)アイ
   テムを推薦する?
• ユーザの購入・消費状況を考慮したレコメ
  ンデーションをすることが必要
ユーザの気分を損なわせない
• アイテムによっては、ターゲットとしてい
  る客層が存在する
 • 成人男性向け、幼児・キッズ向け…
• 客層を無視してレコメンデーションをして
  しまうと
 • ユーザの気分を不快にさせてしまう
 • 「レコメンデーション」というシステムに
   悪印象を与えてしまう
• ユーザのプロファイルを参考に、レコメン
  デーション結果をフィルタリングする
レコメンデーションの理由付け
• 協調フィルタリングでは、ときに突飛なレコ
  メンデーションが行われてしまうことも
 • ユーザにしてみると、なぜレコメンドされたのか
   がわからず、自分に価値のあるアイテムかどうか
   判断できない
• レコメンデーションの妥当性・納得感をユー
  ザに与える「理由」「背景」を添えることで、
  突飛な印象を幾分和らげることができる
 • 「この商品を買った人は、こんな商品も買ってい
   ます」
 • 「この商品を見た後に買っているのは?」
レコメンドする状況・タイミング
• サービス提供者として、どの状況でレコメ
  ンデーションをしたいのか?
 • サービスにユーザがログインしているとき
   だけ?
 • サインアップ前のユーザに対してもレコメ
   ンデーションしたい?
• 状況・シーンにより、利用できる手法が限
  られる
 • 前者の状況であればユーザベースの手法が
   使えるが、後者はアイテムベースの手法し
   か使えない
5. 本日の発表のまとめ
今日お話しした内容
レコメンデーション … ユーザにとって価値のある情報を提示すること

コンテンツベースのレコメンデーション … アイテムの内容やメタデータ
を利用して、アイテムを推薦する


協調フィルタリング … ユーザの行動履歴を利用して、類似するユー
ザ・アイテムを探し出す

 ユーザベースの手法 … ユーザ間の類似度を計算し、類似するユーザ
 が消費したアイテムを推薦する


 アイテムベースの手法 … アイテム間の類似度を計算し、アクティブ
 ユーザが消費したアイテムに類似する別のアイテムを推薦する
ご清聴
 ありがとう
ございました

More Related Content

Similar to Introduction to Recommender Systems 2012.1.30 Zansa #3

拡がるディープラーニングの活用
拡がるディープラーニングの活用拡がるディープラーニングの活用
拡がるディープラーニングの活用NVIDIA Japan
 
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーション
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーションクエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーション
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーションYahoo!デベロッパーネットワーク
 
SPYSEE新検索機能の裏側
SPYSEE新検索機能の裏側SPYSEE新検索機能の裏側
SPYSEE新検索機能の裏側Naoki Orii
 
集合知プログラミング第2章推薦を行う
集合知プログラミング第2章推薦を行う集合知プログラミング第2章推薦を行う
集合知プログラミング第2章推薦を行うHiroko Onari
 
Collaborativefilteringwith r
Collaborativefilteringwith rCollaborativefilteringwith r
Collaborativefilteringwith rTeito Nakagawa
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Tatsuya Tojima
 
CVPR2018 参加報告(速報版)2日目
CVPR2018 参加報告(速報版)2日目CVPR2018 参加報告(速報版)2日目
CVPR2018 参加報告(速報版)2日目Atsushi Hashimoto
 
初期レビューを用いた長期間評価推定􏰀
初期レビューを用いた長期間評価推定􏰀初期レビューを用いた長期間評価推定􏰀
初期レビューを用いた長期間評価推定􏰀Junpei Kawamoto
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニングMunenori Sugimura
 
[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめDeep Learning JP
 
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)Koichi Hamada
 
Rブートキャンプ
RブートキャンプRブートキャンプ
RブートキャンプKosuke Sato
 
Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...
Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...
Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...Yoshitaka Ushiku
 
LS for Reinforcement Learning
LS for Reinforcement LearningLS for Reinforcement Learning
LS for Reinforcement Learningimlschedules
 
協調フィルタリング with Mahout
協調フィルタリング with Mahout協調フィルタリング with Mahout
協調フィルタリング with MahoutKatsuhiro Takata
 
レコメンドしてみよう!
レコメンドしてみよう!レコメンドしてみよう!
レコメンドしてみよう!Kazuya Obanayama
 
ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-Koichi Hamada
 
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature modelsn-yuki
 

Similar to Introduction to Recommender Systems 2012.1.30 Zansa #3 (20)

拡がるディープラーニングの活用
拡がるディープラーニングの活用拡がるディープラーニングの活用
拡がるディープラーニングの活用
 
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーション
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーションクエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーション
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーション
 
SPYSEE新検索機能の裏側
SPYSEE新検索機能の裏側SPYSEE新検索機能の裏側
SPYSEE新検索機能の裏側
 
集合知プログラミング第2章推薦を行う
集合知プログラミング第2章推薦を行う集合知プログラミング第2章推薦を行う
集合知プログラミング第2章推薦を行う
 
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
 
Collaborativefilteringwith r
Collaborativefilteringwith rCollaborativefilteringwith r
Collaborativefilteringwith r
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
 
CVPR2018 参加報告(速報版)2日目
CVPR2018 参加報告(速報版)2日目CVPR2018 参加報告(速報版)2日目
CVPR2018 参加報告(速報版)2日目
 
NIPS 2010 読む会
NIPS 2010 読む会NIPS 2010 読む会
NIPS 2010 読む会
 
初期レビューを用いた長期間評価推定􏰀
初期レビューを用いた長期間評価推定􏰀初期レビューを用いた長期間評価推定􏰀
初期レビューを用いた長期間評価推定􏰀
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
 
[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ
 
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
 
Rブートキャンプ
RブートキャンプRブートキャンプ
Rブートキャンプ
 
Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...
Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...
Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vi...
 
LS for Reinforcement Learning
LS for Reinforcement LearningLS for Reinforcement Learning
LS for Reinforcement Learning
 
協調フィルタリング with Mahout
協調フィルタリング with Mahout協調フィルタリング with Mahout
協調フィルタリング with Mahout
 
レコメンドしてみよう!
レコメンドしてみよう!レコメンドしてみよう!
レコメンドしてみよう!
 
ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-
 
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 

Recently uploaded (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 

Introduction to Recommender Systems 2012.1.30 Zansa #3

  • 1. Introduction to Recommender Systems Zansa #3 2012.1.30 at D2 Communications KOMIYA Atsushi (@komiya_atsushi)
  • 2. Agenda 1. 自己紹介&本日の発表について 2. レコメンデーションとは? 3. レコメンデーションを実現する技術 4. 実サービスへの応用 5. 本日の発表のまとめ
  • 3. 1. 自己紹介 & 本日の発表について
  • 4. 自己紹介・バックグラウンド • 名前 / Twitter ID • 小宮 篤史(@komiya_atsushi) • おしごと • Web / RIA エンジニア @ 中小 SIer • レコメンデーション関連やらテキストマイ ニング的な研究開発 ”支援” をしてます • 学部・院時代 • 情報理論・情報源符号化(データ圧縮)の 研究をしてました
  • 5. 本日の発表の目的・ねらい • 「レコメンデーション」を正しく理解 していただき、よりよいサービス提供 に貢献したい • 何も考えずに「Mahout 使えば簡単だ よね」と言う輩を一人でも減らしたい • あ、Mahout はいいプロダクトですよ
  • 6. おことわり • 本勉強会で発表する内容は、主観的な 意見・見解が多分に含まれています • 所属する会社・組織の意見・見解とは 無関係であることはもちろんのこと、 業界の一般的な意見・見解でもないこ とにご注意ください • あくまでも一個人の意見です
  • 8. 「レコメンデーション」 • 意味:「推薦」「おすすめ」 • サービスを利用するユーザにとって 有用・有益・価値のある情報を、 サービス側からユーザに提示すること • 「情報フィルタリング」技術の応用 • たくさんある情報の中から、価値のある 情報を抽出するしくみ • 「価値の有無」はユーザ毎に異なる
  • 15. いろんな「レコメンデーション」 • 「アイテム」の推薦 • ECサイト(例:Amazon) • 販売している「商品」を推薦する • ニュースサイト(例:asahi.com) • 購読している記事の「関連記事」を推薦する • 音楽関連サービス(例:last.fm) • 「アーティスト」や「曲」を推薦する • 「ユーザ」の推薦 • 各種 SNS(Twitter, Facebook…) • リンクレコメンデーション
  • 16. いろんな「レコメンデーション」 • 「アイテム」の推薦 • ECサイト(例:Amazon) • 販売している「商品」を推薦する • ニュースサイト(例:asahi.com) • 購読している記事の「関連記事」を推薦する • 音楽関連サービス(例:last.fm) • 「アーティスト」や「曲」を推薦する • 「ユーザ」の推薦 今回お話するのは • 各種 SNS(Twitter, Facebook…) こちらです • リンクレコメンデーション
  • 17. 何のために「レコメンデーション」するのか? • サービス提供サイド • 売り上げをアップさせたい • 興味のありそうな商品を提示することで、ユー ザの購入機会・意欲を増やす • ユーザの興味を開拓し、優良顧客に変えていく • PV 数を稼ぐことで、広告収入の増加を見込む • ユーザサイド • セレンディピティ(幸運を掴み取る能力) • いままで知り得なかった「情報」を知ることが できる • 新たな「興味」を発掘することができる
  • 18. レコメンデーションの精度・性能を測るには? • 定性的評価 • 被験者にレコメンデーション結果の良し悪 しを評価してもらう • 定量的評価 • 正解アイテムの数に着目する (Precision, Recall) • 評点(レーティング)の誤差に着目する (MAE, RMSE) • レコメンデーション結果の提示順序を 含めた質を測る (MAP, nDCG)
  • 19. Precision, Recall (適合率、再現率) • 定義 • N…レコメンドされたアイテムの集合 • C…ユーザにとっての正解アイテムの集合 • R…N に含まれる正解アイテムの集合 ������ • ������������������������������������������������������ = ������ ������ • ������������������������������������ = ������
  • 20. MAE, RMSE (Mean absolute error, Root mean square error) • 定義 • ������…アイテムの個数 • ������������ …アイテム i に対する予測評点 • ������������ …アイテム i に対するユーザの評点 1 ������ • ������������������ = ������������ − ������������ ������ ������ (������������ −������������ )2 • ������������������������ = ������
  • 21. MAP (Mean average precision) • 定義 • ������(������) … レコメンデーション結果の上位 k 個 における適合率 • ������������������(������) … レコメンデーション結果の上位から k 番目のアイテムが正解の場合に 1、不正解 なら 0 • ������������������������(������) … ユーザ u の平均適合率 ������ ������=1(������(������) × ������������������(������)) ������������������������ ������ = ������ ������∈������ ������������������������(������) • ������������������ = ������
  • 22. 2. レコメンデーションを 実現する技術
  • 23. 言葉の定義 • アイテム • ユーザにより購入・消費される商品や コンテンツ • レコメンデーションの対象となる • ユーザ • アイテムを購入・消費する存在 • 評点 • レーティング、点数(Amazon の星の数) • アクティブユーザ • アイテムのレコメンデーションを受けるユーザ
  • 24. レコメンデーションを実現するには? • ある「アイテム」に似ているほかの 「アイテム」を探し出す • アクティブユーザが見ているアイテムに 似ているアイテムを、レコメンドする • アクティブユーザに似た(行動をとる) ほかのユーザを探し出す • アクティブユーザに似たユーザが購入・ 消費したアイテムを、レコメンドする
  • 25. レコメンデーションに利用できる情報 • アイテムそのものの情報(内容) • ニュースの記事 • アイテムのメタデータ • 【例:書籍】タイトル、著者、ジャンル… • ユーザ属性 • 年齢、性別、家族構成、居住地、趣味… • ユーザの行動履歴 • 「ユーザ」と「アイテム」の関係性 • レーティング、購買、視聴、閲覧履歴…
  • 26. 二つのアプローチ • コンテンツベース • アイテムそのものの内容やメタデータを利用し、 類似性・関連性を計算する • レコメンデーション結果がありきたりになりがち • 協調フィルタリングベース • ユーザの行動履歴を利用し、類似度を計算する • 評点に基づく行動履歴であれば、類似度をもとに、 アクティブユーザが付与するであろう予測評点を 計算する • ユーザベースの手法とアイテムベースの 手法が存在する
  • 27. コンテンツベース・レコメンデーションの例 「探偵ガリレオ」 著者:東野 圭吾 ジャンル:ミステリー、探偵モノ
  • 28. コンテンツベース・レコメンデーションの例 「探偵ガリレオ」 著者:東野 圭吾 ジャンル:ミステリー、探偵モノ 容疑者Xの献身 さまよう刃 八つ墓村 (シリーズが同じ) (著者が同じ) (ジャンルが同じ)
  • 29. 協調フィルタリング ユーザベースとアイテムベース (1/2) • ユーザベース • ユーザを中心に考え、すべてのユーザ間 の類似度を行動履歴をもとに算出する • 算出された類似度をもとに、特に類似度 の高いユーザの持つアイテムを推薦する • アイテムベース • アイテムを中心に考え、すべてのアイテ ム間の類似度を、ユーザの行動履歴をも とに算出する
  • 30. 協調フィルタリング ユーザベースとアイテムベース (2/2) 徳川 松平 山内 坂本 探偵ガリレオ 購入 購入 容疑者Xの献身 購入 購入 購入 さまよう刃 購入 購入 八つ墓村 購入 購入 • ユーザベースだと… • 「徳川」と「松平」は二つの同じ商品を購入しているから、 二人のユーザは類似しているだろう • アイテムベースだと… • 「探偵ガリレオ」と「容疑者Xの献身」を両方とも購入して いる二人のユーザがいるから、二つのアイテムは類似してい るだろう
  • 31. ユーザベースの協調フィルタリング (1/2) ユーザ間の類似度を算出する • 定義 • ������������������ … ユーザ a とユーザ u の行動履歴に共起するアイ テムの集合 • ������������������ … ユーザ u がアイテム i に対して付与する評点 • コサイン類似度 (Cosine similarity) ������∈������������������ ������������������ ������������������ • ������������������ = 2 ������������������ 2 ������������������ ������∈������������������ ������∈������������������ • ピアソン相関係数 (Pearson correlation) ������∈������������������ (������������������ −������������ )(������������������ −������������ ) • ������������������ = 2 2 ������∈������������������ ������������������ −������������ ������∈������������������ ������������������ −������������
  • 32. ユーザベースの協調フィルタリング (2/2) 予測評点を計算する • 定義 • ������(������, ������) … ユーザ a に類似しており、アイテ ム i を評点づけしているユーザの集合 • 評点の予測値算出式 • コサイン類似度 ������∈������(������,������) ������������������ ������������������ • ������′������������ = ������∈������(������,������) ������������������ • ピアソン相関係数 ������∈������(������,������) ������������������ (������������������ −������������ ) • ������′������������ = ������������ + ������∈������(������,������) ������������������
  • 33. ユーザベース協調フィルタリングの例 (1/3) サンプルデータ 映画タイトル 徳川 松平 山内 ロード・オブ・ザ・リング ★★★★★ ★★★★★ ★ ハリー・ポッター ★★★★ ★★★★★ ★★ フォレスト・ガンプ ★★★ ★★★ ★★★ ダイ・ハード ★★ ★ ★★★★ ソウ ★ ★ ★★★★★ 13日の金曜日 ? ★ ★★★★★ ナルニア国物語 ? ★★★★★ ★ 徳川さんにおすすめするべき 映画はどちらが好ましいか? 予測評点を算出して 比較してみましょう
  • 34. ユーザベース協調フィルタリングの例 (2/3) ユーザ間類似度を計算する 映画タイトル 徳川 松平 山内 ロード・オブ・ザ・リング ★★★★★ ★★★★★ ★ ハリー・ポッター ★★★★ ★★★★★ ★★ フォレスト・ガンプ ★★★ ★★★ ★★★ ダイ・ハード ★★ 徳川さんと行動履歴が類似する ★ ★★★★ ユーザは松平さん。 ソウ ★ ★ ★★★★★ ピアソン相関係数の方がより 13日の金曜日 ? ★ ★★★★★ 明らかな結果となる。 ナルニア国物語 ? ★★★★★ ★ 徳川さんとの類似度 (コサイン類似度) 0.984 0.636 徳川さんとの類似度 (ピアソン相関係数) 0.949 -1.000
  • 35. ユーザベース協調フィルタリングの例 (3/3) 評点予測値を計算する 映画タイトル 松平 山内 13日の金曜日 ★ ★★★★★ ナルニア国物語 ★★★★★ ★ 徳川さんとの類似度(コサイン) 0.984 0.636 徳川さんとの類似度(ピアソン) 0.949 -1.000 映画タイトル 予測値 予測値 (コサイン) (ピアソン) 徳川さんには 13日の金曜日 2.570 1.000 「ナルニア国物語」 ナルニア国物語 3.429 5.000 がオススメ!
  • 36. 協調フィルタリングのいいところ • アイテムのメタデータなどが要らない • メタデータを充実させるにはコストや手 間がかかる • 「ありきたり」ではないレコメンデー ションができる • 常識にとらわれない、意外性のあるレコ メンデーション
  • 37. 協調フィルタリングのダメなところ • 計算量・オンライン処理 • ユーザ・アイテムの規模が大きくなると、ナイーブ実装では 計算量的にオンライン処理ができなくなる • コールドスタート問題 • 十分な行動履歴がないと、まともな推薦ができない • サービス開始直後や、新規ユーザ・新規アイテムの登録時に 発生する • コンテンツベースの手法と組み合わせて改善可能 • スパース問題 • アイテム数が多すぎて、ユーザ間・アイテム間の関係性が疎 になってしまう • Random walk を取り入れることで改善可能 http://www.slideshare.net/komiyaatsushi/tokyo-webmining- 8cfrwr
  • 38. そのほかの協調フィルタリング手法 • アイテムベース • Amazon の手法だと、オフラインの前処理が 必要になるものの、オンラインでのレコメ ンデーションが可能になる • http://blog.k11i.biz/2011/06/amazon-item-to-item- cf.html • Slope one • オンラインでのレコメンデーションが可能 で、行動履歴の変更にもすぐに追従できる • http://lemire.me/fr/documents/publications/lemir emaclachlan_sdm05.pdf
  • 39. Apache Mahout 協調フィルタリングの各種実装を提供 • スケーラブルであることを目指した 機械学習ライブラリ • 協調フィルタリングの下記実装を提供する • ユーザベース • アイテムベース • Slope One • 独自に協調フィルタリングを実装する前に、 まず利用を検討してみましょう
  • 40. 3. 実サービスへの適用 ※注意! ここから先の説明は、発表者の主観が特に 強く現れていますのでご注意ください。
  • 41. 実サービスに適用するその前に! • 「Mahout 使えば(レコメンデーションな んて)簡単だよね」 • 本当にそうでしょうか? • 機械が計算して出した予測(レコメンデー ション)を、そのまま信じてユーザに提示 していいの? ユーザは本当に喜ぶの? • アイテムの内容やユーザの嗜好を考慮して、 結果を取捨選択したり、レコメンデーショ ンエンジンのチューニングをする必要があ る
  • 42. 実サービスに適用する上で気をつけるべきこと • ユーザ視点 • レコメンドされてうれしいもの • ユーザの気分を損なわせない • レコメンデーションの理由付け • サービス提供者視点 • レコメンドする状況・タイミング
  • 43. レコメンドされてうれしいもの (1/2) • レコメンドされたアイテムが、アクティブ ユーザにとって妥当か? • アクション映画大好きなユーザに、 「ダイ・ハード」を推薦したとして、果たして喜 ぶだろうか? • レコメンデーションの妥当性とは? • 「見当違い」であってはならない • でも、「当たり前」であってもダメ • アクティブユーザにとって「意外」だったり 「新鮮」なレコメンデーションであるべき
  • 44. レコメンドされてうれしいもの (2/2) • シリーズもののアイテム(コミック、TV ドラマの DVD など)を推薦する場合 • 途中まで購入・消費しているユーザに、最 終巻・最終回のアイテムを推薦する? • まったく購入・消費していないユーザに対 して、シリーズ途中の(人気の高い)アイ テムを推薦する? • ユーザの購入・消費状況を考慮したレコメ ンデーションをすることが必要
  • 45. ユーザの気分を損なわせない • アイテムによっては、ターゲットとしてい る客層が存在する • 成人男性向け、幼児・キッズ向け… • 客層を無視してレコメンデーションをして しまうと • ユーザの気分を不快にさせてしまう • 「レコメンデーション」というシステムに 悪印象を与えてしまう • ユーザのプロファイルを参考に、レコメン デーション結果をフィルタリングする
  • 46. レコメンデーションの理由付け • 協調フィルタリングでは、ときに突飛なレコ メンデーションが行われてしまうことも • ユーザにしてみると、なぜレコメンドされたのか がわからず、自分に価値のあるアイテムかどうか 判断できない • レコメンデーションの妥当性・納得感をユー ザに与える「理由」「背景」を添えることで、 突飛な印象を幾分和らげることができる • 「この商品を買った人は、こんな商品も買ってい ます」 • 「この商品を見た後に買っているのは?」
  • 47. レコメンドする状況・タイミング • サービス提供者として、どの状況でレコメ ンデーションをしたいのか? • サービスにユーザがログインしているとき だけ? • サインアップ前のユーザに対してもレコメ ンデーションしたい? • 状況・シーンにより、利用できる手法が限 られる • 前者の状況であればユーザベースの手法が 使えるが、後者はアイテムベースの手法し か使えない
  • 49. 今日お話しした内容 レコメンデーション … ユーザにとって価値のある情報を提示すること コンテンツベースのレコメンデーション … アイテムの内容やメタデータ を利用して、アイテムを推薦する 協調フィルタリング … ユーザの行動履歴を利用して、類似するユー ザ・アイテムを探し出す ユーザベースの手法 … ユーザ間の類似度を計算し、類似するユーザ が消費したアイテムを推薦する アイテムベースの手法 … アイテム間の類似度を計算し、アクティブ ユーザが消費したアイテムに類似する別のアイテムを推薦する