(雑多なメモ)報酬が連続値の場合のオフ方策評価の精度検証
執筆背景
CtoC EC サイトにおいて、出品者に売れそうな商品をおすすめしたり、購入者にクーポンを配ったりしたい。その効果を予測したり最適化したりしたい。特に直接的なKPIである利益を予測対象にしたい。この問題をオフ方策評価を使って解くことが可能か考えたい。
オフ方策評価で解くメリットは、直接的に最適化したい KPI を最適化出来ることと考える。
問題の定式化
最適化したい KPI 定義
商品が購入されることにより得られる利益とする。
データの観測構造をモデル化
商品の特徴量を
ベースライン方策で観測されたログデータ
真に推定したい指標
真に推定したい指標は評価方策により得られる利益の期待値である。
ここで、
ログデータで推定したい指標を近似
ログデータ
実験
実験に利用したコードは以下参照。
各種パラメータ設定
特徴量の次元数は 10 とした。行動
ベースライン方策は以下で定義した。
評価方策は epsilon-greedy 方策とし以下で定義した。
推定量は比較的簡単に計算することができる IPS 推定量を試してみる。IPS 推定量は以下で表される。
シミュレーション回数は100回とした。
とりあえず推定量計算(実験 ID2)
推定精度がかなり悪い。原因は
\beta = 0.1 に変更(実験 ID4)
推定値にばらつきはあるもののそこまで悪くない結果に思える。例えば、推定したい1商品あたり期待利益が上図の1万倍の77500円だと仮定すると、75000 ~ 78000円位の範囲に推定値があるため、直感的には十分使えそうな精度に感じた。
また、ログデータでの報酬の平均値を計算すると約 6.2 であり、先ほどと比べて評価方策の真の性能との差が小さくなっていることも確認できた。
\pi_b を推定した場合(実験 ID5)
実際の EC サイトではベースライン方策の行動選択確率をログとして残していない場合も考えられる。そこで、
\pi_b 及び \pi を推定した場合(実験 ID7)
実際に EC サイトのデータに対してオフ方策評価の性能を確認する場合、過去のある時点をログデータ、それより先の過去のある時点をテストデータとしたい。このとき、テストデータ上での評価方策もログとして残していない場合が考えられる。そこで、
この場合も精度はあまり変わらなかった。
Discussion