こんにちは。データサイエンスグループの木下です。 前回の記事の続きとして、今回からRecSys2024で発表された論文を紹介していきます。
前回の記事はこちら↓ techblog.cccmkhd.co.jp
今回の記事では学生部門のベストペーパーに選ばれたUnlocking the Hidden Treasures:Enhancing Recommendations with Unlabeled Dataという論文を紹介いたします。
概要
協調フィルタリングにおいて、大量の未評価のデータを活用する方法は確立されていなかった。一般的にはネガティブサンプリングしていたが、それだと使われなかったデータを見逃してしまうことになる。そのために、正例、負例のほかに、中立というフラグを定義したPNNという方法で学習させる方法を提案した。
【キーワード】
implicit feedback / BPR / PNN /OPAUC
現状課題
implicit feedbackの未ラベルデータは主に負のサンプルとして扱っていた。また、ネガティブサンプリングを行っており、多くのデータは使用されていなかった。 そこで、この論文ではこれらの問題を解決することができるPNN(Positive-Neutral-Negative)という手法を提案した。
手法
1. 半教師あり学習
まずはBPR損失を計算し、徐々にPNN損失に移行していく
2. PNN損失関数
2-1. 分類
未ラベルデータを中立(Neutral)と負例(Negative)に分類する。
負のラベルは、正のラベルと同じ数にする
2-2. ランキング
3つのクラス(正、中立、負)の間のランキング関係を学習する。計算時間を短縮するために下記に記す2段階セントロイドランキング法で近似計算を行う。
Step1
正例アイテムの選好度 >中立アイテムの選好度 > 負例アイテムの選好度 となるようトリプルワイズで学習するために、まず、下記のようにペアワイズに分解する これがPNN損失である。
Step2
クラス間が被らないように、下記の図のように強制的にクランプを設定。中立クラスを埋め込み空間で管理。
3. ミニバッチ学習
計算負荷の軽減と精度向上のために、ミニバッチごとに学習を行う これにより、一般的な協調フィルタリングのモデルにPNN損失を適応させることができる。
PNNとOPAUCの関係
OPAUC(One-way partial AUC)とは、FPRの一部分の範囲で算出されたAUCのことである。(下図参照)
スコア上位のみ注目するAUCであり、推薦システムにおけるTop-K推薦と相性が良い指標である。
PNNは下記の式を最適化するように学習している
PNN損失はセットレベルのランキングを学習するので、OPAUC自体を最適化することになる。 つまり、レコメンド性能を向上させることになる。
実験
代表的な4つの協調フィルタリング系モデル(BPR-MF / LightGCN / NGCF / SGL)にPNNを導入した場合、精度が上がるか検証した。 比較対象データセットは、MovieLens-1M / Gowalla / Yelp / Foursquare の4つを用いた。
下記の表が実験結果である。 見てわかるように、データセットやモデルに限らず、PNNを導入するとレコメンド精度が上昇することが分かった。
結論
多くの未ラベルデータを活用するPNN学習を提案した。
PNNとOPAUCの関係性を示した。
多様な協調フィルタリングモデルにPNNを導入できた。また、性能を大幅に向上させた。