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
CTRオンライン予測システムのアーキテクチャ
Search
Yoshitomo Hayashi
September 27, 2017
Technology
4.5k
2
Share
CTRオンライン予測システムのアーキテクチャ
「Ameba広告システムの裏側見せます - オレシカナイトvol3」発表資料です。
https://cyberagent.connpass.com/event/64176/
Yoshitomo Hayashi
September 27, 2017
More Decks by Yoshitomo Hayashi
See All by Yoshitomo Hayashi
Ameba DSPのOpen-Auctionにおける入札戦略
yyhayashi303
2
3k
進化する配信ロジックとDSP戦略
yyhayashi303
1
170
モブプロ導入で見えてきた効果@オレシカナイト
yyhayashi303
1
1.2k
CircuitBreakerの適用
yyhayashi303
0
1.7k
Other Decks in Technology
See All in Technology
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
140
運用システムにおけるデータ活用とPlatform
sansantech
PRO
0
120
AI時代 に増える データ活用先
takahal
0
320
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
240
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
200
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
150
ServiceNow Knowledge 26 の歩き方
manarobot
0
160
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
260
VespaのParent Childを用いたフィードパフォーマンスの改善
taking
0
110
Cortex Codeのコスト見積ヒントご紹介
yokatsuki
0
110
CloudTrail を見つめ直してみる
kazzpapa3
1
120
AI時代における技術的負債への取り組み
codenote
1
1.7k
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
210
Music & Morning Musume
bryan
47
7.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Claude Code のすすめ
schroneko
67
220k
Design in an AI World
tapps
1
200
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
Being A Developer After 40
akosma
91
590k
How to train your dragon (web standard)
notwaldorf
97
6.6k
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ˋվળ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