TAXELの回遊率を少しだけ最適化した話

投稿者: | 2019年12月22日

この記事は GMOアドマーケティング Advent Calendar 2019 22日目の記事です。

こんにちは。
GMOアドマーケティングのM.Nです。

弊社ではメディアの回遊性、収益性を高めるため、レコメンドウィジェットの「TAXEL」を提供しています。

今回はTAXELの回遊率を少しだけ最適化した話を紹介しようと思います。
簡単に言うと、ページを訪れたユーザーに対してどうやって興味を持ってもらえそうな記事をレコメンドするかということです。

1.はじめに

まず、TAXELではレコメンド記事をどのように表示しているかを説明します。
TAXELは機械学習によって構築された複数のモデル(レコメンドモデル)があります。
レコメンドウィジェットを表示する際には、設定されたレコメンドモデルからレコメンド記事の在庫を取り出し表示します。

1つのレコメンドウィジェットには記事を複数表示でき、またTAXELのレコメンドモデルも複数あるため
レコメンドモデルの種類と順番を制御してレコメンドウィジェットを組み立てます。
これをHybridPolicyと呼んでいます。

2.HybridPolicy戦略を考える

例として
– 記事数 : 3 (記事1〜3)
– レコメンドモデル数 : 5 (モデルA〜E)
のレコメンドウィジェットにおけるHybridPolicy戦略を考えてみます。

HybridPolicyのデフォルト設定は下図のようになっています。

この場合下図のようにレコメンドウィジェットが表示されます。

レコメンド記事の在庫が潤沢にあると仮定した場合、HybridPolicyの組み合わせは5の3乗通り存在します。
当然ウィジェットに表示する記事数やレコメンドモデルが増えた場合、組み合わせは膨大になります。
最適なレコメンドウィジェットはどのように決定すればよいでしょうか?


(どっちのレコメンドウィジェットが回遊率が高い???)

この問題に対する解決策として今回はサンプル収集という戦略を取っています。
どの組み合わせが最適なのかは考えてもわからないから、あらゆるパターンでレコメンドして結果がよかったものを採用しよう、という考え方です。
具体的には以下のような流れになります。

  1. 各レコメンドモデルのハイパーパラメータのチューニングを行い、レコメンド記事の在庫を確保しておく
  2. 色々なHybridPolicyでレコメンドウィジェットを表示し、サンプルを収集する
  3. 2で出したパターンのスコアを算出する
  4. 2〜3をスコアが収束するまで繰り返す
  5. 4の結果から最終ABテスト候補のHybridPolicyを選定する
  6. 5で選定した組み合わせで最終ABテストをして1番スコアが高いモデルを決定する

3.ハイパーパラメータのチューニング

いきなりHybridPolicyの話から逸れますが、とても大事なところです。
今回の最適化戦略は「とりあえず色々レコメンドして、結果がよかったものを採用する」という流れです。
なのでそもそもレコメンドできる記事の在庫がなかったら前提が崩れてしまいます。
ここはしっかり行って在庫を確保しておきましょう。

4.サンプル収集

ハイパーパラメータのチューニングを終えたら、いよいよHybridPolicyの最適化を始めていきます。
HybridPolicy全パターンから、サンプル収集数が少ないものをランダムに選定し、実際にレコメンドしていきます。

ログから各HybridPolicyでレコメンドウィジェットが表示されたサンプル数、およびCTRが計算できるので事後分布を推定できます。
最初はサンプル数が少ないので取り得るCTRの期待値の幅が大きく信頼度が低いですが、サンプル数が増えるにしたがってCTRの期待値がある程度決まります。

(黄色と紫のHybridPolicyがよさそうだけど、もう少しサンプル収集が必要…)


(黄色と紫のHybridPolicyがbestなHybridPolicyの候補と言ってもよさそう)

5.スコアリング

ある程度サンプルを収集したらスコアリングします。
計算方法は今回割愛しますが、下表のようにHybridPolicy毎のスコアが算出されます。

表の一番上にあるカバレッジという項目は、全HybridPolicyのパターンのうち、実際にレコメンドできたHybridPolicyのパターンの割合になります。
なので、ここの数値が1になると全パターンのサンプル収集ができたということになり、完了の合図になります。

カバレッジが低い場合は、引き続きサンプル収集を行います。
カバレッジが1になるまでサンプル収集し続けるのが理想ですが、レコメンド記事の在庫が足りず途中で数値の上昇が止まるパターンもあります。
その場合も止まった時点でサンプル収集を終了します。

6.選定フェーズ

サンプル収集を終えたら、選定フェーズに入ります。

選定フェーズでは、サンプル収集で取得したHybridPolicyのうち、1番優れているものをABテストで決定するだけです。
サンプル収集の上位5〜10パターン程度をABテストし、CTRを比較します。(実際にはvCTR)


ABテストの結果、パターンDが1番CTRが高いため、パターンDのHybridPolicyが最もCTRの期待値が高いモデルと言えるでしょう。
ただし、HybridPolicyの設定によってはレコメンド記事の多様性が確保できない可能性があります。
この場合、CTRが上位のHybridPolicyのうちなるべく多くのレコメンドモデルを使用しているものを、
常時ABテストできる環境であれば、レコメンドモデルの多様性を確保しつつ上位のHybridPolicyをいくつかピックアップしてABテストし続けるとよいでしょう。

7.結果を確認する

実際に某大手メディアにてHybridPolicy最適化を適用した結果が下の表になります。
横軸が期間になっており、期間が9ヶ月と若干長いためわかりにくいですが、最適化前は20%程度だったvCTRが30%程度に改善しました。

8.さいごに

今回、回遊率アップの一つの戦略としてHybridPolicyを最適化するという手法を紹介しました。
本記事が回遊率アップへのヒントとなれば幸いです。

明日は、zopeさんによる「BigQueryコスト最適化!ストレージ利用料金を把握しよう」です。
引き続き、GMOアドマーケティング Advent Calendar 2019 をお楽しみください!
■エンジニア採用ページ ~福利厚生や各種制度のご案内はこちら~
https://www.gmo-ap.jp/engineer/
■Wantedlyページ ~ブログや求人を公開中!~
https://www.wantedly.com/projects/199431
■エンジニア学生インターン募集中! ~就業型インターンでアドテクの先端技術を体験しよう~
https://hrmos.co/pages/gmo-ap/jobs/0000027