Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SmartNews Adsの配信最適化のお話

SmartNews Adsの配信最適化のお話

SmartNews Adsでの運用型広告の自動入札機能における、入札価格の最適化の理論について解説します。
(Line Ad Meetup 2018/06/20 にて発表)

Ryoichi Nishio

June 20, 2018
Tweet

Other Decks in Research

Transcript

  1. ࣗݾ঺հ • 2010 – 2013 ૉཻࢠ෺ཧͷത࢜ɾ ϙευΫ • 2013 εϚʔτχϡʔεೖࣾ

    ΞϧΰϦζϜͷઃܭ͕ಘҙ෼໺Ͱɺ 2017 ೥͔Β͸޿ࠂͷ഑৴࠷దԽʹऔΓ ૊ΜͰ͍·͢ɻ޿ࠂ։ൃνʔϜͷΤϯ δχΞϦϯάϚωʔδϟΛ͍ͯ͠·͢ɻ 1 / 23
  2. SmartNews ͷ঺հ ੜ׆ऀͷʮຖ೔ͷश׳ʯ ೔ຊ࠷େͷχϡʔεΞϓϦ ݄ؒສ ΞΫςΟϒϢʔβʔ  Ҏ্ ఏܞഔମ 4NBSU'PSNBUରԠ਺

    ̍೔໿෼ར༻ ਓ͋ͨΓ  ˞೥݄ݱࡏ ೔ܦฏۉ͕Ұ࣌ٸམ ੈքג҆ͷ਒ݯ஍͸ શࠃ৽ฉ ܦࡁ଎ใΦϯϥΠϯ ट೴ձஊͰΞδΞͷ ੎ྗਤ͸Ͳ͏มΘΔ 2 / 23
  3. ७޿ࠂͱӡ༻ܕ޿ࠂ ७޿ࠂ ഑৴਺Λ໿ଋ͢Δ (༧໿ܕ) ӡ༻ܕ޿ࠂ ޿ࠂओ͕ఆΊͨೖࡳՁ֨ʹԠͯ͡ɺ഑৴਺͕૿ݮ͢Δ (ΦʔΫ γϣϯܕ) ࣗಈೖࡳػೳ (oCPC)

    ͕͋Γ·͢ ࠓ೔ͷςʔϚ͸ӡ༻ܕ޿ࠂͷࣗಈೖࡳػೳͰ͢ʂΤϯδχΞϦϯ άͷ࿩΋ػցֶशͷ࿩΋Ұ੾ͤͣʹɺ࠷దೖࡳՁ֨Λܾఆ͢Δཧ ࿦ͷ঺հΛ͠·͢ 4 / 23
  4. CV ൃੜ·Ͱͷ 3 ͭͷน (WR, CTR, CVR) ӡ༻ܕ޿ࠂʹ͓͚Δ޿ࠂओͷ໨త͸ɺCV Λൃੜͤ͞Δ͜ͱ •

    imp: ݟͨ (දࣔͨ͠) • click: ΫϦοΫ • cv: Πϯετʔϧɺߪ ೖͳͲ auction 1 ճʹର͢Δ cv ൃੜ֬཰ cv = WR · CTR · CVR 5 / 23
  5. ೖࡳՁ֨ b ͱίετ • ޿ࠂओ͸ɺೖࡳՁ֨ (bid price) b Λࣗ༝ʹઃఆͰ͖Δ •

    ೖࡳՁ֨ b Λ্͛Δͱ auction Ͱউͪ΍͘͢ͳΔ (ޙड़) ͕ɺ ͦͷ෼ίετ΋૿͑ͯ͠·͏ɻ • ͜͜Ͱ͸՝ۚϙΠϯτ͸ click ͱ͢Δɻ(imp ͷέʔε΋͋Δ) ΫϦοΫ୯ՁͱೖࡳՁ֨ • 1st price auction: ΫϦοΫ୯Ձ = ೖࡳՁ֨ b • 2nd price auction: ΫϦοΫ୯Ձ ≤ ೖࡳՁ֨ b auction 1 ճ͋ͨΓͷίετͷظ଴஋ cost ≤ WR · CTR · b 6 / 23
  6. Auction ͱείΞ auction: ͦΕͧΕͷ޿ࠂʹείΞΛ༩͑ͯιʔτ͢Δ είΞ͕ߴ͍޿ࠂͷॱʹɺimp ͷൃੜ͠΍͍͢࿮ʹ഑ஔ͢Δ (RTB ͱҧͬͯɺෳ਺ͷ޿ࠂΛฒ΂͍ͯ͘) είΞͷఆٛ (ྫ)

    score = CTR · b : imp 1 ճ͋ͨΓͷظ଴ച্ (ͷ্ݶ) • CTR ͸༧ଌ஋Λ࢖͏ • είΞ͸ b ʹൺྫ͢ΔͷͰɺb ͕ߴ͍΄ͲΦʔΫγϣϯʹ উͬͯ imp ͕ൃੜ͠΍͍͢ = WR ͸ b ͷ૿Ճؔ਺ 7 / 23
  7. ·ͱΊ 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
  8. Ҏ߱ͷ࿩͸ɺ Weinan Zhang, Shuai Yuan, Jun Wang Optimal Real-Time Bidding

    for Display Advertising (2014) ͱ͍͏࿦จͷ಺༰ΛΞϨϯδͨ͠΋ͷʹͳ͍ͬͯ·͢ 9 / 23
  9. Auction ͝ͱͷ”࠷దͳೖࡳՁ֨”ΛͲ͏ఆࣜԽ͢Δ? auction ͷಛ௃ϕΫτϧΛ x ͱ͢Δɻ(޿ࠂϦΫΤετΛߦͳͬͯ ͍ΔϢʔβʔͷଐੑ΍ߦಈཤྺͳͲ) ೖࡳՁ֨ b ͸

    x ͷؔ਺ͱ͢Δ ఆࣜԽͷํ਑ ଋറ৚݅෇͖ͷ࠷దԽ໰୊ͱΈͳ͢ɻ ࣍ͷଋറ৚݅Λຬͨ͢ൣғͰɺظ଴ CV ਺͕࠷େԽ͞ΕΔΑ͏ ͳɺؔ਺ b(x) ͕࠷దͳೖࡳՁ֨Ͱ͋Δ ଋറ৚݅ CPA ͷظ଴஋͕ɺઃఆ͞Εͨ໨ඪ CPA(tCPA) ʹͳΔ (ࠓ೔ͷ࿩Ͱ͸৮Εͳ͍͕) ଋറ৚݅ͱͯ࣍͠΋ߟ͑ΒΕΔ ଋറ৚݅’ 1 ೔ͷظ଴ Cost ͕ઃఆ͞Εͨ೔༧ࢉ B ҎԼʹͳΔ 10 / 23
  10. ໰୊ͷ਺ֶతఆࣜԽ • ͋ΔΩϟϯϖʔϯ 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
  11. ໰୊ͷ਺ֶతఆࣜԽ (࠶ܝ)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
  12. Ұճཱͪࢭ·ͬͯݕ౼͢Δ ଋറ৚݅ 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
  13. ४උ 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
  14. ४උ 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
  15. ४උ͕Ͱ͖ͨͷͰɺ࠷దͳೖࡳՁ֨ΛٻΊ͍ͯ͜͏ ϥάϥδΞϯ: L ͸ b ͷ൚ؔ਺ɺ͔ͭɺλ ͷؔ਺ L[b; λ] ≡

    CV [b] + λ(SALES[b] − tCPA · CV [b]) ҎԼΛຬͨ͢ b(x) ͕࠷దͳೖࡳՁ֨Ͱ͋Δ δL δb(x) = 0, ∂L ∂λ = 0 16 / 23
  16. ४උ͕Ͱ͖ͨͷͰɺ࠷దͳೖࡳՁ֨ΛٻΊ͍ͯ͜͏ ϥάϥδΞϯ: L ͸ b ͷ൚ؔ਺ɺ͔ͭɺλ ͷؔ਺ L[b; λ] ≡

    CV [b] + λ(SALES[b] − tCPA · CV [b]) ҎԼΛຬͨ͢ b(x) ͕࠷దͳೖࡳՁ֨Ͱ͋Δ δL δb(x) = 0, ∂L ∂λ = 0 ༨ஊ ʮ࠷খ࡞༻ͷݪཧʯΛ࢖ͬͯ৔ b(x) ͷӡಈํఔࣜΛٻΊΔͱ͍ ͏෺ཧֶͷ໰୊ͱಉ༷Ͱ͢ 16 / 23
  17. ్தܭࢉ: ڵຯͷ͋Δਓ͚ͩ௥͍ͬͯͩ͘͞ ݟ΍͢͞ͷͨΊҎԼͷΑ͏ʹུه͢Δɻ 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. ͜Ε͕࠷దͳೖࡳՁ֨ͩ! ࠷దͳೖࡳՁ֨ 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
  19. 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
  20. έʔε 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
  21. έʔε 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
  22. έʔε 1,2 ͷൺֱ case2 Ͱ͸ɺείΞ (= CTR · b) ΛͲΜͳʹ্͛ͯ΋

    WR ʹ͸্ ݶ͕͋ΔͷͰɺCTR, CVR ͕ྑ͍৔߹ʹɺ૬ରతʹೖࡳՁ֨Λ্ ͛͗͢ͳ͍Α͏ʹ͠ɺͦͷ෼ CTR, CVR ͕௿͍৔߹ʹߴΊʹೖ ࡳ͢Δͷ͕࠷దઓུʹͳΔɻ 22 / 23
  23. ·ͱΊ ࡾߦ·ͱΊ • ೖࡳՁ֨ͷ࠷దԽ͸ϥάϥϯδϡͷະఆ৐਺๏ͱม෼๏Λ ࢖ͬͯղ͚Δ • WR Λ஌Δ͜ͱ͕࣮͸ॏཁͩ • WR

    ͷ஌ݟ͕͋·Γͳ͚Ε͹ɺb(x) = tCPA · CVR(x) ͱ͢ Δͷ͕࣍ળͷࡦͱͯ͠༗ޮͩ (έʔε 1) ͨͩ͠ຊ౰ͷ࠷ద ͳೖࡳՁ֨͸΋ͬͱෳࡶͳܗΛ͍ͯ͠Δ (ྫ:έʔε 2) Ԡ༻ྫ • ೔༧ࢉΛଋറ৚݅ͱ͢Δ৔߹ • ϑϦʔΫΤϯγʔ੍໿ԼͰͷϦʔν਺࠷େԽ 23 / 23