Case Study / 2023

Steam Games Recommender

Collaborative-Filtering-Recommender mit PySpark und MLflow-Tracking, ausgeliefert auf Databricks.

Steam Games Recommender Thumbnail mit Drei-Knoten-Graph

Der vollständige ML-Lifecycle, im großen Maßstab.

Einen Recommender im großen Maßstab zu bauen ist ein anderes Problem, als einen auf dem Laptop zu bauen. Der Steam-200k-Datensatz hat Implicit Feedback von echten Nutzern in echtem Volumen. Ihn gut zu nutzen heißt, die Modellierung auf eine verteilte Engine zu verschieben und Experimente sauber zu tracken. Das war das Projekt, in dem ich einen vollständigen ML-Lifecycle ausgeliefert habe: distributed ALS Training, Hyperparameter Sweeps mit Cross Validation und Experiment Tracking in MLflow.

ALS auf Spark MLlib, mit ordentlichem Tuning.

Alternating Least Squares ist der richtige Algorithmus für Implicit Feedback im Maßstab, und Spark MLlib hat eine saubere Implementierung. Ich habe die Pipeline auf Databricks Community Edition aufgesetzt, was mir genug Compute gegeben hat, um eine vollständige Grid Search statt eines symbolischen Tuning-Schrittes zu fahren.

Der Parameterraum deckte rank, regParam, alpha und maxIter ab. Ich habe das Ganze in CrossValidator gewrappt, jedes Experiment in MLflow getrackt, und das beste Modell genutzt, um personalisierte Empfehlungen für Beispiel-Nutzer zu generieren.

Ergebnis.

Ein funktionierender Recommender, ein sauberer Code, eine reproduzierbare Pipeline und die Gewohnheit, Hyperparameter-Tuning nie zu überspringen, nur weil es mühsam ist.

→ GitHub Repository