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
5.8k
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
SSII2024 [OS2] 大規模言語モデルと基盤モデルの射程
ssii
PRO
0
450
The past, present, and future of local-first
ept
0
760
Weekly AI Agents News! 7月号 論文のアーカイブ
masatoto
1
150
Active Adaptive Experimental Design for Treatment Effect Estimation with Covariate Choices
masakat0
0
160
20240710_熊本県議会・熊本市議会_都市交通勉強会
trafficbrain
0
670
外積やロドリゲスの回転公式を利用した点群の回転
kentaitakura
1
490
"多様な推薦"はユーザーの目にどう映るか
kuri8ive
3
350
SSII2024 [OS1] 現場の課題を解決する ロボットラーニング
ssii
PRO
0
510
Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences
sgk
0
230
【論文解説】KAN: Kolmogorov-Arnold Networks
tamoharu
1
170
SSII2024 [SS1] 拡散モデルの今 〜 2024年の研究動向 〜
ssii
PRO
2
2.1k
JMED-LLM: 日本語医療LLM評価データセットの公開
fta98
4
940
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
GitHub's CSS Performance
jonrohan
1029
450k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Visualization
eitanlees
142
15k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
23
590
Bash Introduction
62gerente
608
210k
Into the Great Unknown - MozCon
thekraken
28
1.4k
How to train your dragon (web standard)
notwaldorf
85
5.6k
Unsuck your backbone
ammeep
667
57k
Building an army of robots
kneath
302
42k
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