推薦システム
Recommender System神嶌 敏弘
www.kamishima.net
2023-07-27 更新開始

1

この資料について

この資料は，講義・講演で用いた資料をまとめたものです．単純に繋げたものなので，全体としての構成にはあまり配慮していません．
この資料よりかなり古く，更新してませんが文書化したものもあります
http://www.kamishima.net/archive/recsysdoc.pdf
その他の参考資料を以下のサイトで配布しています
http://www.kamishima.net/jp/kaisetsu/

2

表記一覧
記号

x
y
a
n
m
rxy

意味

記号

z

特定の利用者
特定のアイテム
特定の活動利用者
利用者数
アイテム数
利用者 x のアイテム y への評価値

R 評価値行列ℛ 評価値の定義域（5段階評価なら {1,⋯,5}）
𝒳 利用者全体の集合
𝒳y アイテム y を評価した利用者全体の集合
𝒴 アイテム全体の集合
𝒴x 利用者 x が評価したアイテム全体の集合
x 利用者をまとめたベクトルy アイテムをまとめたベクトル
rx 利用者 x の評価値ベクトル＝Rの行ベクトル<latexit sha1_base64="PXpta2WeG6fE7nmCRSCJlJ+tOdU=">AAAC+nichVK7SgNBFD2ur/iO2gg2wRCxChMRFbEI2GhnEhMDMYTddaJL9sXuJqjRH9BWsbBSsAi2/oGNP2CRTxA7FWwsvPsIvjDeZXbu3Jlz5tw7VzJVxXYYa3YInV3dPb2hvv6BwaHhkfDoWM42qpbMs7KhGlZeEm2uKjrPOoqj8rxpcVGTVL4pVVbc/c0at2zF0DecfZMXNXFHV8qKLDoUSlVK4SiLM88iv51E4EQR2LoRfsYWtmFARhUaOHQ45KsQYdNXQAIMJsWKqFPMIk/x9jmO0E/YKp3idEKkaIX+O7QqBFGd1i6n7aFlukWlYREyghh7YA32wu7ZDXtk739y1T0OV8s+zZKP5WZp5Hgi8/YvSqPZwe4nqq1mB2UseloV0m56ETcL2cfXDs5fMkvpWH2aXbEn0n/JmuyOMtBrr/J1iqcv2rDrlLnLthfU0vYquYdZn5tGS2uEVBjeOyyRn8EG1pD/Ev075xZDq1ZuvW33nagtEj+b4LeTm40n5uNzqblocjlokBAmMYUZ6oIFJLGKdWTpRo4TnOJMOBSuhIZw4x8VOgLMOL6ZcPsB16iofA==</latexit>

z
𝒟
N
U
V
ux
vy

意味
潜在因子
潜在因子の次元数
潜在因子のベクトル
訓練データ集合訓練データ数
利用者潜在因子行列
アイテム潜在因子行列
利用者 x の潜在因子ベクトル
アイテム y の潜在因子ベクトルy (t) 時刻 t での値
Θ モデルのパラメータ全体
sig シグモイド関数
A−1 逆行列
A⊤ 行列の転置
⊥ 欠損値
3

第Ⅰ部

推薦システムの基本事項

4推薦システムの例と分類

5

推薦システムとは[Resnick+ 97]“Recommender System” の初期の著名な解説特集での定義
It is often necessary to make choices without sufficient personal experience of thealternatives.
In everyday life, we rely on recommendations from other people either by word of
mouth, recommendation letters, movie and book reviews printed in newspapers, or
general surveys such as Zagat's restaurant guides.
Recommender systems assist and augment this natural social process.

自分の経験だけでは，違いがあまり分からないものの中からでも，どうしてもどれかを選ばなければならないということはよくある．
こうしたときには，口コミ，推薦状，新聞の書評や映画評，ザガットのレストランガイドなどの他人からの推薦に頼ることを日常的に行っている．
推薦システムは，社会で普通に行われている，こうした一連の行為を補助したり，促進したりする．

6

推薦システムとは[Konstan+ 03]

Recommenders: Tools to help identify worthwhile stuﬀ
推薦システム：どれに価値があるかを特定するのを手助けする手段
推薦インターフェース (Recommendation Interface)
利用者の目的に適合するものを n 件選んで提示する
店舗サイトでの奉仕品の提供や販促活動

予測インターフェース (Prediction Interface)
候補商品に対して評価を与える

商品に対して利用者が付ける★ランクの数の予測フィルタリングインターフェース (Filtering Interface)
電子メールのスパムフィルタ

関連する新聞記事のまとめ (clipping service)
広義には自動化されていないサービスをも含む
7

推薦システム (Amazon.co.jp)

特定の顧客の嗜好に合わせて商品を選ぶ

2007/7/26 にスクリーンショットを取得
8

推薦システム (Amazon.co.jp)
売れ筋/評価情報

他の利用者の評価
類似商品の推薦
2007/8/5 にスクリーンショットを取得

9推薦システム (iTunes)

人気リスト
店舗の専門家(editor)の推薦

2007/7/26 にスクリーンショットを取得
10

推薦システム (iTunes)

他の利用者による推薦リスト

2007/7/26 にスクリーンショットを取得
11

推薦システム (MovieLens)

利用者の嗜好の度合いを★で示す

2007/7/26 にスクリーンショットを取得

映画を推薦する実験システム
12

キャッチコピー[Ben Shafer+ 01]

If I have 3 million customers on the Web,I should have 3 million stores on the Web
Jeff Bezos, CEO of Amazon
Web上の300万の顧客には，Web上の300万の店を“the old World of Mass Production, in which standardized products,
homogeneous markets, and long product life and development cycles ware
the rule”“variety and customization supplant standardized products, heterogeneousand fragmented markets spring from once-homogeneous markets, andproduct life cycles and development cycles spiral downward”
B. Joseph Pine II, “Mass Customization”
画一的な Mass Production から多様な Mass Customization へ13

推薦システムの位置付け
データ
クエリ
明示的

[Baeza-Yates 20]

非構造化

構造化

情報検索

（関係）
データベース

暗黙的推薦システム未知

データマイニング14推薦システムの要素技術
ヒューマンインターフェース

アイテムの内容や推薦に関連した情報を提示

推薦に必要な情報を，利用者から的確に収集

機械学習・統計的予測・情報検索

収集したデータに基づく推薦情報の生成
目的に応じた推薦情報の変換

データベース・並列計算・ネットワーク

推薦に必要な情報を蓄積・処理・流通させる基盤

15

他の技術との関連[Ben Shafer+ 01]

情報フィルタリング (information ﬁltering)

逐次的に入力される情報から，利用者プロファイルに適合するものを選別する技術
内容ベースの推薦システムと類似

利用者プロファイルがクエリで表されることが多い

フィルタリングは，必要なものを見つけるより，不要なものの除外が主な目的マーケティングの関連技術
マーケティングは供給側

推薦システムは消費者側

推薦システムには，全体傾向のレポート作成などは不要

マーケティングのように顧客層を分類することは，推薦システムの目的ではない16

推薦システムの運用目的による分類[Ben Shafer+ 01]

概要推薦 (broad recommendation)

統計情報や編集者による推薦．新規や低頻度の利用者の補助．

利用者評価 (user comments and rating)

他の利用者の評価を示す．コミュニティの構築．

通知サービス (notiﬁcation service)

システムを利用していないときにメールなどで通知．サイトへの再訪を促す．

関連アイテム推薦 (item-associated recommendation)

関連アイテムやその情報を同時に提示．cross-sellingの促進や比較判断の補助．

緊密な個人化 (deep personalization)

積極的に利用者の個人情報や行動履歴を利用．差別化によるシステ
ムへのロイヤリティの構築．
17

アイテムへの知識に基づく利用目的の分類
正解率を重視[Swearingen 01]

備忘録

既知のアイテムを思い出させる類似品比較検討などのため，既知のアイテムに類似したものを探す

新規アイテムジャンルなどが既知のアイテムと同じ，自分が確実に好むであろう，新アイテムを探す

視野を広げる他のジャンルにも自分の関心を広げるため，やや興味の薄いアイテムをも含める

多様性を重視18

推薦の個人化の度合い[Ben Shafer+ 01]

非個人化 (non-personalized)
どの利用者にも一律に行う推薦

人気商品ランキング，人間の推薦者による推薦など

一時的個人化 (ephemeral personalization)
利用者の入力に基づいた推薦

カテゴリ検索や，類似商品の提示など

永続的個人化 (persistent personalization)
利用者の過去の行動などに基づいた推薦

利用者の同じ入力・行動に対しても異なる結果を提示する

19

推薦システムの誕生と歴史

20

推薦システム登場の背景[Maes 94]

社会の高度情報化 & 情報発信の低コスト化
大量のデータが常に生成されている記憶媒体の大容量化 & 通信の高速化
膨大なデータの蓄積や流通が可能になった

情報過多
Information Overload
情報洪水 (Information Overﬂow) ／ 情報爆発 (Information Explosion)
21

情報過多

[Resnick+ 94, Maes 94]

情報過多
Information Overload
欲しい情報が必要な情報を埋もれている

検索しても候補がありすぎる

具体化できない
適切なキーワードがわからない
官庁統計の名前が不明

情報があると分かっているのに欲しい情報は見つけられない22

推薦システムの登場[Resnick+ 94]

どうにかして情報を利用できないか？

ガイドブックで☆☆☆
他の人の意見を参考にする

好きな俳優が出演している映画
好きなものの特徴に注目

推薦システムRecommender System
この作業をコンピュータを使って行う
23

推薦システムの登場
情報過多

膨大な情報の集積情報があると分かっているのに，欲しい情報は見つけられない
欲しい情報が埋もれている
必要な情報を具体化できない
推薦システム
どれに価値があるかを特定するのを助けるシステム
推薦候補の特徴や性質に基づいて推薦

他人「口コミ」の情報に基づいて推薦

内容ベースフィルタリング

協調フィルタリング
24

推薦システムの黎明期
1980年代：情報フィルタリング研究やUSの特許 [芳賀 08]
System and Method for Predicting Subjective Reactions(1987) US Patent 4870579
System and Method for Recommending Items(1989) US Patent 4996642

1992：Tapestory 他の利用者による人手による推薦．協調フィル
タリング (collaborative ﬁltering) の概念 [Goldberg+ 92]．
1994：協調フィルタリングの自動化．GroupLens [Resnick+ 94] やRingo [Shardanand+ 95]．現在の推薦システムの基礎．

1990年代中期：情報フィルタリングやメモリベース推論の，内容
ベースフィルタリング (content-based ﬁltering) への変化．
1996：専門ワークショップの開催

1997：ACM Communications誌の特集．推薦システム(recommender system) の呼称の定着 [Resnick+ 97].

1990年代後期：NetPerceptions や Fireﬂy などによる商業化
25

技術課題
データ入力：入力情報の整備（アイテム情報のデータベース・Web
サービス化，嗜好のゆらぎの補正，評価基準の多様化）入力情報の高度化（自然言語処理，画像・音声認識，センサー情報）
嗜好の予測：スタートアップ問題，利用者・アイテムの変化への対処（オンライン学習）推薦の多様性，コンテキスト考慮型推薦，大規模化（オンライン学習，データベース参照の効率化，並列分散処理）
マルチ評価基準，グループ推薦，ソーシャル推薦，相互推薦，マルチドメイン推薦，推薦の公平性
推薦の提示：推薦の提示環境（街頭の案内板・掲示板，拡張現実の利用） 対話型のインターフェース（能動学習，バンディット，ラン
キング学習)
その他：プライバシー保護（プライバシ保護技術，法整備）サクラ攻撃（サクラ攻撃の検出）マルチステイクホルダー
26

推薦システムの実行過程[Konstan+ 03]

O-I-Pモデル (Output-Input-Process)

活動利用者
active user

データ入力

1

推薦システムrecommender system

利用者
データ

嗜好データ
批評
= 2.3

アイテム
データ

= 0.8
= 4.3

3 推薦の提示

= 3.2

2

嗜好の予測
27

データ入力28

入力データの種類
嗜好データ (preference data)

各種のアイテムに対して，利用者がその好き嫌いの度合いを示す
例：アイテム1＝好き，アイテム2は，5段階評価で2

検索質問 (query) や批評 (critique)利用者が好むアイテムについての具体的な記述
例：価格は6000以下の和食の店

利用者報特徴 (user feature)

利用者の個人属性情報や行動履歴などを記述した特徴

アイテム特徴 (item feature)

推薦されるアイテムを記述した特徴

コンテキスト特徴 (context feature)

推薦されたアイテムを使う日時や場所，アイテムの在庫状況など
29

嗜好データの獲得
活動利用者

推薦システム
嗜好データ
どんなものが好きでどんなものが嫌いかという情報明示的な獲得：利用者に好きか嫌いか質問して回答を得る
暗黙的な獲得：利用者の行動から好き嫌いを推測する

30

嗜好データの明示的獲得 vs 暗黙的獲得

31

嗜好データの明示的獲得
明示的な獲得 (Explicit Feedback)：利用者に好きか嫌いか
質問して回答を得る
採点法 (scoring method)
この本は面白かったですか？

格付け法 (rating method)
この服のデザインはどうですか？

あまり面白くなかった
５段階評価で★☆☆☆☆

上中下でいうと中32

採点・格付け法と順位法[kamishima 03]

採点法・格付け法 (scoring/rating method)

5段階などの点数や「優良可」などの段階で解答
例：被験者が 対象A を好きならば，尺度の「好き」を選ぶ

A

好き

1

2

3

4

5

嫌い

順位法 (ranking method)

計測する度合いの強さの順に対象を整列

例：被験者は 対象A が最も好きで，対象B が最も嫌い
好き

>
A

>
C

B

嫌い
33

嗜好データの暗黙的獲得
暗黙的な獲得 (Implicit Feedback)：利用者の行動から好き嫌いを推測する
このDVD買います

買ったDVDは好きに違いない

このWebページはじっくり見よう閲覧時間が長いからとても興味があるんだろう

34

明示的 vs 暗黙的：データ量
推薦の精度を向上させるにはできるだけ多くのデータを集める必要

明示的獲得
これ評価してまたぁ！面倒くさい

大量のアイテムの嗜好について
明示的に回答するのは無理

暗黙的獲得
この店おいしそう

こっちもいいな

利用者のシステムへの任意の行
動からデータをいつでも収集可
能35

明示的 vs 暗黙的： 評価の正確さ
嗜好パターンと強く結びついた行動を利用しても，適切に好き嫌いが表されていない場合も明示的獲得
これは好きだよよしよし
これは好きと明示的に好き嫌いを答えてもらえば，より直接的にアイテムへの嗜好が分かる

暗黙的獲得
閲覧時間が長いな

むにゃ〜居眠りしてた行動から得たデータが，利用者の嗜好を正確に表さない場合も多い
36明示的 vs 暗黙的：未評価と不支持あるアイテムに対する利用者の能動的な反応は肯定的評価と考えられるが，そうでないときは不明確
明示的獲得
こんなの嫌いこれは嫌いと嗜好を尋ねていないものは未評
価，否定的な回答を得たアイテ
ムは不支持と分かる

暗黙的獲得
見てないWebページ

閲覧しなかったからといって，不支持ではなく，単に知らずに未評価かもしれない
37

明示的 vs 暗黙的：利用者の認知
明示的に質問すれば，利用者は嗜好データをシステムに入力したことを
認知できる
明示的獲得
これなんかどう？

あのときああ答えたからね

提示された推薦と，自分が過去に示した嗜好とが結び付くと推薦に納得しやすい

暗黙的獲得
これ好きでしょう？

納得いかないなぁ

根拠が不明確になりがちで信用されなかったり，プライバシの侵害と感じることも38明示的獲得 vs 暗黙的獲得
明示的獲得

暗黙的獲得

データ量

少ない

多い

評価の正確さ

正確

不正確

未評価と不支持明確

不明確

利用者の認知認知不認知
39

評価値の表現40

評価のゆらぎと偏り
評価のゆらぎ

同じアイテムを6週間後に評価すると，利用者の評価値には一部違っており，その相関は0.83[Hill+ 95]
利用者の評価時に，予測評価などを提示すると，評価はそれに影響される[Cosley+ 03]

評価の偏り

利用者の評価値は，一般に良い方が多くなる傾向がある

この評価値のバイアスは予測精度の評価や，評価値の予測に悪影響

60 ％

60 ％

60 ％

45

45

45

30

30

30

15

15

15

0

0

嫌い

中間

MovieLens[MovieLens]

好き

嫌い

中間

Amazon.com[Weigend 03]

好き

0

嫌い

中間

好き

寿司
[Kamishima 06]
41

評価スケールの影響[Cosley+ 03]

5starに加え，Binary，0なしの-3〜+3，Half-Starのスケールを比較
アイテムの再評価の一貫性

数ヶ月〜数年：不変＝60%，下降＝20%，上昇＝20%，相関＝0.70

スケールへの選好

5段階評価で質問：half-star=4.2，5star=3.8，no-zero=3.2，
binary=2.2

最も細かい尺度を好む．0なしスケールは嫌われる．元の5段階尺度になじみがあるようだ
スケールの違いが評価の分布に与える影響

binary や non-zeroでは評価は高くなる

全般的に元の評価値の相関は高く，分布の形状も類似

5star→binaryでの調査：中間評価の3は肯定的に写されやすい
42

評価時に予測評価を表示する影響[Cosley+ 03]

評価時に以前の評価を予測評価として見せたときの影響

見せた場合も見せなかった場合も元の評価との差は0.01予測を見せた場合の方が有意に同じ評価をした

以前の値の 1の評価を予測評価としてみせたときの影響+1を示すと評価値は0.14増加，-1を示すと0.16減少

未評価アイテムで，予測評価を改竄して表示したときの影響
正確な予測とその 1いずれの提示でも評価は悪めに評価

正確な予測を提示したときの評価を基準にすると，+1 では0.15上
昇，−1 では0.23下降

予測値がずらされていることに気づく利用者はかなりいる43

評価スケールの影響[Sparling+ 11]

実験条件

1値(unary)，2値(binary)，五つ星(ﬁve-star)，スライダー(100点)
過去の記憶に基づいて評価する映画と，その場で評価する商品レビュー
二次刺激：評価自体と，スケールの違いの負荷を分離する目的得られた知見細かいスケールでは評価時間がかかり，評価の中断も多かった

1値とスライダーのスケールの評価時間の相対差は映画が大きかった(62% vs 25%) が，絶対時間ではレビューの方が大きかった (2秒vs 3.5秒)
評価値が中間的なときに評価時間は長くなる

全般的に五つ星スケールが好まれるが，レビューでは2値評価も次点
44

嗜好の予測45

嗜好の予測データ

機械学習
アルゴリズム

予測評価値

