こんにちは、株式会社サイバーエージェントメディア統括本部/アドテクノロジー開発部の林欣朋と秋葉原ラボのTristan Irvineです。先日サイバーエージェントグループの技術カンファレンスCA BASE CAMP 2019に登壇しお話させていただいた「進化する広告配信ロジックとDSP戦略」について解説させていただきます。
発表スライドはこちらになります。
プロダクトの紹介と配信ロジックについて
メディア統括本部/アドテクノロジー開発部では「Ameba-Infeed」と「Ameba-DSP」というプロダクトの開発・運用をしています。
Ameba-Infeed
Amebaのオーディエンスデータを活用し、良質な自社メディア枠への広告配信が可能。
Ameba-DSP
Open-RTBでSSPと接続することで外部の様々なメディアに配信可能。
Ameba-Infeedは自社メディアへの広告配信のため、CPM(1,000impressionあたりの売上)が一番高い広告を配信することで売上を最大化することができます。
一方、Ameba-DSPの場合はRTBという方式で1impression毎にオークションが行われ、オークションに勝った時点で入札CPMでの支払いが発生します。
そのため、算出したCPMのまま入札をしてしまうと支払額と売上が同じ額となり、プロダクトとしての利益が得られないため、CPMからマージンを引いた入札額を算出しその額が一番高い広告を配信します。
以降では、RTBの場合に適切なマージンをどう設定し入札を行うかの戦略をオークション方式毎に説明していきます。
入札戦略
ファーストプライスオークション
ファーストプライスオークションの場合、一番高い入札額を提示したDSPがオークションに勝利し、その入札額をSSPに支払うことで広告を配信することができます。
この時の入札戦略は下記のようになります。
オークションで勝利するためには他のDSPよりも高い入札額を提示しなければいけません。そのため、なるべくマージンを低く設定したいが、事業として成立させるために最低限の粗利を確保する必要があります。
マージンを低く設定すると勝率は上がる一方で粗利は下がります。逆に、マージンを高く設定すると勝率は下がり粗利は増えます。
このトレードオフを考慮し最適なマージンを決定する必要があります。
セカンドプライスオークション
セカンドプライスオークションは、一番高い入札額を提示したDSPがオークションに勝利するという点はファーストプライスオークションと変わらないですが、SSPに支払う金額は2番目に高い金額を提示したDSPの入札額となります。
この場合の入札戦略はもう少し複雑になります。
勝率と粗利のトレードオフの関係はセカンドプライスオークションでも変わりません。しかし、スライドの図を見るとわかりやすいですが、実際のCPMと2社目の入札額の差が自分たちが得られる粗利となるため、入札額がこの間になるようにマージンを設定するとどんな入札額でも粗利は一定となります。
そのように考えると、究極的にはマージンを設定しなければ勝率は最大となり、セカンドプライスにより粗利を得ることが出来るということになります。
しかし実際にはCPMの予測精度を考慮する必要があります。
入札額のベースとなるCPMは予測システムによって算出されています。
ただし、予測精度は常に完璧ではないので、誤差が生じる可能性があります。
この時、入札額をその誤差の範囲内になるようにマージンを設定してしまうと、支払った金額よりも実際に得られる粗利が少なくなり、損失を被ってしまいます。
そのため、予測システムはプロダクトにとってとても重要なものとなっています。
下記のスライドは、各予測の精度がそれぞれのプロダクトに与える影響をまとめたものになります。
予測システム
ここからは予測システムについて説明していきます。
上記は予測システムの概念図となっています。上の4システムが機械学習システムです。
Ad-Serverから配信された広告が表示されるとImpressionログが、クリックされるとClickログがログ集計サーバーに送られてきて、そこから機械学習システムへとログが転送されてきます。
Data-Joiner
当然ですが、Impressionが発生してからClickが発生するまでには時間差があります。
そのためData-JoinerでImpressionログが到達してから一定時間Clickログが送られてくるのを待ち、クリックされたかどうかというフラグを付与し正例・負例のデータとします。
Aggregator
Aggregatorではログから学習に必要なデータを抽出します。また、ログから取得できないデータ等もここで取得し、学習データを生成してLearnerに送ります。
ログから取得できないデータの一例としては、ユーザーの広告の接触履歴や一部のクラスタリング情報などがあります。このようなデータは、データ量が多すぎてログに含めることができないためAggregatorで取得しています。
Learner
送られてきたデータを学習しモデルを生成します。
モデルは常に進化を繰り返すため、複数のモデルを同時に学習できるようになっています。
Predictor
Learnerによって生成されたモデルを使用して実際の予測値を返すAPIサーバーです。
こちらも複数のモデルの予測値を返せるようになっています。
アルゴリズムを選択する上で重要視しているのは、配信データをいかに早く学習し予測値に反映させるかという点です。
また、予測で使われるデータはスパースなデータという特徴があり、数回しか配信しないドメインや広告、ユーザーの場合でも予測をしないといけないため、スパースデータをうまく利用できるアルゴリズムが求められます。
これらの点を考慮した結果Factorization Machineを採用しています。
Ameba-Infeedは自社メディア内への広告配信なので、メディアへ対する支払いが発生しません。そのため、相対的に高いCPMの広告がどれかを知ることができれば良いのですが、Ameba-DSPの場合はこれまで説明してきたように、正確なCPMを知ることがとても重要となります。
そこで、FMで算出された予測値をIsotonic回帰を用いて調整することで絶対値のキャリブレーションを改善しています。
予測で使われている特徴量の一部をピックアップした表がこちらになります。
大きく分類すると広告主に関する特徴量とユーザーに関する特徴量があり、どんな特徴量を使うと予測精度が改善するかをチームで検証してA/Bテストを繰り返しながら追加しています。
本セッションでは、「時間帯クラスタ」と「ユーザー興味関心」クラスタについて説明しました。
上記クラスタは今回無理やり解釈を与えたのですが、このようにユーザーを分類したものを作成し、特徴量として使用しています。
ユーザの広告の接触履歴を使って特徴量を作ってます。接触した各広告の文章をベクトル化して、接触アクションによって足し合わせていきます。Click、Conversionの場合はおそらくこのユーザはこの広告に興味あるので足し合わせ、Impressionだけだと興味がない広告かもれないのでベクトルを引いています。
ユーザベクトルを生成してからクラスタリング行い、ユーザ興味関心クラスターを作成します。これにより同じ行動履歴のユーザーがそこまで多くなくても、そのユーザの興味関心をある程度推定し、パーソナライズされた配信を行うことが可能となります。
DSP入札戦略改善
これまで様々な改善が行われた結果DSPの売上が増加し、予測精度の改善により粗利率も増加してきました。
しかし、プロダクトの成長のためには粗利を多く取ることよりも、広告主がより満足できるプロダクトであるべきだと考えています。
そこで、増加した粗利を入札CPMに上乗せして、広告主の広告配信量を更に増やせる機能を作りました。
事業的に必要な粗利率を定義し、そこから超過している分を入札額に加算することでマージンを抑えるようにしています。PID制御という手法を使い定義した粗利率になるように調整していきます。
超過した粗利を利用して入札額だけを上げるため、広告効果はそのままで広告主の勝率を上げ配信量を増やすことが可能となります。
最後に
今回の発表では、配信ロジックの基本的な考え方とDSPの入札戦略、また、そこで必要になる予測システムについてお話いたしました。
メディア統括本部/アドテクノロジー開発部では自社メディアの収益を最大化することと、広告主の利益を最大化することを目的に日々様々な分析や開発を行っています。
今後も更に改善を続け、その結果を発表していけたらと思います。
アドテクという分野はどんなことをしているか分かりづらい部分が多いと思いますが、この記事を通して興味を持っていただけたら嬉しく思います。