論文読み会
morinota
2023/06/18
以下は、おそらく一般的(?)な推薦システムにおける教師有りMLモデル適用までの流れです.
自分で作った画像. データ収集から ABテスト等によるオンライン評価まで.推薦システム実践入門を参考に…!
今回はオフライン評価のbiasを取り除く話をしているが、推薦モデルの場合はオフライン評価 とオンライン評価 が必ずしも一致しない(乖離がある)問題もあるので少し紹介. 各用語の定義の概要は以下.(引用元:推薦システム実践入門)
どうしてもオフライン評価とオンライン評価における“精度”の意味合いが異なってしまうので乖離が発生し得る. (ex. 誰もが買う様な無難なアイテムを推薦. ユーザにとって既知の退屈なアイテムを推薦.)
なので、オフライン評価時に予測精度だけでなくbeyond-accuracyなmetricsを評価する方法も多く提案されている. (ex. 推薦結果の多様性, 新規性, etc.)
映画の例で、MNARデータがオフライン評価に与える影響について考えてみる. \(u \in {1,...,U}\)をユーザidx、\(i \in {1,...,I}\) を映画idxとする.
今回の例では、推薦モデルによって予測された評価行列 \(\hat{Y}\)が,真の評価行列\(Y\)をどれだけ予測できるかを推定(評価)したい…!
標準的な予測誤差の場合、次のように書くことができる. (学習の場合は損失関数として、オフライン評価の場合は精度指標として使用するイメージ…!)
\[ R(\hat{Y}) = \frac{1}{U \cdot I} \sum_{u=1}^{U} \sum_{i=1}^{I} \delta_{u,i}(Y, \hat{Y}) \tag{1} \]
ここで、\(\delta_{u,i}(Y, \hat{Y})\) は真の値 \(Y\) と予測値 \(\hat{Y}\) の差を表し、具体的な \(\delta()\) 関数は採用するmetricによって異なる. 例えば MSE と accuracy の場合は以下.
\[ MSE: \delta_{u,i}(Y, \hat{Y}) = (Y_{u,i} - \hat{Y}_{u,i})^2 \\ Accuracy: \delta_{u,i}(Y, \hat{Y}) = \mathbf{1}(Y_{u,i} = \hat{Y}_{u,i}) \]
しかし実環境では真の評価行列\(Y\)は一部の要素しか観測されない為、従来は以下の様に、観測済み要素{u,i}のみを用いて 予測誤差 \(R(\hat{Y})\) を推定する.
\[ \hat{R}_{naive}(\hat{Y}) = \frac{1}{|{(u,i):O_{u,i} = 1}|} \sum_{(u,i):O_{u,i}=1} \delta_{u,i}(Y,\hat{Y}) \tag{5} \]
ここで、\(O_{u,i}\) は観測されたか否かを表すbinary確率変数とする.
\[ E_{O}[O_{u,i}] = P(O_{u,i} = 1) \]
式(5)を、予測誤差 \(R(\hat{Y})\) のnaive推定量と呼ぶ. 実はこのnaiveさが、図1の \(\hat{Y}_1\)、\(\hat{Y}_2\) に対する重大な誤判定を招いてしまう.
予測誤差 \(R(\hat{Y})\) のnaive推定量の期待値を導出して、biasの発生を確認します!
\[ E_{O}[\hat{R}_{naive}(\hat{Y})] = E_{O}[\frac{1}{|{(u,i):O_{u,i} = 1}|} \sum_{(u,i):O_{u,i}=1} \delta_{u,i}(Y,\hat{Y})] \\ = E_{O}[\frac{1}{|{(u,i):O_{u,i} = 1}|} \sum_{(u,i)} O_{u,i} \cdot \delta_{u,i}(Y,\hat{Y})] \\ \because O_{u,i} \text{は観測されたか否かを表すbinary変数} \\ = \frac{1}{|{(u,i):O_{u,i} = 1}|} \sum_{(u,i)} E_{O}[O_{u,i}] \cdot \delta_{u,i}(Y,\hat{Y}) \]
(参考: 施策デザインの為の機械学習入門)
\[ E_{O}[\hat{R}_{naive}(\hat{Y})] = \frac{1}{|{(u,i):O_{u,i} = 1}|} \sum_{(u,i)} E_{O}[O_{u,i}] \cdot \delta_{u,i}(Y,\hat{Y}) \]
この導出結果から、naive推定量の期待値 \(E_{O}[\hat{R}_{naive}(\hat{Y})]\) は、ある特殊ケースを除いて、真の予測誤差 \(R(\hat{Y})\) に比例しない事が分かりました…!
特殊ケース: 全ての観測ペア(u,i)の観測されやすさ(観測確率)が一様なケース:
\[ E_{O}[O_{u,i}] = const \in (0, 1] , \forall {(u,i):O_{u,i} = 1} \]
↑はまさにデータがMAR(Missing at Random)であるケース. (しかし前述した選択バイアスの影響により、実サービスで得られるデータは多くの場合MNAR…)
そして \(E_{O}[O_{u,i}] = P(O_{u,i} = 1)\) なので、naive推定量は観測されやすい{u,i}ペアに関する誤差を重視する様な設計になっている.
MNARデータを推薦モデルの学習 & オフライン評価に使う上で、大きく3種のアプローチがあるらしい.(参考:論文2より)
詳しくは、元論文か、別途まとめたスライドにて.
予測誤差関数のnaive推定量が”観測されやすさ”に関するbiasを含むと分かったので、予め、“観測されやすさ”の逆数で{u,i}を重み付けしておく様な IPS(Inverse Propensity Score)推定量を設計しよう! それを学習時の損失関数やオンライン評価時の精度指標に使おう!って話.
\[ \hat{R}_{IPS}(\hat{Y}|P) = \frac{1}{U \cdot I} \sum_{(u,i):O_{u,i} = 1} \frac{\delta_{u,i}(Y, \hat{Y})}{P_{u,i}} \\ = \frac{1}{U \cdot I} \sum_{u} \sum_{i} \frac{\delta_{u,i}(Y, \hat{Y})}{P_{u,i}} \cdot O_{u,i} \\ \because \text{O_{u,i}はbinary変数なので...!} \]
ここで、\(P_{u,i} = P(O_{u,i} = 1)\) は 嗜好データ \(Y_{u,i}\) を観測する傾向(propensity) と呼ぶ. (因果推論の文脈では、control群/treatment群に割り当てられる確率=傾向スコア(propensity score)の意味合いが一般的な印象🤔)
予測誤差のIPS推定量 \(\hat{R}_{IPS}(\hat{Y}|P)\) の場合、推薦モデルの学習 or オフライン評価時に、傾向スコア(propensity score) \(P_{u,i} = P(O_{u,i} = 1)\) が必要.
推薦システムの運用方法に応じて、以下の2種類の設定がある:
傾向スコア推定モデルの活用(シンプルなやつだけ!)も紹介していました.
表1は、\(\alpha = 0.25\) (=かなりMNARなデータ)の場合のMAEとDCG@50の推定値の結果.(行:各推薦モデル, 列: 真の値 及び 各推定量による予測誤差)
MCARデータとMNARデータの両方を含んだベンチマークデータセットにおいてMNARデータを使って推薦モデルを学習させ、提案した損失関数の性能を評価した. 表2は、MCARテストセットに対する予測精度を評価したもの.
MF-IPSは、MF-naiveや既存debias手法(HL-MNARやHL-MAR)を大幅に上回った. 更にMF-IPSの性能は、YahooデータセットのSOTAに近い結果だったとの事.
詳しくは、元論文か、別途まとめたスライドにて.
本論文は主に”MNARデータを使ったオフライン評価”に焦点を当ててる(“学習”にも一般化可能). MNARデータ \(D_{mnar}\) からサンプリングしてMARデータ \(D_{mar}\) に近い性質を持つ介入データ \(D_{S}\) を作る、新しいサンプリング戦略を提案している.
MARデータとMNARデータが満たすべき性質の違いを、観測された{u,i}ペアの事後確率 \(P(u,i|\mathcal{O} = 1) = P(u,i|\mathcal{O})\) の観点から以下の様に定義する:
\[ P_{mar}(u,i|\mathcal{O}) = P_{mar}(u|\mathcal{O}) \cdot P_{mar}(i|\mathcal{O}) \approx \frac{1}{|U|} \cdot \frac{1}{|I|} = \frac{1}{|U||I|}, \forall(u,i) \in U \times I \]
\[ P_{mnar}(u,i|\mathcal{O}) \neq P_{mnar}(u|\mathcal{O}) \cdot P_{mnar}(i|\mathcal{O}), \forall (u,i) \in U \times I \]
ここで、\(\mathcal{O}\) は “観測されたか否か”を表すbinary確率変数.
サンプリング用のユーザ重み \(w_u\) とアイテム重み \(w_i\) を以下の様に定義.
\[ w_{u} = \frac{P_{mar}(u|\mathcal{O})}{P_{mnar}(u|\mathcal{O})}, w_{i} = \frac{P_{mar}(i|\mathcal{O})}{P_{mnar}(i|\mathcal{O})} \]
重みを使って以下のサンプリング確率分布関数をモデル化: (サンプリングにおける重みの効果は、サンプリング空間のMNAR分布とMAR分布がどれだけ乖離してるかに基づいて、{u,i}ペアのサンプリング確率が増減すること)
\[ P_S(\mathcal{S}|u,i) = w_u \cdot w_i \\ \text{実際には経験的にこっちを採用:} P_S(\mathcal{S}|u,i) = w_u \cdot (w_i)^2 \]
\(P_{mar}(u,i|\mathcal{O})\) に関して、観測値から推定する場合は本戦略を WTD と呼び、仮説のMAR事後分布(i.e. \(P_{mar}(u|\mathcal{O}) = 1/|U|, P_{mar}(i|\mathcal{O}) = 1/|I|\))を用いる場合は WTD_H と呼ぶ.
表2は、各推薦モデルに関するオフライン評価精度(Recall@10)のにおいて、ground-truth(=MARテストセットによる評価結果)と各サンプリング戦略による介在テストセットによる推定値の差を表したもの.