Item Recommendation from Implicit Feedback

評価指標の選び方

  • 検索
    • OK: Precision, Recall, AP(average precision), NDCG
    • NG: AUC
      • ユーザーは上位のitemしか探索しないため
  • 検索の結果を直接表示させるケース
    • OK: NDCG, AP
    • NG: Precision, Recall
      • 1位と2位の違いを明確につけるため
  • 検索後にリランクをするケース
    • OK: Recall
    • NG: NDCG, AP
      • 上位N個までに候補が入っていれば良いため

Loss Function

Pointwise Loss

my image

α\alpha: confidence(weight)

ll: each items loss

λ\lambda: regularization(e.g., square, logistic, hinge)

レコメンドを2値分類タスクに落とし込むパターン。O(CI)O(|C||I|)と計算量が膨大になる

アルゴリズム例: iALS, SLIM, iCD

Pairwise Loss

my image

検索においては、1/0の判定よりも相対的な順序が重要。特定のcontextにおけるitemペアを比較する。

O(SI)O(CI)O(|S||I|)\supseteq O(|C||I|) となるため、少なくともpointwise training以上の計算量となる

Softmax Loss

確率的な観点でいうと、Pointwise trainingやpairwise trainingは条件付き確率として落とし込むことができる。

例)

  • p(i=true/c)=σ(y^(ic))p(i=true/c)=\sigma(\hat{y}(i|c))
  • p(i>jc)=p(y^(ic)>y^(jc))=σ(y^(ic)y^(jc))p(i>j|c)=p(\hat{y}(i|c) >\hat{y}(j|c)) = \sigma(\hat{y}(i|c) - \hat{y}(j|c))

条件付き多項分布のイベントp(ic)p(i|c)に対して、softmaxを利用して以下の式で表現できる。(y^\hat{y}によって実数値に変換されている)

my image
  • softmaxの分子はpartition functionと呼ばれている
  • ν\nu: temperature parameter. この値が小さい場合は均等分布に、大きい値の場合は大きい値に集中する

負の対数尤度として以下の損失関数を得られる

my image

contextごとにpartition functionを計算しておけば、pointwiseの計算量であるO(CI)O(|C||I|)と同等になる。(pair計算が不要になるため。)

学習アルゴリズム(サンプリング)

Pointwise Loss

my image

(c,s)S(c,s){\in}Sはpositive, それ以外はnegativeとみなす。positiveは有用であるが、negativeによる損失への影響は小さくなるように重み付けされる。

qq: サンプリング分布

a~\tilde{a}: 重み

顧客は無作為に商品を選別することはなく、検討する可能性が高いアイテムをサンプリングすることで有用な学習を実現できる。人気順のサンプリングは一般的なアプローチとなりうる。

更新処理においては、1回の計算をそれぞれ繰り返すのではなくbatchで行うことが多い。これによるメリットとしては、(c1,i1),(c2,i2)がpositive sampleであった場合に、対応する(c1, i2),(c1, i3)をnegative sampleと扱うように。これによりwall timeを軽減することができる。

Pairwise Loss

my image
Uniform Sampling without Weight

固定の重み a~(c,i,j)=1\tilde{a}(c,i,j)=1 と一様サンプリング確率q(jc)q(j|c)を利用する。

この損失はAUCを最適化すると同様に、ランダムな関連しているitemが無関係なitemよりも正しくランク付けされる確率を最適化している。いわゆるBPR。

このアプローチには2つの課題が存在する。

  • 一様サンプリングではモデルによって容易に識別されうる無関係なitemをサンプリングしてしまうため、学習が遅くなる。
  • 推薦においては上位itemに注目したメトリクスが実用的であり、AUCは不適切
Uniform Sampling with Weights

LambdaRankが有名。ただしitem数が多いと計算コストが非常に高くなる。

レコメンドに適用させたLambdaRankは提案されている。

LambdaFM: Learning Optimal Ranking with Factorization Machines Using Lambda Surrogates https://dl.acm.org/doi/abs/10.1145/2983323.2983758
Adaptive Sampling with Weights

WARP(Weighted Approximate-Rank Pairwise)

以前解説した記事

特集コンテンツの自動生成とレコメンドサービスの取り組み https://making.lyst.com/lightfm/docs/examples/warp_loss.html
Adaptive Sampling without Weights

詳細は以下を読む必要がある。

ざっくり説明すると、サンプリング分布を学習していって、 モデルがランク上位と判定しているものに対してサンプリングしていくもの。(あとで読む)

Improving pairwise learning for item recommendation from implicit feedback https://dl.acm.org/doi/10.1145/2556195.2556248

Softmax

my image

少ないサンプルにおいてpartition functionを計算せざるを得ず、biasが乗りやすい。

そのため、mを重要なハイパーパラメータとなりうる。

Kernel based Sampling

サンプリング分布をカーネルと写像関数を導入することによって表現して、contextと独立したjに対するサンプリング確率を事前計算でき、計算量を削減できる。

my image
Two-pass Sampler

まずM>m個の項目の大きな集合をサンプリングし、有力であるm個の候補だけを採用する。通常は全体の1~10%がサンプリングされる。次に、全アイテムがスコアリングされ、m < M個の最もスコアの高いアイテムの小さな集合が返される。

Efficient Learning Algorithms For Special Cases

内積モデルにおける効率的な学習アルゴリズムを紹介

Pointwise Square Loss

my image

詳細は、https://www.pigooosuke.com/blog/a-generic-coordinate-descent-framework-for-learning-from-implicit-feedback

Gramian Trick

第2項を計算するときに効率的に計算することが可能

my image

つまり、context-itemの組み合わせ集合はグラム行列の内積として置き換えることが可能になる

以下、ICDの論文と類似した内容だったので割愛(ここではpointwise, pairwise用に変形している)

https://www.pigooosuke.com/blog/a-generic-coordinate-descent-framework-for-learning-from-implicit-feedback