Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SmartNews Adsの配信最適化のお話
Search
Ryoichi Nishio
June 20, 2018
Research
4
6k
SmartNews Adsの配信最適化のお話
SmartNews Adsでの運用型広告の自動入札機能における、入札価格の最適化の理論について解説します。
(Line Ad Meetup 2018/06/20 にて発表)
Ryoichi Nishio
June 20, 2018
Tweet
Share
Other Decks in Research
See All in Research
Large Vision Language Model (LVLM) に関する最新知見まとめ (Part 1)
onely7
23
5.5k
[依頼講演] 適応的実験計画法に基づく効率的無線システム設計
k_sato
0
230
アプリケーションから知るモデルマージ
maguro27
0
240
VisFocus: Prompt-Guided Vision Encoders for OCR-Free Dense Document Understanding
sansan_randd
1
440
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
4.9k
Tiaccoon: コンテナネットワークにおいて複数トランスポート方式で統一的なアクセス制御
hiroyaonoe
0
310
Weekly AI Agents News! 9月号 論文のアーカイブ
masatoto
1
170
TransformerによるBEV Perception
hf149
1
650
Weekly AI Agents News! 10月号 論文のアーカイブ
masatoto
1
470
データサイエンティストをめぐる環境の違い 2024年版〈一般ビジネスパーソン調査の国際比較〉
datascientistsociety
PRO
0
980
ラムダ計算の拡張に基づく 音楽プログラミング言語mimium とそのVMの実装
tomoyanonymous
0
370
QGISハンズオン事に質問のあったProjectのGeoPackageへの保存方法についての、補足の資料です。
wata909
0
120
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Designing for Performance
lara
604
68k
KATA
mclloyd
29
14k
How STYLIGHT went responsive
nonsquared
96
5.3k
How to Ace a Technical Interview
jacobian
276
23k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
510
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Building Adaptive Systems
keathley
39
2.4k
Statistics for Hackers
jakevdp
797
220k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Transcript
SmartNews Ads ͷ৴࠷దԽͷ͓ ඌ ྄Ұ June 20, 2018 εϚʔτχϡʔεגࣜձࣾ
ࣗݾհ • 2010 – 2013 ૉཻࢠཧͷത࢜ɾ ϙευΫ • 2013 εϚʔτχϡʔεೖࣾ
ΞϧΰϦζϜͷઃܭ͕ಘҙͰɺ 2017 ͔Βࠂͷ৴࠷దԽʹऔΓ ΜͰ͍·͢ɻࠂ։ൃνʔϜͷΤϯ δχΞϦϯάϚωʔδϟΛ͍ͯ͠·͢ɻ 1 / 23
SmartNews ͱ SmartNews Ads ͷ հ
SmartNews ͷհ ੜ׆ऀͷʮຖͷश׳ʯ ຊ࠷େͷχϡʔεΞϓϦ ݄ؒສ ΞΫςΟϒϢʔβʔ Ҏ্ ఏܞഔମ 4NBSU'PSNBUରԠ
̍ར༻ ਓ͋ͨΓ ˞݄ݱࡏ ܦฏۉ͕Ұ࣌ٸམ ੈքג҆ͷݯ શࠃ৽ฉ ܦࡁใΦϯϥΠϯ टձஊͰΞδΞͷ ྗਤͲ͏มΘΔ 2 / 23
SmartNews Ads ͷհ SmartNews Mixi ʹࠂ৴Λߦͳ͍·͢ 3 / 23
७ࠂͱӡ༻ܕࠂ ७ࠂ ৴Λଋ͢Δ (༧ܕ) ӡ༻ܕࠂ ࠂओ͕ఆΊͨೖࡳՁ֨ʹԠͯ͡ɺ৴͕૿ݮ͢Δ (ΦʔΫ γϣϯܕ) ࣗಈೖࡳػೳ (oCPC)
͕͋Γ·͢ 4 / 23
७ࠂͱӡ༻ܕࠂ ७ࠂ ৴Λଋ͢Δ (༧ܕ) ӡ༻ܕࠂ ࠂओ͕ఆΊͨೖࡳՁ֨ʹԠͯ͡ɺ৴͕૿ݮ͢Δ (ΦʔΫ γϣϯܕ) ࣗಈೖࡳػೳ (oCPC)
͕͋Γ·͢ ࠓͷςʔϚӡ༻ܕࠂͷࣗಈೖࡳػೳͰ͢ʂΤϯδχΞϦϯ άͷػցֶशͷҰͤͣʹɺ࠷దೖࡳՁ֨Λܾఆ͢Δཧ ͷհΛ͠·͢ 4 / 23
ΦʔΫγϣϯܕࠂͷੈք
CV ൃੜ·Ͱͷ 3 ͭͷน (WR, CTR, CVR) ӡ༻ܕࠂʹ͓͚ΔࠂओͷతɺCV Λൃੜͤ͞Δ͜ͱ •
imp: ݟͨ (දࣔͨ͠) • click: ΫϦοΫ • cv: Πϯετʔϧɺߪ ೖͳͲ auction 1 ճʹର͢Δ cv ൃੜ֬ cv = WR · CTR · CVR 5 / 23
ೖࡳՁ֨ b ͱίετ • ࠂओɺೖࡳՁ֨ (bid price) b Λࣗ༝ʹઃఆͰ͖Δ •
ೖࡳՁ֨ b Λ্͛Δͱ auction Ͱউͪ͘͢ͳΔ (ޙड़) ͕ɺ ͦͷίετ૿͑ͯ͠·͏ɻ • ͜͜Ͱ՝ۚϙΠϯτ click ͱ͢Δɻ(imp ͷέʔε͋Δ) ΫϦοΫ୯ՁͱೖࡳՁ֨ • 1st price auction: ΫϦοΫ୯Ձ = ೖࡳՁ֨ b • 2nd price auction: ΫϦοΫ୯Ձ ≤ ೖࡳՁ֨ b auction 1 ճ͋ͨΓͷίετͷظ cost ≤ WR · CTR · b 6 / 23
Auction ͱείΞ auction: ͦΕͧΕͷࠂʹείΞΛ༩͑ͯιʔτ͢Δ είΞ͕ߴ͍ࠂͷॱʹɺimp ͷൃੜ͍͢͠ʹஔ͢Δ (RTB ͱҧͬͯɺෳͷࠂΛฒ͍ͯ͘) είΞͷఆٛ (ྫ)
score = CTR · b : imp 1 ճ͋ͨΓͷظച্ (ͷ্ݶ) • CTR ༧ଌΛ͏ • είΞ b ʹൺྫ͢ΔͷͰɺb ͕ߴ͍΄ͲΦʔΫγϣϯʹ উͬͯ imp ͕ൃੜ͍͢͠ = WR b ͷ૿Ճؔ 7 / 23
·ͱΊ auction 1 ճ͋ͨΓͷ cv ͱ cost ͷظ (࠶ܝ) cv
= WR(b) · CTR · CVR cost ≤ WR(b) · CTR · b ࠂओʹͱͬͯͷɺb Λ্͛Δ͜ͱͷϝϦοτɾσϝϦοτ • cv ↑ (Good) • cost ↑, CPA = cost/cv ↑ (Bad) : ࠂओʹͱͬͯͷɺ࠷దͳ b ͱ? യવͱݴ͑ɺCV ͱ cost(or CPA) ͱͷόϥϯεΛߟ͑ͯ b ΛܾΊΕྑ͍ɻ۩ମతʹͲͷΑ͏ͳΛղ͚ྑ͍ͷ ͔ʁ͜ΕΛࠓ͔Βߟ͍͖͑ͯ·͠ΐ͏ʂ 8 / 23
ࣗಈೖࡳ (oCPC)
Ҏ߱ͷɺ Weinan Zhang, Shuai Yuan, Jun Wang Optimal Real-Time Bidding
for Display Advertising (2014) ͱ͍͏จͷ༰ΛΞϨϯδͨ͠ͷʹͳ͍ͬͯ·͢ 9 / 23
Auction ͝ͱͷ”࠷దͳೖࡳՁ֨”ΛͲ͏ఆࣜԽ͢Δ? auction ͷಛϕΫτϧΛ x ͱ͢Δɻ(ࠂϦΫΤετΛߦͳͬͯ ͍ΔϢʔβʔͷଐੑߦಈཤྺͳͲ) ೖࡳՁ֨ b
x ͷؔͱ͢Δ ఆࣜԽͷํ ଋറ͖݅ͷ࠷దԽͱΈͳ͢ɻ ࣍ͷଋറ݅Λຬͨ͢ൣғͰɺظ CV ͕࠷େԽ͞ΕΔΑ͏ ͳɺؔ b(x) ͕࠷దͳೖࡳՁ֨Ͱ͋Δ ଋറ݅ CPA ͷظ͕ɺઃఆ͞Εͨඪ CPA(tCPA) ʹͳΔ (ࠓͷͰ৮Εͳ͍͕) ଋറ݅ͱͯ࣍͠ߟ͑ΒΕΔ ଋറ݅’ 1 ͷظ Cost ͕ઃఆ͞Εͨ༧ࢉ B ҎԼʹͳΔ 10 / 23
ͷֶతఆࣜԽ • ͋ΔΩϟϯϖʔϯ c ʹͯٞ͠ΛਐΊΔɻ༷ʑͳม ʹఴࣈ c Λ͚ͭΔ͖ͱ͜ΖΛɺݟ͢͞ͷͨΊʹলུ͢Δ • auction
ͷಛϕΫτϧ x ͷ֬ີΛ f (x) ͱ͢Δ (࣍ݩΛ D ͱ͢Δ) • WR b ͱ x ͷɺCTR ͱ CVR x ͷؔͰ͋Δͱ͢Δ • (ෆ߸͕ѻ͍ʹ͍͘ͷͰ) 1st price auction Ͱ͋Δͱ͢Δ auction 1 ճ͋ͨΓͷ CV ͱ Cost ͷظ (x ͷΛߟྀ) CV [b] = ∫ dDx f (x)WR(b(x), x)CTR(x)CVR(x) COST[b] = ∫ dDx f (x)WR(b(x), x)CTR(x)b(x) 11 / 23
ͷֶతఆࣜԽ (࠶ܝ)CV ͱ Cost ͷظ CV [b] = ∫ dDx
f (x)WR(b(x), x)CTR(x)CVR(x) COST[b] = ∫ dDx f (x)WR(b(x), x)CTR(x)b(x) CPA ͷظ͕ઃఆ͞Εͨඪ CPA(tCPA) ʹͳΔ݅ COST[b] − tCPA · CV [b] = 0 (1) ଋറ݅ (1) Λຬͨ͢ൣғͰɺCV [b] Λ࠷େԽ͢Δؔ b(x) ͕ ࠷దͳೖࡳՁ֨Ͱ͋Δɻ: b(x) ΛٻΊΑɻ 12 / 23
Ұճཱͪࢭ·ͬͯݕ౼͢Δ ଋറ݅ COST[b] − tCPA · CV [b] = ∫
dDx f (x)WR(b(x), x)CTR(x) [b(x) − tCPA · CVR(x)] = 0 ҎԼͷ b(x) ඃੵ͕ؔ 0 ʹͳΔͷͰଋറ݅Λຬͨ͢ b(x) = tCPA · CVR(x) (2) ࣜ (2) ͕ CV [b] Λ࠷େԽ͢Δͷ͔?ͦΕͱɺ࠷దͳೖࡳՁ֨ ผʹ͋Δͷ͔? ͜ͷʹ͜Ε͔Β͑·͢ʂ 13 / 23
४උ 1: ଋറ͖݅࠷େԽϥάϥϯδϡͷະఆ๏Ͱղ͘ ྫ 1 f (x, y) Λ࠷େԽ͢Δ (x,
y) Λ୳ͤ ∂f ∂x = 0 , ∂f ∂y = 0 ྫ 2 ଋറ݅ g(x, y) = 0 ͕͋Δͱ͖ʹ f (x, y) Λ࠷େԽ͢Δ (x, y) Λ୳ͤ ϥάϥϯδϡͷະఆ๏ (ϥάϥδΞϯ L Λఆٛ͠ɺ͋ͱ ಉ༷ʹඍΛ 0 ͱ͢ΕΑ͍) L(x, y; λ) ≡ f (x, y) + λg(x, y) ∂L ∂x = 0 , ∂L ∂y = 0 , ∂L ∂λ = 0 14 / 23
४උ 2: ൚ؔͱม ؔͱ൚ؔ ؔͱΛ༩͑ΔͱΛฦ͢ͷɻ ྫ: f (x) = x2
ͱ͢Δɻf (x) x ͷؔͰ͋Δɻ ൚ؔͱɺؔΛ༩͑ΔͱΛฦ͢ͷɻ ྫ: I[f ] = ∫ dx(f (x))2 ͱ͢ΔɻI[f ] f ͷ൚ؔͰ͋Δɻ CV [b], COST[b] b ͷ൚ؔͰ͋Δ มͱɺ൚ؔͷඍͷ͜ͱͰ͋Δ ྫ: f (x) = x2 Λ x Ͱඍ͢Δͱ? ∂f ∂x = 2x ྫ: I[f ] = ∫ dx(f (x))2 Λ f Ͱม͢Δͱ? δI δf (x) = 2f (x) (ඃੵؔ f 2 Λ f Ͱඍ͢Ε͍͍) 15 / 23
४උ͕Ͱ͖ͨͷͰɺ࠷దͳೖࡳՁ֨ΛٻΊ͍ͯ͜͏ ϥάϥδΞϯ: L b ͷ൚ؔɺ͔ͭɺλ ͷؔ L[b; λ] ≡
CV [b] + λ(SALES[b] − tCPA · CV [b]) ҎԼΛຬͨ͢ b(x) ͕࠷దͳೖࡳՁ֨Ͱ͋Δ δL δb(x) = 0, ∂L ∂λ = 0 16 / 23
४උ͕Ͱ͖ͨͷͰɺ࠷దͳೖࡳՁ֨ΛٻΊ͍ͯ͜͏ ϥάϥδΞϯ: L b ͷ൚ؔɺ͔ͭɺλ ͷؔ L[b; λ] ≡
CV [b] + λ(SALES[b] − tCPA · CV [b]) ҎԼΛຬͨ͢ b(x) ͕࠷దͳೖࡳՁ֨Ͱ͋Δ δL δb(x) = 0, ∂L ∂λ = 0 ༨ஊ ʮ࠷খ࡞༻ͷݪཧʯΛͬͯ b(x) ͷӡಈํఔࣜΛٻΊΔͱ͍ ͏ཧֶͷͱಉ༷Ͱ͢ 16 / 23
్தܭࢉ: ڵຯͷ͋Δਓ͚͍ͩͬͯͩ͘͞ ݟ͢͞ͷͨΊҎԼͷΑ͏ʹུه͢Δɻ WR′(b, x) = ∂WR ∂b (b, x)
มΛܭࢉ... δL δb(x) = f (x)WR′(b(x), x)CTR(x)CVR(x) + λf (x)CTR(x) × [ WR′(b(x), x)b(x) + WR(b(x), x) − tCPA WR′(b(x), x)CVR(x) ] = 0 17 / 23
͜Ε͕࠷దͳೖࡳՁ֨ͩ! 18 / 23
͜Ε͕࠷దͳೖࡳՁ֨ͩ! ࠷దͳೖࡳՁ֨ b(x) ͕ຬͨ͢ํఔࣜ ( b(x) + WR(b(x), x) WR′(b(x),
x) ) = (λ−1 − tCPA) · CVR(x) (3) ∫ dDx f (x)WR(b(x), x)CTR(x) [b(x) − tCPA · CVR(x)] = 0 (4) ࣜ (3) ʹΑͬͯ b(x) ͕ x ʹΑΒͳ͍ λ ʹґଘͨ͠ܗͰٻ·Δɻ ͜ΕΛࣜ (4) ʹೖ͢Δ͜ͱͰ λ ͕ܾఆ͞ΕΔɻ ͜ΕҎ্ͷղੳܭࢉ WR(b, x) ͷؔܗΛܾΊͳ͍ͱਐΊͳ͍ɻ 18 / 23
Winning-Rate WR(b, x) ʹ͍ͭͯ WR(b, x) ͷఆٛ (෮श) ೖࡳՁ֨ b
Ͱ auction ʹࢀՃͨ͠ͱ͖ʹɺimp ͕ൃੜ͢Δ֬ɻ • imp ൃੜ֬ࠂܝࡌҐஔ·ͰͷεΫϩʔϧྔͳͲʹґଘ ͢ΔͷͰɺαʔϏεʹΑͬͯେ͖͘ҧ͏ͣ • imp ൃੜ֬Ϣʔβʔͷੑ࣭ (x) ʹڧ͘ґଘ͢Δ • auction ʹࢀՃ͢ΔଞͷࠂͷྔͳͲʹґଘ͢Δ • b ґଘੑ score = CTR(x) · b ͷܗͰݱΕΔͣ ϩάੳͳͲ͔Β WR(b, x) Λܾఆ͢Δͷ͕ਅ໘ͳํ๏ͩΖ͏ɻ ͜͜ͰղੳܭࢉՄೳͳϞσϧؔΛͯΊͯΠϝʔδΛ͑ ͍ͨɻ 19 / 23
έʔε 1: b ͷ͖ؔ ࣍ͷܗΛԾఆͯ͠ΈΑ͏ WR(b, x) = G(x)(CTR(x)b)α G(x)
x ͷҙͷਖ਼ͷؔɺα ҙͷਖ਼ͷఆɻ ͜ͷ߹ɺࣜ (3),(4) ΑΓɺ࠷దͳ b(x) ࣜ (2) b(x) = tCPA · CVR(x) Ͱ͋Δ͜ͱ͕ࣔ͞ΕΔ (εΰΠ: G(x), α, f (x), CTR(x) ʹґଘ͠ͳ͍!) 20 / 23
έʔε 2: ্ݶ͋Γͷܗ έʔε 1 ͷɺWR ֬ͳͷʹେ͖ͳ b Ͱ 1
Λ͑ͯ͠ ·͏Ͱ͋Δɻ(b ͕େ͖͗͢Δ߹ഁ͢Δɻ) ͜ͷΛվળ ͢ΔͨΊ࣍ͷܗΛԾఆͯ͠ΈΑ͏ Ծఆ (b → ∞ ͕༗ݶͳྫ) WR(b, x) = G(x) CTR(x)b c + CTR(x)b G(x) x ͷҙͷਖ਼ͷؔɺc ҙͷਖ਼ͷఆɻ ࣜ (3) ͔ΒҎԼ͕ٻ·Δɻ(͜ΕΛࣜ (4) ʹೖ͢Δ͜ͱͰ λ ͕ఆ ·Δ) b(x) = c CTR(x) ( −1 + √ 1 + CTR(x) c (tCPA − λ−1) CVR(x) ) 21 / 23
έʔε 1,2 ͷൺֱ case2 ͰɺείΞ (= CTR · b) ΛͲΜͳʹ্͛ͯ
WR ʹ্ ݶ͕͋ΔͷͰɺCTR, CVR ͕ྑ͍߹ʹɺ૬ରతʹೖࡳՁ֨Λ্ ͛͗͢ͳ͍Α͏ʹ͠ɺͦͷ CTR, CVR ͕͍߹ʹߴΊʹೖ ࡳ͢Δͷ͕࠷దઓུʹͳΔɻ 22 / 23
·ͱΊ ࡾߦ·ͱΊ • ೖࡳՁ֨ͷ࠷దԽϥάϥϯδϡͷະఆ๏ͱม๏Λ ͬͯղ͚Δ • WR ΛΔ͜ͱ͕࣮ॏཁͩ • WR
ͷݟ͕͋·Γͳ͚Εɺb(x) = tCPA · CVR(x) ͱ͢ Δͷ͕࣍ળͷࡦͱͯ͠༗ޮͩ (έʔε 1) ͨͩ͠ຊͷ࠷ద ͳೖࡳՁ֨ͬͱෳࡶͳܗΛ͍ͯ͠Δ (ྫ:έʔε 2) Ԡ༻ྫ • ༧ࢉΛଋറ݅ͱ͢Δ߹ • ϑϦʔΫΤϯγʔ੍ԼͰͷϦʔν࠷େԽ 23 / 23