SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの?...

Preview:

Citation preview

SmartNews Ads の 配信最適化の仕組みは どうなってるの?

SmartNews TechNight Vol.5 2016-01-14

KOMIYA Atsushi

「おまえだれよ?」

• 広告システムの

サーバサイドエンジニア

• アドオークションの設計

• 機械学習や最適化を活用した機能のアドサーバへの導入

• その他バッチ処理の整備

KOMIYA Atsushi

Agenda

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

1. SmartNews における 広告配信の事情

ビジネス的な背景

広告事業者としての立ち位置

• 広告主とメディアの両者を取り持つ Platform

• 広告在庫と広告枠在庫の両方を預かる立場

• SSP ⇔ RTB ⇔ DSP のようにカオスマップ的に分業化された世界とはちょっと異なる

• 当然、必要とされる技術的知識も異なる

UI / UX の特性

広告は「事前」に取得する (プリフェッチ)

• スマートニュースの記事更新は1日4回(朝、昼、夕、晩)

• 広告は、この記事更新のタイミングで合わせて取得する

• タブをめくる前にはすでに、広告が配置されている

広告枠は複数存在する

その他の細かな制約

• チャンネルごとに掲載できる広告の種別が異なる

• チャンネルと広告の親和性を考慮するため

• 全チャンネルを通じて、同じ広告主の広告が たくさん出過ぎないようにする

• 広告主ごとに、プリフェッチで配信される 広告の個数に上限を設定している

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.スムージング配信

2. SmartNews Ads の 配信最適化

広告システムを開発する 当初に考えたこと

最適な広告配信とは何か?

ユーザにはよい広告体験を

広告主にはより多くの成果を

メディアには多くの収益還元を

目的関数が複数ある =

多目的最適化

広告配信は リアルタイム・オンライン

この多目的最適化を オンラインで実現する!

この一年余りの振り返り

• 2014/09 頃、多目的最適化で悩む

• 2014/10 頃、CTR 予測・推定で悩む

• 2015/01 頃、アロケーション最適化で悩む

• 2015/08 頃、CPA 最適化で悩む

• 2015/10 頃、予算スムージング配信で悩む

Filtering

Auction

Allocation

Delivery

Filtering

Auction

Allocation

Delivery

クリエイティブ最適化

CPA 最適化

アロケーション最適化

予算スムージング配信

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

3. オークション設計

広告とオークション

• 広告の世界では、オークションに基づく広告配信はわりと一般的

• RTB のセカンドプライスオークションや

Google AdWords など

• 世間一般の習わしに従って、まず最初にオークションの仕組み広告配信に導入した

オークション方式

by sweet_redbird https://www.flickr.com/photos/18261299@N00/4471631533/

一言にオークションと言えど その方式はいっぱいある

• 第一価格オークション (First-price auction)

• Overture が採用していた

• 第二価格オークション (Second-price auction)

• RTB でお馴染みのオークション

• VCG オークション

• Facebook が採用している

第一価格オークションと 第二価格オークション

Aさん

Bさん

Cさん

¥100!

¥80!

¥60!

第一価格オークション →¥100

第二価格オークション →¥81 (¥80 + 1)

一言にオークションと言えど その方式はいっぱいある

• 第一価格オークション (First-price auction)

• Overture が採用していた

• 第二価格オークション (Second-price auction)

• RTB でお馴染みのオークション

• VCG オークション

• Facebook が採用している

一般化第二価格オークション (Generalized second-price auction, GSP)

•通常の第二価格オークションでは、一つの広告枠をみんなで競り合う = 勝者はただ一人

•一般化第二価格オークションでは、複数個の広告枠を競り合う = 勝者は複数人

•複数の広告枠が存在する場合に適してる

•上位者から順に広告枠を割り当てる

アドオークションの評価額

• SSP ⇔ RTB ⇔ DSP の世界では、入札価格を評価額としたオークションが開催されている

• Google AdWords や Facebook Ads などの広告プラットフォームでは、入札価格 * 品質スコアで計算される広告スコアを評価額としたオークションが開催される

「品質スコア」?

from https://support.google.com/adwords/answer/2454010?hl=ja

「品質スコア」?

