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
Go as an aggregator in recommendation systems
Search
Agata Naomichi
July 26, 2018
Programming
2
1.2k
Go as an aggregator in recommendation systems
Agata Naomichi
July 26, 2018
Tweet
Share
More Decks by Agata Naomichi
See All by Agata Naomichi
医療系スタートアップが経験した 認知負荷問題の症状分析と処方箋 チーム分割による認知負荷の軽減 / Cognitive Load Busters
agatan
2
390
専門性の高い領域をいかに開発し、 テストするか / How to test and develop complicated systems with Domain Experts!
agatan
1
650
Henry のサーバーサイドアーキテクチャ 狙いと課題 2022.08.25 / Server-Side Architecture at Henry, Inc.
agatan
2
3.9k
The Web Conference 2020 - Participation Report
agatan
1
630
○○2vec 再考
agatan
1
4k
Improving "People You May Know" on Directed Social Graph
agatan
4
2.4k
Machine Learning and Feedback
agatan
1
1.3k
Recommendation systems on microservices - productivity & reproducibility
agatan
0
750
Mint: Language Level Support for SPAs
agatan
3
1.6k
Other Decks in Programming
See All in Programming
日付と正規化
megmogmog1965
0
140
Introduction to GitOps
hwchiu
0
110
【Go言語】ジェネリクス
tomo1227
0
170
How to use Macrobenchmark
veronikapj
0
160
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
ピグパーティにおけるMongoDB CommunityバージョンからAtlasへの移行事例
10969hotaka
0
130
最近追加した型の紹介とその振り返り
aki19035vc
0
180
APIのない大学ログインWebサービスをWKWebViewとJavaScriptでアプリ化した話
akidon0000
1
330
Rust.Nagoya #1
codemountains
0
170
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Scaling GitHub
holman
458
140k
Six Lessons from altMBA
skipperchong
24
3.2k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
The Cost Of JavaScript in 2023
addyosmani
31
4.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
19k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
The World Runs on Bad Software
bkeepers
PRO
63
11k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Raft: Consensus for Rubyists
vanstee
134
6.5k
Transcript
©2018 Wantedly, Inc. Go as an aggregator In Recommendation Systems
26.Jul.2018 - Naomichi Agata
©2018 Wantedly, Inc. agatan Software engineer at Wantedly, inc. Server
side + Machine learning Github Twitter @agatan @agatan_
©2018 Wantedly, Inc. Everything is a Recommendation https://medium.com/netflix-techblog/netflix-recommendations-beyond-the-5-stars-part-1-55838468f429
©2018 Wantedly, Inc. Recommendations ΄ͱΜͲͷαʔϏεͰʮԿ͔Λਪન͢Δʯͱ͍͏ػೳ͋Δ
©2018 Wantedly, Inc. Impact of Recommendations ⾣Linkedinͷͭͳ͕Γͷ50%Ҏ্ʮΓ߹͍Ͱ͔͢ʁʯܦ༝ ⾣ https://engineering.linkedin.com/teams/data/projects/pymk ⾣NetflixਪનγεςϜͷcompetition
Λ։࠵ۚ͠$1 Million Λग़͍ͯ͠Δ ⾣ https://medium.com/netflix-techblog/netflix-recommendations-beyond-the-5-stars-part-1-55838468f429
©2018 Wantedly, Inc. Components of Recommendations ਪનͷࠜڌ͍ΖΜͳॴʹ͋Δ ⾣ʮ˓˓͞Μ͕-JLF͠·ͨ͠ʯ ⾣ʮ͜ͷΛߪೖͨ͠ਓ͜ͷങ͍ͬͯ·͢ʯ ⾣ʮڞ௨ͷͭͳ͕Γ͕ਓ͍·͢ʯ
⾣ʮͷχϡʔεʯ ⾣ʮ˓˓Λݕࡧͨ͠ํʯ ⾣ʮಉ͡ձࣾͰಇ͍͍ͯΔϢʔβʯ
©2018 Wantedly, Inc. Order of Recommendations ΑΓྑ͍ΞΠςϜΛɺΑΓྑ͍ॱংͰఏࣔ͢Δ͜ͱ͕ٻΊΒΕΔ ⾣Hot Topics ͳΔ͘͘ఏ͍ࣔͨ͠
⾣֬ݻͨΔࣗ৴ͷ͋ΔਪનΛ༏ઌͯ͠ݟ͍ͤͨ ⾣શମͰͷਓؾॱΑΓύʔιφϥΠζͨ͠ॱংΛఏڙ͍ͨ͠ ⾣αʔϏεݻ༗ͷׂΓࠐΈ͋Δ͔͠Εͳ͍ by Google
©2018 Wantedly, Inc. Recommendations with strategies
©2018 Wantedly, Inc. aggregator Strategy Strategy Strategy Strategy ༑ୡ͕-JLFͨ͠ΞΠςϜΛఏࣔ ߪೖཤྺ͔Βͷ͓͢͢Ί
ͷΞΠςϜ ϓϩϑΟʔϧ͔Βͷ͓͢͢Ί Recommendations with strategies Strategy Λ࣮ߦ ݁ՌΛू re-ordering ฒߦॲཧ
©2018 Wantedly, Inc. Recommendations with strategies ֤strategy͕ਪનΞΠςϜΛఏࣔ UZQF4USBUFHZJOUFSGBDF\ /BNF 4USBUFHZ/BNF
4VHHFTU DUYDPOUFYU$POUFYU VTFS*%JOU TJ[FJOU <> 4VHHFTU6TFS FSSPS ^ UZQF4VHHFTU6TFSTUSVDU\ 6TFS*%JOU 4DPSFqPBU 4USBUFHZ/BNF4USBUFHZ/BNF 3FBTPOJOUFSGBDF\^GPSMPHHJOH ^
©2018 Wantedly, Inc. Recommendations with strategies ͦΕΒΛฒߦʹ࣮ߦ͠ू ࠷ऴతͳॱংΛܾఆ͢Δ GPS@ TSBOHFTUSBUFHJFT\
XH"EE HPGVOD T4USBUFHZ \ EFGFSXH%POF TT FSST4VHHFTU DUY VTFS*% TJ[F JGFSSOJM\ SFQPSUFSSPS SFUVSO ^ NV-PDL TVHHFTUJPOTBQQFOE TVHHFTUJPOT TT NV6OMPDL ^ T ^
©2018 Wantedly, Inc. Why Go? Machine Learning ͱ Microservices ͳߏ
ˠ֤Strategy API CallΛؚΈ͏Δ ˠฒߦॲཧʹڧ͍͜ͱ͕׆͖Δ aggregator microservices
©2018 Wantedly, Inc. Responsibility of Aggregator ⾣Logging ⾣ ͲͷStrategy ͕Ͳͷ͘Β͍ՌΛ͍͋͛ͯΔ͔
⾣֤Strategy ͷείΞͷॏΈ͚ʹΑΔϥϯΩϯά ⾣e.g. ͢Ͱʹఏࣔͨ͜͠ͱͷ͋ΔΞΠςϜͷείΞΛݮਰͤ͞Δ ⾣A/B Testing
©2018 Wantedly, Inc. Problems… ⾣Frror reporting ⾣ ͋Δstrategy ͕ࢮΜͰ͍ͯશମࢭ·Βͳ͍Ͱ΄͍͠ ⾣ࢮΜͩ͜ͱʹؾ͖͍ͨ
⾣Frror reporting service Λ׆༻ ⾣ෳͷStrategy Ͱಉ͡API CallΛͨ͘͠ͳΔ ⾣e.g. Profile Service ʹॴଐΛ͍߹ΘͤΔ࠷ۙങͬͨͷΧςΰϦ͕Γ͍ͨ ⾣HPMBOHPSHYTZODTJOHMFqJHIU ΠϯϝϞϦΩϟογϡͰແཧཧଋͶΔ ⾣Ͳ͜·Ͱaggregator ͕ܭࢉ͢Δ͖͔
©2018 Wantedly, Inc. Conclusion ⾣ਪનγεςϜ͍ΖΜͳཁૉͷΈ߹Θͤ ⾣Microservices / Machine Learning ⾣A/B
Test ͕ॏཁ ⾣࣮ࡍʹԿΛݟ͔ͤͨɺԿ͕Action ʹͭͳ͕͔ͬͨLogging ͍ͨ͠ ⾣લஈʹGo Λ͓͘ͱศར ⾣Concurrent ʹ͍ΖΜͳStrategy Λ࣮ߦ͢Δͷ͕؆୯