CCCMKホールディングス TECH LABの Tech Blog

TECH LABのエンジニアが技術情報を発信しています

ブログタイトル

RecSys2024 論文紹介①

こんにちは。データサイエンスグループの木下です。 前回の記事の続きとして、今回から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を導入できた。また、性能を大幅に向上させた。