はじめに
ユーザーの関心や嗜好に適したアイテムを推薦することは、ユーザーエクスペリエンスの向上や購買意欲の促進に直結するため、多くの企業が推薦システムの開発・改善に注力しています。 推薦精度の向上においては、ABテストに基づく比較検証が有効な手段ですが、その実施には時間的・技術的コストが伴います。この問題を解決すべく、近年注目を集めているのが「オフ方策評価(Off-Policy Evaluation)」と呼ばれる統計的手法です。
オフ方策評価とは、「過去に使用された推薦モデルのもとで収集されたログデータのみを用いて(すなわちABテストを行わずに)、新しい推薦モデルの性能を推定する手法」のことです。これにより、ABテストを実施する前段階で有望なモデルを選別できるなど、効率的な意思決定を支援する手段として活用が期待されます。一方で、オフ方策評価の実装には理論的背景の理解など一定の専門知識を要するため、正確かつ安定的な運用を行う上でのハードルが高いという問題も存在します。
そこで、半熟仮想株式会社の 齋藤優太さん との協働のもと、当社が扱う推薦システムにおいて、適切なオフ方策評価手法を特定するプロジェクトに取り組みました。本記事では、そのプロジェクトの背景となる知識や、得られた知見、我々の思考プロセスについてご紹介します。機械学習の現場でオフ方策評価の導入・活用を検討されている方々にとって、本記事が少しでも参考になれば幸いです。
事前準備:推薦モデル学習の定式化
齋藤さんの著書『施策デザインのための機械学習入門』 では、現場で機械学習の問題に取り組む際にたどるべき流れが、以下のように整理されています。
- ①KPI(Key Performance Indicator )を設定する
- ②データの観測構造をモデル化する(数式で書き起こす)
- ③解くべき問題を特定する(KPIを数式で表現する)
- ④観測データのみを用いて問題を解く方法(KPIを近似する方法)を考える
- ⑤機械学習モデルを学習する
- ⑥施策を実行する
本ブログでは、オフ方策評価に関連する④までの流れを参考に、現場に即した推薦モデルの問題を定式化した上で、オフ方策評価における推定量設計について具体的に議論します。
①KPIを設定する
オフ方策評価に限らず、現場で機械学習施策を有効に運用する上では、評価基準となるKPIを明確に定義することが不可欠です。KPIはビジネス成果を定量的に捉える指標であり、同時に施策によって最適化が可能である必要があります。
本プロジェクトにおいては、「推薦枠内で発生する総CV(コンバージョン)数」を主なKPIとして設定しました。将来的には、「推薦枠以外の流入経路も含めたサービス全体で発生する総CV数」をKPIとして設定する拡張も視野に入れていますが、推薦モデルの変更によってサービス全体のCV数を最適化し、それを評価することには高い難易度を伴います。そのため、今回は初期ステップとして、推薦枠に限定したCV数を評価対象としています。
②データの観測構造をモデル化する
推薦モデルの学習および評価には、通常、サービス上で蓄積されたログデータが利用されます。このログデータを有効活用するための準備として、データがどのような過程を経て観測されているのかについて、明確に定式化できることが重要です。観測構造のモデル化が適切に行えない場合は、自身が扱っているデータの特性を正確に把握できないまま運用が進んでしまうことを意味するため、一度立ち止まって丁寧に定式化を行うことが重要だと考えています。
本プロジェクトにおいては、対象となる推薦枠においてコンバージョンが発生するまでの一連の流れを以下のように整理し、観測構造を定義しました。
- ユーザーがサービスに訪問する
- 訪問ユーザーに対して、推薦枠内に複数のアイテムがランキング形式で表示される
- ユーザーの興味・関心に応じて、推薦枠内のいずれかのアイテムがクリックされる(クリックが一度も発生しないケースもあり得る)
- クリックされたアイテムについて、アイテム詳細ページに遷移した後、ユーザーの意思決定に基づきコンバージョンが発生するか否かが決定される

