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
広告配信サーバーと広告配信比率最適化問題
Search
Ken Wagatsuma
February 10, 2018
Technology
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
広告配信サーバーと広告配信比率最適化問題
Lightening Talk at
https://techconf.cookpad.com/2018/
Ken Wagatsuma
February 10, 2018
More Decks by Ken Wagatsuma
See All by Ken Wagatsuma
Pregel Graph Compute Engines - Supersteps Exampls
kenju
0
250
Kafka on Kubernetes with Strimzi
kenju
0
210
AWS DynamoDB Accelerator (DAX) 101
kenju
2
7.4k
Moden browser introduction
kenju
1
470
Cookpad summer internship 2019 - API
kenju
0
10k
Introduction to Design Patterns
kenju
0
140
GraphQL Asia 2019 "Re-architecture of a decade-old app with BFF/GraphQL"
kenju
0
9.3k
Introduction to TypeScript
kenju
0
790
Introduction to Programmatic Ad
kenju
0
300
Other Decks in Technology
See All in Technology
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
120
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
890
脆弱性対応、どこで線を引くか
rymiyamoto
1
380
LLMと共に進化するプロセスを目指して
ymatsuwitter
13
4.1k
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
190
やさしいA2A入門
minorun365
PRO
12
1.8k
爆速でマルチプロダクトを立ち上げる時 事業・CTO目線で大事にしたい事
miyatakoji
0
110
RSA暗号を手計算したくなること、ありますよね?? (20260615_orestudy6_rsa)
thousanda
0
310
Microsoft Build Keynoteふりかえり
tomokusaba
0
120
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
2.1k
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
130
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
220
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Building an army of robots
kneath
306
46k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Facilitating Awesome Meetings
lara
57
7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
A better future with KSS
kneath
240
18k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
The Curious Case for Waylosing
cassininazir
1
380
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
ࠂ৴αʔόʔͱ ࠂ৴ൺ࠷దԽ ϝσΟΞϓϩμΫτ։ൃ෦ ,FOKV8BHBUTVNB
8IP Kenju Wagatsuma (github.com/kenju) • ϝσΟΞϓϩμΫτ։ൃ෦ • αʔόʔαΠυΤϯδχΞ • ͖ͳͷɿRuby,
ίʔώʔ, ϩδΧϧΫοΩϯά • ݏ͍ͳͷɿ1ϲ݄લʹॻ͍ͨࣗͷίʔυ
ϝσΟΞϓϩμΫτ։ൃ෦ ୲αʔϏεɿ ࠂ৴, storeTV, cookpadTV, OEM, ͦͷଞଟ ࢀߟɿ ։ൃऀϒϩάʰΫοΫύουͷࠂΤϯδχΞԿΛ ͍ͬͯΔͷ͔ʱ
ຊ͍ͨ͜͠ͱɻ ϝσΟΞϓϩμΫτ։ൃ෦Ͱ ͲΜͳϓϩδΣΫτΛ͍ͬͯΔͷ͔ʁ
νʔϜʹೖͬͯϲ݄ޙʹऔΓΜͩϓϩδΣΫτ ΫοΫύουͷࠂ৴αʔόʔʹ͓͚Δ ࠂ৴ൺͷࣗಈ࠷దԽϓϩδΣΫτɻ
ݫ͍͠εέδϡʔϧ • ϝσΟΞϓϩμΫτ։ൃ෦δϣΠϯ - 10݄த० • ͓खฒΈഈݟϓϩδΣΫτ - ~11݄த० •
৴࠷దԽτϥΠΞϧ - 12/4(݄) 10:00 - 12/11(݄) 10:00 ???
ղܾ͍ͨ͠՝ • ʑͷखӡ༻ʹΑΔνϡʔχϯά͕ඞཁ - => ࡞ۀ͕ൃੜ • ӡ༻ऀͷܦݧͱצʹཔͬͨνϡʔχϯά - =>
ҟಈ࣌ಋೖ࣌ͷίετ͕ߴա͗ • ࠷దͳࡏݿൺΛࣗಈͰௐͰ͖ͳ͍ - => ࠂܝग़ͷػձଛࣦ
Ͳ͏ղܾ͢Δ͔ • ࡏݿׂྔͱ࣮͔Β࠷దͳ৴ൺͷิ ਖ਼Λߦ͏ - ΠϯϓϨογϣϯϕʔε͔ΒΫϦοΫϕʔεͷ৴ - ΫϦοΫ༧ଌΛར༻ͨ͠ൺͷࣗಈ࠷దԽ - ϦΞϧλΠϜूܭσʔλΛ׆༻ͨ͠ΞʔΩςΫνϟ
‣ Lambda Architecture ʹ͓͚Δ Speed Layer
l4QFFE-BZFSzPO"84 • Kinesis, DynamoDB, Lambda Λ׆༻ͨ͠ Speed Layer (from Lambda
Architecture) • طଘͷετϦʔϜʹɺΫ ϦοΫܭࢉϨΠϠʔΛ Ճ͚ͨͩ͠ = ઌਓͷݞ ʹΔ
ৄ͍ͪ͜͠Β ࢀߟɿ ʰCookpad Tech Kitchen #9 ʙ1ߦͷϩάͷ͜͏ ଆʙ Λ։࠵͠·ͨ͠ʂʱ
ΫϦοΫ༧ଌ͍͠ʂʂʂ • ޯϒʔεςΟϯάܾఆʢGBDTʣΛ༻͍ͨࠂ͝ͱͷΫϦοΫ༧ଌ - Facebook https://code.facebook.com/posts/975025089299409/evaluating-boosted-decision-trees-for-billions-of-users - SmartNews https://speakerdeck.com/komiya_atsushi/gbdt-niyorukuritukulu-yu-ce-wogao-su-hua-sitai-number-oresikanaito-vol-dot-4 •
ଟόϯσΟοτͷҰछͰ͋ΔMortal Multi-Armed BanditsͷԠ༻ - Voyage Group http://techlog.voyagegroup.com/entry/2015/04/03/114547ɹ • Neural Networkͷ૯߹֨ಆٕʢ͕͢͞Googleʣ - Google http://www.eecs.tufts.edu/~dsculley/papers/ad-click-prediction.pdfɹ • ৴པͱ࣮ͷϩδεςΟοΫճؼʢୠܻ͕͠ԯϨϕϧʣ - Criteo http://olivier.chapelle.cc/pub/ngdstone.pdfɹ
ؒʹ߹Θͳ͍ʂ • τϥΠΞϧͳΜͱͯ͠ʹ࣮ࢪ͍ͨ͠ - վળͷαΠΫϧΛճͨ͢Ί • QCDͰݴ͏ͳΒɺDelivery, QualityΛ༏ઌ - ͳΜͱͯؒ͠ʹ߹Θ͍ͤͨʂ
• ࠷ॳ͔Βᘳͳਫ਼༧ଌ·ͣෆՄೳ - ػցֶशͰղܾ͠ͳͯ͘Α͍͔·ͣߟ͑Δ - ࢀߟɿʰࣄͰ͡ΊΔػցֶशʱ
ҠಈฏۉԞ͕ਂ͍ • SMA (Simple Moving Average) = ۙ N ݸͷॏΈ͚ͷͳ͍୯७ͳฏۉ
• WMA (Weighted Moving Average) = ΑΓ࠷ۙͷσʔλʹॏΈ͚ • EWMA (Exponentially Weighted Moving Average) = ࢦؔతʹॏΈ͚ • MMA (Modified Moving Average) = EWMAͷѥछ ଞʹTriangle MA, Sine Weighted MA, KZ Filtering,...etc ࢀߟɿhttps://en.wikipedia.org/wiki/Moving_average#Simple_moving_averag
աڈϩάΛݩʹΞϧΰϦζϜͷਫ਼Λੳ • Jupyter Notebook / Python - ࢀߟɿ։ൃऀϒϩάʰRailsΤϯ δχΞʹཱͭJupyter Notebook
ͱiRubyʱ • ൺֱͨ͠ΞϧΰϦζϜ - Total Average - Cumulative Average - Simple Moving Average (3 Hours) - Simple Moving Average (6 Hours)
τϥΠΞϧ݁Ռ • ิਖ਼ͷϩδοΫʹ՝ ͕ݟ͔ͭͬͨ ͷɺτϥΠΞϧͱ͠ ͯޭ
ظతνϡʔχϯά • Speed Layer ͷ࠶ઃܭɾຏ͖ࠐΈ - ετϦʔϜॲཧʹԊͬͨσʔλͷྲྀΕ • ෛ࠴ =
ະୡ ΛՃຯͨ͠ϩδοΫ - ୈҰ࣍τϥΠΞϧΛ͍ͬͯͳ͔ͬͨΒݟ͑ͳ͔ͬͨ՝ • ҠಈฏۉΞϧΰϦζϜͷվળ - Batch LayerͰΦϑϥΠϯͰܭࢉ&࠷ਫ਼͕ྑ͍ͷΛબ - Gem࡞ͬͨ https://github.com/kenju/moving_avg-ruby
தظͰ͍͖ͬͯ • ΫϦοΫ༧ଌਫ਼ͷߋͳΔ্ˍ৽نࠂ։ൃ - ػցֶशϨΠϠʔͷຊ൪ಋೖ • Lambda Architectureͷຏ͖ࠐΈ - ࢀߟɿ։ൃऀϒϩάʰαʔόʔϨεͳόοΫΞοϓγεςϜ
Λ AWS SAM Λ༻͍ͯγϡοͱߏங͢Δʱ • ࠂ৴αʔόʔࣗମͷѹతվળ - ։ൃج൫ͷڥඋ - ύϑΥʔϚϯε࠷దԽɺϨΨγʔίʔυͷվળ
ຖͷྉཧΛָ͠Έʹ͢Δ 5IBOLZPV