Collaborative Topic Regression with Social Matrix Factorization for Recommendation Systems[Purushotham+, ICML'12]のメモ

http://icml.cc/2012/papers/407.pdf
Collaborative Topic Regression*1 + Social Matrix Factorization*2で,新たな協調フィルタリングの方法を提案する論文.モチベーションは以下の通り.

  • 多くの強調フィルタリングモデルは,アイテムの情報を使えていない
    • レーティングデータの不足や偏りが問題になる(特に新しいユーザに対する)
    • Collaborative Topic Regressionはアイテム情報をモデルに入れて,上記問題を改善してる
  • ソーシャルネットワークベースの協調フィルタリングもあるが,アイテム情報とソーシャルネットワークの両方を使った研究はほぼ無い

モデルは階層ベイズで表現.Collaborative Topic Regressionは以下のようなモデル.

  • アイテムの情報はLDA*3と同じように生成される
  • ユーザiのアイテムjに対するレーティングは Normal(u_i^T v_j, c_{ij}^{-1})で決定
    • u_iはユーザiのK次元潜在ベクトルで,トピックに対するユーザの好みを表す
    • v_jはアイテムjのK次元潜在ベクトル,アイテムのトピック選好度を表す
    • アイテムのトピックとユーザの好みが合致すれば( u_i,v_j内積が大きければ),高評価になる.

このモデルに対して,Social Matrix Factorizationの考えを導入する.すなわち,ユーザiとkの関係がg(u_i^T s_k)を平均とするガウシアンから生成されるとする.ここでg(・)はシグモイド関数s_kはユーザkのソーシャルファクター特徴ベクトル.

学習はCollaborative Topic Regression同様に,EMライクな方法.

実験では,約99%欠損したユーザ-アイテムのレーティング行列(二値行列)を使う.評価には独自に定義したrecall@Mを使う.ここで,recall@M=(トップM個のユーザが好きなアイテムの数)/(ユーザの好きなアイテムのトータル数)で計算できる*4.結果の概要は以下の通り.

  • 提案モデルはCollaborative Topic Regressionより3%ほどRecallが良い
  • LDAベースなので計算コストは高い.トピック数K=50のとき14分くらい,K=200のとき10時間くらい学習に時間がかかる.
    • ユーザ数: 1867, アイテム数: 69226, タグ(rating済み): 53388, ユーザ間リンク数: 15328の場合.

論文によれば,主な貢献は以下の3点.

  • 推薦システムの性能向上にソーシャルネットワークが使えることを示した
  • ソーシャルネットワークと情報の内容が両方使える場合,予測精度を向上させる有効なトレードオフテクニックを提供
    • メモでは触れなかったけど,ハイパーパラメータの調整によってそういうことが出来るらしい
  • 推薦システムにおける新しい問題(ソーシャルな情報のリーク)の提起
    • ネットワークは時間ごと変化するので,それを考慮するとどうなるかという問題提起

*1:Wang and Blei, "Collaborative topic modeling for recommending scientific articles," KDD'11

*2:Ma et. al., "Sorec: social recommendation using probabilistic matrix factorization," CIKM'08

*3:Blei et. al., "Latent Dirichlet Allocation," JMLR'03

*4:この評価式は正直良く分からない