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
ネット広告配信サービスにおけるMLシステムの実装と運用
Search
Takashi Nishibayashi
July 13, 2018
Technology
8
4.8k
ネット広告配信サービスにおけるMLシステムの実装と運用
Machine Learning System on Online Advertising Platform.
Takashi Nishibayashi
July 13, 2018
Tweet
Share
More Decks by Takashi Nishibayashi
See All by Takashi Nishibayashi
論文紹介 Improving Medical Reasoning through Retrieval and Self-Reflection with Retrieval-Augmented Large Language Models
hagino3000
0
310
論文紹介 Audience Size Forecasting Fast and Smart Budget Planning for Media Buyers
hagino3000
0
180
論文紹介 Towards a Fair Marketplace: Counterfactual Evaluation of the trade-off between Relevance, Fairness & Satisfaction in Recommendation Systems
hagino3000
1
550
論文紹介 Budget Management Strategies in Repeated Auctions (公開版)
hagino3000
0
230
論文紹介 A Request-level Guaranteed Delivery Advertising Planning: Forecasting and Allocation
hagino3000
0
70
論文紹介 Online Experimentation with Surrogate Metrics Guidelines and a Case Study
hagino3000
0
150
論文紹介 Bidding Machine: Learning to Bid for Directly Optimizing Profits in Display Advertising
hagino3000
0
92
論文紹介 Balancing Relevance and Discovery to Inspire Customers in the IKEA App
hagino3000
0
640
不確実性と上手く付き合う意思決定の手法
hagino3000
18
15k
Other Decks in Technology
See All in Technology
生産性向上チームの紹介
cybozuinsideout
PRO
1
970
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
180
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
8
6.5k
DX企業CTOとして考える技術への向き合い方
shoheitai
0
120
require(ESM)とECMAScript仕様
uhyo
4
1k
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
35k
認知症フレンドリーテックとスタックチャン
naokiuc
0
380
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
200
本当のガバクラ基礎
toru_kubota
0
220
uvを使ってストレスフリーな Python開発をしよう!
r74tech
0
250
類似ロジック実装をiOS/Android間で合わせる道標No.1
fumiyasac0921
1
150
Featured
See All Featured
BBQ
matthewcrist
80
8.8k
Embracing the Ebb and Flow
colly
80
4.2k
Building Your Own Lightsaber
phodgson
100
5.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
It's Worth the Effort
3n
180
27k
GitHub's CSS Performance
jonrohan
1025
450k
Being A Developer After 40
akosma
67
580k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Optimizing for Happiness
mojombo
370
69k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Transcript
ωοτࠂ৴αʔϏεʹ͓͚Δ .-γεςϜͷ࣮ͱӡ༻ 5BLBTIJ/JTIJCBZBTIJ .BDIJOF-FBSOJOH$BTVBM5BMLT
͓લͩΕΑ Name: Takashi Nishibayashi twitter.com/@hagino3000 Job: Software Engineer VOYAGE GROUPͰωοτࠂ৴αʔϏε࡞ͬͯ
·͢ɻओʹ৴ϩδοΫ͔Βσʔλੳج൫·Ͱɻ ࠷ۙͷڵຯϛΫϩܦࡁֶͱϝΧχζϜσβΠϯɻ
࠷ۙͷ׆ಈ ਓೳֶձࢽ Vol. 32 No. 4 (2017/07) ͷʮࠂͱ AI ಛूʯʹʮΞυωοτϫʔΫʹ͓͚Δࠂ৴ܭ
ըͷ࠷దԽʯ͕ܝࡌ͞Ε·ͨ͠ɻ ΦϥΠϦʔ͔ΒʮࣄͰ͡ΊΔػցֶशʯ͕ग़· ͨ͠ɻ @chezou, @tokorotenͱڞஶ ࢴ൛ɾిࢠॻ੶྆ํ͋Γ·͢
ࠓͷ w ༧ଌϞσϧͷ܇࿅ɾΛߦͳ͏όονॲཧ w 8FCαʔόʔͰͷਪ w ӡ༻ɾ༧ଌϞσϧͷੑೳࢹ w ༧ଌϞσϧͷΦϑϥΠϯධՁɾΦϯϥΠϯධՁ ՔಈதͷࠂΠϯϓϨογϣϯͷՁධՁλεΫΛࡐʹͯ͠ɺ࣍
ͷτϐοΫΛऔΓ͋͛·͢
ωοτࠂ৴γεςϜͱ.- λεΫͷྫ Ϟνϕʔγϣϯ Ξϓϩʔν ΫϦοΫ༧ଌ ࠂ͕ΫϦοΫ͞ΕΔ͕֬Γ͍ͨ Ϋϥεྨ ίϯόʔδϣϯ༧ଌ ΫϦοΫޙʹίϯόʔδϣϯ͢Δ͕֬Γ͍ͨ Ϋϥεྨ
৴͢Δࠂͷܾఆ ͋ΔظؒͷऩӹΛ࠷େʹ͢ΔͨΊʹɺͲͷࠂΛ ද͖͔ܾࣔ͢Ί͍ͨ ଟόϯσΟοτ ߹ͤ࠷దԽ ࠂͷΫϥελϦϯά ࣅ͍ͯΔࠂΛ·ͱΊͯѻ͍͍ͨ ΫϥελϦϯά ΫϩεσόΠεਪఆ Λԣஅͨ͠ΦʔσΟΤϯεͷτϥοΩϯά͕ ͍ͨ͠ ଟΫϥεྨ
ࠂΠϯϓϨογϣϯͷՁධՁ ࠂഔମ ɾ 441 ৴ࣄۀऀ ࠂϦΫΤετ9 ࠂ ࠂ ࠂO
ࠂબϩδοΫ
ࠂΠϯϓϨογϣϯͷՁධՁ ࠂഔମ ɾ 441 ৴ࣄۀऀ ࠂϦΫΤετ9 ࠂ ࠂ ࠂO
ऩӹ༧ଌϩδοΫ ࠂબϩδοΫ ԁ ԁ ԁ ࠂϨεϙϯε ࠂZ
ࠂϦΫΤετ9 ɾΦʔσΟΤϯεɾίϯςΩετʜ ʹରͯ͠ɺԠ Մೳͳࠂ͕Oݸ͋Δɻ͜ͷ࣌ʹͦΕͧΕͷࠂB㱨\ ʜO^Λදࣔ͠ ͨ࣌ͷऩӹ༧ଌ͕ཉ͍͠ɻ ऩӹ༧ଌΫϦοΫ $53 ίϯόʔδϣϯ
$73 ΛͦΕͧΕͷࠂ ʹ͍ͭͯ༧ଌͯ͠ར༻͢Δɻ CTR = P(click=1 | X, a) CVR = P(conversion=1 | X, a, click=1) ͨͩ͠શͯͷॲཧ͕NTҎʹऴΔࣄ ࠂΠϯϓϨογϣϯͷՁධՁ ଓ͖
"84&$4$MVTUFS &$*OTUBODF γεςϜߏ 4 $53༧ଌث ܇࿅λεΫ $*%FQMPZ $73༧ଌث ܇࿅λεΫ -VJHJ
4DIFEVMFS $53༧ଌث +40/ $73༧ଌث +40/ ऩӹ༧ଌϩδοΫ $53༧ଌ ॲཧ $73༧ଌ ॲཧ #JH2VFSZ ৴ϩά ϩάͷ&5- 'FUDI %BJMZ 6QEBUF 2VFSZ ܇࿅σʔλ )551 ࠂબϩδοΫ
શମͷઃܭ w 8FCαʔόʔͰϦΫΤετΛॲཧ͢ΔϓϩηεͰਪ 4DBMBͰ࣮ w ϨΠςϯγͱ҆ఆੑΛ༏ઌ w ଞͷબࢶͩͱ"1*αʔόʔԽ
w ϩδεςΟοΫճؼ -ਖ਼ଇԽ w ͞Εͨ༧ଌϞσϧΛΦϯϝϞϦͰอ࣋͢Δ w ܇࿅σΠϦʔͷόονॲཧ w ʑՃ͞ΕΔ৽نࠂΩϟϯϖʔϯɾ৽نࠂʹରԠ͢ΔͨΊຖ ֶशΛΓͳ͓͢ɻݹ͍աڈΕͤ͞Δɻ w 1ZUIPOͰ࣮
όονॲཧ܈
όον࣮ߦڥ w "84&$4্ͷ%PDLFSίϯςφͰಈ࡞ w 1ZUIPOڥͷ࠶ݱੑ୲อͷͨΊʹ1JQpMFΛ༻ w ϫʔΫϑϩʔΤϯδϯ-VJHJΛ࠾༻ w λεΫؒͷґଘղܾ w
&5-ɾ༧ଌϞσϧͷ܇࿅ɾϞσϧͷͱෳࡶʹͳΓ͕ͪͳॴ w FHར༻͢Δσʔλछʹ͍ͭͯલ࣌ͷσʔλऔࠐΈ͕ऴͬͨ ΒલॲཧΛ։࢝ɻલॲཧ͕ऴͬͨΒ"ͱ#ͷ܇࿅ΛฒྻͰ։࢝ w ֎෦ཁҼͰίέͨ࣌ͷϦτϥΠɾฒྻ࣮ߦ੍ޚ
%FQFOEFODZ(SBQI ίέͨॴҟৗʹ͕͔͍࣌ؒͬͯΔλεΫ͕͙͢ʹΘ͔ͬͯศར
܇࿅ w TDJLJUMFBSOΛͬͯϩδεςΟοΫճؼ w ΧςΰϦΧϧมͷPOFIPUFODPEJOHͰສ࣍ݩʹͳΔ͕ɺ-ਖ਼ଇԽͰ ສҎԼ·Ͱམ͍ͪͯΔ w ࠂΩϟϯϖʔϯຖʹ༧ଌثΛ࡞Δ w ࡐ
ϦλʔήςΟϯάPSʜ ʹΑͬͯ͑Δૉੑ͕ҟͳΔ w ਖ਼ྫෛྫͷόϥϯε͕ͩͬͨΓͩͬͨΓͯ͠Ұॹʹѻ͏ ͷ͕͍͠ w $MBTT*NCBMBODFରࡦͱͯ͠/FHBUJWF%PXOTBNQMJOH͍ͯ͠Δ
/FHBUJWF%PXOTBNQMJOH w ਖ਼ྫશͯར༻ɺෛྫؒҾ͘FH͚ͩ༻ *NCBMBODFىҼͷόΠΞεআڈ w ॲཧରσʔλΛେ෯ʹݮΒ͢ࣄ͕Ͱ͖ΔɻܭࢉίετݮͷϝϦοτ͕େɻ w ࣺͯΔ෦Λม͑ͯ༧ଌثΛ࡞Γ#BHHJOHͰ൚ԽੑೳΛ্͛ΒΕΔ w
#JH2VFSZͳΒΫΤϦͰ࣍ͷ௨Γॻ͚Δɻ࠶ݱੑ༗Γɻ where mod(farm_fingerprint(imp_id), 50) = 0 or click = 1
/FHBUJWF%PXOTBNQMJOH w ਖ਼ྫશͯར༻ɺෛྫؒҾ͘FH͚ͩ༻ *NCBMBODFىҼͷόΠΞεআڈ w ॲཧରσʔλΛେ෯ʹݮΒ͢ࣄ͕Ͱ͖ΔɻܭࢉίετݮͷϝϦοτ͕େɻ w ࣺͯΔ෦Λม͑ͯ༧ଌثΛ࡞Γ#BHHJOHͰ൚ԽੑೳΛ্͛ΒΕΔ w
#JH2VFSZͳΒΫΤϦͰ࣍ͷ௨Γॻ͚Δɻ࠶ݱੑ༗Γɻ $MJDL $MJDL %BUB where mod(farm_fingerprint(imp_id), 50) = 0 or click = 1
/FHBUJWF%PXOTBNQMJOH w ਖ਼ྫશͯར༻ɺෛྫؒҾ͘FH͚ͩ༻ *NCBMBODFىҼͷόΠΞεআڈ w ॲཧରσʔλΛେ෯ʹݮΒ͢ࣄ͕Ͱ͖ΔɻܭࢉίετݮͷϝϦοτ͕େɻ w ࣺͯΔ෦Λม͑ͯ༧ଌثΛ࡞Γ#BHHJOHͰ൚ԽੑೳΛ্͛ΒΕΔ w
#JH2VFSZͳΒΫΤϦͰ࣍ͷ௨Γॻ͚Δɻ࠶ݱੑ༗Γɻ $MJDL $MJDL %BUB ࣺͯΔ where mod(farm_fingerprint(imp_id), 50) = 0 or click = 1
܇࿅݁Ռͷ֬ೝ w ࣮ݧ࣌ w 5JNF4FSJFT4QMJUͰ$SPTT7BMJEBUJPO "6$ w ย߲ͷ͕पลԽͨ࣌͠ͷ֬ͱҰக͍ͯ͠ΔࣄΛ֬ೝ w
ཉ͍͠ͷ֬ w શମͷΫϦοΫTJHNPJE ΫϦοΫ༧ଌثͷย߲ͷ ͳΒ0, w "6$MPHMPTT͚ͩݟͯ0WFS1SFEJDUJPOʹؾ͚ͮͳ͍
༧ଌϞσϧͷ w ܇࿅݁ՌύϥϝʔλΛ+40/ʹͯ͠4ʹஔ 1SPUPDPM#V⒎FSͷํ͕ྑ͔͔ͬͨʜ w ϑΝΠϧͷ༰ w ϝλใ όονॲཧىಈ࣌ࠁɾόʔδϣϯ
w ඇθϩͷ XFJHIU ͱରԠϥϕϧ ֶश݁Ռ w લॲཧύϥϝʔλ w ࿈ଓมͷฏۉɾࢄ w /FHBUJWF%PXOTBNQMJOH w όονىಈຖʹϑΝΠϧΛ͍ͯ͠ΔͷͰɺ-BUFTUΛҙͷ࣌ʹͤΔ
ਪ
8FC4FSWFSଆͷܭࢉ 4DBMBͰ࣮ͨ͠෦ɻ *.1ΛYɺॏΈ͕Xͷ࣌ɺϩδεςΟοΫճؼͷΫϥεࣄޙ֬࣍ͷ௨Γɻ ࣮͕ਖ਼͍͠ࣄͷ֬ೝͱͯ͠ɺςετίʔυͰTDJLJUMFBSOͷ -PHJTUJD$MBTTJpFSQSFEJDU@QSPCB ΛݺΜͩ݁Ռͱಉ͔͡Ͳ͏͔ΛνΣοΫ ͜ΕΛQ /FHBUJWF%PXOTBNQMJOHΛSͱͯ͠ݩͷ֬ʹ͢ʹɻ ㅟ Yͷཁૉ΄ͱΜͲθϩͳͷͰ*.1
ʹରԠ͢Δ8FJHIUͷ͋͠Θͤ
ϩδοΫ༧ଌثΓସ͑Մೳʹ͢Δ w γεςϜͷ"#5FTUରԠʹඞਢ w ࣮ݧΛதஅ͢Δͷʹιʔείʔυͷ3FWFSU αʔόʔશೖΕ͑ͱ͔ Γͨ͘ͳ͍
ϦϦʔεޙͷӡ༻
༧ଌϞσϧͷੑೳࢹ w ϏδωεࢦඪͷࢹͱϞσϧ༧ଌਫ਼ͷࢹΛಉ࣌ʹಈ͔͓ͯ͘͠ w ༧ଌਫ਼͕མͪͨ PSσʔλ͕Γͳ͍ͯ͘ ࣌ʹϏδωεࢦඪ͕ѱ ͍ͷظ௨Γͷಈ࡞ w ༧ଌਫ਼ͷྑ͞ͱϏδωεࢦඪͷྑ͕͞࿈ಈ͍ͯ͠Ε0,
w ແ૬ؔͰ͋Εͦͷ༧ଌॲཧୀՄೳ
༧ଌϞσϧͷੑೳࢹ ଓ͖ w Ϗδωεࢦඪͷࢹ w ച্ɾૈརɾ$1" ίϯόʔδϣϯ֫ಘ݅͋ͨΓͷίετ w ༧ଌث͕ࣄۀʹߩݙͰ͖͍ͯΔ͔Θ͔Δ
w ٸܹʹѱԽͨ͠߹ɺେγεςϜʹԿ͔͕ى͖ͯΔ w ༧ଌਫ਼ w ࣮ࡍͷ৴࣌ͷ༧ଌͱ৴݁ՌΛͬͯࠂΩϟϯϖʔϯຖʹ"6$ ͷ࣌ܥྻΛϓϩοτ w Ωϟϯϖʔϯຖʹϓϩοτ͢ΔࣄͰࡐʹΑΔͷ͕ࠩݟ͑Δ
༧ଌϞσϧͷੑೳࢹ ଓ͖ w ༧ଌثຖͷ༻ঢ়گ w ݺग़ճɾൃੜച্ োൃੜ࣌ͷϦΧόϦ༏ઌ w ࠂӡ༻ऀ͕৴ϩδοΫ
༧ଌث ΛબΔέʔε w ྑ͍Ͱʮಈ࡞͕ѲͰ͖ͳ͍͔Βͬͯͳ͍ʯͱ͍͏ࣄ͋Δ w ίϛϡχέʔγϣϯऔ͍ͬͯ͘ w ΘΕͳ͘ͳͬͨୀͤ͞Δ w ͍ͬͯͳͯ͘ҡ࣋අ͕͔͔Δ
܇࿅σʔλͷͷมԽ w σʔλੜܦ࿏ͷো w ܇࿅σʔλͷݩʹͳΔ্ྲྀͷϑΟϧλ͕ނো w ܭଌܥͷো FHίϯόʔδϣϯܭଌ͕ࢭ·ͬͨ w
োͳΒ܇࿅σʔλΛ៉ྷʹͯ͠࠶܇࿅͢Δͱੑೳ͕ݩʹΔ w Ϗδωεঢ়گͷมԽ w ༧ଌରͷ͕มΘͬͨ w ͷมԽ͕Θ͔Ε࣍ͷҰखΛܾΊ͍͢ɻ৳ͼ͠Ζͷ͋Δ෦ͷ νϡʔχϯά৽ن։ൃʹணखɻ
৽͍͠༧ଌثͷϦϦʔε
ΦϑϥΠϯධՁ w ৽͍͠༧ଌثͷ࣮ݧɺϏδωεࢦඪ͕Ͳ͏ͳΔ͔Λ֬ೝ͢Δ w աڈͷ৴ϩάΛͬͯධՁ w աڈͷ৴ϩάߦຖʹ༧ଌΛੜ w #JH2VFSZ͔ΒಡΜͰ#JH2VFSZॻ͖ࠐΉͷ$MPVE%BUBqPX͕ศར w
͔͠͠ϩάΛ࣮ͬͨԾࡦͷධՁݫີʹͰ͖ͳ͍ w ܇࿅σʔλͷϑΟʔυόοΫ͕γϛϡϨʔτͰ͖ͳ͍ w ඇఆৗੑ w ධՁ݁Ռࢀߟఔʹ
ΦϯϥΠϯධՁ w ͪ͜Β͕ຊ໋ w ϩδοΫ ༧ଌث ͷ"#ςετ w ϓϩμΫγϣϯڥͰαϯϓϧΛແ࡞ҝʹ܈ʹ͚ΔϥϯμϜԽൺֱࢼݧ w
࣌ؒมԽͷӨڹɾηϨΫγϣϯόΠΞεͷআڈ w ίϯτϩʔϧ܈ͱτϦʔτϝϯτ܈ͷϏδωεࢦඪͷ͕ࠩҼՌޮՌ w ϏδωεΠϯύΫτͰධՁ ౷ܭతʹ༗ҙͰ͕ࠩখ͍͞ͱඍົ
ΦϯϥΠϯධՁ w ͪ͜Β͕ຊ໋ w ϩδοΫ ༧ଌث ͷ"#ςετ w ϓϩμΫγϣϯڥͰαϯϓϧΛແ࡞ҝʹ܈ʹ͚ΔϥϯμϜԽൺֱࢼݧ w
࣌ؒมԽͷӨڹɾηϨΫγϣϯόΠΞεͷআڈ w ίϯτϩʔϧ܈ͱτϦʔτϝϯτ܈ͷϏδωεࢦඪͷ͕ࠩҼՌޮՌ w ϏδωεΠϯύΫτͰධՁ ౷ܭతʹ༗ҙͰ͕ࠩখ͍͞ͱඍົ Γ͍ͨͷίί ྫૈར͕ͲΕ͚ͩ૿͑Δ͔
ϦϦʔε w "#5FTU3FBEZͳγεςϜʹͳ͍ͬͯΕϦϦʔε༰қ w ద༻ϩδοΫΛ੍ޚ͢ΔΈΛ࡞͓ͬͯ͘ w ཧը໘ͰઃఆͰ͖Δ w "#ςετ w
શମͷ͚ͩϦϦʔε w ಛఆҊ݅ͷΈʹద༻ w ؾܰʹϦϦʔεͯ͠ݕূͰ͖ΔΈେࣄ
ઃఆྫ ઃఆ໊ ༰ ద༻ 999ϩδοΫ"#ςετ 999-PHJD7 999-PHJD7 σϑΥϧτ 999-PHJD7
όάYYͷఆରԠ /BJWF-PHJD
·ͱΊ w ࠂ৴αʔόʔͷதͰ༧ଌॲཧ͕ಈ͍͍ͯΔ w ϦϦʔε͔ͯ͠ΒΔࣄͨ͘͞Μ͋Δ w োରԠɾػೳվળ w ࢹॏཁ w
ݕূɾϦϦʔεɾୀΛΓ͘͢ w "#5FTU3FBEZʹ͓ͯ͘͠ͱָ w πϥΠ͋Μ·Γͳ͔ͬͨʜʜ
ࢀߟจݙ <>8BMMBDF #ZSPO$ FUBM$MBTTJNCBMBODF SFEVY%BUB.JOJOH *$%. *&&&UI*OUFSOBUJPOBM$POGFSFODFPO*&&& <>$IBQFMMF
0MJWJFS &SFO.BOBWPHMV BOE3PNFS3PTBMFT4JNQMFBOE TDBMBCMFSFTQPOTFQSFEJDUJPOGPSEJTQMBZBEWFSUJTJOH"$.5SBOTBDUJPOTPO *OUFMMJHFOU4ZTUFNTBOE5FDIOPMPHZ 5*45 <>)F 9JOSBO FUBM1SBDUJDBMMFTTPOTGSPNQSFEJDUJOHDMJDLTPOBETBU GBDFCPPL1SPDFFEJOHTPGUIF&JHIUI*OUFSOBUJPOBM8PSLTIPQPO%BUB .JOJOHGPS0OMJOF"EWFSUJTJOH"$. <>4DVMMFZ % FUBM)JEEFOUFDIOJDBMEFCUJONBDIJOFMFBSOJOH TZTUFNT"EWBODFTJOOFVSBMJOGPSNBUJPOQSPDFTTJOHTZTUFNT