~/talk

From €1M License to In-House Success: How We Built a Real-Time Recommendation System and Saved Millions Doing It

Talkat PyData Eindhoven 2025 · on Tuesday, 2025-12-09· at 13:25· Auditorium· [machine-learning, devops-and-delivery]
name:Ali Kohan
github:alikohan
slides:none on file

Company replaces a €1M license by building a Kotlin real‑time recommender, deployed to 5% traffic then scaled to millions of requests per second, with an initial 48‑segment statistical model and daily retrained binary click predictor via Airflow that fails offline‑to‑online due to flaky render/click events (where healthy data shows 4% CTR uplift). Solution adds a Thompson sampling multi‑armed bandit layer on top, recovers lost clicks and conversions (avoids ~40% click / 44% conversion loss) and drives up to 20% lift for flex banners, saving over €1M per year.

AI-written summary · about

  1. 0:00In-house recommendation journey
  2. 1:32Replacing €1M cloud tool
  3. 4:26Building from scratch
  4. 6:39Starting with simple model
  5. 8:06A/B test failure peak season
  6. 9:12Switching to ML batch
  7. 10:43ML model offline failure
  8. 11:47Marketing banner control
  9. 13:31Marketing requests true need
  10. 14:33Loss from ignoring real-time
  11. 16:19Solving with multi-armed bandits
  12. 18:31MAB vs random sampling
  13. 20:14Exploration vs exploitation
  14. 21:42Key lessons and future
  15. 23:13Q&A: Old system performance
  16. 24:15Q&A: Exploitation vs exploration
  17. 26:24Q&A: Classical vs MAB
  18. 28:13Q&A: Data quality issues
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.