Collaborative Rank With 17 Parameters no Memo

Collaborative Rank With 17 Parameters の Memo
レコメンデーションをランキング学習(Learning-to-Rank)として解く(たぶん)

Neighborhood-Based Approaches

協調フィルタリングとして説明されている有名な手法

  • ユーザベース,アイテムベースの手法がある
  • ターゲットのユーザu_nに対して,ある類似度を用いて K 近傍のユーザを取得し,u_nが評価していないアイテムv_mの評価を推定する
    • 類似度にはコサイン類似度やピアソンの相関係数などが使われる

手法の問題点

  1. ユーザのバイアス
    • ユーザには高い評価を付けやすいユーザや,逆に低い評価を付けやすいユーザが存在する
      • これに対しては,評価を正規化するなどして対応する
  2. 評価行列が疎行列
    • 評価行列R が非常に疎な行列となり,K 近傍のユーザを見つけるのが難しい

Neighborhood-Based Approaches なランキング手法について

  • Liu & Yang らが近傍ユーザを用いて,pairwise preference matrix Y を使う手法を提案している
  • 欠点は,NDCGなどの評価手法に最適化されていない

Model-Based Approaches

様々な手法があるが,論文中では Probabilistic Matrix Factorization (PMF) を特に中心に説明している

PMF は,R(u_n, v_m) = \phi(u_n) \cdot \phi(v_m) となる \phi(u_n), \phi(v_m) を求める手法

手法の欠点

  • 多すぎるパラメータと最適化
  • 新規ユーザ・アイテム追加時に,再訓練が必要

Model-Based Approaches なランキング手法について

CofiRank, PMF-based ranking model がある

  • CofiRank は,評価値との2乗誤差の代わりにランキングとの損失を使う
  • PMFベースな手法は,PMF で次元削減した特徴を抽出し,これを用いてランキングモデルを学習する
  • 欠点は,NDCGなどの評価手法に最適化されていない

Learning-to-Rank

論文では,概要っぽいことしか書いていない...

こちらが参考になるでしょうか...

論文では "H. Li. Learning to Rank for Information Retrieval and Natural Language Processing. Morgan & Claypool, 2011." を挙げていた

提案手法

ここからが筆者らの手法

  1. 特徴抽出
  2. スコア関数の学習

の2つからなる

特徴抽出

ここでは,ランキング学習のための特徴を抽出する

  • (u_n, i_m) に関する特徴抽出を行う前に,u_n, i_mに注目した user-item 行列のサブセット \bf{K}(u_n, i_m) を考える
  • (u_3,v_4) に注目したとき,v_4 を評価している u_3K 近傍のユーザを抽出する
    • これは,Neighborhood-Based Approaches と同じ

f:id:laughing:20130120031211p:plain

  • この\bf{K}(u_3, v_4) に対して,

f:id:laughing:20130120032455p:plain
を適用して,アイテム v_4 に関する優先度行列を計算する
f:id:laughing:20130120032615p:plain

    • g は,pairwise preference function で,アイテムの評価値を優先度に変換する
    • I[x] は x が成り立つとき1,それ以外は0を返す関数
  • WIN_{nm}(k) は,ユーザkのアイテムmに対する positive な優先度
    • 他のアイテムm'よりmのほうが好みである
  • LOSS_{nm}(k) は,ユーザkのアイテムmに対する negative な優先度
    • 他のアイテムm'のほうが,mより好みである
  • TIE_{nm}(k) は,ユーザkのアイテムmの評価と同じ評価がついたアイテムm'の数

以上の手順で得た優先度行列に対して,次の式を用いて,(u_n, i_m) の特徴を作る
f:id:laughing:20130120034054p:plain
f:id:laughing:20130120034056p:plain

スコア関数の学習

以下の式で,重み\bf{W} を学習
f:id:laughing:20130120035508p:plain

  • b_0 は,評価者がいなかったときに,基本となるスコア
  • b は...?

学習には LambdaRank を使う

結果

提案手法の性能がよい
ただ,MovieLens-1のデータに対してはちょっと微妙かも...

あとは,transfer learning の結果も載っていて,MovieLens-1 以外は違うデータセットで学習しても,
転移学習しない結果と比較しても,NDCG が同じくらいの値になっている
転移学習の結果の NDCG と state-of-the-art な手法の結果の NDCG 比較すると,転移学習の結果のほうが良いケースもある...

なぜ,転移学習が良い性能だったかと言うと,学習したW の WIN に当たる部分には possitive な重みが,また,LOSS に当たる部分には negative な重みが集中したためとのこと
f:id:laughing:20130120042043p:plain

感想

近傍ユーザの統計情報ってすごい

情報推薦システム入門 -理論と実践-

情報推薦システム入門 -理論と実践-