Deployed Website available at https://trumandaniels.dev/recommendation-system/
Portfolio recommendation-system demo built around real user-app install interactions from the Myket Android Application Install Dataset.
The product story is:
Given the apps a user has installed, recommend the next apps they are likely to install.
The frontend compares two recommendation strategies:
- Popularity: globally most-installed apps in the Myket interaction sample.
- Item-Item CF: apps often installed by users who also installed the selected user's apps.
The Myket data is a user-app-time interaction graph, so it also gives this project a working PyTorch Geometric training path for a lightweight LightGCN-style item-item scorer.
The source dataset is kept under ignored data/ paths:
data/myket-android-application-market-dataset/
data/myket.db
To rebuild the SQLite database and generated frontend data:
python3 injest_data.py --replace-db
python3 scripts/export_demo_data.pyInstall the pinned model dependencies:
sfw .venv/bin/pip install -r requirements.txtTrain a bounded CPU-friendly graph model:
.venv/bin/python train_models.py train-pyg-item-item \
--max-users 2000 \
--max-apps 2000 \
--max-edges 100000 \
--epochs 5 \
--output-path .runtime/models/pyg-item-item.ptScore from an existing user's install history:
.venv/bin/python train_models.py recommend-pyg-item-item \
--model-path .runtime/models/pyg-item-item.pt \
--user-id -1152799605 \
--limit 10cd frontend
npm run devFor a production check:
cd frontend
npm run build