from https://support.google.com/adwords/answer/2454010?hl=ja

「広告スコア」?

• 入札価格 * 広告のクリック率 ≈ 1imp の価値

• 「広告のクリック率 (すなわち CTR)」を正しく予測することは、健全なオークションを開催する上で非常に重要

• 当初は Thompson sampling で代用

• ⇒ CTR 予測の詳細はこのあと Lan が解説!

SmartNews Ads の アドオークション

• 一般化第二価格オークションを採用

• 入札価格 * 品質スコア = 広告スコアが評価額

• 品質スコアは予測 CTR + α で算出

• ユーザ・広告主・メディアの三者の多目的最適化をこのオークションで実現する

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

4. クリエイティブ最適化

クリエイティブ最適化の背景

• アドオークションで広告枠を獲得するためには、まずは高い CTR を獲得する必要がある

• 広告の CTR の良し悪しは、クリエイティブ(画像・テキスト) の内容によって左右される

• いわゆる「勝ちクリエイティブ」

クリエイティブ最適化の背景

• 広告配信時は勝ちクリエイティブを求めて、複数のクリエイティブが入稿される

• 勝ちクリエイティブを探すには、パフォーマンスの悪いクリエイティブも同時に配信しなければならない

• 広告主にとって、獲得機会の損失に繋がる

多腕バンディット問題 として解く

by Jeff Kubina https://www.flickr.com/photos/kubina/347687569/

Thompson sampling で CTR を推定する

•いわゆる多腕バンディット問題に対するアルゴリズムの一つ

•クリエイティブそれぞれについて、ベータ分布 B(α, β) から数値をランダムサンプリングして、それを推定 CTR とする

• α はクリックされた数、β はクリックされなかった数 (インプレッション数 - α) を設定する

•最も高い推定 CTR のクリエイティブを配信に利用する

Java での Thompson sampling 高速化

• commons-math3 の BetaDistribution#sample() を利用すると、実装的には楽できる

• ただし累積分布関数の逆関数を呼び出していたり乱数生成がイケてなくて速度性能がよろしくない

• ベータ分布からのランダムサンプリング機能を自前実装した

• 結果的に 100 倍ぐらいは高速化できた ☺

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

5. アロケーション最適化

アロケーション = 広告配置

• SmartNews には広告枠がたくさんある

• 最適な広告を、最適な広告枠に配置したい

• 広告主により多くの成果を提供する

• メディアにもより多くの収益を還元する

• ユーザごと・アプリ利用のタイミングごとに最適な広告枠は異なる

プリフェッチにまつわる悩み

• ユーザがまさに今、見ようとしているタブ (チャンネル)を把握できない

• すなわち、最適な広告を最適な広告枠に 配置するのが難しい

• 一方で広告ログから、どの広告枠が見られやすいかを定量的に、視認確率として推定できる

Greedy な アロケーションアルゴリズム?

• 最適な広告枠から順に、オークションで勝利した上位の広告を配置すれば OK か?

• 答えは No. 数々の制約がそれを阻む

• チャンネルごとの広告種別の制限

• 広告主ごとの広告数上限の制限

最小費用フロー問題 に置き換えて解く

by Sean https://www.flickr.com/photos/skez/111816806/

最小費用フロー問題 (Minimum cost flow problem)

from http://lpsolve.sourceforge.net/5.5/DIMACS_maxf.htm

最小費用フロー問題 (Minimum cost flow problem)

source sink

• 頂点に広告と広告枠を配置し、辺に {容量: 1、費用: -1 * 広告スコア * 広告枠の視認確率} を設定する

広告 広告枠

最小費用フロー問題 (Minimum cost flow problem)• 最小費用フロー問題のソルバーには Successive

shortest path アルゴリズムを採用

• https://www.topcoder.com/community/data-science/data-science-tutorials/minimum-cost-flow-part-two-algorithms/

• このアロケーション最適化の導入により、CTR は約1.15倍、収益は約1.1倍に改善 ☺

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

6. CPA 最適化

運用型広告における 広告主・代理店のジレンマ

• ROAS を高めたい → CPA を低く抑えたい

• CPA を低く抑えたい → CPC を低くする

• CPC を低くする → 広告スコアが下がる