この流れを踏まえた上で、データの観測構造を表現すべく我々が用意した記号は以下の通りです。
説明 | 記号 |
---|---|
ユーザーid | $ u \in U $ |
ユーザーの特徴量ベクトル | $ x_u $ |
ユーザー(訪問)の確率分布 | $ u \sim p(u) $ |
アイテムid | $ s \in S $ |
アイテムの特徴量ベクトル | $ e_s $ |
アイテムのランキング(推薦枠全体) | $S$ |
アイテムランキングの分布(推薦モデル) | $ S \sim \pi(\cdot \vert x) $ |
クリック発生有無ベクトル | $C$ |
クリック発生有無ベクトルがしたがう分布 | $ C \sim p(\cdot \vert x, S) $ |
潜在CV発生有無ベクトル | $R$ |
潜在CV発生有無ベクトルがしたがう分布 | $ R \sim p(\cdot \vert x, S, C) $ |
ここで、いくつかの記号の定義とその意味について補足します。まず、$S$は推薦枠に表示されるアイテムのランキングを表すベクトルであり、具体的には推薦順位に対応するアイテムの列を示します。たとえば、$S(1)$は推薦枠の1番目に表示されるアイテムを、$S(10)$は10番目に表示されるアイテムを表します。次に、$C$は推薦枠中の各表示位置において、そのアイテムがクリックされたか否かを表すベクトルです。たとえば、$C(1) = 1$であれば、1番目に表示されたアイテムがクリックされたことを意味し、$C(10) = 0$であれば、10番目に表示されたアイテムがクリックされなかったことを示します。最後に、$R$は各位置のアイテムに対する「潜在的なCV」の有無を表すベクトルです。ここで言う潜在CVとは、「クリックが発生し、ユーザーがアイテムの詳細ページへ遷移した場合に、CVが発生するかどうか」を意味します。たとえば、$R(1) = 0$の場合、1番目に表示されたアイテムがクリックされたとしてもCVには至らないことを意味し、$R(10) = 1$であれば、10番目に表示されたアイテムがクリックされればCVが観測されることを示しています。ここで重要なのは、「潜在CV」は直接観測できない、すなわち観測されるのはクリックと潜在CVが同時に発生した場合に限られる、という点です。このようなCVを本ブログでは「観測CV」と呼び、これはクリックと潜在CVの積 $C \times R$ により表現されます。 この潜在CVと観測CVの違いを正しく理解することが、推薦モデルの学習および評価において重要です。その上で実際に活用可能なログデータとしては、ユーザー特徴量($x_u$)、推薦モデルによって提示されたアイテムランキング($S$)、クリック有無ベクトル($C$)、および観測CVの有無ベクトル($C \times R$)の4要素から構成され、以下のように表記されます。 $$ D = \lbrace (u_i, S_i, C_i, C_i R_i) \rbrace_{i=1}^n $$
さらに、これらのデータが生成された背景として、データ収集時に稼働していた推薦モデル(現行推薦モデル)を $ \pi_0 $ とすると、ログデータの生成過程は以下のように定式化できます。
$$ p(D) = \prod_{i \in n} p(u_i, S_i, C_i, R_i) = \prod_{i \in n} p(u_i) \pi_0(S_i|x_{u_i}) p(C_i, R_i|x_{u_i}, S_i) $$
このように、当社で扱う推薦システムのログデータは、現行推薦モデル、ユーザーやアイテムの特徴、そしてクリックやCVなどの結果変数が確率的に生成される過程として表現できると考えました。なお、我々が本プロジェクトで採用した定式化がほかの現場において適切である保証はありません。あくまで、各現場に応じて適切な定式化を自ら考える姿勢が重要であることを、今一度強調しておきたいと思います。
③解くべき問題を特定する
このステップでは、あらかじめ導入した記号を用いてKPIを定式化し、オフ方策評価において推定すべき対象を明確に定義します。本プロジェクトでは、「推薦枠内で発生する総CV数」をKPIとして設定していましたが、これを統計的により厳密に表現すると、「新たな推薦モデル $ \pi $ を導入した場合における、推薦枠内での総CV数の期待値」となります(上級者向けですが、期待値以外でKPIを定義することもできます)。この量は、これまでに導入した記号を用いて以下のように表現されます。
$$ V(\pi) := \mathbb{E}_{p(D_{new})}\left[\sum_{k=1}^{K} C(k)R(k)\right] = \mathbb{E}_{p(u)\pi(S|x_u)p(C,R|x_u,S)}\left[\sum_{k=1}^{K} C(k)R(k)\right] $$
この定義においては、推薦枠内で得られるCVの総数 $\sum_{k=1}^{K} C(k)R(k)$ の期待値を、新たな推薦モデル $\pi$ によって定義される分布の下で計算していることが分かります。これにより、オフ方策評価における推定対象となる指標を明確に定式化できました。
④観測データのみを用いて問題を解く方法を考える
続いて、観測データのみに基づいて上記の指標を推定するための統計的アプローチについて、より具体的に検討します。この課題こそが、いわゆる「オフ方策評価」と呼ばれる統計的推定問題です。ここでは、既存の推薦モデル $\pi_0$ の下で収集されたログデータ
$$ D = \lbrace(u_i, S_i, C_i, C_i R_i)\rbrace_{i=1}^n $$
のみを用いて、新たに開発した推薦モデル $ \pi $ を導入した場合に得られるKPI、すなわち
$$ V(\pi) = \mathbb{E}_{p(u)\pi(S|x_u)p(C,R|x_u,S)}\left[\sum_{k=1}^{K} C(k)R(k)\right] $$
をできる限り正確に推定する推定量を設計することが我々の仕事となります。
推定量の設計および比較検討
オフ方策評価を行うための推定量は多数存在しますが、本ブログでは推薦問題において有効と考えられる主要な推定量に絞って4つ紹介します。あわせて、当社の課題に対して最も適切と考えられる推定量を特定するために実施した比較実験の内容およびその結果についても考察します。
SNIIPS推定量
最初に取り上げるのは、IPS(Inverse Propensity Score)推定量です。IPS推定量はオフ方策評価において最も広く用いられている手法の一つであり、観測されたデータの分布に基づいて期待値を計算することで、新たな方策 $\pi$ におけるKPIと一致する「不偏性」の性質を有している点が特徴です(すなわち、$ \mathbb{E}_{p(D)}[ \hat{V}_{IPS}(\pi; D)] = V(\pi) $ が成立します)。 本ブログにおける定式化に基づくと、IPS推定量は以下のように定義されます。 $$ \hat{V}_{IPS}(\pi; D) := \frac{1}{n} \sum_{i=1}^n \frac{\pi(S_i|x_{u_i})}{\pi_0(S_i|x_{u_i})} \sum_{k=1}^K C_i(k) R_i(k) $$
しかしながら、IPS推定量には、分母に存在する$\pi_0(S|x)$ の値が極端に小さい場合、推定が不安定になるという重大な問題があります。これは直感的には、極端に小さな値で割ることで推定値が発散し、信頼できる推定が困難になる状況を意味します。特に本プロジェクトで対象とする推薦問題では、可能なアイテムランキング $S$ の組み合わせが非常に多く、$\pi_0(S|x)$ が極端に小さい値をとるケースが頻繁に生じてしまうため、このままでは実用的な推定が困難だと考えられます。そこで、IPS推定量の安定性を向上させるために、2つの工夫を導入しました。
第一の工夫は、各アイテムの観測CV確率が他の表示アイテムの影響を受けないという「独立性の仮定」に基づくものです。この仮定では、ある表示位置 $k$ における観測CV確率は、他の表示位置に何が表示されているかに関係なく、当該位置に表示されたアイテム $S(k)$ のみに依存すると考えます。数式で表すと、以下のようになります。
$$ p(C(k)R(k) | x, S) = p(C(k)R(k) | x, S(k)) $$
この仮定の下では、元のIPS推定量を簡略化した IIPS(Independent Inverse Propensity Score)推定量 が導出され、不偏性の性質を保持することが可能です。推定量は以下のように定義されます。
$$ \hat{V}_{IIPS}(\pi; D) := \frac{1}{n} \sum_{i=1}^n \sum_{k=1}^K \frac{\pi(S_i(k)|x_{u_i}, k)}{\pi_0(S_i(k)|x_{u_i}, k)} \cdot C_i(k) R_i(k) $$
この簡略化により、組み合わせ爆発的に増大する $S$ の全体構造を厳密に扱う必要がなくなり、推定量の分散を大幅に抑えることが可能になります。ただし、この独立性の仮定が現実のデータに適合しない場合には、不偏性が失われ、推定にバイアスが生じる点には注意が必要です。IIPS推定量に関するより詳細な理論背景については、 齋藤さんの著書『反実仮想機械学習』 の第二章を参照していただくと良いでしょう。
第二の工夫は、推定値をサンプルサイズ $n$ ではなく、重みの総和で正規化するという手法です。 具体的には、先述のIIPS推定量に以下の正規化を施します。
$$ \hat{V}_{SNIIPS}(\pi; D) := \sum_{i=1}^n \sum_{k=1}^K \frac{\frac{\pi(S_i(k)|x_{u_i}, k)}{\pi_0(S_i(k)|x_{u_i}, k)}}{\sum_{i=1}^n \frac{\pi(S_i(k)|x_{u_i}, k)}{\pi_0(S_i(k)|x_{u_i}, k)}} \cdot C_i(k) R_i(k) $$ この手法により、$\pi_0$ が極端に小さい値をとる場合でも、全体の推定値が過大に影響を受けることなく、分散を効果的に抑制できます。このように重みによる自己正規化(self-normalization)を取り入れた推定量は、SNIIPS(Self-Normalized IIPS)推定量と呼ばれます。本プロジェクトでは、このSNIIPS推定量を他の手法と比較し、その性能を検証することにしました。
Naive推定量
次に候補として検討したのは、以下の Naive推定量 です。
$$ \hat{V}_{Naive}(\pi; D) := \sum_{i=1}^n \sum_{k=1}^K \frac{\pi(S_i(k)|x_{u_i}, k)}{\sum_{i=1}^n \pi(S_i(k)|x_{u_i}, k)} \cdot C_i(k) R_i(k) $$
この式からは直感的な理解が難しいかもしれませんが、たとえば $ \pi(T | x_u) = 1 $ のように、ユーザーごとに確定的(非確率的)なランキングを出力する推薦モデルを想定すると、このNaive推定量は次のように簡略化されることがわかります。
$$ \hat{V}_{Naive}(\pi; D) := \frac{1}{ \sum_{i=1}^n \sum_{k=1}^K \delta(T_i(k), S_i(k))} \sum_{i=1}^n \sum_{k=1}^K \delta(T_i(k), S_i(k)) \cdot C_i(k) R_i(k) $$ ここで $\delta(T(k), S(k))$ は、新しい推薦モデル $\pi$ が出力する $k$ 番目のアイテム $T(k)$ と、観測データ上における現行推薦モデル$\pi_0$による表示アイテム $S(k)$ が一致する場合に1となる指示関数です。すなわち、この推定量は「新たな推薦モデルが出力するアイテムが観測データ上のアイテムと一致している場合に限り、データを評価に用いる」手法であると解釈できます。Naive推定量は、現行モデル $\pi_0$ の挙動を(あえて)考慮しないために一定のバイアスが発生するという欠点がありますが、その一方で、実装が容易であり分散が小さいという利点があります。
DM推定量
続いて紹介するのは、DM(Direct Method)推定量です。DM推定量は、これまでに紹介した推定量とは異なり、明示的な予測モデルを活用する点が特徴です。 DM推定量の導入のため、あるユーザー $u$ に対してアイテム $s$ を推薦した際の「観測CVの発生確率」を以下のように定義します。 $$ pObsCV(x_u, e_{s}) := \mathbb{E}[C(k) \cdot R(k) | x_u, S(k) = e_{s}] $$
そして、この確率を予測するモデル $\widehat{pObsCV}(x_{u_i}, e_s)$ を、ログデータ $D$ を用いてあらかじめ学習しておきます。これはたとえば、観測CVを目的変数とする分類モデルを構築することで実現できます。この予測モデルを活用することで、DM推定量は次のように定義されます。
$$ \hat{V}_{DM}(\pi; D) := \frac{1}{n} \sum_{i=1}^n \sum_{k=1}^K \mathbb{E}_{\pi(S|x_{u_i})} \left[ \widehat{pObsCV}(x_{u_i}, e_{S(k)}) \right] $$
DM推定量では、予測モデルの精度がそのまま推定量のバイアスに直結します。しかしながら、これまでに述べたいずれの推定量と比較しても、分散が小さいという、特に大規模問題における大きなメリットがあります。
DR推定量
最後に紹介するのは、Naive-DR(Doubly Robust)推定量です。一般にDR推定量は、IPS推定量とDM推定量を統合した手法として広く知られていますが、本ブログでは数値実験での試行錯誤を踏まえ、Naive推定量とDM推定量を組み合わせた独自の形式をあえて採用しています。(これはオフ方策評価に限った話ではありませんが、教科書的な理論をそのまま適用するのではなく、状況に応じて柔軟に変形しながら活用する姿勢をもつことが重要であり、現場における我々の腕の見せ所の一つと考えています。) 具体的に、Naive-DR推定量は以下のように定義されます。 $$ \hat{V}_{DR}(\pi; D) := \sum_{i=1}^n \sum_{k=1}^K \frac{\pi(S_i(k)|x_{u_i}, k)}{\sum_{i=1}^n \pi(S_i(k)|x_{u_i}, k)} (C_i(k) R_i(k) - \widehat{pObsCV}(x_{u_i}, e_{S(k)})) + \mathbb{E}_{\pi(S|x_{u_i})} \left[ \widehat{pObsCV}(x_{u_i}, e_{S(k)}) \right] $$
一見複雑に見えるかもしれませんが、予測モデルの出力をゼロ(すなわち $ \widehat{pObsCV}(x_{u}, e_{S(k)}) = 0 $)と仮定すれば、これは先に述べたNaive推定量と一致することが確認できます。Naive-DR推定量は、予測モデルの精度が悪くない場合に、Naive推定量やIPS推定量よりも安定かつ精度の高い評価が可能となる特性を持ちます。
実験設定
これまでに紹介した4つの推定量には、それぞれに特有の長所と短所があり、当社における問題に最適な推定量を選定することは容易ではありませんでした。 そこで、実際のログデータをベースに、必要な部分のみ人工的な制御を加えた「半人工データセット」を構築し、現実に近いシナリオ下で各推定量の精度を比較する実験を実施しました。半人工的な設定では、真のクリック確率や観測CV確率をあらかじめ制御・把握しているため、各推定量の「真の推定精度」や、仮にABテストを実施した場合に得られる推定値との比較が可能になります。
実験では、使用するデータセットと、推定量の正確性を定量的に評価するための指標を以下の通り設定しました。
項目 | 内容 |
---|---|
データ作成方法 | ・ユーザーやアイテムの特徴量には、対象サービスの実データを使用。 ・真の観測CV確率(pObsCV)はロジスティックモデルにより作成し、それをもとに観測CVを抽出。 |
現行推薦モデル( $ \pi_0 $ ) | 実際に運用されていた現行推薦モデルにε-greedy戦略を適用して、確率的なノイズを加える。 |
新推薦モデル( $ \pi $ ) | ・真の観測CV確率関数に基づいた最適モデルと現行モデルにε-greedyによるノイズを加える。 ・ノイズの大きさを大小2パターン用意する。 |
評価指標 | 平均二乗誤差 、二乗バイアス、バリアンス、モデル選択の誤り率 |
比較手法 | ・SNIIPS推定量、Naive推定量、DM推定量、DR推定量、ABテスト |
なお、オフ方策評価による推定精度が、実際にABテストを行った場合と比較してどの程度近い水準にあるのかを直感的に把握するため、仮想的にABテストを実施した場合の推定精度を、参考のためのベースラインとして比較手法に加えています。半人工データを用いているため、真の観測CV確率が既知であり、ABテストを実施した際の理論的な推定精度を再現することが可能なのです。
評価指標
推定量の精度を比較するために使用した評価指標を、以下の表にて数式とともに整理しています。 推定量の正確性を評価する指標として一般的な 「平均二乗誤差(MSE:Mean Squared Error)」 に加え、実践的な視点を踏まえて「モデル選択の誤り率」も評価対象としています。これは、オフ方策評価に基づき有望なモデルを選択する際、その判断が正しく行われるかどうかを測るものであり、実運用における推定量の有効性をより多面的に検証することを目的としています。
名称 | 式 | 説明 |
---|---|---|
平均二乗誤差 | $ \text{MSE}[\hat{V}; \pi_1] := \mathbb{E}_{p(D)}[(V(\pi_1) - \hat{V}(\pi_1; D))^2] = \text{Bias}[\hat{V}(\pi_1; D)]^2 + \text{Var}[\hat{V}(\pi_1; D)] $ | 真のモデル性能と推定値の差の二乗の期待値 |
二乗バイアス | $ \text{Bias}[\hat{V}(\pi_1; D)]^2 = [\mathbb{E}_{p(D)}[\hat{V}(\pi_1; D)] - V(\pi_1)]^2 $ | 真のモデル性能と推定量の期待値の差の二乗 |
バリアンス | $ \text{Var}[\hat{V}(\pi_1; D)] = \mathbb{E}_{p(D)}[(\hat{V}(\pi_1; D) - \mathbb{E}_{p(D)}[\hat{V}(\pi_1; D)])^2] $ | 推定値と推定量の期待値の差の二乗の期待値 |
モデル選択の誤り率 | $ \text{ErrorRate}[\hat{V}; \pi_1, \pi_0] := \mathbb{E}_{p(D)}[\mathbb{I} \lbrace \hat{V}(\pi_1; D) > \hat{V}(\pi_0; D) \rbrace \mathbb{I} \lbrace V(\pi_1) \le V(\pi_0)\rbrace + \mathbb{I} \lbrace\hat{V}(\pi_1; D) \le \hat{V}(\pi_0; D) \rbrace \mathbb{I} \lbrace V(\pi_1) > V(\pi_0) \rbrace ] $ | 2つの推薦モデルの性能の大小関係を誤る確率 |
実験結果
上記の条件のもと、パターンの異なる複数の新推薦モデルに対してオフ方策評価を実行し、各推定量の性能を比較する実験を行ったところ、以下の結果が確認されました。