データ自身の特性や予測評価値に望まれる特性に合わせて設計
考慮すべき性質

データ：利用者数，アイテム数，嗜好データの数……
予測評価値：予測誤差，多様性，被覆率…

※ 機械学習を使わずに人間が与えたルールで予測するものもある
46

推薦タスクの分類[Herlocker+ 04, Gunawardana+ 09]

適合アイテム発見 (ﬁnd good items)

利用者の嗜好に適合するアイテムを，何か見つけ出す
明示的評価：予測評価値が高いアイテムを推薦

暗黙的評価：肯定的と予測されたアイテムを推薦

利用者は積極的な意志決定の動機を持っていると想定
例：今から食べに行くレストランを決める

評価値予測 (predicting ratings)

アイテムに利用者が付けるであろう評価値を予測する
明示的評価：予測された評価値をそのまま提示

暗黙的評価：肯定的な予測の確からしさを評価値とする

明確な意志決定はなく，リストを閲覧する状況を想定
例：レストランの紹介Webサイトを眺めて楽しむ47

推薦タスクの分類[Herlocker+ 04, Gunawardana+ 09]

適合アイテム列挙 (ﬁnd all good items)

自分の嗜好に適合するものを全て列挙する

意思決定にあたって候補を網羅的に検討したい状況を想定
例：会社の法務部門での特許検索

効用最適化 (optimizing utility)

cross-sell の増加や，さらには利用者の満足などの効用を最大化

適合アイテム発見タスクの適合度を効用とみなすと，その一般化と考えられるタスク
例：小売店での長期的な売上を効用とし，それを最大化

48

内容ベースフィルタリング
vs
協調フィルタリング

49

内容ベースフィルタリングと協調フィルタリング
推薦システム
推薦を自動化する2種類の方法

協調
フィルタリング

内容ベース
フィルタリング

Collaborative Filtering

Content-Based Filtering

他人の意見を利用

アイテムの特徴を利用

ハイブリッドフィルタリング：2種類の方法の組み合わせ
知識ベースフィルタリング：具体的な嗜好の提示

50

協調フィルタリング
他人の意見を利用した「口コミ」による推薦
嗜好が似ている人が好きなものを推薦する
ラーメンの嗜好が似ている人たち

おいしい
ラーメンは？

「どさんこ」
は美味しかった

札幌ラーメン「どさんこ」はいい「どさんこ」へ行こう「どさんこ」が好き
51

協調フィルタリング
活動利用者

推薦システム

標本利用者
オススメ

似ている
オススメ

比較

嗜好データ

中間
オススメ

要約
オススメ

似てない
利用者DB
52

内容ベースフィルタリング
利用者の嗜好に合った特徴を備えたアイテムを推薦
特徴：アイテムの内容を表す情報
新聞記事：題名，日付，本文‥‥

映画：題名，監督，ジャンル，俳優，受賞‥‥

ラーメン：スープのもと，味付け，麺の太さ‥‥
ラーメンはトンコツスープでちじれ麺

それなら「玄界灘」ラーメンがお薦め

53

内容ベースフィルタリング
利用者の過去の嗜好データとアイテムの特徴の一致を調べる
うま〜

まず〜

うま〜

とんこつ
ちじれ麺
ナルトあり
チャーシュ薄
替え玉あり

醤油
細麺
ナルトなし
チャーシュ厚
替え玉なし

とんこつ
細麺
ナルトあり
チャーシュ厚替え玉なし

どんな「特徴」のアイテムを利用者が好むのかを表す情報

多分，こういう
のが好き
とんこつ
？
ナルトあり
？
？

利用者
プロファイル

嗜好をクラスとし，それを特徴から予測する分類問題として定式化
54

内容ベースフィルタリング
活動利用者

嗜好データ

推薦システム

トンコツ
大盛り
太麺

アイテム
データ
比較

トンコツ
太麺

醤油
細麺

利用者
プロファイル
オススメ
55

知識ベースフィルタリング[Burke 02]

利用者が与えた自身の嗜好の具体的な記述に一致するアイテムを推薦
検索質問 (query)：自分の嗜好を満たすものの条件を詳細に述べる
ベースはとんこつ
麺は太麺ちぢれ麺
チャーシュー大盛：

その条件を全に合うのは，博多ラーメン「どんたく」「中洲一番」…

批評 (critique)：現在の候補に対して改善して欲しい点を述べる
これより，もう少しあっさりした
スープがいいなぁ

スープ を と ん こ つから醤油に変えて「京風拉麺」とか※ 内容ベースでは嗜好データだけを示し，アイテムの特徴は指定しない
56

知識ベースフィルタリング
活動利用者

推薦システム

トンコツ
大盛り

検索質問
批評

アイテム
データ

比較

トンコツ
太麺

醤油
細麺

オススメ
57

協調 vs 内容ベース：多様性
多様性 (diversity) や セレンディピティ(serendipity)
単に知らないだけでなく，意外性もある推薦
意外性のある推薦は楽しい！

協調フィルタリング
こんなの知ってる？

内容ベースフィルタリング

へぇ〜知らなかったよ

利用者プロファイル

自分の知らないことを，他人は知っていることも利用者プロファイルは自分の知っていることだけ58

目新しさ，セレンディピティ，多様性[Herlocker+ 04]

目新しさ(novelty)
興味 ＋ 新規性

セレンディピティ(serendipity)
興味 ＋ 新規性 ＋ 意外性

白沢監督の最新作映画だよ

この新人監督の映画もきっと気に入るよ

長い間
待ってたよ

そんなのもあるんだ
面白そうだね

多様性 (diversity)：推薦したものが違いに似ていないということ

セレンティビティの定義は厳密ではないのでこの語が使われるように
59

協調 vs 内容ベース：ドメイン知識
ドメイン知識：アイテム・利用者・コンテキストの特徴などの情報

ドメイン知識を管理するDBの維持は高コスト

利用者が選択規準にする特徴の情報がなければ推薦は不可能

どの特徴を採用するかが，利用者の意志決定に影響を与える [Häubl 01]
協調フィルタリング

内容ベースフィルタリング
アイテムの特徴
タイトル

サスペンスなら何でもいいってわけじゃ‥‥
あの俳優が出てなくちゃ

ジャンル

そもそも内容記述は不要

利用者の嗜好を捉えるのに重要
な，アイテムの特徴が欠けていると良い推薦はできない60

協調 vs 内容ベース：スタートアップ問題
スタートアップ問題 (コールドスタート問題)
使い始めの利用者への推薦や新アイテムの推薦

協調フィルタリング

よろしく！

誰と似てるんだろう？

嗜好データのない利用者や，ア
イテムは推薦できない

内容ベースフィルタリング
よろしく！
トンコツ大好き

トンコツだったら好きそうだな‥‥

アイテムの特徴でどうにかなる
知識ベース型なら新規利用者でも可61

協調フィルタリングと利用者数
協調フィルタリングは利用者数が少ないと稼働しない
協調フィルタリングシステムの運用を始めると…

スタートアップ問題：負のフィードバック・ループ
利用者数が少ない

利用者数増えない

よい推薦ができない
データベース中にはあっても，誰にも評価されていないアイテムは推
薦されない

嗜好パターンが少数派の利用者には嗜好パターンが類似している標本
利用者がいない62

協調 vs 内容ベース：システムの利用者数
協調フィルタリングの嗜好の予測精度は利用者数に依存している
利用者数の規模が限られた小さなコミュニティでは運用は難しい
協調フィルタリング

だれか教えてし〜ん‥‥

システムの利用者数が少ないと良い推薦はできない

内容ベースフィルタリング
麺を味わうならやっぱり塩それなら‥‥

アイテムの特徴があれば，他の利用者は関係ない63

協調 vs 内容ベース：被覆率
被覆率(Coverage) ＝推薦候補にできるアイテム数
とりそろえた全アイテム数

とりそろえたアイテム全てを推薦できるわけではない
協調フィルタリング

内容ベースフィルタリング

食べたことない
たこ焼き味
アイス

何それ？

嗜好が似た人がだれも試していないアイテムは扱えない

たこ焼き味
アイス

ソース味が好きな人にはお薦めだね

アイテムの特徴を手がかりにす
ればどのアイテムでもOK64

協調 vs 内容ベース：類似アイテム
アイテムの類似性

アイテムの特徴に基づいた類似性の判定ができる

協調フィルタリング

どうも好みの色じゃないんだよな

アイテムをIDで区別するので，アイテムの特徴は考慮できない

内容ベースフィルタリング

この色が
お気に入り

アイテムのいろいろな特徴に基づいて推薦ができる65

協調 vs 内容ベース：少数派の利用者
少数派の嗜好の人でも適切な推薦を受けられるか？

同じ嗜好の利用者が少ない嗜好パターンを推定するのは困難

協調フィルタリング
ゴキブリ
Love♡

内容ベースフィルタリング
ヒェー‥‥

似た嗜好の人がいない利用者
は，適切な推薦をいつまでも受
けられない

ゴキブリ
Love♡

これなら
オススメ
DVD
ゴキちゃん
パラダイス

利用者プロファイルさえ獲得できれば，適切な推薦が可能
66

協調 vs 内容ベース：まとめ[Balabanović+ 97, Burke 02]

協調

内容ベース

セレンディビティ
ドメイン知識スタートアップ問題
システムの利用者数
被覆率
類似アイテム
少数派の利用者67

推薦の提示68推薦の提示適切な形式で推薦候補を利用者に提示
アイテム

予測評価値
★★★★★
★☆☆☆☆
★★★☆☆
★★☆☆☆
★★★★★

おすすめだよ！

これに
にしよう

第1位
第2位
第3位

推薦候補の予測69

タスクに応じた推薦結果の表示[Herlocker+ 04, Gunawardana+ 09]

適合アイテム発見

評価値予測

利用者の目的に適合すると予測した順にアイテムを提示表示しているアイテムに予測評価
値を参考出来るように表示
70

推薦の配送推薦結果を利用者に配送する手続きの分類[Ben Shafer+ 01]

Push：利用者がシステムを直接には使っていない場合に，利用者に推薦を届ける
電子メールやWebのバナー広告

Pull：利用者が明示的に要求したときに推薦リストを生成

最近では利用されなくなり，Passive が使われるように

Passive：利用者がシステムを利用中に推薦を添付
商品の検索結果に予測評価値を添付

閲覧中の商品に同時購入の可能性のある商品を推薦
積極的な推薦はできず，主導権は利用者にある

71

推薦アイテムの選別
予測評価の高いアイテムでも推薦すべきでないアイテム
ルールベースのフィルタリングにより必ず除外する
利用者に依存した条件

利用者が既知：すでに提示したものや，過去に購入したものデモグラフィックな情報：男性・女性向け，海外居住者には発送不可，年齢制限のあるアイテム
利用者が提示：特定のカテゴリなど利用者が指定した条件でフィル
タリング
利用者の満足に大きく影響 [Swearingen+ 01]
利用者に依存しない条件

アイテムに依存：商品の在庫状況，色違いなど類似品の集約，違法アイテムの除外
コンテキストに依存：季節商品，利用者の現在位置を考慮

72

推薦システムの評価

73

推薦システム評価の実施方法[Herlocker+ 04]

オフラインテスト (Oﬄine Test)
過去に蓄積した評価値・行動ログを用いたテスト
低コストなので大量のデータを評価できる
利用者は介在しないので，ユーザーインターフェースの評価は不可
実験室テスト (Laboratory Test)
ユーザーインターフェースを備えたシステムを用いるが，被験者を対象とした評価
評価条件を統制できるので，仮説の検証ができる

実地テスト（Field Test; A/Bテスト）
システムの実運用中に，実際の利用者を対象とした評価
実運用での評価に最も近い評価が可能
実際の利用者に悪影響を残す場合
例：検索エンジンでの遅延の影響を調べたところ，元の状態に戻しても利用者の行動は完全には回復しなかった [Brutlag 09]74

推薦システム評価の実施方法[Herlocker+ 04]

オフライン

実験室

実地

実験規模
評価コスト
実験条件の自由度
実利用者への影響
ユーザインターフェースの評価
実運用での評価システムの運用

コスト・実験規模・利用者への影響から，運用までのテスト順序は
オフライン
実験室
実地
75

過学習と汎化誤差
コップ
ヌードル

キチン
ラーメン

やきそばポヤング
90 / 100/2
20/30
10/100

コップとポヤングの嗜好はほぼ一致するが， 例外がある「コップヌードル」と「キチンラーメン」への嗜好から「やきそばポヤング」への嗜好を予測
76過学習と汎化誤差
ルールA 例外的なデータにも細かく合わせた規則
コ

=

ポ

ただし

コ

=

=

コ
かつ

キ

=

=

ポ
ポ

=

=

ルールB 例外的なデータは無視した簡潔な規則
コ

=

ポ

=

コ

=

ポ

=

学習に用いたデータではルールA が良い

未知のテストデータではルールB が良い

どちらのルールが良い？
77

過学習と汎化誤差
訓練用
データ

機械学習

アルゴリズム

データの
規則性

規則性を
用いた予測

未知の
データ

未知のデータについて正確に予測できることが目標

例外は無視して，訓練用データに合わせすぎない
過学習：訓練用データに合わせすぎた状態
汎化誤差：未知のデータでの，予測のずれ
過学習していない，汎化誤差の小さな規則を学習
78

交差確認
交差確認

データ

(cross-validation)
学習に用いなかったテスト
用データで，誤差を求め，汎化誤差の目安にする

1. 学習用とテスト用に分割
学習用

2. 学習用データからテスト用データ
を予測
予測結果

テスト用

3.テスト用データと予測結果の間の誤差を測る
79データの分割方法
推薦システムでも利用される機械学習一般用のデータ分割法
k 分割交差確認 (k-fold cross validation)
データを k 個のブロックに分ける

最初は，第2〜第kブロックをまとめて学習用に， 第1ブロックをテスト用に利用し第1ブロックのデータに対して評価値を計算

以後，テスト用ブロックを第2〜第kブロックまで変えながら同様の処理を繰り返す各ブロックごとに求めた評価値を集め，それらの平均値で評価
…

テスト用

学習用

leave-one-out (一個抜き法)

k 分割交差確認の k が，データ数に等しく，テスト用データが常に1個だけの場合80データの分割方法[Breese+ 98]

推薦システム専用の，学習用とテスト用のデータ分割法
各利用者ごとに，その利用者が評価したアイテムを集める

利用者 2

利用者 2 が評価済みのアイテム

利用者 n

…

利用者 1 が評価済みのアイテム

…

利用者 1

利用者 n が評価済みのアイテム

Given k：各利用者ごとに，k 個のアイテムを学習用，残りをテスト用に用いる．評価済みデータが少ない場合の性能を評価する場合．

AllButOne：各利用者ごとに，1個をテスト用，残りを学習用に用いる．評価済みデータが多い場合の性能を評価する場合．
81

誤差の評価尺度：適合アイテム発見[Herlocker+ 04, Gunawardana+ 09]

データは対 (利用者, アイテム) や三つ組 (利用者, アイテム, 評価値)
正解率 (Accuracy)

予測出来た適合データ数
データの総数適合した場合だけをうまく予測できたかどうかを評価
機械学習の予測分類問題でよく利用される適合率/精度 (Precision)

再現率 (Recall)

予測出来た適合データ数予測出来た適合データ数

適合と予測したデータの総数

適合データの総数

適合率は適合と予測したもののうち，正解であるものの割合

再現率は，適合されているもののうち，予測に成功したものの割合
情報検索で利用されている

F値：適合率と再現率の調和平均
82誤差の評価尺度：評価値予測[Herlocker+ 04, Gunawardana+ 09]

平均絶対誤差 (Mean Absolute Error; MAE)
1
Σi
データ総数

| 予測評価値 ­ 正解評価値 |ii

平均二乗誤差平方根 (Root Mean Squared Error; RMSE)[

Σi (予測評価値i − 正解評価値i )2
データ総数

]

1
2

どちらも正解予測値と予測評価値が平均的にどれくらい離れているかを評価する
MAEの方が，RMSEより大きくかけ離れた事例の影響を少なめに評
価する
統計的予測・機械学習の回帰問題でもよく利用される

83

第Ⅱ部

推薦システムのアルゴリズム

84

推薦アルゴリズムの概観

85

推薦システム設計での要求仕様と各種のトレードオフ

86

疎なデータ
好き/嫌いをシステムに対して答えるのは利用者の負担が大きい

アイテムは多数

嗜好データはごく一部

データの疎性 (Sparseness)

ほとんどの対象についてデータは不明
嗜好の予測に利用できる情報が少ない
機械学習アルゴリズムが規則性を見いだすのが困難になる
87

大規模データと高速性
大規模データ

高速性

利用者数：数十万〜数百万
アイテム数：数十〜数百万

応答時間：数百ミリ秒
同時要求数：10〜1000/秒

多くの計算時間が必要

大量のデータは処理できない相反する要求に応える必要
88

予測精度とのトレードオフ
多様性：推薦したものが互いに似ていない
だれもが確実に好むアイテムを推薦すると正解率は向上
推薦がありきたりになって推薦システムを使う意義がない
被覆率：推薦の対象にできるアイテムの割合
予測が簡単なアイテムについてのみ予測をすると正解率は向上
利用者が本当に好むアイテムが推薦の対象にならない
多様性や被覆率は，予測精度とトレードオフの関係89

被覆率と予測精度
被覆率（推薦の対象にできるアイテムの割合）のトレードオフ
利用者間型メモリベース法：近隣の利用者が未評価のアイテムは対象外
非常に類似した標本利用者の評価のみに基づく

比較的に低類似度の標本利用者の評価も参考にする

低被覆率

高被覆率

高予測精度

低予測精度

推薦タスクの影響
適合アイテム発見
正解率重視[Herlocker+ 04]

評価値予測

適合アイテム列挙
被覆率重視

利用目的によって被覆率の重要性は変わる
90

コストと利得のバランス[Herlocker+ 04]

推薦を利用者が受け入れたときのコストと利得
コスト：利用者が支払う代金や消費する時間など

利得：推薦が適切/不適切な場合に利用者が得る満足映画などのエンターテイメント
コスト チケット代 + 鑑賞時間
利得

不適切ならちょっとがっかり
適切なら人生が変わるかも？
低コスト
高期待利得

損失 小
損失 大

コスト少
期待利得 大推薦の強さが弱い
低確信度
91

予測誤差
予測誤差：予測した嗜好と実際の嗜好のずれ
教師ありの機械学習手法では最も重視される
利用者の満足にとって最も重要な性能指標 [Swearingen+ 01]

低い予測誤差計算が遅い
トレードオフ

予測精度は高い方が良いが，そのために問題が生じる
機械学習はこうした得失を考慮して設計
92

運用目的に応じた手法の選定[Ben Schafer+ 01]

