Slide 1

Slide 1 text

内容ベース推薦システム 第2回 推薦システム概論 奥 健太

Slide 2

Slide 2 text

シナリオ Aliceはとあるカレー屋を訪れました。このカレー屋で は、表に示す辛さと甘さの異なる13種類のカレーを提 供しています。各カレーは辛さと甘さがそれぞれ1から 10の10段階で設定されています。Aliceは、これまでに 7種類のカレーを試してきました。アイテムID 8から 13のカレーについては、Aliceはまだ試していません。 Aliceにはどのカレーを推薦するのが良いでしょうか? アイテムID アイテム名 辛さ 甘さ 評価値 1 5辛3甘 5 3 +1 2 6辛2甘 6 2 +1 3 4辛1甘 4 1 +1 4 8辛5甘 8 5 -1 5 2辛4甘 2 4 -1 6 3辛6甘 3 6 -1 7 7辛6甘 7 6 -1 8 4辛2甘 4 2 ? 9 5辛1甘 5 1 ? 10 8辛6甘 8 6 ? 11 3辛4甘 3 4 ? 12 4辛7甘 4 7 ? 13 4辛4甘 4 4 ? カレーデータベースと Aliceの評価履歴

Slide 3

Slide 3 text

内容ベース推薦システム(content-based recommender system) ユーザが過去に好んだアイテムと類似するアイテムを推薦 ➢ ユーザの嗜好を表すユーザプロファイルとアイテムの特徴量とを比較し、ユ ーザプロファイルとの類似度が高いアイテムを推薦リストとして提示 近傍ベース方式 モデルベース方式 ユーザプロファイルをアイテムと同じ次元の特徴ベクトルで表現し、両者の特徴 ベクトル間の類似度を基に推薦アイテムを判定 ユーザプロファイルを機械学習により構築した学習モデルとして表現し、学習モ デルを基に推薦アイテムを判定

Slide 4

Slide 4 text

近傍ベース方式 (neighborhood-based method)

Slide 5

Slide 5 text

アイテムの特徴ベクトル アイテム i の特徴ベクトル 2次元特徴ベクトル 数値属性 アイテムID アイテム名 辛さ 甘さ 評価値 1 5辛3甘 5 3 +1

Slide 6

Slide 6 text

アイテムID アイテム名 辛さ 甘さ 評価値 1 5辛3甘 5 3 +1 2 6辛2甘 6 2 +1 3 4辛1甘 4 1 +1 4 8辛5甘 8 5 -1 5 2辛4甘 2 4 -1 6 3辛6甘 3 6 -1 7 7辛6甘 7 6 -1 8 4辛2甘 4 2 ? 9 5辛1甘 5 1 ? 10 8辛6甘 8 6 ? 11 3辛4甘 3 4 ? 12 4辛7甘 4 7 ? 13 4辛4甘 4 4 ? 特徴空間(feature space) 特徴空間 Aliceの評価履歴 10 12 6 5 11 13 4 7 1 2 8 3 9

Slide 7

Slide 7 text

ユーザプロファイル(user profile) ユーザのアイテムに対する嗜好を表したもの ➢ 近傍ベース方式においては、アイテムと同じ特徴空間における特徴ベクトル で表現 ユーザ u のユーザプロファイル

Slide 8

Slide 8 text

直接指定によるユーザプロファイルの作成 対象ユーザ自身で好みの程度を直接指定することでユーザプロファイルを作成 Aliceさん、好みの辛さ、甘さを選んでください。

Slide 9

Slide 9 text

平均によるユーザプロファイルの作成 対象ユーザがこれまでに好んできたアイテムの特徴ベクトルの平均をユーザプロ ファイルとする ユーザ u が「好き」と 評価したアイテム集合 1 2 3

Slide 10

Slide 10 text

