【論文紹介】ProtoMF: Prototype-based Matrix Factorization for Effective and Explainable Recommendations

文献情報

タイトル:ProtoMF: Prototype-based Matrix Factorization for Effective and Explainable Recommendations
著者:Melchiorre, Alessandro B. and Rekabsaz, Navid and Ganhör, Christian  and Schedl, Markus
会議:RecSys 2022

概要

ユーザに対するアイテムの推薦スコアを計算するときに、ユーザとアイテムをそれぞれベクトルで表現するのが一般的である。この研究では、ある推薦対象のユーザのベクトルを求めるときに、プロトタイプとなる複数の仮想的なユーザを用意し、各プロトタイプとの類似度を要素とするベクトルを作って推薦対象のユーザを表現する点に特徴がある。アイテムも同様に、各プロトタイプのアイテムとの類似度により表現する。こうしたプロトタイプベースの推薦手法ProtoMFを提案している。プロトタイプを用いるアプローチにより、推薦の説明性も高めることが可能になる。ProtoMFの実装はGitHubで公開されている。

従来研究との差異

実在する代表ユーザとの類似度を元に推薦対象のユーザのベクトルを求める推薦手法(RBMF)や、ユーザとアイテムに共通するアンカーベクトルを作る推薦手法(ACF)が提案されてきたが、本研究では、ユーザとアイテムそれぞれに対して、実在しないプロトタイプとなるユーザとアイテムを作る点が異なり、これにより推薦精度が上がることを実験で示している。

手法

ユーザのプロトタイプだけを考慮する手法(U-ProtoMF)、アイテムのプロトタイプだけを考慮する手法(I-ProtoMF)、両方のプロトタイプを考慮する手法(UI-ProtoMF)が提案されている。以下ではまずU-ProtoMFを説明する。

ユーザのプロトタイプの数をLu個とし、各プロトタイプはd次元のベクトルで表される(Luはハイパーパラメータで、ベクトルの値は学習を通して求められる)。実在する各ユーザもベクトルで表現されている。このもとで、ユーザuのベクトルを、各プロトタイプとの類似度を要素とするLu次元の類似度ベクトルで新たに表現する(類似度はコサイン類似度ベースで計算)。uに対するアイテムtの推薦スコアは、uの類似度ベクトルとtのベクトルの内積で計算する。
プロトタイプはユーザのクラスタの代表点のような存在なので、あるユーザが多くのプロトタイプと類似しているのはクラスタが上手く作れていないということであり好ましくない。そこで、各ユーザはいずれか一つのプロトタイプとの類似度が極端に高くなるように、また各プロトタイプも類似度が極端に高いユーザが一人はいるようにするという制約を損失関数に入れる工夫もしている。

I-ProtoMFでも、各アイテムをLt個のプロトタイプとの類似度ベクトルで表現し、同様の制約を入れた損失関数を設計。

UI-ProtoMFでは、ユーザuに対するアイテムtの推薦スコアを、uの類似度ベクトルとtのベクトルの内積と、uのベクトルとtの類似度ベクトルの内積の和で求める。損失関数は、U-ProtoMFとI-ProtoMFを合わせたものを使用。

実験

MovieLens、Last.fm、Amazonのゲームカテゴリの3種類のデータセットを使用。NDCGとHRで評価し、既存手法のRBMFやACF、提案手法の一部であるU-ProtoMFやI-ProtoMFよりも、メインの提案手法であるUI-ProtoMFがすべてのデータセットで最も高い精度を示した。

MovieLensでt-SNEを使ってユーザとプロトタイプのベクトルを2次元で表すと下の図のようになり、プロトタイプ(赤点)がユーザ(青点)の分布を反映した代表点として適度に散らばっているのが分かる(図は論文より引用)。

UI-ProtoMFは推薦理由の提示にも有用で、以下の図は映画「Pretty Woman」があるユーザuに推薦された理由を表している(図は論文より引用)。U-ProtoMFの観点では、uは37番目、40番目、53番目のプロトタイプとの類似度が高く、「Pretty Woman」のベクトルは37次元目、40次元目、53次元目の値が大きいので、推薦スコアが高くなっていることが分かる。I-ProtoMFの観点では、「Pretty Woman」は2番目、3番目、13番目のプロトタイプとの類似度が高く、uは2次元目、3次元目、13次元目の値が大きいので、推薦スコアが高くなっている。


この記事が気に入ったらサポートをしてみませんか?