: confidence(weight)
: each items loss
: regularization(e.g., square, logistic, hinge)
レコメンドを2値分類タスクに落とし込むパターン。と計算量が膨大になる
アルゴリズム例: iALS, SLIM, iCD
検索においては、1/0の判定よりも相対的な順序が重要。特定のcontextにおけるitemペアを比較する。
となるため、少なくともpointwise training以上の計算量となる
確率的な観点でいうと、Pointwise trainingやpairwise trainingは条件付き確率として落とし込むことができる。
例)
条件付き多項分布のイベントに対して、softmaxを利用して以下の式で表現できる。(によって実数値に変換されている)
負の対数尤度として以下の損失関数を得られる
contextごとにpartition functionを計算しておけば、pointwiseの計算量であると同等になる。(pair計算が不要になるため。)
はpositive, それ以外はnegativeとみなす。positiveは有用であるが、negativeによる損失への影響は小さくなるように重み付けされる。
: サンプリング分布
: 重み
顧客は無作為に商品を選別することはなく、検討する可能性が高いアイテムをサンプリングすることで有用な学習を実現できる。人気順のサンプリングは一般的なアプローチとなりうる。
更新処理においては、1回の計算をそれぞれ繰り返すのではなくbatchで行うことが多い。これによるメリットとしては、(c1,i1),(c2,i2)がpositive sampleであった場合に、対応する(c1, i2),(c1, i3)をnegative sampleと扱うように。これによりwall timeを軽減することができる。
固定の重み と一様サンプリング確率を利用する。
この損失はAUCを最適化すると同様に、ランダムな関連しているitemが無関係なitemよりも正しくランク付けされる確率を最適化している。いわゆるBPR。
このアプローチには2つの課題が存在する。
LambdaRankが有名。ただしitem数が多いと計算コストが非常に高くなる。
レコメンドに適用させたLambdaRankは提案されている。
LambdaFM: Learning Optimal Ranking with Factorization Machines Using Lambda Surrogates https://dl.acm.org/doi/abs/10.1145/2983323.2983758
WARP(Weighted Approximate-Rank Pairwise)
以前解説した記事
特集コンテンツの自動生成とレコメンドサービスの取り組み https://making.lyst.com/lightfm/docs/examples/warp_loss.html
詳細は以下を読む必要がある。
ざっくり説明すると、サンプリング分布を学習していって、 モデルがランク上位と判定しているものに対してサンプリングしていくもの。(あとで読む)
Improving pairwise learning for item recommendation from implicit feedback https://dl.acm.org/doi/10.1145/2556195.2556248
少ないサンプルにおいてpartition functionを計算せざるを得ず、biasが乗りやすい。
そのため、mを重要なハイパーパラメータとなりうる。
サンプリング分布をカーネルと写像関数を導入することによって表現して、contextと独立したjに対するサンプリング確率を事前計算でき、計算量を削減できる。
まずM>m個の項目の大きな集合をサンプリングし、有力であるm個の候補だけを採用する。通常は全体の1~10%がサンプリングされる。次に、全アイテムがスコアリングされ、m < M個の最もスコアの高いアイテムの小さな集合が返される。
内積モデルにおける効率的な学習アルゴリズムを紹介
第2項を計算するときに効率的に計算することが可能
つまり、context-itemの組み合わせ集合はグラム行列の内積として置き換えることが可能になる
以下、ICDの論文と類似した内容だったので割愛(ここではpointwise, pairwise用に変形している)