Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CTRオンライン予測システムのアーキテクチャ
Search
Yoshitomo Hayashi
September 27, 2017
Technology
2
4.4k
CTRオンライン予測システムのアーキテクチャ
「Ameba広告システムの裏側見せます - オレシカナイトvol3」発表資料です。
https://cyberagent.connpass.com/event/64176/
Yoshitomo Hayashi
September 27, 2017
Tweet
Share
More Decks by Yoshitomo Hayashi
See All by Yoshitomo Hayashi
Ameba DSPのOpen-Auctionにおける入札戦略
yyhayashi303
2
2.9k
進化する配信ロジックとDSP戦略
yyhayashi303
1
170
モブプロ導入で見えてきた効果@オレシカナイト
yyhayashi303
1
1.2k
CircuitBreakerの適用
yyhayashi303
0
1.7k
Other Decks in Technology
See All in Technology
AWSセキュリティアップデートとAWSを育てる話
cmusudakeisuke
0
270
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
140
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
3.1k
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
320
学習データって増やせばいいんですか?
ftakahashi
2
330
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
280
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
150
乗りこなせAI駆動開発の波
eltociear
1
1.1k
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
220
AWS Bedrock AgentCoreで作る 1on1支援AIエージェント 〜Memory × Evaluationsによる実践開発〜
yusukeshimizu
6
400
SREには開発組織全体で向き合う
koh_naga
0
190
手動から自動へ、そしてその先へ
moritamasami
0
300
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Context Engineering - Making Every Token Count
addyosmani
9
510
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Navigating Team Friction
lara
191
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Designing for Performance
lara
610
69k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Transcript
CTRΦϯϥΠϯ༧ଌ γεςϜͷΞʔΩςΫνϟ ΦϨγΧφΠτvol.3 גࣜձࣾαΠόʔΤʔδΣϯτ ྛ ۍ๎
ࣗݾհ ྛɹۍ๎ʢ͠Α͠ͱʣ αʔόʔαΠυΤϯδχΞ 2011 αΠόʔΤʔδΣϯτೖࣾ ೖࣾޙ͍͔ͭ͘ͷwebαʔϏε୲ 2015͔ΒMDHͰ৴ϩδοΫͷվળ
ࣗݾհ झຯ ίʔώʔ ՈͰυϦοϓͨ͠Γ ίʔϧυϒϦϡʔ࡞ͬͨΓ Netflix Ξχϝ ΥʔΩϯάɾσου
CTRΦϯϥΠϯ༧ଌ γεςϜͷΞʔΩςΫνϟ
CTRͱʁ
CTRͱ? CTRʢΫϦοΫʣ CTR = Click / Impression
ͳͥ༧ଌ͕ඞཁͳͷ͔ʁ
ࠂͷऩӹ ΫϦοΫ՝ۚ ࠂ1ΫϦοΫ͋ͨΓʓʓԁʢCPCʣ
ࠂͷऩӹ ΫϦοΫ՝ۚ ࠂ1ΫϦοΫ͋ͨΓʓʓԁʢCPCʣ ΑΓΫϦοΫ͞ΕΔ CPC͕ߴ͍ࠂΛ৴͍ͨ͠
ࠂΛϥϯΩϯά CTR × CPCʹΑΔϥϯΩϯά CTRόϯσΟοτΞϧΰϦζϜͰࢉग़ ࣮ͷimp, clickΛ༻ ࣮ͷूܭ [ࠂ ×
Ϣʔβʔଐੑ × ࠂ] ຖʹimp, clickΛܭଌ
͜Ε·ͰͷϥϯΩϯάͷ՝ ࣮͕গͳ͍߹ʹ͏·͘࠷దԽ͞Εͳ͍ Ϣʔβʔຖʹ࠷దͳࠂΛ৴ग़དྷ͍ͯͳ͍
ػցֶशʹΑΔCTR༧ଌ ଟ͘ͷૉੑΛՃՄೳ ࣮͕গͳͯ͋͘Δఔ༧ଌՄೳ ύʔιφϥΠζ͞ΕͨϥϯΩϯά
։ൃମ੍ ॳظ γεςϜΤϯδχΞ2ਓ σʔλαΠΤϯςΟετ1ਓʢळ༿ݪϥϘʣ ݱࡏ γεςϜΤϯδχΞ2ʙ3ਓ σʔλαΠΤϯςΟετ2ਓʢळ༿ݪϥϘ1ਓʣ
ΞʔΩςΫνϟ
ΞʔΩςΫνϟ ֶशσʔλ JoinࡁΈͷ ϩά ϩά ϩά ػցֶश ϝτϦΫε Ϟσϧ ϑΝΠϧ
Ϟσϧ ϑΝΠϧ Stream Aggregator Data Joiner Learner Predictor ModelStore
Data-Joiner
Data-Joinerͷׂ ࠂ͕click͞Ε͔ͨͲ͏͔Λఆ͢Δ imp౸ୡޙɺҰఆظؒclickͷ౸ୡΛͭ impͱclickͷσʔλͷࠩҟΛແ͘͢ refererͷʹࠩҟ͕͋ͬͨ
Apache IgniteΛ༻࣮ͨ͠ Event Notifications imp click Stream Data Joiner Aggregator
Apache IgniteΛ༻࣮ͨ͠ Event Notifications put-event impͷ߹ TTLΛ5ʹઃఆ͠อଘ imp click Stream
Data Joiner Aggregator
Apache IgniteΛ༻࣮ͨ͠ Event Notifications put-event impͷ߹ TTLΛ5ʹઃఆ͠อଘ put-event clickͷ߹ରԠ͢Δ impΛݕࡧ͠click͞Εͨ
impͱͯ͠Aggregatorʹૹ৴ imp click Stream Data Joiner Aggregator
Apache IgniteΛ༻࣮ͨ͠ Event Notifications put-event impͷ߹ TTLΛ5ʹઃఆ͠อଘ put-event clickͷ߹ରԠ͢Δ impΛݕࡧ͠click͞Εͨ
impͱͯ͠Aggregatorʹૹ৴ expired-event 5ܦͬͯclick͕དྷͳ͍ ߹click͞Εͳ͔ͬͨimpͱ ͯ͠Aggregatorʹૹ৴ imp click Stream Data Joiner Aggregator
Aggregator
Aggregatorͷׂ ֶशʹඞཁͳσʔλΛऩू ϩά͔Βऔಘग़དྷΔͷ ϩά͔ΒऔಘͰ͖ͳ͍ͷ ऩूͨ͠σʔλΛLearnerʹૹΔ σʔλαϯϓϦϯά͠100݅ͣͭ
ϩά͔ΒऔಘՄೳͳσʔλ Ϣʔβʔͷใ UA, IPΞυϨε, referer, ϦλήϢʔβʔ͔ etc. ࠂͷใ ۀछID, ࠂओID,
ΫϦΤΠςΟϒID etc. ໘ͷใ ࠂID, ϝσΟΞID etc.
ϩά͔ΒऔಘෆՄೳͳσʔλ Ϣʔβʔͷใ σϞάϥʢੑผɾྸʣ ಠࣗʹ࡞ͨ͠ૉੑ ߦಈཤྺΛϕʔεʹͨ͠ϢʔβʔΫϥελ ࠂςΩετΫϥελ
Learner
Learnerͷׂ Aggregator͔Βड͚औͬͨσʔλΛ༻͠ϞσϧΛߏங͢Δ ϞσϧΛߏங͢ΔίΞ෦C++ʢσʔλαΠΤϯςΟ ετ୲ʣ 15ִؒͰϞσϧΛߋ৽ ϞσϧϑΝΠϧͰϞσϧετΞʢS3ʣʹอଘ ػցֶशϝτϦΫεʢauroc, logloss etc.ʣΛDBʹอଘ
Learner͕ੜ͢Δ ϞσϧϑΝΠϧ ֶश༻ϚελϑΝΠϧʢ12ִ࣌ؒؒͰߋ৽ʣ Learner͜ͷϑΝΠϧΛ༻ֶͯ͠श͢Δ ༧ଌ༻ϚελϑΝΠϧʢ12ִ࣌ؒؒͰߋ৽ʣ Predictor͕CTRΛ༧ଌ͢Δࡍʹ༻͢Δ ༧ଌ༻ύονϑΝΠϧ ༧ଌ༻ϚελϑΝΠϧ͔ΒͷࠩϑΝΠϧ ͜ͷϑΝΠϧ͕LearnerʹΑͬͯ15ִؒͰߋ৽͞ΕΔ
Predictor
Predictor ༧ଌʹඞཁͳσʔλΛड͚औΓ༧ଌCTRΛฦ͢API 15ִؒͰϞσϧετΞ͔Β࠷৽ͷϞσϧϑΝΠ ϧΛऔಘ͠ߋ৽͢Δ
༧ଌ͕։࢝ग़དྷΔ·Ͱ ىಈ࣌ʹϚελϑΝΠϧΛಡΈࠐΉ ϚελϑΝΠϧಡΈࠐΈޙ͔Β༧ଌՄೳ ϚελϑΝΠϧͷ࠷ऴߋ৽͔࣌Βͷࠩύον ϑΝΠϧΛద༻͍ͯ͘͠ʢ࠷େͰ47ϑΝΠϧʣ 1ύονϑΝΠϧ5ʙ6ඵͰద༻ՄೳͳͷͰɺ5 ҎͰྃ
CTR༧ଌγεςϜಋೖޙ
CPMൺֱ ϥϯμϜ ࣮CTR ༧ଌCTR ࣮CTRରൺ7ˋվળ ϥϯμϜରൺ50ˋվળ
CTRൺֱ ࣮CTRରൺ6ˋվળ ϥϯμϜରൺ8ˋվળ ϥϯμϜ ࣮CTR ༧ଌCTR
͓·͚
Real-Time Optimizer ʢROʣ
Real- Time OptimizerʢROʣ 20176݄ϦϦʔε ඪCPAʹ߹ΘͤͯCPCΛࣗಈௐ͢Δ
CPCͷࢉग़ํ๏ CPC = ඪCPA × CVR ඪCPA 1CVಘΔͷʹࢧͬͯྑ͍අ༻ ࠂओ͕ܾఆ CVRʢίϯόʔδϣϯʣ
CV / Click
͜Ε·ͰͷCVRࢉग़ํ๏ աڈ࣮ΛݩʹώϡʔϦεςΟοΫͳCVRࢉग़ ࠂ × ΞΧϯτຖʹCVRΛࢉग़ ϦλήϢʔβʔͷ߹ิਖ਼Ϩʔτ
ݱঢ়ͷ՝ CV͕ग़ʹ͍͘Ҋ݅ͷ߹ʹCVRͷਫ਼͕ѱ͍ ৽نΞΧϯτͷ߹࣮͕ແ͍ ۀछશମͷ࣮Λࢀর ৽نࠂͷ߹ʹ࣮͕ͳ͍ ࠂάϧʔϓͷ࣮Λࢀর
CTR༧ଌγεςϜͷࢿ࢈Λ ׆༻ͨ͠CVR༧ଌγεςϜ
CVR༧ଌγεςϜ Ϟσϧͷߏங࣍όονʢBatch-Learnerʣ Clickൃੜ͔ΒCVൃੜ·Ͱͷ͕͍࣌ؒͷͰϦΞ ϧλΠϜͰֶश͠ͳ͍ LearnerͷίΞ෦ɺੜ͞ΕΔϞσϧϑΝΠ ϧɺPredictorͦͷ··༻
ΞʔΩςΫνϟ Predictor ModelStore Batch-Learner ϞσϧϑΝΠϧ ϞσϧϑΝΠϧ ػցֶश ϝτϦΫε ֶशσʔλ
CVR༧ଌͷঢ়گ ༧ଌCVR ࣮CVR ࣮CVRରൺ3ˋվળ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