ユーザプロファイルとの類似度に基づきアイテムを推薦 類似度に基づく推薦 コサイン類似度(cosine similarity) アイテムID アイテム名 辛さ 甘さ スコア 8 4辛2甘 4 2 0.997 9 5辛1甘 5 1 0.983 10 8辛6甘 8 6 0.966 11 3辛4甘 3 4 0.854 12 4辛7甘 4 7 0.783 13 4辛4甘 4 4 0.919 12 8

Slide 11

Slide 11 text

適合性フィードバック(relevance feedback) ユーザからのフィードバックを基にユーザプロファイルを更新 Rocchioの式(Rocchio’s formula) ユーザが好きな アイテムの重み↑ ユーザが嫌いな アイテムの重み↓ 元のユーザ プロファイル 10 8 9 更新後のユーザ プロファイル

Slide 12

Slide 12 text

10 12 6 5 11 13 4 7 1 2 8 3 9 k 近傍法(k-nearest neighbor algorithm) 対象アイテムに近傍する k 個の評価済みのアイテムの情報を基に対象アイ テムの評価値を予測 好き1 嫌い2 < 好き3 嫌い0 >

Slide 13

Slide 13 text

次元削減(dimensionality reduction) Aliceの評価履歴 アイテムID アイテム名 第1主成分 第2主成分 評価値 1 5辛3甘 0.699 0.264 +1 2 6辛2甘 -0.139 1.065 +1 3 4辛1甘 0.752 1.355 +1 4 8辛5甘 -2.564 0.202 -1 5 2辛4甘 1.969 -0.636 -1 6 3辛6甘 0.373 -1.211 -1 7 7辛6甘 -2.035 -0.496 -1 8 4辛2甘 1.219 0.656 ? 9 5辛1甘 -0.545 1.766 ? 10 8辛6甘 -1.788 -0.601 ? 11 3辛4甘 1.598 -0.535 ? 12 4辛7甘 -0.148 -1.603 ? 13 4辛4甘 0.611 -0.227 ? 次元削減後のAliceの評価履歴 アイテムID アイテム名 辛さ 甘さ スパイシー 評価値 1 5辛3甘 5 3 3 +1 2 6辛2甘 6 2 5 +1 3 4辛1甘 4 1 5 +1 4 8辛5甘 8 5 9 -1 5 2辛4甘 2 4 2 -1 6 3辛6甘 3 6 5 -1 7 7辛6甘 7 6 8 -1 8 4辛2甘 4 2 3 ? 9 5辛1甘 5 1 8 ? 10 8辛6甘 8 6 6 ? 11 3辛4甘 3 4 2 ? 12 4辛7甘 4 7 5 ? 13 4辛4甘 4 4 4 ?

Slide 14

Slide 14 text

モデルベース方式 (model-based method)

Slide 15

Slide 15 text

シナリオ Aliceはとあるクレープ屋を訪れま した。このクレープ屋では、表に 示す13種類のクレープを提供して います。クレープのトッピングと して、いちごやラズベリーなどが あります。Aliceは、これまでに 10種類のクレープを試し、各クレ ープについて「好き」(+1)/ 「嫌い」(−1)を評価してきま した。評価値が「?」となってい るクレープはAliceが未評価のクレ ープです。未評価のクレープのう ちAliceにはどのクレープを推薦す るのが良いでしょうか? クレープデータベースとAliceの評価履歴 アイテム ID アイテム名 トッピング 評価値 いちご ラズ ベリー バナナ チョコ ホイッ プ カス タード 1 いちごクレープ 1 0 0 0 1 0 +1 2 ラズベリークレープ 0 1 0 0 1 0 +1 3 ダブルベリークレープ 1 1 0 0 1 0 +1 4 いちごチョコクレープ 1 0 0 1 1 0 +1 5 いちごカスタード 1 0 0 0 0 1 +1 6 ラズベリーチョコカスタード 0 1 0 1 0 1 +1 7 バナナクレープ 0 0 1 0 1 0 -1 8 チョコバナナクレープ 0 0 1 1 1 0 -1 9 ラズベリーダブルクリーム 0 1 0 0 1 1 -1 10 バナナカスタード 0 0 1 0 0 1 -1 11 ダブルベリーチョコクレープ 1 1 0 1 1 0 ? 12 バナナダブルクリーム 0 0 1 0 1 1 ? 13 ラズベリーチョコバナナクレープ 0 1 1 1 1 0 ?

Slide 16

Slide 16 text

モデルベース方式の基本 「いちごが含まれている クレープは好き」 「バナナが含まれている クレープは嫌い」 ユーザプロファイル 学習 アイテム ID アイテム名 トッピング 評価値 いちご ラズ ベリー バナナ チョコ ホイッ プ カス タード 1 いちごクレープ 1 0 0 0 1 0 +1 2 ラズベリークレープ 0 1 0 0 1 0 +1 3 ダブルベリークレープ 1 1 0 0 1 0 +1 4 いちごチョコクレープ 1 0 0 1 1 0 +1 5 いちごカスタード 1 0 0 0 0 1 +1 6 ラズベリーチョコカスタード 0 1 0 1 0 1 +1 7 バナナクレープ 0 0 1 0 1 0 -1 8 チョコバナナクレープ 0 0 1 1 1 0 -1 9 ラズベリーダブルクリーム 0 1 0 0 1 1 -1 10 バナナカスタード 0 0 1 0 0 1 -1 11 ダブルベリーチョコクレープ 1 1 0 1 1 0 ? 12 バナナダブルクリーム 0 0 1 0 1 1 ? 13 ラズベリーチョコバナナクレープ 0 1 1 1 1 0 ? 予測

Slide 17

Slide 17 text

アイテムの特徴ベクトル アイテム ID アイテム名 トッピング 評価値 いちご ラズ ベリー バナナ チョコ ホイッ プ カス タード 1 いちごクレープ 1 0 0 0 1 0 +1 アイテム i の特徴ベクトル 6次元特徴ベクトル 二値属性 0 ⇒ なし 1 ⇒ あり いちごクレープ(i = 1) ➢ 集合表現 ➢ 特徴ベクトル

Slide 18

Slide 18 text

訓練データ(training data) i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1 0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 : : : : : : : : 10 0 0 1 0 0 1 -1 Aliceの訓練データ 事例のインデックス =アイテムID アイテム i の特徴ベクトル ユーザ u のアイテム i に対する評価値 事例 i 訓練データに含まれる事例数 ユーザ u の訓練データ

Slide 19

Slide 19 text

集合表現による訓練データ i Xi r1,i 1 {いちご, ホイップ} +1 2 {ラズベリー, ホイップ} +1 : : : 10 {バナナ, カスタード} -1 集合表現によるユーザ u の訓練データ アイテム i の集合表現 集合表現によるAliceの訓練データ

Slide 20

Slide 20 text

予測対象データ(target data) Aliceの予測対象データ 予測対象データに含まれる事例数 ユーザ u の予測対象データ i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 11 1 1 0 1 1 0 12 0 0 1 0 1 1 13 0 1 1 1 1 0 ユーザ u のアイテム i に 対する予測評価値

Slide 21

Slide 21 text

集合表現による予測対象データ 集合表現によるユーザ u 予測対象データ アイテム i の集合表現 集合表現によるAliceの予測対象データ i Xi 11 {いちご, ラズベリー, チョコ, ホイップ} 12 {バナナ, ホイップ, カスタード} 13 {ラズベリー, バナナ, チョコ, ホイップ}

Slide 22

Slide 22 text

目的変数と説明変数 i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1 0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 : : : : : : : : 10 0 0 1 0 0 1 -1 説明変数 (explanatory variable) 目的変数(objective variable)

Slide 23

Slide 23 text

学習(learning) 訓練データを基に嗜好に関する規則性を見つける過程 i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1 0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 : : : : : : : : 10 0 0 1 0 0 1 -1 訓練データ 「いちごが含まれているクレープは好き」 「バナナが含まれているクレープは嫌い」 学習モデル (learning model) = ユーザプロファイル 学習

