Using Queryable State to update ML Algorithms per datapoint for...
summary
A streaming matchmaking pipeline built on Apache Flink uses Queryable State to hold per-player Bayesian histograms and updates skill estimates per game event, implemented in Scala and published on GitHub. A histogram-based skill distribution converges quickly for 1v1 (roughly 40 games to tighten), but team matches (5v5, 10v10) show much more jitter, so a pragmatic team-average update heuristic replaces a full high‑dimensional posterior. It runs, scales, and avoids external state stores but needs smoothing, hyperparameter tuning and backpressure handling.
AI-written summary · about
chapters (18)
- 0:00Introduction and motivation
- 1:45Enterprise use case explained
- 3:27Skill estimation with distributions
- 5:16Simulation and properties
- 8:02Applying to Pokémon data
- 9:06General Bayesian approach
- 11:33Heroes of the Storm challenge
- 13:19Queue mapping and team assignment
- 16:31Updating skill in team matches
- 17:38Flink implementation overview
- 20:34Detailed Flink pipeline
- 22:23Live demo walkthrough
- 24:52Debugging and visualization
- 27:24Stability and hyperparameters
- 30:55Convergence results
- 32:02System goals and trade-offs
- 33:48Key takeaways and future work
- 34:11Q&A session
related talks
40mStreaming ML with Flink
23mData driven matchmaking streaming at HyperConnect
56mRecreating the State of the Player
50mThe tech behind modern AI/ML use cases in Gaming
31mLeveraging GraphQL for Continual Learning in Real-Time ML Systems
24mEngaging new and diverse audiences with ML
24mUnder Pressure: Applying ML in Real Time
23mCustom-made games with machine learning and big data
