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
990
広告配信サーバーと広告配信比率最適化問題
Lightening Talk at
https://techconf.cookpad.com/2018/
Ken Wagatsuma
February 10, 2018
Tweet
Share
More Decks by Ken Wagatsuma
See All by Ken Wagatsuma
Pregel Graph Compute Engines - Supersteps Exampls
kenju
0
210
Kafka on Kubernetes with Strimzi
kenju
0
160
AWS DynamoDB Accelerator (DAX) 101
kenju
2
7.1k
Moden browser introduction
kenju
1
400
Cookpad summer internship 2019 - API
kenju
0
10k
Introduction to Design Patterns
kenju
0
81
GraphQL Asia 2019 "Re-architecture of a decade-old app with BFF/GraphQL"
kenju
0
8.9k
Introduction to TypeScript
kenju
0
720
Introduction to Programmatic Ad
kenju
0
260
Other Decks in Technology
See All in Technology
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
120
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
400
An introduction to Claude Code SDK
choplin
2
1.1k
ビジネス職が分析も担う事業部制組織でのデータ活用の仕組みづくり / Enabling Data Analytics in Business-Led Divisional Organizations
zaimy
1
400
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
1
340
Amazon SNSサブスクリプションの誤解除を防ぐ
y_sakata
3
190
ClaudeCodeにキレない技術
gtnao
1
870
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
460
クラウド開発の舞台裏とSRE文化の醸成 / SRE NEXT 2025 Lunch Session
kazeburo
1
590
“日本一のM&A企業”を支える、少人数SREの効率化戦略 / SRE NEXT 2025
genda
1
270
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
39k
SREの次のキャリアの道しるべ 〜SREがマネジメントレイヤーに挑戦して、 気づいたこととTips〜
coconala_engineer
1
4.4k
Featured
See All Featured
A better future with KSS
kneath
238
17k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
520
Faster Mobile Websites
deanohume
308
31k
Optimizing for Happiness
mojombo
379
70k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Navigating Team Friction
lara
187
15k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
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