2019/09/19 Item Recommendation by Combining Relative and Absolute Feedback Data https://gyazo.com/b338e28a44213a1acaa893b04b9c3b97
(この論文、オープンアクセスな論文ではないです)
著者
イタリアの大学の人 & 楽天技術研究所の人
Abstract
絶対的な評価値と相対的な評価値の両方が、使える時のレコメンド方法( というよりランク学習?) の提案。
絶対的な評価値の損失関数と相対的な評価値の損失関数を2つ設定してあげて、最小化する。
Keywords
Information system
Absolute Feedback
Pairwise Preference
Raiting
Recomendation system
はじめに
絶対的な評価とは、「この映画の評価値は 4点」など
相対的な評価とは、「AよりBの方が良い」など
絶対的な評価は、欠点もある。
たとえば、ほとんどのユーザーが評価値を5としたとき。ユーザーの本当の好みがわからない
相対的な評価は、既存の研究でもレコメンドのために使われてきた。
(これはクリックしたものはクリックされなかったものよりも、好まれている。といった感じの相対的な評価)
今回の焦点は、両方の情報が使えるケース。
既存の研究は、絶対的な評価の情報を、相対的な情報に変換して、1つモデルにまとめてしまっていた。
しかし、この論文では、絶対的な評価と相対的な評価は違うタイプの情報として扱うべきである。と主張している。
例えば、
・評価値やクリック
・相互比較が選ばれた
は違うタイプの嗜好を表している。
まず、
相対的な情報が使える時の、CPR
絶対的な情報が使える時の、PUSH
そして本命である両方使える時の JPRという順番で提案している。
本文の説明
定義
ユーザー $ {u}
アイテム $ {i}
( まぎらわしい) ユーザーuのiとjに対する相対的な評価$ {r}_{uij}。0 or 1
アイテムiがアイテムjより好まれるなら 1をとる。
( まぎらわしい) ユーザーuのiに対する絶対的な評価 $ {r}_{ui}
関係のあるアイテム集合$ I_u^+に含まれるアイテム$ i
関係のないアイテム集合$ I_u^- が含まれるアイテム$ j
アイテム集合の大きさ$ n_{u}
パラメタ
$ \theta = \left(\begin{array}{c}b_{i}\\ p_u\\ q_{i}\end{array}\right)
相対的なランキング CPR
相対的な値の予測は以下のモデルを仮定。
$ \widehat{r}_{uij} = b_{i}-b_{j}+p_u^Tq_{i}-p_u^Tq_{j}
log lossとして定義してあげる
$ y(\widehat{r}_{uij}) = -{r}_{uij} ln(\sigma(\widehat{r}_{uij})) - (1- {r}_{uij})ln(1-\sigma(\widehat{r}_{uij}))
ここで $ \sigma(\widehat{r}_{uij}) = \frac{1}{1+ e^{-\widehat{r}_{uij}}}
最小化の式は
$ \mathcal{L}_{pair}(\theta) = \displaystyle \min_\theta \sum_{{r}_{uij} \in P}{y(\widehat{r}_{uij}) + R(\theta)}
Rは正則化項目。
更新式略。
絶対的なランキング PUSH
関係のあるアイテム集合と関係のないアイテム集合を定義してあげる。
例えば、転職サイトにおいて
ユーザーが求人の申し込みしたアイテムを、関係のあるもの
ユーザーが求人を表示させなくしたアイテムを、関係ないもの
として定義する。( データセット毎に決めるっぽい)
絶対的な評価の予測値は下記で返す
$ \widehat{{r}}_{ui} = b_{i}+p_u^Tq_{i}
lossは
$ \mathcal{H}_{u}(i) = \sum_{j \in I_u^-}{log (1 + exp( - (\widehat{{r}}_{ui} - \widehat{{r}}_{uj}})))
$ \widehat{{r}}_{ui} < \widehat{{r}}_{uj}のときは、
関係のないアイテム(j) なのに、関係のあるアイテム(i)より、予測値が高い状況において、大きい値のlossとしてとして計算される。逆の場合は、lossめっちゃ小さくなる。
こいつの損失関数は
$ \mathcal{L}_{push}(\theta) = \displaystyle \min_\theta \sum_{u \in U,i \in I_u^+}{\frac{1}{n_{u}}(\mathcal{H}_{u}(i))^{2} + R(\theta)}
更新式略
Joint Pairewise Comparison
本命である絶対的な評価値と相対的な評価値を両方使う手法。
上記で2つの定義した損失関数を、SGDで最適化していく。( 片方最適化して、次にもう片方を最適化、の繰り返し)
$ \mathcal{L}_{JPC}(\theta) = \displaystyle \min_\theta \sum_{{r}_{uij} \in P}{y(\widehat{r}_{uij})} + \sum_{u \in U,i \in I_u^+}{\frac{1}{n_{u}}(\mathcal{H}_{u}(i))^{2} + R(\theta)}
出力は、
$ \widehat{{r}}_{ui} = b_{i}+p_u^Tq_{i}
を使ってスコア順に推薦リストを作成する。
実験
データセット
Xing datasets
applyを関係ある、deleteを関係ないとして定義。
moview rens
絶対的な評価値をそのまま使う感じ。
比較対象
相対評価でよく使われる BPR系のモデル
同じ感じのモデル NN-GK
JPRの部品たち * 2
JPR
でRecall, NDCG, MRRで比較。
https://gyazo.com/7464e3281daaaaf50b5c80d57c565f1f
所感
Deep系ですでにやられていそうではあるが、シンプルなモデルに落とし込んでいる。
使える場所は限られそうだけども、アプローチとしては面白かった。