Туториал (MovieLens)¶
Этот туториал проходит benchmark path на MovieLens-1M. Это narrative-версия запуска
configs/example.yaml.
1. Выбрать dataset¶
MovieLens-1M достаточно маленький для быстрых итераций и содержит genre features для каждого фильма.
datasets:
- ml-1m
2. Выбрать donor¶
Начните с ALS. Он обучается только на warm interactions после pseudo-cold split.
donors:
- name: als
params:
factors: 64
regularization: 0.05
iterations: 20
3. Сравнить baselines и transfer¶
Grouped MP — сильный popularity baseline. linmap проверяет direct content-to-score transfer.
knn_score_avg — naive neighbor baseline.
methods:
- name: grouped_most_popular_pers
- name: linmap
- name: knn_score_avg
params:
k: 20
4. Сохранить честный split¶
splitter:
name: pseudo_cold
params:
cold_frac: 0.2
val_frac: 0.1
n_pop_buckets: 5
min_item_interactions: 5
Splitter удаляет pseudo-cold items из donor training и neighbor construction. См. evaluation protocol для invariant.
5. Запустить¶
uv run warmbench --config configs/example.yaml --dry-run
uv run warmbench --config configs/example.yaml
Ожидаемое направление: linmap должен быть competitive with or stronger than personalized Grouped MP
baseline по AUC, а naive KNN полезен как проверка inherited popularity.
6. Читать metrics¶
Ranking metrics (recall@k, precision@k, map@k, ndcg@k, mrr@k) показывают top-k quality.
AUC репортится как auxiliary per-user ranking signal. Для финальных claims сравнивайте результаты по
seeds, а не по одному run.