Skip to content

feat: add multi-seed MovieLens 100K MF vs GraphSAGE leaderboard - #8

Merged
sathariels merged 4 commits into
mainfrom
cursor/multiseed-gnn-vs-mf-leaderboard-980c
Sep 15, 2026
Merged

sathariels merged 4 commits into
mainfrom
cursor/multiseed-gnn-vs-mf-leaderboard-980c

Conversation

@sathariels

@sathariels sathariels commented Sep 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

Opens the ADR-007 multi-seed MovieLens 100K leaderboard: implicit MF vs GraphSAGE on the same ADR-003 protocol, eligible users, candidate construction, and Recall@10 / NDCG@10, across seeds 7, 11, 13, 17, 19.

  • Reuses the Phase 5 train/eval path (PairScorer + sagerec_metrics, GraphSAGE via native graph_sampler / sagerec_minibatch + PyG SAGEConv).
  • New aggregator python/sagerec_multiseed.py writes per-seed rows plus mean ± sample std (n-1) (median stored too) and an error-bar chart.
  • Thin runner scripts/run_multiseed_gnn_vs_mf.py (not run in default CI).
  • Historical Phase 5 files (results/mf_movielens_100k.json, results/graphsage_movielens_100k.json, results/gnn_vs_mf_*) stay single-seed provenance and were not overwritten.

Measured artifacts from this environment are committed:

  • results/multiseed_gnn_vs_mf_movielens_100k.json
  • results/multiseed_gnn_vs_mf_movielens_100k.md
  • results/multiseed_gnn_vs_mf_movielens_100k.svg

Copied from that JSON (943 eligible users):

Model Epochs Recall@10 mean±std NDCG@10 mean±std
implicit MF 1 SGD 0.039024 ± 0.006848 0.020082 ± 0.002658
GraphSAGE 3 Adam 0.044963 ± 0.007742 0.020948 ± 0.005239

Seed-7 MF matches the historical Phase 5 MF file. Seed-7 GraphSAGE is a new SAGEConv measurement and is not mixed with the Phase 5 in-repo mean-layer number.

Fairness

Shared eval protocol only. MF remains 1 SGD epoch; GraphSAGE remains 3 Adam epochs. NeighborLoader is still forbidden on the primary path. This is not a SOTA claim.

Tests

Schema/aggregation unit tests, historical-file labels, committed-file math check, and a tiny synthetic two-seed smoke. Default CI does not download MovieLens or run the 5-seed 100K job.

Release CTest is green locally (17/17, including python_binding_smoke).

Open in Web Open in Cursor 

cursoragent and others added 4 commits September 15, 2026 16:58
Record ADR-007 and aggregate implicit MF and native-backed GraphSAGE
across seeds 7, 11, 13, 17, 19 with mean±sample std. Reuse the Phase 5
PairScorer protocol and keep historical single-seed result files unchanged.

Co-authored-by: Nithilan Kumaran <sathariels@users.noreply.github.com>
Co-authored-by: Nithilan Kumaran <sathariels@users.noreply.github.com>
Co-authored-by: Nithilan Kumaran <sathariels@users.noreply.github.com>
Commit JSON, markdown, and error-bar chart from a real ADR-007 run on
seeds 7, 11, 13, 17, and 19. Phase 5 single-seed files are unchanged.

Co-authored-by: Nithilan Kumaran <sathariels@users.noreply.github.com>
@sathariels
sathariels marked this pull request as ready for review September 15, 2026 20:29
@sathariels
sathariels merged commit e31432d into main Sep 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants