レコメンド技術調査
レコメンドの方法には、2種類ある。
コンテンツに基づくフィルタリング
例)とある検索結果をユーザが指定すると、それに近い検索結果ページをレコメンドしてくれる。
基本の考え方としては、
コンテンツ側:コンテンツの特徴量を抽出して、モデル化する。
ユーザー側:コンテンツの特徴量に関する嗜好情報を抽出して、ユーザプロファイルを作成する。
このコンテンツモデルと、ユーザプロファイルを比較して、レコメンドが行われる。
コンテンツに基づくフィルタリングは三種類の方式に分けられる。
ルールベース方式
人手で、フィルタリングのルールを設計する方式。
メモリベース方式
コンテンツモデルとユーザプロファイルの両方をベクトル化して、ベクトル空間上での距離で、レコメンドするかを判断する。
モデルベース方式
過去の行動履歴から、興味傾向をモデル化し、ユーザプロファイルする。
学習には時間がかかるが、レコメンド時は高速な処理が可能
協調フィルタリング
アイテムの内容を見ず、ユーザがアイテムにどのような評価値をつけたかの情報をみる。対象ユーザと好みの近いユーザを特定して、その近いユーザの好みのものをレコメンドする。
ユーザベース方式(メモリベース)
ユーザ集合とアイテム集合を用意して、それぞれの予測評価値を出して、対象ユーザと全てのユーザ間の類似度を計算する。その類似度の高いユーザが評価をして、かつ対象ユーザが評価をしていないアイテムについて、嗜好の予測値を計算し、その順番でレコメンドしていく。
アイテムベース方式(メモリベース)
二つのアイテムに対して、同じユーザが近い評価値をつけている時、アイテムの類似度は高くなる。あとは、上と同じように、嗜好の予測値を計算し、その順番でレコメンドしていく。
モデルベース方式
ユーザやアイテム間の関係をあらかじめ一般化して、モデル化する。
代表的なのは、クラスタリング手法、ベイジアンネットやあ、EMアルゴリズムなどの確率モデル、マルコフモデルなどの時系列モデルを用いる手法。
クラスタリングをもちいる手法では、ある特徴を有するユーザ集合(あるいはアイテム集合)を事前にクラスタ化して、その特徴を表す代表的なベクトルを生成しておく。
推薦時は、その数個のユーザ集合グループとの類似度を計算するだけで良い。
アルゴリズムには、K-means法や、凝集法などが用いられる。
指標
正確さの指標
precision(精度) : 推薦リストの中に、好きなアイテムがどれだけ含まれるか。
recall(再現率) : 好きなアイテムの中に、推薦リストのものがどれだけ含まれるか。
正確さ以外の指標
coverage:どれだけのアイテムが予測の対象か(誰も評価していないアイテムは強調フィルタリングだと、推薦できない)
novelty(新規性):初めてユーザが見る好みのアイテムがどれだけあるか
serendipity(意外性):ユーザ本人だけでは、予測発見が難しかった意外性のあるアイテムをどれだけ推薦できたか
diversity(多様性):推薦アイテムの類似度がどれだけ低いか
discovery ration(発見性):推薦リストに知らないアイテムがどれだけあるか?
課題
内容に基づくフィルタリング
メリット
新しいアイテムも推薦対象に含まれる
デメリット
メタデータがないコンテンツには高い推薦を見込めない
意外性の高い推薦を行うことが難しい
協調フィルタリング
メリット
コンテンツを解析する必要がない
デメリット
sparsity問題:扱うアイテム数に対して、評価をつけたアイテム数が少なすぎると、推薦の質が低くとどまる
first-rater問題:新しいアイテムは誰か一人でも評価しないと、推薦候補に入らない。
筆者の構築したシステム例
C-baseMR
モデルベースのコンテンツに基づくフィルタリングシステム
ユーザプロファイルをを評価値データから構築後、ユーザが自由にユーザプロファイルを編集することができるシステム。
これによって、ユーザに自分の嗜好の理解と、音楽特徴の理解が支援できた。
参考
嗜好抽出と情報推薦技術 土方嘉徳 2006
http://soc-research.org/ja/wp-content/uploads/2014/08/IFSurvey4IPSJ.pdf