Slide 24

Slide 24 text

予測(prediction) 学習モデル(ユーザプロファイル)を使って、新しいアイテムに対する評 価値を推定する過程 i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 11 1 1 0 1 1 0 12 0 0 1 0 1 1 13 0 1 1 1 1 0 +1 -1 -1 予測対象データ 「いちごが含まれているクレープは好き」 「バナナが含まれているクレープは嫌い」 学習モデル = ユーザプロファイル 予測

Slide 25

Slide 25 text

クラス分類(classification) 事例が属すクラスを予測する問題 2クラス分類(binary classification) 「好き」「嫌い」のように正/負クラスの2クラスに分類する問題 多クラス分類(multinomial classification) 「大好き」「好き」「嫌い」「大嫌い」のように多クラスに分類する問題 クラス分類器(classifier) クラス分類問題を解くための機械学習手法 ➢ ルールベース分類器、単純ベイズ分類器、決定木など

Slide 26

Slide 26 text

訓練データからアイテムに対する好き嫌いに関するルールを発見し、その ルールを使って、未知のアイテムの好き嫌いを予測 i Xi r1,i 1 {いちご, ホイップ} +1 2 {ラズベリー, ホイップ} +1 3 {いちご, ラズベリー, ホイップ} +1 4 {いちご, チョコ, ホイップ} +1 5 {いちご, カスタード} +1 6 {ラズベリー, チョコ, カスタード} +1 7 {バナナ, ホイップ} -1 8 {バナナ, チョコ, ホイップ} -1 9 {ラズベリー, ホイップ, カスタード} -1 10 {バナナ, カスタード} -1 ルールベース分類器(rule-based classifier) 学習モデル = ユーザプロファイル 学習 i Xi 11 {いちご, ラズベリー, チョコ, ホイップ} 12 {バナナ, ホイップ, カスタード} 13 {ラズベリー, バナナ, チョコ, ホイップ} 訓練データ 予測対象データ 予測 +1 -1 -1

Slide 27

Slide 27 text

i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1 0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 3 1 1 0 0 1 0 +1 4 1 0 0 1 1 0 +1 5 1 0 0 0 0 1 +1 6 0 1 0 1 0 1 +1 7 0 0 1 0 1 0 -1 8 0 0 1 1 1 0 -1 9 0 1 0 0 1 1 -1 10 0 0 1 0 0 1 -1 予測対象データ 単純ベイズ分類器(naive Bayes classifier) i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 11 1 1 0 1 1 0 12 0 0 1 0 1 1 13 0 1 1 1 1 0 訓練データ 訓練データからアイテムに対する好き嫌いの確率を計算し、その確率を使 って、未知のアイテムの好き嫌いを予測 学習モデル = ユーザプロファイル 学習 +1 -1 -1 予測

Slide 28

Slide 28 text

決定木(decision tree) バナナ いちご ホイップ カスタード 嫌い 好き 嫌い 好き 好き レベル0 レベル1 レベル2 レベル3 レベル4 根ノード あり あり あり あり なし なし なし なし エッジ 葉ノード 内部ノード

Slide 29

Slide 29 text

i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1 0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 3 1 1 0 0 1 0 +1 4 1 0 0 1 1 0 +1 5 1 0 0 0 0 1 +1 6 0 1 0 1 0 1 +1 7 0 0 1 0 1 0 -1 8 0 0 1 1 1 0 -1 9 0 1 0 0 1 1 -1 10 0 0 1 0 0 1 -1 決定木による学習と予測 訓練データ 訓練データから決定木を学習し、その決定木を使って、未知のアイテムの 好き嫌いを予測 学習モデル = ユーザプロファイル 学習 予測対象データ i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 11 1 1 0 1 1 0 12 0 0 1 0 1 1 13 0 1 1 1 1 0 +1 -1 -1 予測