MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

マイクロアドにおけるセッション率改善

はじめに

初めまして,マイクロアドで機械学習エンジニアをしている前田です. 主にReal-Time-Bidding (RTB) におけるClick Through Rate (CTR) 予測やセッション率予測の研究・開発を担当しています.

マイクロアドでは,UNIVERSE Adsというプロダクトでセッション獲得改善を目的として,セッション率予測を入札ロジックに取り入れました. 今回はセッション率予測をどのように活用し,RTB の入札改善を行ったかを紹介させていただきます.

セッションとは

現在広く用いられている Googleが無料で提供するWebサイトおよびアプリ向けの最新アクセス解析ツールである Google アナリティクス4 (GA4) では以下のように定義されています.

セッションとは、特定の期間内にウェブサイトまたはアプリで発生した一連のユーザー インタラクションのことです。

引用:[GA4] セッション - アナリティクス ヘルプ

簡単に言うと,広告をクリックした後に LP(ランディングページ)の読み込みが完了し,セッションが開始することでセッション数がインクリメントされます. 広告をクリックしたが,セッションが開始する前にブラウザバックしてしまうようなケースが多いとセッション率は自ずと小さくなっていきます.

モチベーション

セッションを伴わないクリックはユーザーの意図しないクリックである可能性が高く,計測上はクリックと判定されますが,広告主が本来獲得したいユーザー行動(または「意図したクリック」)とは異なるでしょう. そこで,広告主は GA4 などの計測ツールを利用して,セッション率を計測することでクリックの品質を評価する場合があります.

セッション率 = セッション数 / クリック数で計算され,セッション率が一定以上でないと「低品質なクリック」によって指標をハックしているという判断がなされます.

こうした背景から,マイクロアドでは,広告主の KPI である CPC (Cost per Click: 1クリックあたりの獲得にいくらかかったか) を従来の水準に保ったままセッション率を保証できるようにする改善プロジェクトが発足しました.

従来の理想入札額と CTR 予測

Real Time Bidding (RTB) では下図のように,広告主とメディア間でリアルタイムにオークションが開催され,オークションに勝利した広告がメディアに表示されます.

RTBを簡略化した図

マイクロアドでは現在オークションの入札額は次のように予測 CTR と目標 CPC の積に依存する形で決定しています. Zhang, 2014

 b^*(x) = cost^* \times p_{\text{click}}(x)
記号 意味
x 入札リクエスト.
 b^*(x) 入札リクエスト  x についての理想入札価格.
(予測が正しいとき)この価格で落札を続けると最終的な CPC が  cost^* に収束することが期待される.
 cost^* 目標 CPC. 広告主が達成したい KPI.
 p_\text{click}(x) 予測 CTR:  p(\text{click} = 1 \mid \text{impression} = 1).
入札リクエスト  x について impression が発生した下での予測 click 確率.

ここで,入札に関してセッション率などの情報が全く入っていないためセッション率をコントロールできない状態になっていることが課題でした.

セッション率予測

セッション率は以下のように,クリックが発生した下でセッションが発生する確率として与えられます.


p_{\text{session}} = p(\text{session} = 1 | \text{click} = 1)

これをCTR 予測と同様に予測する機械学習モデルを構築しています.

基本的な特徴量や予測モデルは LightGBM などの勾配ブースティング決定木,確率補正については Isotonic Regression を用いるなど CTR 予測を踏襲しており,そちらを詳しく知りたい方は関連する記事を読んでいただけると良いかと思います.*1*2*3*4

CTR 予測と大きく異なる点については学習に利用するデータがインプレッションデータではなく,クリックが発生したインプレッションデータのみに絞られる点にあります. これは CVR 予測などと近い問題設定であり,学習空間と推論空間の違いによる選択バイアスの影響による問題などが考えられます.