概要推薦：新規訪問者向け推薦
非個人化推薦である人気リストや，知識ベース
利用者評価：利用者間の評価情報の交換
システム側は基本的に場を提供するだけ
関連アイテム推薦：関連アイテムを補助的に推薦
協調フィルタリングや，アイテムの特徴を用いた関連アイテム
通知サービス，緊密な個人化：積極的に個人化した推薦
積極的に利用者の個人情報や行動履歴を利用，協調フィルタリング
や内容ベース，およびそのハイブリッドを利用
能動的な検索：積極的に個人化した推薦
知識ベースを利用し，順位付けに協調フィルタリングや内容ベースを利用
93

形式的問題設定の分類

94

問題設定：明示的評価
利用者から，アイテムへの嗜好データを明示的に集める場合
どんぶり店の例
1.親子丼 2.牛丼 3.海鮮丼 4.カツ丼
顧客が食べたことのあ
1
3?
3るどんぶりに対して， 1.山田
好き嫌いを評価
?
1
3
?
2.田中
評価値行列 R

3.佐藤

2

1

3

1

4.鈴木

1

3

2

?

利用者 x がアイテム y を
3段階の採点法で評価

rxy =

嫌い

中間

好き

不明

1

2

3

?

例：利用者1の山田さんはアイテム2の牛丼が好き：r12 = 3
評価値が不明の欄を他の評価値を使って予測95

問題設定：暗黙的評価
利用者から，アイテムへの嗜好データを暗黙的に集める場合
レストラン案内サイト例：利用者が閲覧したことのあるページを記録
1.トップ

2.和食

3.中華

4.フレンチ5.エスニック

1.山田
2.田中
3.佐藤
4.鈴木

利用者 x がアイテム y を肯定的に評価

rxy=1，未評価

rij=0

例：利用者3の佐藤さんはアイテム2の和食ページを閲覧：r32 = 1
未評価セルは必ずしも否定的とは限らないが，未評価セルを否定的と仮定し，未評価の部分が肯定／否定を予測

96

利用者・アイテムの表現

97利用者・アイテムの表現
表現が同じ利用者には同じアイテムが，表現が同じアイテムは同じ利用者に推薦される
識別子による表現

利用者やアイテムを，個々の利用者やアイテムに割り当てた番号や記号である識別子で表す

評価履歴による表現

評価履歴で，どのアイテム群にどのような評価をしたかで利用者を，どの一群の利用者にどのように評価されたかでアイテムを表す

特徴量による表現

利用者やアイテムの性質を表す特徴量によって，利用者やアイテムを表す

これら三つの表現は排他的ではなく，組合わせて用いる場合も多い
98

識別子による表現
一意な識別子で利用者やアイテムによって利用者やアイテムを表現

識別子 (identiﬁer)：数字や記号の値をとる値が同じかどうかだけに意味がある名義変数※ 例：ログインID，口座番号，書籍のISBN番号，商品のJANコード，論文のDOI

アルゴリズム内部では，一意な値を自然数に置き換えて利用する

同一の利用者やアイテムに複数の識別子を割り当てることがあり，この場合はアルゴリズムはこれらを別のものとして扱う
例：同じ利用者がプライベートと仕事で二つのログインIDを使い，異なるペルソナを表す
例：羊羹に，災害時の備蓄用と，登山で遭難時の非常食用とを区別するために，異なるアイテム識別子を割り当てる

名義変数であるため，類似性を考慮できず，汎化ができない
学習時にはなかった新規のアイテムや利用者を扱えない

99

評価履歴による表現
利用者を，過去にどのアイテムを評価したかによって表すアイテムを，過去にどの利用者に評価されたかによって表す
過去に同じ評価を同じアイテムにしている利用者は同一視する
新規利用者にも，過去にした評価に基づいて推薦が可能

過去に同じ評価を同じ利用者にされたアイテムは同一視する

特徴量の一種とみなせるが，利用者やアイテムの性質を表すデータ
ベースを管理する必要のないので，特徴量による表現とは区別した

系列推薦，ベイズ推定を用いた確率モデル，行列分解の一部が採用
行列分解や確率モデルでの例
系列推薦での例

=[

, …,

,

アイテム1 アイテム2
の評価
の評価

=[

1回前の
アイテム

,

2回前の
アイテム

,

]

アイテムm
の評価

3回前の
アイテム

]

100

特徴量による表現
利用者やアイテムを，その性質を示す特徴量を用いて表す
純粋な内容ベースフィルタリングでは，通常の特徴ベクトル

内容ベースと協調のハイブリッドフィルタリングでは，識別子と特徴ベクトルを連結したものが用いられる利用者やアイテムの特徴量を保存するデータベースを管理する必要
新規利用者や新規アイテムのスタートアップ問題に対応できる
ハイブリッドフィルタリングでの例
0

1

0

…

利用者の
識別子

0 f 1(u) f 2(u) f 3(u) … f p(u)

利用者の
特徴量

0/1ベクトルで記述

0

0

0

…

1

f 1(i) f 2(i) f 3(i) … f q(i)

アイテムの アイテムの特徴量
識別子
特徴を表す数値や記号で記述
101

協調フィルタリング手法の分類

102

協調フィルタリング手法の分類
メモリベース法 (memory-based method)
蓄積したデータを推薦時に直接用いて予測

利用者間型：類似した利用者の評価に基づいて近隣法で予測アイテム間型：類似したアイテムの評価に基づいて近隣法で予測モデルベース法 (model-based method)
事前に獲得したデータの規則性を使って予測

クラスタモデル：利用者とアイテムの対のクラスタで規則性を表現

関数モデル：利用者がアイテムを好む度合いを示す関数で規則性を表
現確率モデル：利用者がアイテムを好む確率の確率分布で規則性を表現
103

メモリベース法とモデルベース法[Breese+ 98]

推薦システム
利用前

メモリベース法

モデルベース法

データ

データ
データの
規則性(モデル)を見つけておく何もしない
推薦システム
利用時

データ
データ自体から推薦候補を予測
予測評価値

モデル
モデルを使って推薦候補を予測
予測評価値
104

メモリベース法 vs モデルベース法

推薦時間

適応性

メモリベース法

モデルベース法

推薦時にデータを毎回，調べるので時間がかかる

事前にデータの規則性は調べてあるので素早い推
薦

利 用 者 や アイ テム が 変
わ って も モ デル を 作 り
直しは不要

利用者やアイテムが変わったらモデルを作り直す
105

メモリベース法106メモリベース法
蓄積したデータを推薦時に直接用いて予測
機械学習の観点からは k-近隣法 とみなせる

利用者間型

アイテム間型

user-user typeitem-item type

活動利用者と嗜好パターンが類似している標本利用者が好むア
イテムを推薦活動利用者が好むアイテムと，
嗜好パターンの観点から類似しているアイテムを推薦

107

利用者間型メモリベース法

108

利用者間型メモリベース法
活動利用者と嗜好が似ている人が好きなアイテムを推薦
アイテム

活動利用者

1

標本利用者
推薦

類似している
標本利用者

いろいろなアイテムへの好き嫌いの傾向が類似している利用者を見つける

2

類似した標本利用者が好む
ものは，活動利用者も好む
と予測

109

GroupLensの方法[Resnick+ 94]

GroupLens
ミネソタ大のJohn Riedlを中心としたグループが開発した，ネット
ニュースを対象とした自動化協調フィルタリングシステムのパイオニア
現在は映画の推薦システム MovieLens に受け継がれている

http://www.movielens.org/
メモリベース法の代表的なアルゴリズム
利用者間型の方法

Step1：嗜好パターンが似ている利用者を見つける

Step2：似ている嗜好から活動利用者の嗜好を予測
110

利用者の類似度
Step1：嗜好パターンが似ている利用者を見つける
利用者 i と利用者 j の類似度
好きなものや嫌いなものが同じ

類似度 大

好きなものや嫌いなものが違う

類似度 小

相関係数 ρax (Correlation Coeﬃcient)ρax =∑y (ray − r̄′a)(rxy − r̄′x)∑y (ray − r̄′a)2∑y (rxy − r̄′x)2※ r̄′a と r̄′x はそれぞれ，利用者 a と x が共通に評価したアイテムに対して，利用者 a と x が与えた評価値の平均値※ ρax の最大値は 1 で，最小値は −1111

評価値の計算
Step2：似ている嗜好から活動利用者の嗜好を予測
活動利用者 a のアイテム y についての推定評価値
利用者 a が評価した全てのアイテムについての平均評価
利用者 a と利用者 x アイテム y への標本利用者 x のの類似度
評価の平均からの偏差râ y = r̄a +∑x∈𝒳y ρax(rxy − r̄′x)∑x∈𝒳 | ρax |yアイテム y を評価した
標本利用者についての和評価アイテム数の違いに関する補正112

GroupLensの方法
詳細版

113

GroupLensの方法[Resnick+ 94]

GroupLens
ミネソタ大のJohn Riedlを中心としたグループが開発した，ネット
ニュースを対象とした自動化協調フィルタリングシステムのパイオニア
現在は映画の推薦システム MovieLens に受け継がれている

http://www.movielens.org/
メモリベース法の代表的なアルゴリズム
利用者間型の方法

Step1：嗜好パターンが似ている利用者を見つける

Step2：似ている嗜好から活動利用者の嗜好を予測
114

推薦システム (MovieLens)
映画を推薦する実験システム
http://www.movielens.org/

2007/7/26 にスクリーンショットを取得
115

GroupLensの方法
Step1：嗜好パターンが似ている利用者を見つける
嗜好パターンが似ているとは？
似ている度合い（= 類似度）を数値で表し，類似度が大きいほど嗜好パターンが似ている

類似度 に必要な条件とは？
好きなものや嫌いなものが同じ

類似度 大

好きなものや嫌いなものが違う

類似度 小

116

GroupLensの方法
Step2：似ている嗜好から活動利用者の嗜好を予測

推薦の判断の対象
好き

中間

嫌い

嗜好パターンが似ている人の嗜好

推薦

保留

却下

嗜好パターンが違っている人の嗜好

却下

保留

推薦
117

例：どんぶり専門店「丼兵衛」
利用者
1. 山田
アイテム
1. 親子丼利用者の評価利用者 x のアイテム y の評価計算するとき扱い易いように番号を割り当てる

4人の常連客
2. 田中

3. 佐藤

4. 鈴木

3. 海鮮丼4. カツ丼4種類のどんぶり
2. 牛丼

3段階の数値で評価してもらう

rxy =

嫌い

中間

好き

不明

1

2

3

?

例：利用者1の山田さんはアイテ2の牛丼が好き

r12 = 3118

例：どんぶり専門店「丼兵衛」
1.親子丼

2.牛丼

3.海鮮丼 4.カツ丼

1.山田

1

3

?

3

2.田中

?

1

3

?

3.佐藤

2

1

3

1

4.鈴木

1

3

2

?
119

利用者の類似度
類似度 に必要な条件とは？
好きなものや嫌いなものが同じ

類似度 大

好きなものや嫌いなものが違う

類似度 小

利用者 x の平均評価値を r̄x で表す

rxy − r̄x

=

嫌い

中間

好き

−

0

+
120

利用者の類似度
利用者 xi と利用者 xj の類似度について考える
好きなものや嫌いなものが同じ(rxi y − r̄′xi)(rxj y − r̄′xj) > 0

好きなものや嫌いなものが違う(rxi y − r̄′xi)(rxj y − r̄′xj) < 0