実験結果の読み方について補足します。本実験における新推薦モデル$\pi$には、「最適モデル × ノイズ小」「最適モデル × ノイズ大」「現行モデル × ノイズ小」「現行モデル × ノイズ大」の4つのパターンが存在します。評価対象となる新推薦モデルの挙動に応じて、各種推定量の精度が変動する可能性を考慮し、複数パターンに対するオフライン評価を実施しています。また、実験結果におけるx軸は、データ収集時の探索度合いを示すパラメータ $\epsilon$ の値です。$\epsilon$ の値が大きいほど、ログデータ上でより多くのアイテムが探索されており、オフライン評価が実施しやすい条件であることを意味します。正確なオフライン評価を行う上で必要となる探索量の目安を把握するため、探索度合いを変化させた条件下で実験を行いました。
結果を見ると、まずSNIIPS推定量(紫線)のMSEは、全てのシナリオにおいて高い値を示しており、モデル選択の誤り率についても高い傾向が見られます。これにより、本推定量は当推薦システムの実データセットに対して適切でない可能性が高いことが示唆されます。一方で、DR推定量(黄線)は、多くの場合においてMSEが低く、ABテスト(赤線)に近い推定性能を有していることが確認されます。特に、探索率 $\epsilon \geq 0.03$ の条件下では、DR推定量はモデル選択の誤り率がほぼ0となり、有望なモデルを特定するモデル選択の問題において非常に優れた性能を示しています。 さらに、各推定量の挙動を比較すると、DR推定量は真のモデル性能(黒点線)およびABテストの結果に近い値を示しており、その優位性が明確に表れています。Naive推定量については、現行推薦モデルに近い挙動を持つモデルの性能評価には一定の有効性を持つものの、現行モデルとは異なる挙動を持つ最適モデルの評価においては、十分な性能を発揮できないことが見てとれます。
考察
実験結果を踏まえた各推定量に対する考察は、以下の通りです。
- SNIIPS推定量が一貫して不正確であった理由:本実験では、対象となるアイテム $S$ の種類が多く、それに伴い現行モデル$ \pi_0(S(k)|x) $ の値が非常に小さくなったことで、推定が想定以上に不安定になった可能性が考えられます。IPS推定量はオフ方策評価において一般的に用いられる手法ですが、安定した性能を発揮できない状況があり得ることが明らかとなりました。加えて、独立性の仮定により無視できない量のバイアスが生じてしまったことも、不正確さの一要因と考えられます。
- Naive推定量が最適モデルの評価時に不正確であった理由:Naive推定量は、現行モデルが生成したログデータに含まれるバイアスを補正せずに推定を行うため、現行モデルに近いモデルの性能評価においては一定の性能を発揮しました。しかし、現行モデルとは異なる挙動を有するモデル(特に最適モデル)の評価に対しては、バイアスの影響が大きくなり、正確な評価が実行できない傾向が観測されました。
- DR推定量が一貫して正確な評価性能を示した理由:DM推定量およびDR推定量は、アイテムの特徴量を活用できる手法であり、類似する特徴を持つアイテム間の情報を推定に有効活用できた点が、他の推定量と比較して高い性能につながったと考えられます。また本実験では、真の観測CV確率をロジスティックモデルで構築した一方で、観測CV予測モデル $ \widehat{pObsCV} $ は特徴量にノイズを加えたうえで決定木により予測を行うという予測モデルが正確になり過ぎない工夫を施しましたが、なおもDM推定量やDR推定量に多少有利な環境であった可能性は否定できません。この点をより厳密に扱うためには、複数の真の観測CV確率関数を構築して実験を行った上で、各種推定量の平均的な精度や最悪ケースでの精度を比較するなど、さらなる検証を行うことが有効だと考えています。
このように、推定量によって特性が異なるため、評価タスクの目的や前提条件(予測モデルの性能、データの分布、新旧モデルの乖離度など)に応じて、適切な手法を選択することが重要です。今回の実験では、特にDR推定量が最も安定的(大きな失敗が少ない)かつ信頼性の高い評価結果を示しており、実サービスへの導入において有力な選択肢であるという判断につながりました。
まとめ
本ブログでは、オフ方策評価手法を実サービスへ適用する際の手順および留意点について解説しました。
- まず、施策デザインのフレームワークに基づき、問題の定式化から推定量の選定に至るまでのプロセスを確認しました。
- 次に、SNIIPS推定量、Naive推定量、DM推定量、DR推定量といった代表的な手法を定義・比較検討しました。
- 一般的に広く用いられているIPS推定量においても、実践的な環境下では十分な性能が得られないケースが存在することが分かりました。
- データセットの特性に応じて最適な手法が異なるため、本ブログで示したように、複数の手法を比較することで適切な推定量を選定することが重要だということを身をもって確認できました。
おわりに
最後までご覧いただき、ありがとうございました。オフ方策評価については概要レベルで理解していたものの、実際に応用しようとすると、理論面・実装面の双方でより深い理解が求められることを実感し、自身の理解の不十分さを痛感する場面もありました。本プロジェクトや記事執筆にあたり多くのご助言をいただいた、半熟仮想株式会社の齋藤優太さんに改めて感謝申し上げます。本ブログが、オフ方策評価の実践を検討されている方々にとって少しでも有益な情報となれば幸いです。
リクルートでは本件以外でも大学を初めとする研究機関とも共同研究が行われており、働きながら技術的な研鑽を積むことや、対外発表などの活動も可能です。ご興味のある方は、以下の採用ページをご覧ください。