選択バイアスに対する対策として,クリックが発生していないインプレッションを負例としてランダムにサンプリングする手法や一つのニューラルネットワークで CTR 予測と (クリック後の)セッション率予測を解かせるマルチタスク学習Xiao, 2018 や因果推論の傾向スコアを用いた手法Hlynur, 2024などがありますが,ここでの詳しい紹介は割愛します.

入札への活用

ここでは上記のセッション率予測モデルをどのように入札に活用するかを紹介します.

【失敗パターン】予測 CTR を予測セッション率に置き換える

シンプルな発想として理想入札額の計算を予測 CTR (=インプレッションが発生した下でのクリック確率)ではなくインプレッションが発生した下での予測セッション率に置き換える方法を考えます. ここで,インプレッションが発生した下でセッションが発生する確率は「インプレッションが発生した下でのクリック確率」と「クリックが発生した下でのセッション確率」の積で与えられます.

 p({\text{session} = 1} | \text{impression} = 1) 

\\ = p({\text{click} = 1} | \text{impression} = 1) \times p({\text{session} = 1} | \text{click} = 1)

したがって理想入札額の計算は次のようになります.

 b^*(x) = cost^* \times p_{\text{click}}(x) \times p_{\text{session}}(x)

このように理想入札額を定めた場合,CPCではなくセッション単価をコントロールすることを意味します. もし広告主の KPI がセッション単価であった場合はこのような入札戦略で問題ありませんが,ここで達成したい KPI は CPC + 一定以上のセッション率となっています.

この方法では CPC やセッション率をコントロールできないため,次のように予測セッション率を活用する事例を紹介します.

【成功パターン】従来の理想入札額 + セッション率によるフィルタリング

理想入札額は従来の通り予測 CTR で行った上で,予測セッション率によって「入札を行うか否か」を決定します. 定式化すると次のようになります.

 b^*(x)  = cost^* \times p_{\text{click}}(x) \times \mathbb{I}(p_{\text{session}}(x) \geq P)

 \mathbb{I}(p_{\text{session}}(x) \geq P) は予測セッション率がある確率 P 以上である時に 1,それ以外の時 0 を返す指示関数.

これにより,従来の予測 CTR と落札額の関係を保ったままセッション率が P 以上の入札リクエストだけを落札できるようになるため,CPC とセッション率を同時にコントロールすることができます.

また,このほかにも同一ユーザが 30分以内に再び LP を訪れた場合にはセッション数としてはカウントされないといった仕様も存在するので,同一ユーザに対しては 30分間同じ広告を当てないような設定なども活用しています.

実際にこのようなセッション率による入札フィルタリング処理によって以下のようにセッション率が改善した事例が存在します.

商材タイプ セッション率改善幅
学校関係 17% 改善
不動産関係A 22% 改善
不動産関係B 17% 改善

終わりに

セッション率の予測精度に関しては,いくつかの課題を残しつつも比較的スムーズに実用レベルへ到達することができました.しかし今回得られた最大の学びは,そのモデルを「どのように入札戦略へ組み込み,活用するか」によって最終的な成果が全く異なるという点にあります.

これはRTBの領域に限った話ではありません.機械学習モデルを社会実装する際,単一のモデルに過度に複雑な問題を解かせようとするケースが散見されます.そうではなく,複雑な問題を小さな部分問題に分解し,シンプルなモデルでも解ける形に落とし込んだ上でそれらを統合的に活用するアプローチを模索する方が,実運用上は有効なことがあり得ます.

機械学習エンジニア絶賛採用中

最後に,マイクロアドでは問題設定からサーベイ,開発・運用まで裁量を持ってチャレンジしたいという機械学習エンジニアを募集しています.

ご興味あれば是非以下の採用ページからご応募ください!

recruit.microad.co.jp

参考文献

Optimal Real-Time Bidding for Display Advertising, Zhang, 2014

Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate, Xiao, 2018

A Tutorial on Doubly Robust Learning for Causal Inference, Hlynur, 2024