相関係数 ρax (Correlation Coeﬃcient)
これを全てのアイテム（＝どんぶり）について和をとると≥® )(r −®))
∑yy(r(ray
−
r̄′
r̄′
*
r
Ñ
*
r
Ñ
ay
xx
xy
aa xy
⇢ρaxax == t
t
≥
≥
2
22
®
®
∑yy(r
∑y (r
(ray
− rr̄′
Ñaa)(rxyxy−*r̄′rxÑ)x )ay *※ r̄′x は，利用者 a と x が共通に評価したアイテムに対して，利用者 xが与えた評価値の平均値※ ρax の最大値は 1 で，最小値は −1
121利用者の類似度
例：利用者2の田中と利用者3の佐藤の類似度を考える
1.親子丼

2.牛丼

3.海鮮丼

4.カツ丼

2.田中

?

1

3

?

3.佐藤

2

1

3

1

注意

利用者が共に評価しているものだけで計算

牛丼と海鮮丼の評価値は計算に含めるが，親子丼とカツ丼の評価値は無視する
11
r̄′2 = (r22 + r23) = (1 + 3) = 2
田中の平均評価
佐藤の平均評価2
2
1
1
r̄′3 = 2 (r32 + r33) = 2 (1 + 3) = 2

122

利用者の類似度
1.親子丼

2.牛丼

3.海鮮丼

4.カツ丼

2.田中

?

1

3

?

3.佐藤

2

1

3

1

注意

利用者が共に評価しているものだけで総和を計算

分子∑y ∈{2,3}

分母(r2y − r̄′2)(r3y − r̄′3) = (1 − 2)(1 − 2) + (3 − 2)(3 − 2) = 2222∑y ∈{2,3} (r2y − r̄′2) =(1 − 2) + (3 − 2) =2∑y ∈{2,3} (r3y − r̄′3)2 =(1 − 2)2 + (3 − 2)2 =2123

利用者の類似度
1.親子丼

2.牛丼

3.海鮮丼

4.カツ丼

2.田中

?

1

3

?

3.佐藤

2

1

3

1

相関係数は 1 で，田中と佐藤の嗜好パターンは完全に一致∑y∈{2,3} (r2y − r̄′2)(r3y − r̄′3)∑y∈{2,3} (r2y − r̄′2)2∑y∈{2,3} (r3y − r̄′3)2

=

2
2 2

=1

特殊な場合：二人が共通に評価しているものが1個以下なら，相関係
数は 0 とみなす

124

評価値の計算
相関係数の性質

利用者 a と利用者 x の評価値の相関係数を ρax で表す
両者の嗜好パターンが似ている
両者の嗜好パターンが違っているρax > 0ρax < 0

利用者 x との嗜好パターンの類似性に基づいて，アイテム y を利用者
a に推薦すべきかを判断する
類似(＋)

相違(ー)
嗜好
パターン 類似(＋)

ρax

相違(ー)

好き(＋)
利用者 j
の嗜好

好き(＋)

rax − r̄′x

嫌い(ー)

嫌い(ー)

推薦(＋)
推薦する?

却下(ー)
却下(ー)

ρax (rax − r̄′x) 推薦(＋)
125

評価値の計算アイテム y の利用者 a への推薦を，利用者 a 以外の全ての利用者 x の嗜好に基づいて計算∑x∈𝒳 ρax(rxy − r̄′x)y

問題点

アイテム y を未評価の利用者の嗜好は無視するので，多くの利用者に評価されたものほど推薦されやすい
正規化∑x∈𝒳 ρax(rxy − r̄′x)y∑x∈𝒳 | ρax |y126

評価値の計算∑x∈𝒳 ρax(rxy − r̄′x)y∑x∈𝒳 | ρax |
y

ー

却下

0

中立

＋

推薦

中立のとき利用者 i の平均スコアになるように補正

利用者 a のアイテム y についての推定評価値
̂ = r̄a +ray∑x∈𝒳 ρax(rxy − r̄′x)y∑x∈𝒳 | ρax |y※ rÑa は利用者 a が評価した全てのアイテムについての平均評価
127

評価値の計算
例：利用者2の田中のアイテム1の親子丼の予測評価値
平均評価値と相関係数の計算
田中と山田の相関係数

共通して評価しているアイテム数が1個だけなので相関係数は 0
よって無視する
田中と佐藤の相関係数r̄′3 = 2

ρ23 = 1

田中と鈴木の相関係数5r̄′4 = 2

ρ24 = − 1128

評価値の計算
総和は相関を計算できなかった利用者1(山田)を除いた利用者3(佐藤)と利用者4(鈴木)について考える
評価値∑x∈{3,4} ρax(rxy − r̄′x)= ρ23(r31 − r̄′3) + ρ24(r41 − r̄′4)

5
3= 1(2 − 2) + (−1)(1 − 2 ) = 2
正規化係数∑x∈{3,4} | ρax | = | ρ23 | + | ρ24 |= |1| + | − 1| = 2129

評価値の計算
利用者2の平均評価値

11r̄2 = 2 (r22 + r23) = 2 (1 + 3) = 2
利用者2のアイテム1の予測評価値

̂ = r̄2 +r21∑x∈{3,4} ρ2x (rx1 − r̄′x)∑x∈{3,4} | ρ2x |3/2= 2 + 2 = 2.75

予測評価値はかなり大きいので，利用者2番の田中はアイテム1番の親子丼が好きと予測できる
130

まとめ
GroupLensの方法
ミネソタ大のJohn Riedlを中心としたグループが開発した，協調フィル
タリングシステムのパイオニア

メモリベース法の代表的なアルゴリズム
利用者間の類似度を使う方法
Step1：嗜好パターンが似ている利用者を見つける

Step2：似ている嗜好から活動利用者の嗜好を予測

131

GroupLensの方法[Resnick+ 94]

GroupLens
ミネソタ大のJohn Riedlを中心としたグループが開発した，ネット
ニュースを対象とした自動化協調フィルタリングシステムのパイオニア
メモリベース法の代表的なアルゴリズム
利用者間型の方法

Step1：嗜好パターンが似ている利用者を見つける

Step2：似ている嗜好から活動利用者の嗜好を予測

132

利用者の類似度
Step1：嗜好パターンが似ている利用者を見つける
利用者 i と利用者 j の類似度
好きなものや嫌いなものが同じ

類似度 大

好きなものや嫌いなものが違う

類似度 小

相関係数 ρax (Correlation Coeﬃcient)ρax =∑y (ray − r̄′a)(rxy − r̄′x)∑y (ray − r̄′a)2∑y (rxy − r̄′x)2※ r̄′a と r̄′x はそれぞれ，利用者 a と x が共通に評価したアイテムに対して，利用者 a と x が与えた評価値の平均値※ ρax の最大値は 1 で，最小値は −1133

評価値の計算
Step2：似ている嗜好から活動利用者の嗜好を予測
活動利用者 a のアイテム y についての推定評価値
利用者 a が評価した全てのアイテムについての平均評価
利用者 a と利用者 x アイテム y への標本利用者 x のの類似度
評価の平均からの偏差râ y = r̄a +∑x∈𝒳y ρax(rxy − r̄′x)∑x∈𝒳 | ρax |yアイテム y を評価した
標本利用者についての和評価アイテム数の違いに関する補正134

アイテム間型メモリベース法

135

アイテム間型メモリベース法
活動利用者が好きなアイテムと類似したアイテムを推薦
標本利用者

1

アイテム

アイテム
推薦

活動利用者

いろいろな標本利用者
からの好き嫌いの傾向が類似しているアイテムを見つける類似

2

活動利用者が好むアイ
テムと類似したアイテ
ムを好むと予測136

アイテム間型メモリベース法
類似アイテムを推薦する方法=

アイテムベクトル：あるアイテムへのいろいろな利用者の評価を表す
アイテム y に対するアイテムベクトルは評価値行列 R の第 y 列
アイテムの類似度 ＝ アイテムベクトルの類似度
ベクトルの類似度：コサイン，相関係数，ユークリッド距離など
注目中のアイテム

利用者が高評価
買い物かごに入っている商品ページを閲覧中

注目中のアイテムと類似しているアイテムを推薦

Amazon.com [Linden+ 04] や TiVo [Ali+ 04] での利用実績
実装は容易で，アイテム間の類似度だけで推薦が可能
閲覧や購入といった利用者の行動に対応した推薦に便利
137

アイテム間型メモリベース法[Sarwar+ 01]

Sarwar の方法
評価するアイテムと類似したアイテムの類似度で重み付けした，類似アイテムへの活動利用者の評価の平均
アイテム j への活動利

活動利用者 a のアイテム

用者 a の評価

y への予測評価スコア

̂ =
ray

∑j∈𝒴 ρ′yjraja∑j∈𝒴 | ρ′y j |aアイテム y と似ているアイ
テムについての和アイテム y とアイテム j
の類似度

138

メモリベース法の改良

139

評価ゆらぎの軽減
評価値には「ゆらぎ」

非常に有効

バイアス項を除去

平均値による標準化[Herlocker+ 99]

利用者の評価値の，利用者ごとの平均が 0 となるように事前に標準化
1r′xy = rxy − | 𝒴 | ∑j∈𝒴 rxjxx

回帰を使った補正
回帰モデル
評価値

アイテムの集合[Bell+ 07]

r′xy = θx βxy + Normal(0, ϵ 2)

パラメータ最小二乗で解くと…

利用者 x が評価した

説明変数

ノイズ

θx̂ = ∑j rxy βxj / ∑j βxj2

※ 疎データ対策で実際は縮小推定するx が y を評価したとき βxj は1，それ以外で0ならば利用者の平均に相当
スコアの更新式：

r′xy = rxy − θx̂ βxy

r′xy について，アイテムへの評価など様々な説明変数での回帰を適用
140

メモリベース法の改良
近傍の利用
全ての利用者だけでなく，類似度の大きな利用者だけを用いて予測スコアを計算すると，予測精度を下げずに高速化ができる．
平均値 / バイアス項
Grouplens法のステップ2の第2項の r̄′x だが，利用者 x の全アイテムへの評価の平均 r̄x と置き換えても精度にあまり影響はない．

[Herlocker+ 99][Breese+ 98]
デフォルト投票
類似度を計算するとき，二人が同時に評価しているアイテムが少ないと，類似度を高精度で計算できない．よって，一方だけが評価している場合，もう一方の利用者の評価値として，そのアイテムへの全利
用者の平均値を使う．
類似度関数の学習[Bell+ 07]
利用者間の類似度として，Pearson相関や順位相関をよく利用．
さらに改良するために，利用者 a と x の類似度 ρax をパラメータと考え，経験損失を最小化するように類似度行列を学習する
141

メモリベース法：まとめ
利用者間型：類似度関数の学習がなければ， データベースの更新にすぐに対応できる．推薦時の計算量の問題は，活動利用者の近隣の利用者の嗜好データのみを使うことでほぼ解消できるアイテム間型：事前にアイテム間の類似度行列を計算できていれば，推薦時も高速．同じアイテムが推薦されやすくセレンディピティは低いといわれる(portfolio効果) [Ziegler+ 05] アイテムの類似度行列だけで推薦可能なので，セットトップボックスのようなローカル端末に有利
類似度関数を学習を導入すればかなり向上するが， 予測精度についてはモデルベース法に対してやや不利 [Koren 09]
サクラ攻撃については，モデルベースより不利との報告がある[Mehta+ 08, Mobasher+ 07] 利用者間型は平均攻撃 [Lam+ 04] に，アイテム間型はセグメント攻撃 [Burke+ 05] に弱いの報告．
142

モデルベース法143

モデルベース法

事前に獲得したデータの規則性を使って予測
クラスタモデル
利用者とアイテムの対のクラスタで規則性を表現
関数モデル
利用者がアイテムを好む度合いを示す関数で規則性を表現
確率モデル
利用者がアイテムを好む確率の確率分布で規則性を表現

144クラスタモデル[Breese+ 98, George+ 05]

類似度を相関行列などで測り，嗜好が類似した利用者グループを生成
標本利用者

サスペンス好き！

ラブコメ好き！

嗜好が似ている
利用者のクラスタ
類似

嗜好データ
活動利用者

似たグループの利用者が好きなものを推薦

推薦

個人化の度合いは弱く，大きくははずさない推薦
gray sheep問題：複数の嗜好パターンが混在する利用者に弱い[Burke 02]145

関数モデル146

関数モデル
推薦候補のアイテムの特徴と活動利用者の特徴を入力とし，その活動利用者のそのアイテムへの予測評価値を出力する関数を利用rÇxy = f (ux , vy )予測評価値

利用者 x の特徴

アイテム y の特徴

入力値

利用者の特徴：その利用者の他のアイテムへの評価など

出力値

回帰問題：より好ましいときに，より大きな実数値

アイテムの特徴：そのアイテムへの他の利用者の評価など
分類問題：{好き, 嫌い} の二値カテゴリ値

ランキング学習問題：{上, 中, 下} のように相対的な順位
既存の多種多様な予測手法が使えて，いろいろな拡張が可能
147

行列分解

148

行列分解の概念

…

…

x
n
利用者

uKx

SF
好き

1

v1y

2

1

…

u1x

黒澤監督
ファン

アイテムと潜在因子の関連性の強さykvKy

潜在因子：嗜好のパターン※ ラベルは説明用のもの

…

2
…

1

利用者と潜在因子の関連性の強さmアイテム

̂ = u1xv1y + u2xv2y + ⋯ + ukxvky
予測評価値： rxy
利用者とアイテムが共に同じ潜在因子と関連が大きいと高評価
149

行列分解

1

x

=

ux⊤

アイテム行列V: k × m

vy
y

k

利用者行列
U⊤: n × kx

評価値行列
R: n × m

1
利用者n[Sarwar+ 00, Salakhutdinov+ 08, Koren+ 09]

y
1

アイテム

m

1

k

評価値行列 R を，利用者行列 U とアイテム行列 V に分解し，低ランク近似で，データが疎である問題に対処

利用者 x のアイテム y への評価は，U の第 x 行ベクトル ux と V の
第 y 列ベクトル vy の内積： rxŷ = ux⊤vy※ 行列分解手法：特異値分解，因子分析，NMFなど※ 欠損値補完手法：平均値で補完，EMアルゴリズム，欠損値を無視
150

確率的行列分解
直接的な方法

欠損値補完手法
平均値で補完+[Salakhutdinov+ 08]

行列分解手法
特異値分解

補完した値でデータが歪められる + 計算量が多い O(m n k)
欠損値を無視して定式化 次の損失関数を最小化
評価済みの利用者とアイテムの対の集合

正則化パラメータ

2
1
λ
2
2
⊤
ℒ(U, V) = 2 ∑(x,y)∈𝒟 (rxy − ux vy) + 2 (∥U∥F + ∥V∥F )予測値と観測値の残差の二乗和

正則化項

データが疎で D ~ mn であるため，行列全体を特異値分解するのと比較して効率的に計算可能
不支持と未評価が区別可能な明示的評価が前提

151

行列分解：勾配降下法
2
1
λ
2
2
⊤
ℓ(U, V) = 2 ∑(x,y)∈𝒟 (rxy − ux vy) + 2 (∥U∥F + ∥V∥F )厳密には凸ではないが勾配法で最小化しても実用上は問題なし
勾配の計算
∂f
=−
riy − ui⊤vy)vy + λui(∑∂ui(x, y) ∈ 𝒟
s.t.i = x∂f=−
rxj − ux⊤vj)ux + λvj(∑∂vj(x, y) ∈ 𝒟
s.t.j = y

更新式

適当な値で分解後の行列 U と V を初期化し，各反復で両行列の行と列を次式で，収束するまで更新する（η は学習率）∂fui ← ui − η∂ui∂fvj ← vj − η∂vj152行列分解：確率的勾配降下法

評価値データ集合 D が非常に大きい場合
データを主記憶上に保持できず，勾配の計算が非効率的
確率的勾配降下法：データ全体ではなく，データ一個ずつの勾配を求め，全てのデータについて更新を実行する
各 (x, y) ∈ 𝒟 について，パラメータを次式で更新

ux ← ux − η{ − (rxy − ux⊤vy)vy + λ ux}
vy ← vy − η{ − (rxy − ux⊤vy)ux + λ vy}

学習率(ステップ幅) η は，反復に伴って減少させてゆくが，ニューラ
ルネット学習で用いられるAdagradやAdamなどの手法が利用可能
データ数が少ない場合は，同じデータを何度か走査する

データを主記憶上に保持しないので大規模データに向くが，逆に小規模データでは収束しないこともある
153

行列分解：確率モデルとの関係[Salakhutdinov+ 08]

この行列分解モデルは，データを確率的に生成する確率モデルとみなせるため確率的行列分解とも呼ばれている

利用者 x がアイテム y を評価したときの評価値 rxy を生成する手順
1. 利用者ベクトル ux とアイテムベクトル vyの各要素を生成ux(i) ∼ Normal(0, σU2), i = 1,⋯, nvy( j) ∼ Normal(0, σV2), j = 1,⋯, m

2. 評価値を生成
rxy ∼ Normal(ux⊤vy, σR2)

V

U

vy

ux

yÀY

xÀX
rxy

(x, y)ÀD
R

σV = σU のとき，この手続きで生成した 𝒟 の負の対数尤度は，行列分解の損失関数 ℓ(U, V) に，定数項を除いて等しいことが示せる
154

行列分解：二値評価と評価ゆらぎ
二値評価[Salakhutdinov+ 08]

ux⊤vy の値域は [−∞, ∞] なので，評価が 0/1 の二値評価に適さない
シグモイド関数 sig(x) = 1 / (1 + exp(­x)) で，値域を [0, 1] に変換̂ = sig(ux⊤vy)rxy※ 暗黙評価の場合はBPR法 [Rendle+ 09] がよく用いられる評価のバイアス

利用者やアイテムに固有の評価値のバイアスを同時に補正全体のバイアス

利用者 x のバイアス[Koren+ 09]

アイテム y のバイアス

̂ = μ + ax + by + ux⊤vyrxy
ux や vy と同時に，バイアスパラメータ μ，ax，by も同時に推定
このバイアスの補正は非常に有効155

行列分解：評価情報
利用者が評価したアイテムの情報[Koren+ 09, Paterek 07]

SVD++：利用者が，どのアイテムを評価したかという情報を活用̂ = μ + ax + by + [ux + | 𝒴x |rxy
[Koren+ 09] で実験的に定めた係数−1/2⊤∑l∈𝒴 wl] vyx

アイテム l の効果
k 次元ベクトル

利用者が評価したアイテムの情報[Koren 08]

非対称SVD：利用者ベクトルを，評価したアイテムの情報で置換

ux ← | 𝒴x |置き換える元の利用者ベクトル−1/2∑l∈𝒴 (rxl − (μ + ax + bl))wl

利用者 x が評価したアイテムの集合x

利用者 x の利用者 x とアイテム y のアイテムへの評価
バイアス項

利用開始時にいくつかのアイテムへの評価を収集すれば，新規利用者に対応可能
過去の評価だけに基づくので，利用者は評価行動と推薦の関係が分かり易い

156

テンソル分解[Rendle+ 09]

協調タグ付け(collaborative tagging)：アイテム x に利用者 y が

タグ t を付けるかどうかを予測．行列分解の推薦システムでは好き／嫌

利用者

タグ

いが1次元だが，ここではいろいろなタグに嗜好を多次元化
テンソル分解による低ランク近似

p

n

≈ k
m

アイテム
評価値テンソル：R

k
k

× k n

コアテンソル：C× k m

アイテム：V

利用者：U

× k p

タグ：T

評価値テンソル：利用者 x がアイテム y にタグ t を付けた・付けないを (x, y, t) ∈ {1, 0} で表す．欠損値もある．
kkk̂ = ∑i ∑j ∑l Ci,j,lUi,x Ij,yTl,t
予測評価値：rx,y,t
157

factorizationマシン[Rendle+ 2010, Rendle+ 2011]

factorizationマシン (FM)ppp

̂ = w0 + ∑i=1 widi + ∑i=1 ∑j=i+1 vi,jdidjr(d)di2 の項がなく，2階微分が 0 の凸関数になるため，最適化が容易
2乗損失などの損失関数を正則化したモデルで予測ベクトル d の構成
利用者とアイテムに加えてこれらの特徴量やコンテキストも考慮できる
d1 d2 d3 d4 d5 d6 d7 d8 …
利用者ID

アイテムID

0/1ベクトルで記述

… dp
利用者
アイテム
特徴ベクトル 特徴ベクトル

コンテキスト特徴ベクトル

利用者とアイテムの双方に依存した特徴
158

NeuMF[He+ 2017]

NeuMF：階層型ニューラルネットによる行列分解の非線形拡張
Two-Tower モデルとも呼ばれる
予測評価値
利用者
埋込ベクトル
0/1ベクトル
表現

r̂

CF用
階層型NN

単なる内積や
ロジスティック回帰の場合もアイテム
埋込ベクトル

利用者用
射影行列

アイテム用
射影行列

利用者ID

アイテムID※ [He+ 2017] ではより複雑なモデルを NeuMF とし，このモデルを多層パーセプ
トロンと呼んでいるが，広くこのモデルがNeuMFモデルとして参照されている

159

行列分解：まとめ
不支持と未評価の区別が明確な明示的な評価の場合に適用可能な方
法
全体・利用者・アイテムのバイアス項の効果は非常に大きい

利用者やアイテムごと評価の時間変化などの補正も必要に応じて可能
確率的勾配降下法との組み合わせで，大規模データに対して最も効率的な方法
利用者の嗜好プロファイルを目的関数に含めることでハイブリッド
化も可能
Netﬂixのデータ： 評価値数 100万，利用者数 48万，映画数
17,770 で次元数 K は 50 程度 [Koren+ 09]

現在，知られているサクラ攻撃に対して頑健 [Mehta+ 08]

秘密関数計算と組み合わせてプライバシ保護型の拡張も可能
160

ランキング学習[Nakamura+ 98]

評価値 {1,2,3,4,5} を順序付きクラスとみなしてオンライン分類学習

Cross-G-Leearn-Relation: 重み付き多数決を使ったオンライン学習
アイテム y∑x′ s.t. rx′y=l

uxx′ +∑

y′ s.t. rxy′=l

vyy′

利用者 x

rxy が l であることの得票値

uxx’：利用者 x と x’ の間の重み
vyy’：アイテム y と y’ の間の重み

rxy' = l
uxx’

vyy’

rx'y = l

rxy
評価値行列

l ∈ {1, 2, 3, 4, 5} 中で得票値が最大になる l を予測評価値とする
学習：rxy の評価値が l であるとき，同じ列で評価値が l であるアイ
テムの重み vyy’ は増やし，それ以外の重みは減らす．uxx’ も同様．
161

確率モデル

162

確率

163

確率
確率：偶然に生じる事象を扱う枠組み

確率分布：事象が生じる頻度や確からしさを表す

アイテム

Pr[

の好き/嫌いについて

好き ] = 0.8

Pr[

嫌い ] = 0.2

仮に利用者を適当に一人呼んでくるアイテムを「好き」か「嫌い」か尋ねる

10回のうち，8回ぐらいは好き，2回ぐらいは嫌い
164

条件付き確率
条件付き確率：他の情報に基づいて変わる確率

Pr[

アイテム

好き |

好き ]

条件

Pr[

好き |

好き ] = 0.8

Pr[

好き |

嫌い ] = 0.3

が好きな利用者10人のうち嫌いな利用者なら10人のうちも8人ぐらいは好きだが，が好きなのは3人ぐらい

条件付き確率でモデルがあれば，他のアイテムの好き嫌いから，あるアイテムを好む確率を予測できる
例：条件付き確率が 0.8 と高いので，もしも好きが好きなら，おそらく165条件付き確率
アイテム
好き

アイテム

嫌い

好き
嫌い

Pr[

好き |

好き ] =

好き かつ
好き の人数
好き の人数=45
166

確率分布のモデル化の方針

167

評価行動をモデル化
ある 1 回の評価行動で，n 人のうちどの利用者が，m 個のうちのどのアイテムに， | ℛ | 段階のうちどの評価をしたかをモデル化
利用者

Pr[ 利用者
利用者

Pr[ 利用者

がアイテム, アイテムがアイテム, アイテムを選んだ] = 0.02

を5段階で 4 と評価した

, 評価値

4

] = 0.02

利用者確率分布の定義域：𝒳 × 𝒴 または 𝒳 × 𝒴 × ℛ

利用者数とアイテム数に対するパラメータ数の増加は線形で済む

暗黙的評価で未評価と否定的評価が区別できない場合を扱いやすい
同じ評価行動を繰り返すことはモデル化できない168

アイテムに対する評価をモデル化
全アイテムの評価値の同時分布を考える
過去の評価が与えられたときの新規アイテムの条件付き確率で推薦Pr[

全アイテムについての評価の同時分布
好き,
好き,
嫌い,
嫌い ] = 0.03

Pr[

周辺化・乗算定理で条件付き分布に変換
好き |
好き,
嫌い,
嫌い ] = 0.8

予測対象アイテム

今回の活動利用者の過去の評価

確率分布の定義域：ℛ𝒴 = ℛ1 × ℛ2 × ⋯ × ℛm

利用者数には依存しないが，アイテム数に対しては指数的に複雑になるので，多数の利用者でアイテム数が少ないときに有利利用者の個性を過去の評価によってモデル化しているので，評価理履
歴があれば新規利用者に対応できる

169

トピックモデル

170

pLSA：概念
Pr[z] 嗜好パターン：典型的な好みのパターン
ラブコメ
好き

J.デップ
ファン

ヒット作
だけ
弱い関連

強い関連

利用者 Pr[x ∣ z]

アイテム Pr[y ∣ z]

同時分布：Pr[x, y] = ∑x∈𝒵 Pr[x ∣ z] Pr[y ∣ z] Pr[z]※ 嗜好パターンの説明は便宜的なもので，実際の意味までは分からない
171

pLSA：評価行動のモデル化
pLSA (probabilistic Latent Semantic Analysis)

自然言語処理の次元削減法 [Hoﬀmann 99] を協調フィルタリングにも適用[Hoﬀman+ 99]．aspectモデルともいう

三つの多値カテゴリ変数の共起を考える
x ∈ 𝒳 ≡ {1,…, n}：利用者

y ∈ 𝒴 ≡ {1,…, m}：アイテムz ∈ 𝒵 ≡ {1,…, K}：潜在変数（嗜好パターン）
アイテム y を利用者 x が購入/閲覧していたら対 (x, y) を訓練データ集合に加える
不支持評価のデータが不要なので，未評価と不支持が不明確な暗黙的評価で得たデータを扱える
172

pLSA：定式化
生成モデル：z が与えられたとき x と y は条件付独立

Pr[x, y; Θ] =∑x

Pr[x ∣ z] Pr[y ∣ z] Pr[z]

z∈𝒵

z
y

Pr[x ∣ z]，Pr[y ∣ z]，Pr[z] はそれぞれカテゴリ分布に従う
訓練データ：𝒟 = {(xi, yi)}Ni=1
分布 Pr[x ∣ z] は，各 z = 1,…, K について，x = 1,…, n の値をとりうる
カテゴリ分布でモデル化する

パラメータ Pr[x ∣ z] の総数は nK 個，また同様に分布 Pr[x ∣ z] と Pr[z]のパラメータ数は mK 個と K 個
対数尤度関数：ℒ(𝒟; Θ) = ∑(x ,y )∈𝒟 ln Pr[X = xi, Y = yi; Θ]
i i

173

pLSA：学習
pLSA を EM アルゴリズム で最尤推定

対数尤度関数を最大化して同時確率 Pr[x, y; Θ] を推定推定すべきパラメータ：Θ = ({Pr[x ∣ z]}, {Pr[y ∣ z]}, {Pr[z]}, )Eステップ 現在のパラメータが与えられたときの潜在変数の事後確率
Pr[x ∣ z] Pr[y ∣ z] Pr[z]Pr[z ∣ x, y] =∑z′ Pr[x ∣ z′] Pr[y ∣ z′] Pr[z′]Mステップ 現在の潜在変数の分布の下でのパラメータの値
Pr[x ∣ z] =Pr[y ∣ z] =Pr[z] =∑y #(x, y) Pr[z ∣ x, y]∑x′,y #(x′, y) Pr[z ∣ x′, y]∑x #(x, y) Pr[z ∣ x, y]

訓練データ中である利用者 x が，アイテム y を購入・閲覧する回数∑x,y′ #(x, y′) Pr[z ∣ x, y′]∑x,y #(x, y) Pr[z ∣ x, y]N※ x は 1,…, n，y は 1,…, m の範囲で計算

尤度関数が収束するまで，EステップとMステップを交互に反復
174

pLSA：推薦
推薦：x = a のときの事後確率を最大化するアイテム

y * = argmax

y∈{1,…,m}

同時分布： Pr[x, y] =Pr[y ∣ x = a]∑z∈𝒵x = a のときのy の事後確率分布

Pr[x ∣ z] Pr[y ∣ z] Pr[z]学習したパラメータ

Pr[x, y]
事後確率分布： Pr[x ∣ y] =∑y∈𝒴 Pr[x, y]
175

pLSA：並列分散計算
利用者のデータを二つのサイトで分割して保持
サイト1

サイト2

𝒳1 = {1,…, n1}

𝒳2 = {n1 + 1,…, n}[Das+ 07]x′ ∈ 𝒳2 については #(xʹ, y) の値は未知なのでMステップは実行不能

Pr[x ∣ z] =∑y #(x, y) Pr[z ∣ x, y]∑x′,y #(x′, y) Pr[z ∣ x′, y]

サイト1での値のMステップの計算を修正

Pr[x ∣ z] =∑y #(x, y) Pr[z ∣ x, y]∑x′∈𝒳 ,y #(x′, y) Pr[z ∣ x′, y] + ∑x′∈𝒳 ,y #(x′, y) Pr[z ∣ x′, y]1

サイト2で計算してからサイト1に送信

2

176

pLSA：拡張
状況に合わせて，入出力や内部の潜在変数を容易に拡張可能
preferreddecoupledordering
評価値を導入
[Hoﬀmann+ 99]

x

z

y

r

x

zx

y

zy

[Jin+ 03]xy

zr zx zy
r

r

zpref

評価ゆらぎを考慮[Jin+ 03]

y

®

x

y

xy zx zy®
h0nI(r, r® ) = l1n2
jr = r®
r > r®
r < r®

評価値の順序関係を考慮
177Latent Dirichlet Allocation[Blei+ 03]

Latent Dirichlet Allocation (LDA)：pLSA のベイズ推定版
ベイズ推定 (Bayesian estimation)：最尤推定やMAP推定はパラメータをある特定の値として推定するが，ベイズ推定ではパラメータの分布を求めるので，計算は複雑だが，不確実性を扱える
嗜好パターン
を選ぶパラメータ

嗜好パターンが z のとき

どのアイテムを選ぶかを決めるパラメータz , z=1, … , K↵
嗜好パターンを選ぶ
パラメータを選ぶための超パラメータ

n
利用者数

✓

z
嗜好パターンy

選択するアイテムYx 

各利用者が選ぶ
アイテム数
178

pLSA と LDA
pLSA を Pr[z] Pr[x ∣ z] Pr[y ∣ z]
pLSA

Pr[x]

既知の利用者から利用者モデルを選択

利用者モデル
自体を生成
LDA

Pr[θ]

Pr[x] Pr[z ∣ x] Pr[y ∣ z] と書き換える

Pr[z ∣ x]

Pr[y ∣ z]

利用者モデルに基づいて嗜好パターンを選ぶ

嗜好パターンに基づいてアイテムを選ぶPr[z ∣ θ]Pr[y ∣ z]

pLSAは訓練データ中にいない利用者のモデルには対応できないがLDAなら利用者モデルも生成しているので対応できる
179

トピックモデル：まとめ
利用者と，その利用者が支持したアイテムの共起情報のみがあれば，不支持評価のデータが不要なので，未評価と不支持が不明確な
暗黙的評価で得たデータを扱える
明示的評価の場合，順序評価のある場合，ハイブリッドな場合など
非常に多様な拡張が可能

学習すべきパラメータ数さが，利用者数やアイテム数に対して線形にしか増加しないので，アイテム数が多いときには履歴条件型より有利
pLSAの解法であるEMアルゴリズムは，総和をとる部分を複数のサイトに分割して計算させれば容易に分散並列化が可能
GoogleNewsでは，ユーザ・アイテム数が100万規模，潜在変数の定義域の大きさは1000程度 [Das+ 07]
現状のサクラ攻撃に対しては頑健といわれている [Mobasher+ 07]180制限ボルツマンマシン

181

制限ボルツマンマシン[Salakhutdinov+ 07]

制限ボルツマンマシン (restricted Boltzmann machine)：可視

変数 r と隠れ変数 z の間にだけ直接の依存関係があるマルコフネッ
利用者 x をモデル化する
隠れ変数

K 個の二値変数

RBMによる利用者 x の評価のモデル
1 2 3 4 5

zx

rx2

…

zx と ry の依存関係を表す
重み行列
全利用者で共通

rx1

W

not rated

rx3

not rated

rx4
rxm

利用者 x が評価したアイテ
ムにのみ辺を付ける

評価の尺度
5段階
利用者 x のアイテムの評価を表す可視変数
5段階で選らんだ評価だけ1で他は0

182

制限ボルツマンマシン[Salakhutdinov+ 07]

生成モデル
ソフトマックス関数
可視変数

Pr

⌧

(l)
rxy = 1zx

正規化定数
隠れ変数

⌅

Pr zxk = 1rx⇧

1
= Z exp

⌧

≥K
(l)
(l)
bxy + k zxk Wyk

バイアス項

⌧
≥m ≥R (l) (l)1= Z sig cxk + y l rxy Wyk

シグモイド関数
他の利用者の嗜好を参考にしている

重みだけは全利用者共通183

制限ボルツマンマシン[Salakhutdinov+ 07]

学習：重み行列 W の勾配を計算して勾配上昇法で求める重みは共通なので，各利用者のモデルで求めた勾配を全利用者で平均

勾配

観測データ
での平均

近づける

⌧

(l)
(l)
Wyk = Edata rxy zxk

生成モデル上
での期待値

⌧

(l)
* Emodel rxy zxk

マルコフ連鎖モンテカルロなどを用いて近似
予測：隠れ変数は評価済みのアイテムだけに依存し，未評価のアイテ
ムには依存しないという近似で隠れ変数の値を予測し，その隠れ変数の状態のときの可視変数の値を予測評価値に使う
184

ベイジアンネット[Breese+ 98]

データが疎なので，複雑な条件付き確率分布の計算は無理
潜在変数：条件と結論の中間の隠れた要因

好/嫌？

好きな
ジャンル

好/嫌？

好きな
監督

好/嫌？

好きな
俳優

好/嫌？

ベイジアンネット：依存性にループがない場合には信念伝播(belief
propagation)で解ける
185

ハイブリッド法

186ハイブリッド法：簡潔な手法[Burke 02]

協調フィルタリングと内容ベースの両方の仕組みを用いる
混合 (mixed)
両方の結果を同時に提示切り替え (switching)
何らかの規準に基づいて推薦手法を切り替える
例：初期利用者にはスタートアップ問題に強い内容ベース，常連利用者には協調フィルタリング
メタ推薦 (meta-recommendation)
メタ検索エンジンのように，独立に計算された推薦リストを統合して表示する
縦続 (cascade)
第1段階で候補を選別し，第2段階で順位付けをする
例：ルールを用いた内容ベースで候補を選別し，協調フィルタリング
でそれらを順位付けする187

ハイブリッド法：簡潔な手法[Burke 02]

特徴拡張 (feature augmentation)
一方の手法が出力する評価値や分類結果を，次の手法の入力に利用する
例：協調フィルタリングで推薦される関連アイテムを，アイテムの特徴とみなして内容ベースフィルタリングを実行
抽象情報 (abstraction)
嗜好データやアイテムの特徴を，一方の手法で，ベクトルや確率分布のような抽象情報に変換して， もう一方に入力する
例：協調フィルタリングで，嗜好データそのものの類似度ではな
く，内容ベースで生成した利用者プロファイルの類似度を利用

188

ハイブリッド法：複合的な特徴ベクトル
利用者やアイテムの識別子と特徴ベクトルを結合したベクトルを入力
利用者とアイテムを別のベクトルで表現
01

0

0 f 1(u) f 2(u) f 3(u) … f p(u)

…

利用者
識別子

0

利用者
特徴ベクトル

0

0

…

1

アイテム
識別子

f 1(i) f 2(i) f 3(i) … f q(i)アイテム
特徴ベクトル

利用者とアイテムのベクトルの一致性から，利用者の好みを予測
NeuMFなどで利用
利用者とアイテムを一つのベクトルで表現
0

1

0

…

利用者
識別子

0

0

0

0

…

アイテム
識別子

1 f 1(u) f 2(u) f 3(u) … f p(u) f 1(i) f 2(i) f 3(i) … f p(i) f 1(c) f 2(c) f 3(c) … f p(c)

利用者
特徴ベクトル

アイテム
特徴ベクトル

コンテキスト特徴ベクトル

一つの入力ベクトルから，利用者の評価値や好みを予測
factorizationマシンなどで利用

189ハイブリッド法：予測評価値の拡張
協調フィルタリング用の目的関数に，内容ベースのモデルを加算する

学習する重み係数ベクトル

利用者
特徴ベクトル

アイテム
特徴ベクトル

コンテキスト特徴ベクトル(u)⊤ (u)(i)⊤ (i)(c)⊤ (c)̂ = (μ + ax + by + u vy) + βy f x + βx f y + βxy f xy
rxy⊤

協調フィルタリングの予測評価値

内容ベースフィルタリングの予測評価値

ここでは協調フィルタリングに行列分解を用いた例を挙げたが，factorizationマ
シンやニューラルネットなども利用可能
ここでは内容ベースフィルタリングに線形回帰を用いた例を挙げたが，ニューラ
ルネットなども利用可能

190

ハイブリッド法：確率モデルの拡張[Popescul+ 01, Ono+05]

協調フィルタリング用の確率モデルに利用者やアイテムの特徴を追加
pLSAの拡張
以下の変数の同時分布をモデル化
x：利用者識別子
y：アイテムID

pLSAのさらなる拡張
アイテム特徴Pr[x, y, f] =

∑

fp

f1

f：アイテムの特徴

zf

Pr[z ∣ x] Pr[y ∣ z] Pr[f ∣ z] Pr[z]

zg

z∈𝒵

g1

利用者識別子

評価値

x
z

r
y

gq

Pr[f ∣ z] のモデルかは，特徴が数値な
らガウス分布，カテゴリ値なら多項分布を使う
コンテキストの特徴 アイテム識別子
191

ハイブリッド法：カーネルの利用[Basilico 04]

カーネルトリックを用いた関数で好みの度合いを表す
利用者 x のアイテム y への重み

好みの度合いf(x, y) =∑(i,j)∈(𝒳,𝒴)w(i, j)K((x, y), (i, j))

利用者とアイテムの全ての対についての和利用者-アイテム対の間のカーネル

カーネル：利用者カーネルとアイテムカーネルに分解

K((x, y), (i, j)) = KX(x, i) KY (y, j)

利用者-アイテム対のカーネルは，利用者カーネルとアイテムカーネルの積

利用者カーネル：利用者 x と i の間の相関係数など

アイテムカーネル：アイテム y と j の特徴の一致の度合いなど
192

第Ⅲ部

推薦システムの拡張と関連事項

193

系列推薦

194

系列推薦
利用者の過去嗜好パターンで，評価した時間的順序も考慮する

2週間前

1週間前

そうそう

星の戦争
エピソード
I

星の戦争
エピソード
II

星の戦争
エピソード
III
今週はこれ？

音楽のプレイリストなど直近の嗜好をよく反映した推薦に向く
195

マルコフモデル
マルコフモデル：直近の一定の個数のアイテムへの嗜好だけで，次の嗜好が決まると考える系列推薦モデル
店舗での購入記録

今回

1回前

2回前

3回前

4回前

直近の2回に購入したアイテムで，次に購入するアイテムが決まる
条件付き確率分布を使ってモデル化

Pr[ 今回
今回の購入

| 1回前

, 2回前

]=0.7

過去の購入記録
196

最大エントロピー原理[Pavlov+ 03]

アイテム数は多いので3次程度のマルコフモデルでも困難
素性関数を導入して最大エントロピー原理でパラメータを推定※ 自然言語処理で言語モデルの学習に利用されている
次のアイテムPr[y過去の購買履歴(t+1)1(t+1) (t)∣ Y ] = exp
λi fi(y
,Y )
[∑
]
Z
i=1
(t)

正規化定数

p

素性の重みパラメータ

素性関数

素性関数：履歴にある性質があれば1，でなければ0になる関数
trigger：購買履歴にあるアイテムがあれば1をとる素性関数
197

マルコフ決定過程[Shani+ 05]

マルコフモデルに加えて，推薦に対する利用者の行動も考慮する
2

3
C

D

今回の推薦

実際に購入

1
前回の
購入記録

4
A

B

B

D

2回前

1回前

1回前

今回

今回の
購入記録

強化学習：マルコフ決定過程で，一定期間の総購入額などの報酬の最大化をするように，方策を学習する枠組み
198

プライバシ問題

199

プライバシー問題
プライバシー問題：当初から問題は意識されてきた利用者のプロファイルや嗜好データは利用者が公開したくない個人情報
ジレンマ
高精度の推薦には大量の嗜好データのデータが必要
推薦システムという語が広まるもとになった最初の文献ですでに指摘されている [Resnick+ 97]
推薦システムと利用者に関してアンケート調査し，利用者はプライバ
シを気にせずに入力してくれたとの報告も [Swearingen+ 01]

200個人情報の種類[Ben Schafer+ 01]

電子商取引サイトでの推薦システムが扱う個人情報
顧客が明示的に示す趣向の情報
商品へのレートやコメント，興味のある商品属性

顧客が暗黙的に示す趣向の情報
閲覧した商品や情報，閲覧時間，検索操作，カートに入れた商品，
サイトの訪問
商品購入時の対話で得る情報
支払い方法，口座番号，発送先，発送先が購入した商品
明示的に示される識別情報
名前，住所，メールアドレス，電話番号

暗黙的に示される識別情報
閲覧しているコンピュータのIPアドレスやドメイン
201

推薦システムとプライバシ[Ben Shafer+ 01]

プライバシー問題：利用者のプロファイルや嗜好データは個人情報

良い推薦には，利用者の信頼を得て，これらの個人情報を集める必要
プライバシ問題への対策

プライバシーポリシー：個人情報の扱いを明示する
本当に遵守しているか?

監査会社による認証

P3P(Platform for Privacy Preference)：
開示してもよい情報を知らせるプロトコル

利用者が制限していない情報のみ個人端末から送信されるあまり普及していない

202

プライバシポリシー[Ben Schafer+ 01]

プライバシポリシー：取引中に収集している情報と，その使い道の説
明の一覧

顧客の許可なく情報を販売しない条項は殆どのポリシーに含まれる
他の企業との情報共有を妨げるので，推薦システムにとって重要ポリシーが厳しく，情報の収集が全くできなければ，推薦は不可能
問題点

法律用語で書かれていて分かりにくく，作為的は変更の余地を残す
実際にポリシーが守られているかどうかわからない

TRUSTeやBBBOnlineなどの監査会社によりサイトの信用を示す
ブランドを取得する

TRUSTeを取得したreal.comが顧客情報をサーバに送信していた
203

P3P
P3P (Platform for Privacy Preference)

WWWコンソーシアム(W3C)制定：http://www.w3.org/P3P/
開示してもよい情報を知らせるプロトコル

エージェントとサイトの間で交渉し，エージェントは利用者に開示される情報を示すとともに，企業サイトも利用者の意向が分かる
何度も個人情報を入力する手間が省ける

利用者を識別する Pairwise Unique ID (PUID) はサイトごとに違い，サイト間での情報共有は困難となり，推薦システムには不利問題点

2006-11-13の Final P3P 1.1 Working Group Note から更新なし
複雑で利用者はすぐには理解できない

条件なしのオプトイン型だと，利用者は条件を厳しくしがち
204

外部データとの関連付けによる漏洩[Frankowski+ 06]

推薦システムでの
映画評価

対応付け

映画掲示板での感想の書き込み

同じ一群の映画について言及・評価している人は同一である可能性が高い
あまり言及・評価されていない映画の重みを増やす工夫
一人が評価した映画は少ないので識別されやすい

一意に特定された利用者は全体の31%，5人のうちの一人として特定される利用者は44%一意に識別される可能性をなくすには，88%ほどの映画に対する評価を消す必要205

TiVoのプライバシ対策[McNee+ 06]

TiVo：セットトップボックスでテレビの番組を推薦するシステム
ケーブルテレビでチャンネル数が多いアメリカでは普及
アイテム間型メモリベース法

推薦するときに必要な情報は？

自分の評価情報

アイテムの類似性

自分のマシン内にあって公開不要

プライバシを保護して計算

プライバシ対策

送信されてきた評価データを永続的には保存しない

通信終了後には，タイムスタンプやIPアドレスなどの，どのクライアントからの送信だったかの情報を消去

206

プライバシ保護協調フィルタリング
大前提
個人の個々の嗜好データ
は個人情報全体を集めた嗜好モデル
は個人情報ではない

個々の嗜好データを秘密にしたまま，全体の嗜好モデルが獲得できれば，プライバシを保護したまな協調フィルタリングが実現できる暗号化を使う方法

個人の嗜好データを暗号化し，暗号化したままモデルを計算する

ランダム化を使う方法

個人の嗜好データにランダムなノイズを付加することで，元のデータ
を隠蔽する
207

敵対者モデルsemi-honest：プロトコルの実行中に自身が得た情報や，通信路上の情報から，他の参加者の秘密情報を知ろうとするが，プロトコル自体を逸脱することはない
malicious な場合よりずっと効率的なプロトコルの実行が可能

malicious：他の参加者の秘密情報を知るために，プロトコルを逸脱したメッセージを送ることもありうる
semi-honestを前提としたプロトコルは，ゼロ知識証明との組み合わせで，maliciousなモデルにも対応させることが可能

rational：効用関数に基づいて、自分の利益になる場合には semihonest に振る舞うが、そうでなければ malicious に振る舞う
現実的な場面を想定した，新しい敵対者モデル
大幅な計算量・通信量の削減が可能

208

プライバシ保護協調フィルタリング
暗号化による方法[Canny 02, Canny 02]

嗜好データは暗号化してから外部に出す

A
推薦

嗜好
モデル

B

C

個人情報

個人情報

個人情報

嗜好データ

嗜好データ

嗜好データ

暗
号
化

暗
号
化

暗
号
化

暗号化
嗜好データ

暗号化
嗜好データ

暗号化
嗜好データ

MPC・秘密関数計算

209

MPCと秘密関数計算
YaoのMPC (Secure Multi-Party Computation)[Yao 86]

複数の参加者が保持する秘密の入力に対する多項式時間の任意の計算を第三者の補助なしに，安全に実行できるようにする
原理的には，個人情報を保護して嗜好モデルを獲得可能
計算量が非常に大きく非実用的準同型性暗号による秘密関数計算 (Secure Function Evaluation)

暗号化関数 Enc(・) と平文 m1 や m2 が式の関係を満たす[Aggarwal+ 08]

加法準同型性：暗号文同士の加算 … 修正ElGamal，Pallier，楕円Enc(m1)・Enc(m2) ＝ Enc(m1 + m2)，Enc(m1)m2 = Enc(m1 m2)

乗法準同型性：暗号文と平文の積 … RSA，ElGamal
Enc(m1)・Enc(m2) = Enc(m1 m2)

210

秘密総和計算 (Secure Sum)

[Aggarwal+ 08]

A B C の3人が，それぞれ，秘密の値 SA SB SC を保持
SA SB SC を他人に明かさず総和 S ＝ SA + SB + SC を計算
1 A は鍵を作って公開鍵を配布※ 加法準同型性のある暗号を使う

A

SA 秘密鍵EncA(SA)

2

暗号化してAに集める

公開鍵

B

SB

EncA(SB)

CSC
EncA(SC)

DecA(EncA(SA)・EncA(SB)・EncA(SC)) = DecA(EncA(SA+SB+SC)) = S
3

A は総和を計算して復号し全員に総和を配布※ この方法は通信を傍受可能な場合やプロトコル違反がある場合には安全ではない

厳密な値が計算できるが，共謀やプロトコル逸脱には脆弱

211

準同型暗号を用いた行列分解
行列分解モデルの目的関数（正則化項は省略）ℒ(U, V; 𝒟) = ∑(x,y)∈𝒟 (rxy − ux⊤vy)

2

嗜好データ

利用者ベクトル アイテムベクトル

自身の嗜好を含む ux は個人情報として扱い，自身の ux のみを保持する
が，アイテムについては全ての vy を保持している場合の勾配の計算
∂ℒ
⊤v u
∑
=
−
r
−
u
(
xy
x
y) x
y
∂ux

∂ℒ
⊤v u
∑
=
−
r
−
u
(
xy
x
y) y
x
∂vy

ux は自身が保持する利用者・

全利用者 ux の総和が必要

アイテムベクトルで更新可能

加算準同型暗号を利用

勾配を秘密に計算可能
212

プライバシ保護協調フィルタリング
ランダム化による方法[Polat+ 03, McSherry+ 09]

嗜好データは乱数を加えてから外部に出す

A
推薦

嗜好
モデル

B

C

個人情報

個人情報

個人情報

嗜好データ

嗜好データ

嗜好データ

ラ
ン
ダ
ム
化

ラ
ン
ダ
ム
化

ラ
ン
ダ
ム
化

嗜好 +
乱数
データ

嗜好 +
乱数
データ

嗜好 +
乱数
データ

Σ

嗜好
データ

+

Σ 乱数 →0213

ランダム化A B C の3人が，それぞれ，秘密の値 SA SB SC を保持

SA SB SC を他人に明かさず総和 S ＝ SA + SB + SC を計算

A

N(0, σ) は，平均が 0 で，標準偏差が σ のガウス乱数
SA

RA〜 N(0, σ)
VA = SA + RA

B

SB

RA〜 N(0, σ)
VA = SA + RA

CSCRA〜 N(0, σ)
VA = SA + RA

VA + VB + VC = (SA + SB + SC) + (RA + RB + RC) → (SA + SB + SC) = S
漸近的に0
共謀やプロトコル逸脱には強いが，近似計算しかできない
214

加算ノイズの利用[Polat+ 03]

加算ノイズによるプライバシ保護
真値 ai に 0 平均で同分布に従うノイズ ε を加える a′i = ai + ε
n
n
n
n
…
…
…
…
® nôÿ
® ® nôÿ
ai ⇤ai
ai bi ⇤
ai bi
総和
内積
i=1
i=1
i=1
i=1
ノイズを加えた値しか与えらなくても内積や総和は近似的に計算可能
利用者 i はアイテム j の評価値を s = rxy * rÑx + ✏xy
標準化しノイズを加えて公開x
類似した利用者の嗜好を反映した評価

利用者間型メモリベース法

自分の値
≥n ≥
≥
≥n
j saj ( x sxj sxy )x ( j saj sxj )sxyrÇay = rÑa + a ≥n ≥= rÑa + a ≥≥nj saj ( x sxj )x ( j saj sxj )利用者間の類似性
標準化の逆変換
予測評価値
評価アイテム数の違いを補正

真値に収束
215

差分プライバシ[Dwork 06, Aggarwal+ 08]

差分プライバシ (Diﬀerential Privacy)
確率的関数 M(・) に対し，ある評価値が一つだけ異なる集合の対 R とR' および，M の値域 𝒮 中の任意の値 s について次式が成立

Pr[M(R) ∈ 𝒮] ≤ exp(ϵ) Pr[M(R′) ∈ 𝒮]
要素が一つだけ違う評価値行列 R と R' を入力とする関数にノイズを付加した確率的関数の値の分布に見られる変化の差を制限する※ 出力の性質ではなく，こうした計算手続きの性質が差分プライバシを満たすという近似差分プライバシ (Approximate Diﬀerential Privacy)
制限を次式のように緩和して，付加するノイズを低減する

Pr[M(R) ∈ 𝒮] ≤ exp(ϵ) Pr[M(R′) ∈ 𝒮] + δ216

差分プライバシの実装
次の条件を満たす M(R) は ε 差分プライバシを満たす
確率的関数：M(R) = f(R) + Laplace(0,σ)

1
σ ≥ sup ∥f(R) − f(R′)∥1
ϵ R≈R′

次の条件を満たす M(R) は (ε, δ) 差分プライバシを満たす
確率的関数：M(R) = f(R) + Normal(0,σ 2)

1
σ≥
ϵ

5
2 ln
sup ∥f(R) − f(R′)∥2
4δ R≈R′• R ≈ R′：評価値データ R と R′ は要素が一つだけ異なる• f(R)：R の実数の統計量を計算する関数
217

差分プライバシ
M(R) の確率密度分布[Dwork 06, Aggarwal+ 08]

M(R′) の確率密度分布関数 M( ⋅ ) の確率密度

ε差分プライバシの条件
Pr[M(R) ∈ 𝒮] ≤exp(ϵ) Pr[M(R′) ∈ 𝒮]
Pr[M(R′) ∈ 𝒮] とPr[M(R) ∈ 𝒮] の領域の差に制限

Pr[M(R′) ∈ 𝒮]
Pr[M(R) ∈ 𝒮]
関数 M( ⋅ ) の値域

𝒮：関数 M( ⋅ ) の値域の部分集合
218

差分プライバシを実現する
協調フィルタリング[McSherry+ 09]

アイテムごとや利用者ごとの平均，アイテム間の共分散が推薦には必要
個人の嗜好の値が {0, 1} だとすると…

スコアの度数：平均の計算などに必要

f(𝒮)：𝒮 の要素を d 個のビンに分けた度数

max𝒮≈𝒮′ ∥f(𝒮) − f(𝒮′)∥総和

一つのレコードの総和が高々 R ならば

max𝒮≈𝒮′ ∥f(𝒮) − f(𝒮′)∥ ≤ R

アイテム間共分散

利用者 u の評価値が ru(a) から ru(b) に変化した場合‖ru(a) − ru(b)‖ = 1 の条件を満たすなら
ÙÙ (a) Ù Ù (b) Ù
(a)
(b) Ù
ÙCov * Cov Ù f Ùru Ù + Ùru ÙÙÙ Ù Ù Ù Ù219

サクラ攻撃220

サクラ攻撃[Mehta+ 08, Lam+ 04]

推薦システムの導入で…
利用者

システム運営者
欲しいものが見つかった

コンテンツ提供者
製品のメーカー利用者が満足サイトが人気ライバル商品を推薦
不満
自分の商品が推薦されない

サクラ攻撃 (shilling attack)推薦結果に介入する意図でシステムに干渉
221

サクラ攻撃の実例[Lam+ 04]

2001年6月にソニーピクチャーズが，実在しない批評家による批評を，新作映画の宣伝に使った
http://news.bbc.co.uk/1/hi/entertainment/ﬁlm/1368666.stm

Amazon.comで発見された作為的なアドバイス

http://www.wired.com/news/ebiz/0,1272,53634,00.html
http://news.com.com/2100-1023-976435.html

eBayにて出品者への評価の売買

http://www.auctionbytes.com/cab/abn/y03/m09/i17/s01

digg票の売買とブログ贈賄が始まった

http://longtailworld.blogspot.com/2006/10/diggdiggs-vote-buying-andpayperpost.html

222

サクラ攻撃の基本
サクラボット(shilling bot)
偽評価を書き込むソフトウェアエージェント
標的アイテム (target item)
評価を操作したいアイテム
攻撃目的の分類

販促攻撃 (push attack)
標的アイテムに良い評価を与えて，より推薦されるようにする
排除攻撃 (nuke attack)
標的アイテムに悪い評価を与えて，推薦されないようにする
攪乱攻撃
推薦の質を下げて，システムへの信頼を低下させる

223

サクラ攻撃の方法
協調フィルタリングでは類似した利用者の評価を利用
排除攻撃の場合の例
通常プロファイル

通常プロファイル
通常
利用者

1

3

似ている!

攻撃成功
サクラ
ボット

5

通常
利用者

1
標的アイテム5

3

詰め物アイテム攻撃プロファイル

標的アイテムだけに悪い評価をしても，通常利用者のプロファ
イルと似ていないので無効

攻撃失敗
サクラ
ボット

?

5

3

×

似てない!

1

?

?

標的アイテム攻撃プロファイル

標的アイテム以外のアイテムも評価して，通常利用者のプロファイルと類似させる
224

サクラ攻撃の戦略
詰め物アイテムへの評価値による戦略の違い

ランダム攻撃 (random attack) [Lam+ 04]
ランダムな評価値．あまり効かず，発覚しやすい．

人気商品攻撃 (bandwagon attack) [Burke+ 06]
ランダム攻撃の改良型．人気商品には良い評価を，その他は平均攻
撃と同じ

平均攻撃 (average attack) [Lam+ 04]
そのアイテムの平均評価を中心とした評価値を与える．利用者間型に有効セグメント攻撃 (segment attack) [Burke+ 05]
標的アイテムの類似商品に良い評価を与える．アイテム間型に有効．
愛憎攻撃 (love/hate attack) [Burke+ 06]
排除攻撃専用．標的アイテムには最低の，詰め物には最高の評価を
与える

225

サクラ攻撃への対策
利用者の評価値は，表示されている予測評価値に影響される[Cosley+ 03]

サクラ攻撃は検出して排除しなくてはならない
検定や異常検出技術の利用予測される評価値と与えられた評価値の差
アイテムへの平均評価からの乖離攻撃は多数のアイテムに行われることが多いので，利用者の評価数
発生頻度が少ない，これらの統計量が検出されたら，攻撃とみなす
攻撃は時間的にまとめて実行されやすい[Zhang+ 06]

評価値が異常な時間窓を検出
226

ロングテール

人気バイアスとバンドワゴン効果

227

推薦システムとロングテール
販売数量

ショートヘッド

ロングテール

販売数量の少ない分布の裾(tail)の部分の商品でも，多品種を販売したときの売上げは，販売数量の多い商品群に対するそれに匹敵する
売上げ順位

推薦システムはロングテールを加速する？

YES

推薦システムや閲覧ツールによって，顧客はニッチな商品により容易にアクセスできるようになり，
ロングテール戦略に有利[Brynjolfsson 06]

NO

顧客が事前には特定の商品を好む
が，それを推薦で変更する可能性が非常に高い場合以外はメインス
トリームの寡占を推薦システムは強化するとモデルで分析[Fleder+ 07]
228人気バイアスとバンドワゴン効果
人気商品は，推薦システムの介在でさらに人気化しやすい
人気バイアス (popularity bias)[Celma+ 08]

推薦システムには人気のあるアイテムを，より推薦しやすい傾向

メモリベース法では，他のアイテムの近傍や，近傍にいる利用者が評価している可能性が高い

モデルベース法では，訓練データ中に多数あるアイテムの誤差を重視
バンドワゴン効果 (bandwagon eﬀect)[Sundar+ 08]

多くの人が良いと思ったものを良いと思う傾向が人間にはある

編集者，自分自身，多数の人の選択，コンピュータが選んだニュース
同じ記事であっても，多数の人が選んだものであると言われたとき
は，編集者や自分自身が選択したときより良い記事と感じた
ニュースとしての価値も，自身が選んだものよりあると感じた229

ロングテールの活性化は可能か？

[Levy+ 10]

Last.fm の実験サービスを使ったロングテール部分の喚起
ユーザの全体傾向の分析

Last.fm ユーザと非ユーザでは，人気音楽への好みの有意差はない

ライトとヘビーユーザでは，後者が若干ロングテール音楽を好む傾向
ロングテール強制推薦

人気音楽重視インディーズでさえないバンドの音楽しか推薦しないことで，ロングテールへの注意を喚起

普通の推薦

ロングテール推薦

グラフが左の方が人気音楽重視

ロングテール推薦により，ロング
テールを若干だが注目させることは可能

Figure 5: Long tail recommendations vs plays on the230フィルターバブル問題

231

フィルターバブル問題[Pariser 11]

フィルターバブル問題
個人化技術の普及により，ネット利用者が多様な情報源や視点に接する機会が減らされているとの Eli Pariser による主張

リベラル派の友人を増やしていると，私に断りなくFaceBook の友人推薦リストから保守派が消されてしまった
232

フィルターバブル問題[Pariser 11]

Google の個人化された検索結果をいろいろな人に頼んで送ってもらった

Scott と Daniel の結果は明らかに異なるEgypt で検索したところ，民主化デモなどがあった時期にも関わらず，一方の検索結果には
通常の観光情報が主であった
233

フィルターバブルの議論
フィルタバブルは実在しているか？

[RecSys 2011 Panel on the Filter Bubble]

個人化の分野では，経験範囲を狭めうることは1990中期から指摘全ての可能性の網羅は本質的に不可能で，これはトレードオフ問題
フィルターバブル問題はどれほど重大か？

唯一のビッグブラザーが特定の情報を選択しているのではない

人によって異なる情報を受け取るのは，社会の多様性には良いこと
既に信じていることを強化する懸念 → 結果はまちまち
この問題に対する対処は？

どういう基準で選択しているのかという透明性・説明を確保

単純な精度ではなく，長期的視点・推薦リスト全体の精度を追求

その人が求めた殻であるなら，それに干渉すべきではないのでは？
http://acmrecsys.wordpress.com/2011/10/25/panel-on-the-filter-bubble/234

推薦の透明性・理由の説明

235

推薦の透明性[Sinha+ 02]

推薦そのものだけでなく推薦の理由も提示すると， 利用者が推薦を信用し受け入れやすくする
実験条件

五つの音楽推薦サイトで実験

被験者は日常的に音楽推薦サイトを利用し，被験者数は12人

各サイトごとに被験者は10回の推薦について好み，透明性を評価

透明性は「なぜシステムがこのアイテムをあなたへ推薦したかを理解していますか？」という質問
透明性がある場合の方が，アイテムを好む割合は有意に多かった
知らなかった，以前から好き，以前から嫌いの三つの場合で，知らなかったり，以前から好きな場合には，透明性がある場合に推薦されたアイテムを好む割合が有意に増えた236

説明の目的[Tintarev 07]

推薦の説明には異なる目的があり，どの目的を達成しようとするかを明確にして，その目的にあった説明をすべき
推薦システムにおける説明の目的の分類

透明性 (transparency)：システムがどのように動作するか説明

調査性 (scrutability)：システムにこれは誤りであると利用者が示せる
信頼性 (trustworthiness)：システムを利用者に信頼させる

実効性 (eﬀectiveness)：利用者がよい決定をするのを助ける

説得力 (persuasiveness)：利用者に試したり買ったりしようと思わせる
効率性 (eﬃciency)：利用者がより早く決定するのを助ける

満足度 (satisfaction)：使いやすさや楽しみやすさを増やす
237

推薦理由の提示：ホワイトボックス
ホワイトボックス：推薦のプロセス自体を見せる

2007/7/26 にスクリーンショットを取得

例1：アイテム間型近傍法で，過去に購入したアイテムと類似していることを明示する

例2：利用者間型メモリベース法
で，嗜好が似ている人の評
価を示す[Linden+ 03][Herlocker+ 00]
238

推薦理由の提示：ブラックボックス[Herlocker+ 00]

ブラックボックス：推薦のプロセスは利用者に意識させない
推薦の強さと共に，推薦の確かさを提示

簡潔だが，推薦の透明性を高めるために有効
推薦の強さ：利用者がどれくらい強くアイテムを好むと推薦システム
は予測しているか

例：5 段階評価で 4 ぐらい

推薦の確かさ：利用者に示した推薦を，システムはどれくらい確かだと考えているか

例：過去の同様の推薦では，利用者の実際の嗜好と一致した割合は
80%

239

推薦の多様性240

PRPの呪縛
PRP (Probability Ranking Principle)[Robertson 77]

情報検索分野での基本的な原理
クエリへの適合確率で成立
あらゆる回答の中で利用者した回答リストにとって最も効果的

これは推薦システムでも真理？？？

利用者の情報要求は不明確，もしくは存在しない
情報検索とは違った，意志決定支援としての側面
cherry picking：容易に分かるアイテムのみを推薦して予測精度を「かせぐ」のは安易 [Herlocker+ 04]
収穫逓減の法則 (law of diminishing marginal returns)：類似
したものを続けて与えられると効用は低下 [Ziegler+ 05]241多様性の重要性
推薦の新規性[Adomavicius+ 05]

予測精度だけでなく，利用者が予測できないという新規性も重要
新規性のある推薦には多様性を考慮する必要

例：スーパーマーケットの客に，牛乳や卵などの日常的に購入するものを推薦するのは有用な推薦とはいえないアイテムの性質[Senecal+ 04]

searchアイテム（白物家電など）

カタログに記載されている仕様情報などから洞察で意志決定できる
利用者の要求する仕様情報を確実に満たすようなな検索が有用

experienceアイテム（嗜好品など）

風味や手触りなど実際に試さないと良いかどうかわからない嗜好を予測した推薦の役割は増えて，その多様性は重要になる
対象アイテムの性質によって多様性の重要性は変わる

242

推薦リスト全体での最適化
アイテムごとに好き嫌いを判断しそれらを集めてリストにする[McNee+ 06]

推薦はリスト全体をまとめて考慮すべきリスト中に含めるアイテムの選択によって

正解率

バランス

多様性

正解率が低いと，利用者の嗜好に合っていないものが推薦される

多様性が低いと，推薦リストには類似したものばかりになり，利用者は飽きてしまう243新規性と多様性の分類
新規性と多様性[Vargas+ 11]

新規性：過去に経験したアイテムと推薦アイテムが類似していない

多様性：推薦されたアイテム集合のアイテムが違いに類似していない
多様性の範囲個別多様性 (individual)・リスト内多様性 (intra-list)：一度の推薦で同時に提示するアイテムリスト内の多様性[Ziegler+ 05]
時間多様性 (temporal)・システム内多様性 (intra-system)：ある
個人に連続して推薦するとき，一連の推薦されたアイテムの多様性[Lathia+ 10]

集約多様性 (aggregate diversity)：全利用者にわたって推薦されたアイテムの多様性で，全員が同じ推薦をされると低くなる[Adomavicius+ 12]244話題多様化[Ziegler+ 05]

適合率

話題多様化 (Topic Diversification)：より多様なタイプのアイテムを推薦アイテムリストに含めると，予測精度は低下するが満足度は向上
通常の推薦リスト

多様化した推薦リスト

1：適合率 0.99

1：適合率 0.99

内容的に
類似

2：適合率 0.95
3：適合率 0.90
4：適合率 0.84

リストから
削除

単純に適合率の高い順にアイテムを選択する

2：適合率 0.95
3：適合率 0.90
4：適合率 0.84

繰り上げ

リスト内での類似性と適合率とをバランスを考慮してアイテムを選択する
245

Webコンテンツ最適化

246

Webコンテンツ最適化/オンライン推薦[Abe+ 99, Agarwal+ 09, Li+ 10]

Webコンテンツ最適化 (Web contents optimization)
Webコンテンツ

Webページ（バナー広告やニュース記事など）

利用者が関心を持ち，頻繁にアクセスされるほど利用者満足や収益は向上
候補コンテンツから，アクセスされる確率が最大のコンテンツ群を選び出す
スケーラビリティ：表示の遅延なしに，大量のリクエストを処理
動的変化：利用者の嗜好の変化や，候補コンテンツの入れ替え
契約上の制約：バナー広告には最低表示回数などの契約条件

フィードバック遅延：利用者がコンテンツを見るまでの時間遅延247

多腕バンディット
多腕バンディット問題
multi-armed bandit problem
バンディット（スロットマシーン）が何台かある．T 回チャンスがある
とき，一番儲かるようにするには，どれをどの順で引けばよい？
当たり確率が最大のものにかけ続ければよい当たり確率は不明なので，推定する必要
活用-探索のジレンマ
活用 (exploitation)：当たる可能性を最大化するには，現在のところ一番当たり確率の高いマシンに賭けた方がよい
探索 (exploration)：現在のところ当たり確率が高いマシンは，偶然当たりが続いただけかもしれないので，他のマシンも調べる必要
248

UCB1

[Auer+ 02]

リグレット：一番当たる確率が高いスロットマシーンを引き続けた場合に得られる金額から，実際やってみた場合に取りそびれた金額
Upper Conﬁdence Bound 1 (UCB1)

ある決まった回数 T だけスロットマシーンを引き続けたとき，リグ
レットを小さくするようにするアルゴリズム
マシンを引く前に，全てのマシンについて次のスコアを計算して，一番スコアの高いマシン j を引くと良い
j番目のマシンが当たった回数
j番目のマシンを
引いた回数

n+
j
nj

v
+

2 ln nnj

実用的にはこの定数は調整して性能を向上
全マシンを
引いた回数

確率 ε で非最適なマシンを引く ε-Greedy のリグレットは O(T)
それに対して，UCB1 は O(ln T) のリグレットを達成できる249

ソーシャル推薦

250

ソーシャル推薦
利用者間メモリベース法
嗜好が似ている他の利用者が好きなものを推薦
嗜好共起性で繋がった利用者のネットワークも利用できる

Web上での共起性に基づくネットワーク [Kautz 97]

過去の推薦での有用性に基づくネットワーク [OʼDonovan 05]
同じカテゴリの商品を購入しているネットワーク [Cho 07]
明示的ソーシャルネットワークの登場
レビューサイトで，他人の評価を評価したネットワーク (epinion)
狭義の SNS の友人関係ネットワークの利用 (FaceBook)
友人や信頼できる人の嗜好をより重視した推薦
251

SoRec[Ma+ 08]

SoRec：確率的行列分解モデルによる評価値の予測モデルと，利用者間のソーシャル関係の有無とを同時に予測するモデル
グラフィカルモデル
アイテム

利用者 他の利用者

V

U

vy

ux

yÀY
(x, y) À X ù Y

s.t. rxy ë ⌅

W

wi

xÀX

rxy
R

iÀX

qxi

(x, i) À X ù X

s.t. qxi ë ⌅Q

利用者 x のアイ
利用者 x と i
テム y への評価 のソーシャル関係

目的関数
アイテム評価値2
1…
Ò
rxy * sig(ux vy )2 (x,y)ソーシャル関係…
2TÒ
+txi * sig(ux wi )2 (x,i)
シグモイド関数

+

2

Ò⇥Ò2

正則化項

パラメータ ux，vy，wi を最適化
252

Social Trust Ensemble[Ma+ 09]

Social Trust Ensemble：確率的行列分解モデルで，自身の評価と，自身とソーシャル関係がある他の利用者らの平均評価との線形結
合とをグラフィカルモデル
アイテム

目的関数
利用者 x の評価

活動利用者 他の利用者
V

vy
yÀY
(x, y) À X ù Y rxys.t. rxy ë ⌅R

利用者 x の評価

ux

Qx

H

u1

…

u2

(x,y)ÀXùY
s.t. rxy ë⌅Urxy * sig

0

…

1
↵uÒ
v
+
(1
*
↵)
qxi uÒ
x yi vy
Qx  iÀQx

1I2

+ U ÒUÒ2F + V ÒVÒ2F
2
2

uiQ 
xx, i1 , i2 , … , iQx  À X

他利用者の
平均的評価

他利用者の評価

シグモイド関数調整パラメータ

正則化項

パラメータ ux，vy を最適化
253

入出力の多様化

254

入出力の多様化
内容ベースフィルタリングの弱点

アイテムのデータベース構築は高コスト
DBが整備されているのは書籍・CDなどの限られた品目

アイテムの情報を提示すると意志決定にとって重要 [Swearingen 01]
高コストのDB整備には，それに見合う規模の店舗できない
DBにない商品はないも同然

DBの寡占が流通の寡占に推薦のためのデータベースを抵コストで構築する技術
入力情報の整備：アイテム情報の Linked Data や Webサービス による共有， 嗜好のゆらぎの補正，評価基準の多様化
入力情報の高度化：自然言語・画像・音声・音楽情報処理で抽出

255

データベース情報の収集
集中的に大規模データベースを作る

製品情報の掲載や修正にタイムラグ
情報の寡占による流通の支配分散管理と集約サービス
メーカー・サービス事業者

データ加工・提供

自社の製品・サービスの情報を
linked data や Webサービスとして提供

各種のデータベースを収集して，Webサービスで効率的に提供するサービス
目的に合わせて語彙の変更や同義語の集約などを行う

256

自然言語・画像・音楽情報処理
自然言語処理評判分析 (sentiment分析)

利用者のアイテムへの嗜好，アイテムaspectの相対的優位性

固有表現抽出，情報抽出

アイテムの特徴データベースをテキスト情報から構築

画像処理
画像認識技術

利用者の画像から性別や服飾の好みの情報を抽出

画像から屋内外・天気などの利用状況の情報を抽出
色調・大きさなどのアイテム特徴の抽出
音楽情報処理音楽の曲調などの特徴を，波長データから抽出257

その他の推薦問題

258

グループ推薦[OʼConnor 01, Baltrunas 10, Berkovsky 10, Seko 11]

グループ推薦 (group recommendation)

個人ではなく，グループに対する推薦．メンバー間で嗜好の一致・不一致があるためそのバランスをどうするかが課題
映画・TV番組など，旅行プラン，レストラン・料理レシピなどが対象
スコアに基づく方法：各アイテムのメンバー個人へのスコアから，グループ全体への効用を決める関数を定義し，その値の良いものを推薦
メンバーごとの重要性で重み付けしたスコア平均値

グループ内で一番スコアが低いメンバーのスコアを最大にする
前回の行動で，我慢したメンバーを重視する
メンバーの好むジャンルを考慮する

推薦リストに基づく方法：各メンバーごとに推薦リストを作り，そのリストをまとめる方法
情報検索で用いられる順位集約 (rank aggregation) の技術を利用
259

マルチ評価基準
マルチ評価基準 (multi-criteria)[Adomavicius 07]

アイテムの評価基準が全体としての嗜好ではなく，そのアイテムのいろいろな側面についての評価が与えられる場合※ Zagatのレストランガイドは，食事，内装，サービスなどの複数の規準で評価
全評価基準を考慮した評価スコア：全ての評価基準のスコアを入力として全体としての嗜好を予測するスコア関数を定義し，その全体スコアに基づいて予測※ 利用者間のメモリベース法で，全ての評価基準を考慮した利用者間の類似性尺度を定義
各評価基準ごとに求めたスコアをまとめる：各評価基準を用いて個別にスコアや推薦リストを作り，その後，個々のスコアや推薦リストを
まとめる

260

コンテキスト考慮型推薦
コンテキスト配慮型 (context-aware recommendation)
推薦システムが利用される状況に応じて，推薦内容を適応させる推薦
映画：一人で見に行く，家族で見に行く，カップルで見に行く
レストラン：毎日の食事と記念日の食事，地理的な近さ
各コンテキストごとに推薦モデルを構築
疎な嗜好データがさらに疎になるため難しい

コンテキストも，アイテムや利用者の特徴と同様に特徴量ととらえ，
内容ベース型やハイブリッド型の推薦アルゴリズムを利用する

261

対話型システム
フィードバックを導入し対話的にする
アイテムレベルのフィードバック
推薦後に，推薦リスト中やシステムが指定したアイテムについて，その評価値を利用者が返す
より予測精度を向上させるのに役立つアイテムをシステムが選択して，利用者に評価させる能動学習 [Kohrs+ 01,Boutilier+ 03]

セッション中での評価を短期プロファイルとする．これを重視する
ことで，コンテキストに依存した推薦をする [Rafter+ 05]
前回利用者が選んだアイテムを推薦リストに混ぜて，それが選ばれたら推薦の改善方向が誤っていたと考える [Smyth+ 03]
特徴レベルのフィードバック
クエリを使った内容ベースフィルタリングで用いる特徴の値について「より大きく」といった制約を入力させる[Smyth+ 04, McSherry 05]
262

セット推薦共起性のあるアイテム群
協調的なアイテム群
例：クッキーと紅茶

対立的なアイテム群
例：クッキーとマカロン

アイテムのセット推薦

協調的なアイテム群であるかの予測

セット販売のみの割引き価格の設定
共起性以外の観点からのアイテムのセット化

嗜好パターンが類似している利用者の好むアイテム群と，アイテム自体の特徴を考慮して(シャツとジャケット，柄+柄はダメ)，衣料品のコーディネート
旅行先でのレストラン・レジャーのセット

263

推薦システムが役立つには？

264

推薦システムは役に立つのか？
利用者にとって推薦システムは役立つ？
もちろん!
ただし，次の条件が必要！
推薦システム側
利用者が欲しいと予測したもの

＝

利用者側
利用者が
欲しいもの

265

推薦システムと利用者要求の一致
推薦システム側
利用者が欲しいと予測したもの

＝

利用者側
利用者が
欲しいもの

利用者が推薦システムに合わせる
利用者主導の推薦：推薦の方向付けを利用者が行う推薦結果の選択：システムが開示した情報から推薦を取捨選択
推薦状況の限定：利用者が情報要求が自明な状況で利用
推薦システムが利用者に合わせる
入出力の多様化：評価値以外の情報をもっと活用

推薦内容の多様化：正解率以外の視点も考慮，より積極的な提案
266

利用者が推薦システムに合わせる
利用者主導の推薦：利用者が望む推薦の方向付けを事前に入力

自身の関心をプロファイルに事前登録して推薦を制約する機能は利用者の満足に大きく影響 [Swearingen+ 01]

推薦結果の選択：システムが提供する情報に基づいて利用者が推薦を取捨選択

推薦の根拠に関する説明を，利用者に提示し，利用者はそれに基づいて，推薦を受理するかどうかを判断する [Herlocker+ 00, Sinha+ 02]
統計的予測や店員の推薦といった推薦プロセスを明示 [Senecal+ 04]

利用状況の限定：利用者の情報要求が自明な状況で利用してもらう

駅の案内板，店頭の商品案内など利用者の要求が限定されている状況で利用されるようにする
267

推薦システムが利用者に合わせる
入出力の多様化：デモグラフィック・アイテムの特徴・利用状況なども考慮したハイブリッド推薦アルゴリズム
画像・ 音楽・ テキスト処理など高度なアイテム特徴抽出技法
利用時間・場所，アイテムの在庫状況なども考慮

DB中のアイテムデータだけでなく，入力された情報や画像などと組み合わせた魅力的な提案
推薦内容の多様化：予測精度は最も重視すべきだが，それだけでは不十分 [McNee+ 06, McNee+ 06]

アイテムの特性や利用者の目的に応じて，予測正解率，被覆率，多様性などの推薦における重点指標を変更
利用者の反応や，フィードバックに基づいて推薦リストを変更

268

まとめ
推薦システム：情報過多への対抗技術

内容ベースフィルタリング：アイテムの特徴を利用
協調フィルタリング：口コミ過程の自動化

推薦システムの過程（O-I-Pモデル）
データの入力：明示的 vs 暗黙的嗜好の予測：状況に応じて適宜選択

メモリベース法：データから直接予測モデルベース法：事前に嗜好パターンを獲得

推薦の提示：利用者の目的に応じた提示

その他：プライバシー保護協調フィルタリング，サクラ攻撃，推薦リス
ト全体の良さを考慮，予測精度以外の要因を考慮した予測
269

参考文献

270

[Abe 99] Abe, N. and Nakamura, A.: Learning to Optimally Schedule Internet Banner
Advertisements, in Proc. of the 16th Int’l Conf. on Machine Learning, pp. 12–21 (1999)[Adomavicius 05] Adomavicius, G. and Tuzhilin, A.: Toward the Next Generation of
Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions,
IEEE Trans. on Knowledge and Data Engineering, Vol. 17, No. 6, pp. 734–749 (2005)[Adomavicius 07] Adomavicius, G. and Kwon, Y.: New Recommendation Techniquesfor Multicriteria Rating Systems, IEEE Intelligent Systems, Vol. 22, No. 3, pp. 48–55(2007)[Adomavicius 12] Adomavicius, G. and Kwon, Y.: Improving Aggregate Recommendation Diversity Using Ranking-Based Techniques, IEEE Trans. on Knowledge and Data
Engineering, Vol. 24, No. 5, pp. 896–911 (2012)[Agarwal 09] Agarwal, D., Chen, B.-C., and Elango, P.: Explore/Exploit Schemes for
Web Content Optimization, in Proc. of the 9th IEEE Int’l Conf. on Data Mining, pp.
1–10 (2009)[Aggarwal 08] Aggarwal, C. C. and Yu, P. S. eds.: Privacy Preserving Data Mining:
Models and Algorithms, Advances in Database Systems, Springer-Verlag (2008)[Ali 04] Ali, K. and Stam, van W.: TiVo: Making Show Recommendations Using aDistributed Collaborative filtering Architecture, in Proc. of the 10th ACM SIGKDD
Int’l Conf. on Knowledge Discovery and Data Mining, pp. 394–401 (2004)[Auer 02] Auer, P., Cesa-Bianchi, N., and Fischer, P.: Finite-Time Analysis of the Multiarmed Bandit Problem, Machine Learning, Vol. 47, pp. 235–256 (2002)[Baeza-Yates 20] Baeza-Yates, R.: Bias on Search and Recommender Systems, The 15th
ACM Conf. on Recommender Systems, Keynote (2020)[Baltrunas 10] Baltrunas, L., Makcinskas, T., and Ricci, F.: Group Recommendations
with Rank Aggregation and Collaborative Filtering, in Proc. of the 4th ACM conference
on Recommender systems, pp. 119–126 (2010)[Basilico 04] Basilico, J. and Hofmann, T.: Unifying Collaborative and Content-Based
Filtering, in Proc. of the 21st Int’l Conf. on Machine Learning, pp. 65–72 (2004)[Bell 07] Bell, R. M. and Koren, Y.: Scalable Collaborative Filtering with Jointly Derived
Neighborhood Interpolation Weights, in Proc. of the 7th IEEE Int’l Conf. on Data

Mining, pp. 43–52 (2007)[Ben Schafer 01] Ben Schafer, J., Konstan, J. A., and Riedl, J.: E-Commerce Recommendation Applications, Data Mining and Knowledge Discovery, Vol. 5, pp. 115–153(2001)[Berkovsky 10] Berkovsky, S. and Freyne, J.: Group-based Recipe Recommendations:
Analysis of Data Aggregation Strategies, in Proc. of the 4th ACM conference on Recommender systems, pp. 111–118 (2010)[Blei 03] Blei, D. M., Ng, A. Y., and Jordan, M. I.: Latent Dirichlet Allocation, Journalof Machine Learning Research, Vol. 3, pp. 993–1022 (2003)[Boutilier 03] Boutilier, C., Zemel, R. S., and Marlin, B.: Active Collaborative Filtering,in Uncertainty in Artificial Intelligence 19, pp. 98–106 (2003)[Breese 98] Breese, J. S., Heckerman, D., and Kadie, C.: Empirical Analysis of Predictive
Algorithms for Collaborative Filtering, in Uncertainty in Artificial Intelligence 14, pp.
43–52 (1998)[Burke 02] Burke, R.: Hybrid Recommender Systems: Survey and Experiments, UserModeling and User-Adapted Interactions, Vol. 12, No. 4, pp. 331–370 (2002)[Burke 05] Burke, R., Mobasher, B., Bhaumik, R., and Williams, C.: Segment-Based
Injection Attacks against Collaborative Filtering Recommender Systems, in Proc. of
the 5th IEEE Int’l Conf. on Data Mining, pp. 577–580 (2005)[Burke 06] Burke, R., Mobasher, B., Williams, C., and Bhaumik, R.: Classification
Features for Attack Detection in Collaborative Recommender Systems, in Proc. of the
12th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining, pp. 542–547(2006)[Canny 02a] Canny, J.: Collaborative Filtering with Privacy, in Proc. of the 2002 IEEE
Symposium on Security and Privacy, pp. 45–57 (2002)[Canny 02b] Canny, J.: Collaborative Filtering with Privacy via Factor Analysis, in Proc.
of the 25th Annual ACM SIGIR Conf. on Research and Development in Information
Retrieval, pp. 238–245 (2002)[Celma 08] Celma, Ò. and Cano, P.: From Hits to Niches?: or How Popular Artists Can
Bias Music Recommendation and Discovery, in Proc. of the 2nd KDD Workshop on
Large-Scale Recommender Systems and the Netflix Prize Competition (2008)[Cho 07] Cho, J., Kwon, K., and Park, Y.: Collaborative Filtering Using Dual Information
Sources, IEEE Intelligent Systems, Vol. 22, No. 3, pp. 30–38 (2007)

[Cooke 02] Cooke, A. D. J., Sujan, H., Sujan, M., and Weitz, B. A.: Marketing theUnfamiliar: The Role of Context and Item-Specific Information in Electronic Agent
Recommendations, Journal of Marketing Research, Vol. 39, No. 4, pp. 488–497 (2002)[Cosley 03] Cosley, D., Lam, S. K., Albert, I., Konstan, J. A., and Riedl, J.: Is Seeing
Believing? How Recommender Interfaces Affect Users’ Opnions, in Proc. of the
SIGCHI Conf. on Human Factors in Computing Systems, pp. 585–592 (2003)[Das 07] Das, A., Datar, M., Garg, A., and Rajaram, S.: Google News Personalization:
Scalable Online Collaborative Filtering, in Proc. of the 16th Int’l Conf. on World Wide
Web, pp. 271–280 (2007)[Dwork 06] Dwork, C.: Differential Privacy, in Proc. of the 33rd Int’l Colloquium on
Automata, Languages, and Programming, pp. 1–12 (2006), [LNCS 4052][Frankowski 06] Frankowski, D., Cosley, D., Sen, S., Terveen, L., and Riedl, J.: You Are
What You Say: Privacy Risks of Public Mentions, in Proc. of the 29th Annual ACM
SIGIR Conf. on Research and Development in Information Retrieval, pp. 565–572(2006)[George 05] George, T. and Merugu, S.: A Scalable Collaborative Filtering Framework
based on Co-clustering, in Proc. of the 5th IEEE Int’l Conf. on Data Mining, pp.
625–628 (2005)[Gunawardana 09] Gunawardana, A. and Shani, G.: A Survey of Accuracy Evaluation
Metrics of Recommendation Tasks, Journal of Machine Learning Research, Vol. 10,
pp. 2935–2962 (2009)[He 17] He, X., Liao, L., Zhang, H., Nie, L., and Chua, X. H. T.-S.: Neural Collaborative
Filtering, in Proc. of the 26th Int’l Conf. on World Wide Web (2017)[Herlocker 99] Herlocker, J. L., Konstan, J. A., Borchers, A., and Riedl, J.: An Algorithmic Framework for Performing Collaborative Filtering, in Proc. of the 22nd Annual
ACM SIGIR Conf. on Research and Development in Information Retrieval, pp. 230–237(1999)[Herlocker 00] Herlocker, J. L., Konstan, J. A., and Riedl, J.: Explaining Collaborative
Filtering Recommendations, in Proc. of the Conf. on Computer Supported Cooperative
Work, pp. 241–250 (2000)[Herlocker 04] Herlocker, J. L., Konstan, J. A., Terveen, L. G., and Riedl, J. T.: Evaluating
Collaborative Filtering Recommender Systems, ACM Trans. on Information Systems,
Vol. 22, No. 1, pp. 5–53 (2004)

[Hill 95] Hill, W., Stead, L., Rosenstein, M., and Furnas, G.: Recommending and Evaluating Choices in a Virtual Community of Use, in Proc. of the SIGCHI Conf. on Human
Factors in Computing Systems, pp. 194–201 (1995)[Hofmann 99a] Hofmann, T.: Probabilistic Latent Semantic Analysis, in Uncertainty in
Artificial Intelligence 15, pp. 289–296 (1999)[Hofmann 99b] Hofmann, T. and Puzicha, J.: Latent Class Models for Collaborative
Filtering, in Proc. of the 16th Int’l Joint Conf. on Artificial Intelligence, pp. 688–693(1999)[Jin 03] Jin, R., Si, L., and Zhai, C.-X.: Preference-based Graphic Models for Collaborative Filtering, in Uncertainty in Artificial Intelligence 19, pp. 329–336 (2003)[Kamishima 03] Kamishima, T.: Nantonac Collaborative Filtering: Recommendation
Based on Order Responses, in Proc. of The 9th Int’l Conf. on Knowledge Discovery
and Data Mining, pp. 583–588 (2003)[Kamishima 06] Kamishima, T. and Akaho, S.: Nantonac Collaborative Filtering —Recommendation Based on Multiple Order Responses, in Proc. of the 1st Int’l Workshop
on Data-Mining and Statistical Science, pp. 117–124 (2006)[Kautz 97] Kautz, H., Selman, B., and Shah, M.: Combining Social Networks and Collaborative Filtering, Communications of the ACM, Vol. 40, No. 3, pp. 63–65 (1997)[Kohrs 01] Kohrs, A. and Merialdo, B.: Improving Collaborative Filtering for New-Users
by Smart Object Selection, in proc. of Int’l Conf. on Media Features (2001)[Konstan 03] Konstan, J. A. and Riedl, J.: Recommender Systems: Collaborating in
Commerce and Communities, in Proc. of the SIGCHI Conf. on Human Factors in
Computing Systems, Tutorial (2003)[Koren 08] Koren, Y.: Factorization Meets the Neighborhood: A Multifaceted Collaborative Filtering Model, in Proc. of the 14th ACM SIGKDD Int’l Conf. on Knowledge
Discovery and Data Mining, pp. 426–434 (2008)[Koren 09a] Koren, Y.: Collaborative Filtering with Temporal Dynamics, in Proc. of the
15th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining, pp. 447–455(2009)[Koren 09b] Koren, Y., Bell, R., and Volinsky, C.: Matrix Factorization Techniques for
Recommender Systems, Computer, Vol. 42, No. 8 (2009)[Lam 04] Lam, S. T. K. and Riedl, J.: Shilling Recommender Systems for Fun and Profit,in Proc. of the 13th Int’l Conf. on World Wide Web, pp. 393–402 (2004)

[Lathia 10] Lathia, N., Hailes, S., Capra, L., and Amatriain, X.: Temporal Diversity in
Recommender Systems, in Proc. of the 33rd Annual ACM SIGIR Conf. on Researchand Development in Information Retrieval, pp. 210–217 (2010)[Levy 10] Levy, M. and Bosteels, K.: Music Recommendation and the Long Tail, in
WOMRAD 2010: RecSys 2010 Workshop on Music Recommendation and Discovery(2010)[Li 10] Li, L., Chu, W., Langford, J., and Schapire, R. E.: A Contextual-Bandit Approach
to Personalized News Article Recommendation, in Proc. of the 19th Int’l Conf. on
World Wide Web, pp. 661–670 (2010)[Linden 03] Linden, G., Smith, B., and York, J.: Amazon.com Recommendations: Itemto-Item Collaborative Filtering, IEEE Internet Computing, Vol. 7, No. 1 (2003)[Ma 08] Ma, H., Yang, H., Lyu, M. R., and King, I.: SoRec: social recommendation
using probabilistic matrix factorization, in Proc. of the 17th ACM Conf. on Information
and Knowledge Management, pp. 931–940 (2008)[Ma 09] Ma, H., Lyu, M. R., and King, I.: Learning to Recommend with Trust andDistrust Relationships, in Proc. of the 3rd ACM Conf. on Recommender Systems, pp.
189–196 (2009)[Maes 94] Maes, P.: Agents That Reduce Work and Information Overload, Communications of ACM, Vol. 37, No. 7, pp. 30–40 (1994)[McNee 06a] McNee, S. M., Riedl, J., and Konstan, J. A.: Accurate Is Not Always Good:How Accuracy Metrics Have Hurt Recommender Systems, in Proc. of the SIGCHI
Conf. on Human Factors in Computing Systems, pp. 1097–1101 (2006)[McNee 06b] McNee, S. M., Riedl, J., and Konstan, J. A.: Making Recommendations
Better: An Analytic Model for Human-Recommender Interaction, in Proc. of the
SIGCHI Conf. on Human Factors in Computing Systems, pp. 1103–1108 (2006)[McSherry 05] McSherry, D.: Explanation in Recommender Systems, Artificial Intelligence Review, Vol. 24, pp. 179–197 (2005)[McSherry 09] McSherry, F. and Mironov, I.: Differentially Private Recommender Systems: Building Privacy into the Netflix Prize Contenders, in Proc. of the 15th ACM
SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining, pp. 627–635 (2009)[Mehta 08] Mehta, B. and Nejdl, W.: Attack Resistant Collaborative Filtering, in Proc.
of the 31st Annual ACM SIGIR Conf. on Research and Development in Information
Retrieval, pp. 75–82 (2008)

[Mobasher 07] Mobasher, B., Burke, R., Bhaumik, R., and Sandvig, J. J.: Attacks andRemedies in Collaborative Recommendation, IEEE Intelligent Systems, Vol. 22, No. 3,
pp. 56–63 (2007)[Mov] MovieLens, University of Minnesota⟨http://movielens.org/⟩[Nakamura 98] Nakamura, A. and Abe, N.: Collaborative Filtering using Weighted Majority Prediction Algorithms, in Proc. of the 15th Int’l Conf. on Machine Learning, pp.
395–403 (1998)[O’Connor 01] O’Connor, M., Cosley, D., Konstan, J. A., and Riedl, J.: PolyLens: A
Recommender System for Groups of Users, in Proc. of the 7th European Conf. on
Computer-Supported Cooperative Work, pp. 199–218 (2001)[O’Donovan 05] O’Donovan, J. and Smyth, B.: Trust in Recommender Systems, in Proc.
of the 10th Int’l Conf. on Intelligent User Interfaces, pp. 167–174 (2005)[Ono 05] Ono, C., Motomura, Y., and Asoh, H.: A Study of Probabilistic Models for
Integrating Collaborative and Content-based Recommendation, in Working Note of
IJCAI2005: Multidisciplinary Workshop on Advances in Preference Handling (2005)[Pariser 11] Pariser, E.: The Filter Bubble: What The Internet Is Hiding From You, Viking(2011)[Paterek 07] Paterek, A.: Improving Regularized Singular Value Decomposition for Collaborative Filtering, in Proc. of KDDCup and Wrokshop (2007)[Pavlov 03] Pavlov, D. Y. and Pennock, D. M.: A Maximum Entropy Approach To Collaborative Filtering in Dynamic, Sparse, High-Dimensional Domains, in Advances in
Neural Information Processing Systems 15, pp. 1465–1472 (2003)[Polat 03] Polat, H. and Du, W.: Privacy-Preserving Collaborative Filtering Using Randomized Perturbation Techniques, in Proc. of the 3rd IEEE Int’l Conf. on Data Mining,pp. 625–628 (2003)[Popescul 01] Popescul, A., Ungar, L. H., Pennock, D. M., and Lawrece, S.: Probabilistic
Models for Unified Collaborative and Content-Based Recommendation in Sparse-Data
Environments, in Uncertainty in Artificial Intelligence 17, pp. 437–444 (2001)[Rafter 05] Rafter, R. and Smyth, B.: Conversational Collaborative Recommendation —An Experimental Analysis, Artificial Intelligence Review, Vol. 24, pp. 301–318 (2005)[Rendle 09] Rendle, S., Freudenthaler, C., Gantner, Z., and Schmidt-Thieme, L.: BPR:
Bayesian Personalized Ranking from Implicit Feedback, in Uncertainty in Artificial
Intelligence 25, pp. 452–461 (2009)[Resnick 94] Resnick, P., Iacovou, N., Suchak, M., Bergstrom, P., and Riedl, J.: GroupLens: An Open Architecture for Collaborative Filtering of Netnews, in Proc. of theConf. on Computer Supported Cooperative Work, pp. 175–186 (1994)[Resnick 97] Resnick, P. and Varian, H. R.: Recommender Systems, Communications of
the ACM, Vol. 40, No. 3, pp. 56–58 (1997)[Resnick 11] Resnick, P., Konstan, J., and Jameson, A.: Panel on The Filter Bubble, The

5th ACM Conf. on Recommender Systems (2011), ⟨http://acmrecsys.wordpress.
com/2011/10/25/panel-on-the-filter-bubble/⟩[Robertson 77] Robertson, S. E.: The Probability Ranking Principle in IR, J. of Documentation, Vol. 33, No. 4, pp. 294–304 (1977)[Salakhutdinov 07] Salakhutdinov, R., Mnih, A., and Hinton, G.: Restricted Boltzmann
Machines for Collaborative Filtering, in Proc. of the 24th Int’l Conf. on Machine
Learning, pp. 791–798 (2007)[Salakhutdinov 08] Salakhutdinov, R. and Mnih, A.: Probabilistic Matrix Factorization,
in Advances in Neural Information Processing Systems 20, pp. 1257–1264 (2008)[Sarwar 00] Sarwar, B., Karypis, G., Konstan, J. A., and Riedl, J. T.: Application of
Dimensionality Reduction in Recommender System — A Case Study, in KDD2000
Workshop: WebKDD (2000)[Sarwar 01] Sarwar, B., Karypis, G., Konstan, J., and Riedl, J.: Item-Based Collaborative
Filtering Recommendation Algorithms, in Proc. of the 10th Int’l Conf. on World Wide
Web, pp. 285–295 (2001)[Seko 11] Seko, S., Motegi, T. Y. M., and Muto, S.: Group Recommendation Using
Feature Space Representing Behavioral Tendency and Power Balance Among Members,in Proc. of the 5th ACM conference on Recommender systems, pp. 101–108 (2011)[Senecal 04] Senecal, S. and Nantel, J.: The Influence of Online Product Recommendation
on Consumers’ Online Choices, Journal of Retailing, Vol. 80, pp. 159–169 (2004)[Shani 05] Shani, G., Heckerman, D., and Brafman, R. I.: An MDP-Based Recommender
System, Journal of Machine Learning Research, Vol. 6, pp. 1265–1295 (2005)[Sinha 02] Sinha, R. and Swearingen, K.: The Role of Transparency in Recommender
Systems, in Proc. of the SIGCHI Conf. on Human Factors in Computing Systems, pp.
830–831 (2002)[Smyth 03] Smyth, B. and McGinty, L.: The Power of Suggestion, in Proc. of the 18thInt’l Joint Conf. on Artificial Intelligence, pp. 127–132 (2003)

[Smyth 04] Smyth, B., McGinty, L., Reilly, J., and McCarthy, K.: Compound Critiques
for Conversational Recommender Systems, in Proc. of the IEEE/WIC/ACM Int’l Conf.
on Web Intelligence, pp. 145–151 (2004)[Sparling 11] Sparling, E. I. and Sen, S.: Rating: How Difficult Is It?, in Proc. of the 5th
ACM Conf. on Recommender Systems, pp. 149–156 (2011)[Sundar 08] Sundar, S. S., Oeldorf-Hirsch, A., and Xu, Q.: The Bandwagon Effect ofCollaborative Filtering Technology, in Proc. of the SIGCHI Conf. on Human Factors
in Computing Systems (2008)[Swearingen 01] Swearingen, K. and Sinha, R.: Beyond Algorithms: An HCI Perspective
on Recommender Systems, in SIGIR Workshop on Recommender Systems (2001)[Tintarev 07] Tintarev, N.: Explanations of Recommendations, in Proc. of the 1st ACM
Conf. on Recommender Systems (2007)[Vargas 11] Vargas, S. and Castells, P.: Rank and Relevance in Novelty and Diversity
Metrics for Recommender Systems, in Proc. of the 5th ACM Conf. on Recommender
Systems, pp. 109–116 (2011)[Weigend 03] Weigend, A. S.: Analyzing Customer Behavior at Amazon.com, in The 9th
ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining, Kyenote (2003)[Yao 86] Yao, A. C.: How to Generate and Exchange Secrets, in Proc. of Annual IEEE
Sympo. on Foundations of Computer Science, pp. 162–167 (1986)[Ziegler 05] Ziegler, C. N., McNee, S. M., Konstan, J. A., and Lausen, G.: Improving
Recommendation Lists Through Topic Diversification, in Proc. of the 14th Int’l Conf.
on World Wide Web, pp. 22–32 (2005)