{"id":13958344,"url":"https://github.com/maenzhier/GRecX","last_synced_at":"2025-07-20T23:31:10.254Z","repository":{"id":41518110,"uuid":"422577000","full_name":"maenzhier/GRecX","owner":"maenzhier","description":"An Efficient and Unified Benchmark for GNN-based Recommendation.","archived":false,"fork":false,"pushed_at":"2023-05-11T09:46:35.000Z","size":345,"stargazers_count":79,"open_issues_count":1,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-09-28T03:53:55.321Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maenzhier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-29T13:00:43.000Z","updated_at":"2024-05-15T14:44:03.000Z","dependencies_parsed_at":"2022-09-26T16:21:24.886Z","dependency_job_id":null,"html_url":"https://github.com/maenzhier/GRecX","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maenzhier%2FGRecX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maenzhier%2FGRecX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maenzhier%2FGRecX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maenzhier%2FGRecX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maenzhier","download_url":"https://codeload.github.com/maenzhier/GRecX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226844980,"owners_count":17691138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-08T13:01:30.020Z","updated_at":"2024-11-28T01:31:45.109Z","avatar_url":"https://github.com/maenzhier.png","language":"Python","funding_links":[],"categories":["其他_推荐系统"],"sub_categories":["网络服务_其他"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"GRecX_LOGO_SQUARE.png\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n# GRecX\nAn Efficient and Unified Benchmark for GNN-based Recommendation.\n\n## Homepage and Documentation\n\n+ Homepage: [https://github.com/maenzhier/GRecX](https://github.com/maenzhier/GRecX)\n+ Paper: [GRecX: An Efficient and Unified Benchmark for GNN-based Recommendation](https://arxiv.org/pdf/2111.10342.pdf)\n\n\n## Example Benchmark: Performance on Yelp and Gowalla with BPR Loss\n\nPerformance on Yelp with BPR Loss:\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"plots/bpr_yelp.png\" width=\"500\"/\u003e\n\u003c/p\u003e\n\n\nPerformance on Gowalla with BPR Loss:\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"plots/bpr_gowalla.png\" width=\"500\"/\u003e\n\u003c/p\u003e\n\n## Demo\n\nWe recommend you get started with some demos.\n\n+ [Matrix Factorization (MF)](demo/demo_mf.py)\n+ [MLP + MF](demo/demo_mf_fc.py)\n+ [NGCF](demo/demo_ngcf.py)\n+ [LightGCN](demo/demo_light_gcn.py)\n+ [UltraGCN](demo/demo_ultra_gcn.py)\n\n## Preliminary Comparison\n\n\n### LightGCN-Yelp dataset (featureless)\n\n[comment]: \u003c\u003e (| Algo | nDCG@20 | recall@20 | precision@20 |)\n\n[comment]: \u003c\u003e (| --- | --- | --- | --- | )\n\n[comment]: \u003c\u003e (| NGCF | 0.04118 | 0.02302 | 0.05034 |)\n\n[comment]: \u003c\u003e (| lightGCN| 0.05260 | 0.06397 | 0.02876 |)\n\n[comment]: \u003c\u003e (| UltraGCN \u0026#40;oc\u0026#41; | 0.03408 | 0.04154 | 0.01928 |)\n\n[comment]: \u003c\u003e (| our-UltraGCN | 0.03540 | --- | --- |)\n\n[comment]: \u003c\u003e (Note that: oc means orignal code with negative_num=1  and negative_weight=1. )\n\n* BCE-loss\n\n[comment]: \u003c\u003e (| Algo | nDCG@5 | nDCG@10 | nDCG@15 | nDCG@20 |)\n\n[comment]: \u003c\u003e (| --- | --- | --- | --- | --- |)\n\n[comment]: \u003c\u003e (| MF| 0.031168 | 0.033510 | 0.037817 | 0.042061 \u0026#40;epoch:1300\u0026#41; |)\n\n[comment]: \u003c\u003e (| our-lightGCN| 0.034872 | 0.037350 | 0.041520 | 0.045872 \u0026#40;epoch:1300\u0026#41; |)\n\n| Algo | Precision@10 | Precision@20 | Recall@10 | Recall@20 | nDCG@10 | nDCG@20 |\n| --- | --- | --- | --- | --- | --- | --- |\n| MF |  0.029597 | 0.025495 | 0.032733 | 0.056086 | 0.037332  | 0.045805 |\n| NGCF | 0.024713 | 0.021893 | 0.028251 | 0.049611 | 0.031357 | 0.039549 |\n| LightGCN | --- | --- | --- | --- | 0.037350 | 0.045872 |\n| UltraGCN-single | 0.030652 |  0.026790 | 0.033913 | 0.058886 | 0.038576 | 0.047766 |\n| UltraGCN | 0.03553 |  0.030346 | 0.039526 | 0.067028 | 0.045365 | 0.055376 |\n\n* BPR-loss\n\n[comment]: \u003c\u003e (| Algo | nDCG@5 | nDCG@10 | nDCG@15 | nDCG@20 |)\n\n[comment]: \u003c\u003e (| --- | --- | --- | --- | --- |)\n\n[comment]: \u003c\u003e (| MF| 0.034672 | 0.037321 | 0.041864 | 0.046112 |)\n\n[comment]: \u003c\u003e (| our-lightGCN| 0.040223 | 0.042649 | 0.047568 | 0.052569 \u0026#40;epoch:760\u0026#41; |)\n\n\n| Algo | Precision@10 | Precision@20 | Recall@10 | Recall@20 | nDCG@10 | nDCG@20 |\n| --- | --- | --- | --- | --- | --- | --- |\n| MF |  0.031489 | 0.027303 | 0.034733 | 0.060333 | 0.040103 | 0.049406 |\n| NGCF | 0.030375 | 0.026699 | 0.034502 | 0.059984 | 0.038732 | 0.048351 |\n| LightGCN | 0.033544 | 0.028996 | 0.037277 | 0.064128 | 0.042907 | 0.052667 |\n| UltraGCN-single | --- | --- | --- | --- | --- | --- |\n| UltraGCN | --- | --- | --- | --- | --- | --- |\n\nNote that \"UltraGCN-single\" uses loss with one negative sample and one negatvie loss weight\n\n[comment]: \u003c\u003e (***)\n\n[comment]: \u003c\u003e (#### LightGCN-Gowalla dataset \u0026#40;featureless\u0026#41;)\n\n[comment]: \u003c\u003e (| Algo | nDCG@20 | recall@20 | precision@20 |)\n\n[comment]: \u003c\u003e (| --- | --- | --- | --- | )\n\n[comment]: \u003c\u003e (| NGCF | 0.11804 | 0.14375 | 0.04404 |)\n\n[comment]: \u003c\u003e (| lightGCN| 0.15271 | 0.17801 | 0.05474 |)\n\n[comment]: \u003c\u003e (| UltraGCN \u0026#40;oc\u0026#41; | 0.10846 | 0.12202 | 0.03826 |)\n\n[comment]: \u003c\u003e (Note that: oc means orignal code with negative_num=1  and negative_weight=1.)\n\n\n[comment]: \u003c\u003e (* BCE-loss)\n\n[comment]: \u003c\u003e (| Algo | nDCG@5 | nDCG@10 | nDCG@15 | nDCG@20 |)\n\n[comment]: \u003c\u003e (| --- | --- | --- | --- | --- |)\n\n[comment]: \u003c\u003e (| MF| --- | --- | --- | 0.1298 |)\n\n[comment]: \u003c\u003e (| our-lightGCN| --- | --- | --- | 0.1300 |)\n\n\n[comment]: \u003c\u003e (* BPR-loss)\n\n[comment]: \u003c\u003e (| Algo | nDCG@5 | nDCG@10 | nDCG@15 | nDCG@20 |)\n\n[comment]: \u003c\u003e (| --- | --- | --- | --- | --- |)\n\n[comment]: \u003c\u003e (| MF| 0.116182 | 0.117339 | 0.123564 | 0.1400 |)\n\n[comment]: \u003c\u003e (| our-lightGCN| --- | --- | --- | 0.1485 |)\n\n\n[comment]: \u003c\u003e (#### LightGCN-Amazon-book dataset \u0026#40;featureless\u0026#41;)\n\n\n\n\n## Cite\n\nIf you use GRecX in a scientific publication, we would appreciate citations to the following paper:\n\n```html\n@misc{cai2021grecx,\ntitle={GRecX: An Efficient and Unified Benchmark for GNN-based Recommendation},\nauthor={Desheng Cai and Jun Hu and Shengsheng Qian and Quan Fang and Quan Zhao and Changsheng Xu},\nyear={2021},\neprint={2111.10342},\narchivePrefix={arXiv},\nprimaryClass={cs.IR}\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaenzhier%2FGRecX","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaenzhier%2FGRecX","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaenzhier%2FGRecX/lists"}