• 広告スコアが下がる → 配信ボリュームが減る

• 配信ボリュームが減る → 獲得が減る ☹

獲得数をなるべく維持しつつ CPA を抑えたい

どうするか?

ユーザごとに CVR を予測する

• CPA = CPC / CVR

• 目標とする CPA とその時点の CPC から逆算し、 最低限必要な CVR を推定できる

• ユーザごとの CVR 予測結果から、配信する・しないをフィルタリングで制御

• ⇒ CVR 予測の詳細はこのあと Lan が解説!

予測 CVR の分布

例えばこんな分布

CPA 最適化の戦略

目標の CPA から逆算された平均的に必要となる CVR の

下限値

CPA 最適化の戦略

予測 CVR がこの下限値を 超える場合は積極的に配信

CPA 最適化の戦略

予測 CVR がこの下限値を

下回る場合は段階的になるように 確率的に絞り込んで配信

CPA 最適化の戦略

実績 CPA 的に余裕があれば

CVR の許容下限値を下げる

獲得数を維持しながら CPA を最適化できるようになった☺

1. SmartNews における広告配信の事情

2. SmartNews Ads の配信最適化

3.オークション設計

4.クリエイティブ最適化

5.アロケーション最適化

6. CPA 最適化

7.予算スムージング配信

7. 予算スムージング配信

予算スムージング配信の背景

• ターゲティングメニューが充実してきた

• 男女推定、Lookalike、キーワード…

• 代理店各社の広告運用が洗練されてきた

• クリエイティブワーク、広告キャンペーンの細分化、ターゲティングの活用…

• 広告予算の利用は Greedy

予算スムージング配信の背景

• その結果、1日の広告予算を十分に利用しきれないキャンペーンが多く生じてきた

• 広告主的には、獲得機会の減少に繋がる

• メディアとしても、収益機会の損失になる

• 広告予算の利用を最適化したい…

線形計画問題?

• maximize: 利用した広告予算の総額

• subject to:

• 各広告の1日あたりの予算制約

• 各広告が得られる想定クリック数

• ターゲティングを考慮

• その他制約…

線形計画問題?

• 制約条件を厳密に与え、オフラインにて LP ソルバーで解けば最適解は得られる

• しかし、状況はオンラインで刻々と変化する

• 新たな広告キャンペーンの入稿

• 広告予算の変更、ターゲティングの変更…

オンライン二部 マッチング問題として解く

by Ashleigh W https://www.flickr.com/photos/108099221@N02/10751884266/

オンライン二部マッチング問題(Online bipartite matching problem)

from https://www.youtube.com/watch?v=JpapV5DrBek

オンライン二部マッチング問題(Online bipartite matching problem)

• 二部グラフの一方の頂点集合のみが事前に与えられる

• もう一方の頂点が1つずつ順に到着する

• 両サイドの頂点同士を辺 (エッジ) でつなぐ

• 辺をつなぐ際に、各種制約が存在する

• 辺の数をできるかぎり最大化する

オンライン二部マッチング問題(Online bipartite matching problem)

from https://www.youtube.com/watch?v=JpapV5DrBek

広告 広告枠 (逐次到着)

予算制約 etc

MSVV アルゴリズム

• オンライン二部マッチング問題を一般化した

AdWords problem に対するアルゴリズム

• http://web.stanford.edu/~saberi/adwords.pdf • シミュレーション結果より、CTR・収益ともに約

1.02 倍に改善 ☺

• この MSVV をベースにした最適化アルゴリズムを実証実験中

まとめ

要求されるのはハイレベルな エンジニアリング能力

• SmartNews の広告配信は一筋縄ではいかない

• オークションに対する深い造詣 • 最適化問題に関する知識 • エコシステムの設計能力

要求されるのはハイレベルな エンジニアリング能力

• オンライン・リアルタイム環境という制約 • 必要ならば「車輪の再発明」も辞さない

• ただし「高速な車輪の再発明」

要求されるのはハイレベルな エンジニアリング能力

• チームメンバーもとにかくハイレベル • アロケーション最適化はインターンの成果

• 最適化問題やオークションのエキスパートな方と一緒にお仕事したいと思っております!

ありがとうございました!

Recommended