
2026/01/17 14:20
「レコメンデーションシステムにおける反事実的評価」
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
推薦システムのオフライン評価は、従来ログされた相互作用を純粋に観測的とみなし、リコール、精度、NDCG などの指標を使用してきました。実際には、推薦はユーザー行動を変える 介入 であるため、異なるポリシーがクリックや購入などの成果にどのように影響するかを評価する必要があります。この因果効果を測定するゴールドスタンダードは A/B テストですが、コストと時間がかかります。
反事実的評価(Counterfactual evaluation)では、完全にオフラインで A/B テストをシミュレートできます。最も一般的な手法は Inverse Propensity Scoring (IPS) であり、各ログ報酬を比率
[ w = \frac{\pi_e(a|x)}{\pi_0(a|x)} ] によって再重み付けします。ここで π₀ は本番ポリシー下での行動確率、πₑ は新しいポリシー下での行動確率です。IPS は πₑ が推奨するすべての行動が π₀ で非ゼロサポートを持つ場合にのみ機能します。そうでないと insufficient‑support(サポート不足)問題に直面し、大きな重要度重みは高い分散を引き起こす可能性があります。これらの問題に対処するバリアントが存在します:
• Clipped IPS (CIPS) は重み (w) を上限付けし、分散を減少させます。
• Self‑Normalized IPS (SNIPS) は重み付き合計を総重みに除算することでクリッピングパラメータの必要性を排除し、RecSys 2021 の研究で低い誤差を達成します。 SNIPS はすべての観測に対して重要度重みを計算する必要があるため(普通の IPS より約10倍のストレージと計算量)、しかしこのコストは高速な収束によって相殺されます。A/B テストが高価である一方、ログインタラクションデータが豊富に存在する現状では、反事実的手法(特に SNIPS)は迅速な実験、低い導入リスク、および推薦システム企業のイノベーション加速に不可欠なツールとなっています。Open Bandit Dataset などの公開リソースは行動確率を提供し、実際のデータセットで IPS スタイルの評価を実用化します。
本文
私がレコメンデーションシステムの仕事を始めたとき、オフライン評価のやり方に何か奇妙な点があるように感じました。
- まず顧客インタラクションデータをトレーニングセットと検証セットに分割します。
- 次に、再現率・適合率・NDCG といった指標で検証セット上の性能を評価する前に、トレーニングセットでレコメンダーを学習させます。
これは教師あり機械学習モデルの評価方法と似ており、一見すると異常ではないように思われます。
しかし、私たちのレコメンデーションは顧客のクリックや購入行動を変えてしまうのでは?
顧客が閲覧できるアイテムは提示されたものだけであるなら、静的な過去データに対してオフライン評価を行う意味は何でしょうか?
観測問題 vs. 実験(介入)問題
最初は時間がかかったのですが、奇妙に感じた理由は「レコメンデーションを観測問題として扱っている」からだと気づきました。実際にはそれは介入(実験)問題です。
-
観測
- 教師あり機械学習で解く問題は通常観測問題です。
- 例:商品タイトル・説明・画像を入力として、商品のカテゴリを予測します。
- モデルは (P(\text{category}=\text{phone}\mid \text{title}=…,\text{description}=…, \text{image}=image01.jpeg)) を学習します。
-
介入
- レコメンデーションは介入問題です。異なる介入(=アイテムの推薦)がどのように結果(=クリック、購入)を変えるかを学びたいわけです。
- ログされた顧客インタラクションデータをラベルとして用いると、観測的なオフライン評価手法はレコメンデーションの介入性を無視してしまいます。
結果として、ユーザーが新しいレコメンデーションによってクリックや購入を増やすかどうかではなく、「ログデータにどれだけ合致するか」を評価しています。したがってモデルが学習するのは
(P(\text{view3}=\text{iphone}\mid \text{view1}=\text{pixel}, \text{view2}=\text{galaxy})) で、実際に欲しいのは
(P(\text{click}=T\mid \text{recommend}=\text{iphone}, \text{view1}=\text{pixel}, \text{view2}=\text{galaxy})) です。
レコメンダーシステムを介入問題として評価する
直接的な方法:A/B テスト
- 新しいレコメンデーション(介入)をユーザーに提示します。
- 新しいレコメンデーションに起因した行動をログし、クリック率やコンバージョンなどの指標がどう変化するか測定します。
長所:直接測定できる。
短所:実験設計・運用に手間がかかり、サイクルも長くなる。悪い実験を展開するリスクや研究側で容易にアクセスできない点がある。
それほど直接的ではないアプローチ:反事実評価
- 「既存のレコメンデーションの代わりに新しいレコメンデーションを提示したら、何が起きただろうか?」という問いに答えます。
- 実際にA/Bテストを行わずに潜在的な結果を推定できます。
反事実評価で最も広く知られている手法は 逆確率スコア(Inverse Propensity Scoring, IPS) です。直感としては、各インタラクションが新しいレコメンデーションモデルによりどれだけ頻繁に起こるかを重み付けして再評価するというものです。
逆確率スコア推定量の分解
- 報酬 (r):ログデータ内で得られるクリック数や購入数。
- 重要度重み
- 分母 (\pi_0(a|x)):既存プロダクションレコメンダーがコンテキスト (x) で行動 (a) を取る確率。
- 分子 (\pi_e(a|x)):新しいレコメンダーの同様の確率。
- ユーザー→アイテムレコメンダーなら (x) はユーザー、アイテム→アイテムレコメンダーなら (x) はアイテムです。
- 再重み付け:新しいモデルが既存よりもどれだけ頻繁に推奨するかを計算し、ログ報酬を調整します。
例:
(\pi_0(\text{recommend=iphone}\mid \text{view}=Pixel)=0.4)
(\pi_e(\text{recommend=iphone}\mid \text{view}=Pixel)=0.6)
新モデルはiPhoneを1.5倍頻度で推奨します。ユーザーがクリック・購入した場合、その報酬を1.5倍に再重み付けします。
- 平均化:データ全体で IPS 推定量を算出し、新レコメンダーの評価値とする。
レコメンデーション確率はどうやって得る?
- 生スコアを正規化(例:Plackett‑Luce)して各推奨アイテムの確率を取得。
- 推奨が事前に計算済みの場合、レコメンデーションストア内でそれぞれのアイテムの出現頻度を数える。
- 好ましい:各レコメンデーションのインプレッション数を用いる。直接的な確率測定であり、提示バイアスも調整できる。
多くの公開データセットにはこれらの確率が欠落していますが、Open Bandit Dataset では
action_prob が各観測に対して提供されています。
IPS の落とし穴
-
サポート不足
- 新レコメンダーが既存が決めた行動を取らない場合 → (\pi_0(a)=0)、重要度重みが未定義。
- 対策:ランダムに非推奨アイテムを少量のトラフィックで表示させる、またはすべての候補アイテムにゼロ以外の確率を与える。
-
高分散
- (\pi_e(a)) が (\pi_0(a)) より大きいと重みが爆発(例:(0.001\to 0.1) は100倍)。
- 対策:新レコメンダーを既存に近く保つ、またはクリップされた重みを使用。
-
クリップIPS (CIPS)
- 重要度重みに上限を設定し、それ以上の値を切り捨て。
- 切り捨てパラメータの調整が難しい場合も。
-
自己正規化IPS (SNIPS)
- IPS 推定量を重要度重みで割ることで過大評価を防止。
- CIPS より単純で、パラメータチューニング不要。
どれが最適か?
RecSys 2021 の講義で Yuta Saito は Open Bandit Pipeline の合成データ(10 個のアクション)と Direct Method (DM)(欠損報酬を補完するモデル、強化学習の環境モデル構築に似ている)を比較しました。主な結論は次の通りです。
| 推定量 | ログデータが増えるほどのパフォーマンス |
|---|---|
| IPS | DM を上回る |
| CIPS | IPS と同程度 |
| SNIPS | 最良(誤差最小)、パラメータ調整不要 |
SNIPS はすべての観測について重要度重みを計算する必要があるため、ストレージと計算コストが10倍以上増える可能性があります。しかし、収束速度が速いことでその負担は相殺されます。
結論
観測的なパラダイムを捨てるべきだとは言いたくありません。明確にメリットがあります:
- 公開データセットと標準指標で確立された評価枠組み → 比較が容易。
- レコメンダーを本番へ投入する前にトレーニング・検証データを収集できる。顧客インタラクションは自然発生的に生成されます。
もし新しい評価手法を試したい、あるいはオフライン指標とオンライン A/B テストの結果にズレが見られる場合は、SNIPS による反事実評価 を検討してください。ここでは推薦システムについて述べましたが、A/B テストをオフラインでシミュレートしたいあらゆる場面にも適用可能です。
感謝:Arnab Bhadury, Vicki Boykis, Yuta Saito の方々に草稿を読んでもらえたことに感謝します。
参考文献
- The Central Role of Propensity in Observational Studies for Causal Effects (IPS)
- Batch Learning from Logged Bandit Feedback through Counterfactual Risk Minimization (CIPS)
- The Self‑Normalized Estimator for Counterfactual Learning (SNIPS)
- SIGIR 2016 Tutorial on Counterfactual Evaluation and Learning
- RecSys 2021 Tutorial Counterfactual Learning and Evaluation
- Open Bandit Pipeline: A Research Framework for Off‑Policy Evaluation & Learning
- Simulating A/B tests offline with counterfactual inference
この記事が有用だったら、次のように引用してください:
Yan, Ziyou. (Apr 2022). Counterfactual Evaluation for Recommendation Systems. eugeneyan.com. https://eugeneyan.com/writing/counterfactual-evaluation/
または
@article{yan2022counterfactual, title = {Counterfactual Evaluation for Recommendation Systems}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2022}, month = {Apr}, url = {https://eugeneyan.com/writing/counterfactual-evaluation/} }