Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Inductive graph-based matrix completion (IGMC) from "M. Zhang and Y. Chen, Inductive Matrix Completion Based on Graph Neural Networks, ICLR 2020 spotlight".
| Date | Stars |
|---|---|
| 2026-07-31 | 367 |
| 2026-08-06 | 366 |
Today
-1 stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
IGMC -- Inductive Graph-based Matrix Completion
===============================================================================

Update
------
9/23/2021: Create a "latest" branch to enable running IGMC with latest PyG versions.
11/23/2020: Optimized the subgraph extraction speed further. On large datasets it shows up to 20 times speed-up.
8/27/2020: Significantly improved the subgraph extraction speed. With an 8-core machine, now it only takes 30 seconds and 10 minutes to extract subgraphs for ml_100k and ml_1m, respectively. Using --dynamic-dataset also shows about 50% speed-up.
About
-----
IGMC is an __inductive__ matrix completion model based on graph neural networks __without__ using any side information. Traditional matrix factorization approaches factorize the (rating) matrix into the product of low-dimensional latent embeddings of rows (users) and columns (items), which are __transductive__ since the learned embeddings cannot generalize to unseen rows/columns or to new matrices. To make matrix completion __inductive__, content (side information), such as user's age or movie's genre, has to be used previously. However, high-quality content is not always available, and can be hard to extract. Under the extreme setting where __not any__ side information is available other than the matrix to complete, can we still learn an inductive matrix completion model? IGMC achieves this by training a graph neural network (GNN) based purely on local subgraphs around (user, item) pairs extracted from the bipartite graph formed by the rating matrix, and maps these subgraphs to their corresponding ratings. It does not rely on any global information specific to the rating matrix or the task, nor does it learn embeddings specific to the observed users/items. Thus, IGMC is a completely inductive model.
Since IGMC is inductive, it can generalize to users/items unseen during the training (given that their interactions exist), and can even __transfer__ to new tasks. Our transfer learning experiments show that a model trained out of the MovieLens dataset can be directly used to predict Douban movie ratings and works surprisingly well. For more information, please check our paper:
> M. Zhang and Y. Chen, Inductive Matrix Completion Based on Graph Neural Networks. [\[PDF\]](https://openreview.net/pdf?id=ByxxgCEYDS)
Requirements
------------
Stable version: Python 3.8.1 + PyTorch 1.4.0 + PyTorch_Geometric 1.4.2. If your PyG version is higher than this, please refer to [#7](https://github.com/muhanzhang/IGMC/issues/7).
If you use latest PyTorch/PyG versions, you may also refer to the [latest](https://github.com/muhanzhang/IGMC/tree/latest) branch.
Install [PyTorch](https://pytorch.org/)
Install [PyTorch_Geometric](https://rusty1s.github.io/pytorch_geometric/build/html/notes/installation.html)
Other required python libraries: numpy, scipy, pandas, h5py, networkx, tqdm etc.
Usages
------
### Flixster, Douban and YahooMusic
To train on Flixster, type:
python Main.py --data-name flixster --epochs 40 --testing --ensemble
The results will be saved in "results/flixster\_testmode/". The processed enclosing subgraphs will be saved in "data/flixster/testmode/". Change flixster to douban or yahoo\_music to do the same experiments on Douban and YahooMusic datasets, respectively. Delete --testing to evaluate on a validation set to do hyperparameter tuning.
### MovieLens-100K and MovieLens-1M
To train on MovieLens-100K, type:
python Main.py --data-name ml_100k --save-appendix _mnph200 --data-appendix _mnph200 --epochs 80 --max-nodes-per-hop 200 --testing --ensemble --dynamic-train
where the --max-nodes-per-hop argument specifies the maximum number of neighbors to sample for each node during the enclosing subgraph extraction, whose purpose is to limit the subgraph size to accomodate large datasets. The --dynamic-train option mExcerpt of 6,987 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:fd32cfcc852db937, llm:Repository implements Inductive Graph-based Matrix Completion (IGMC) from ICLR 2020 paper 'Inductive Matrix Completion Based on Graph Neural Networks'. Language: Python. Purpose: graph-based matrix completion using GNNs (recommender systems).
matched fp:fd32cfcc852db937, llm:Repository implements Inductive Graph-based Matrix Completion (IGMC) from ICLR 2020 paper 'Inductive Matrix Completion Based on Graph Neural Networks'. Language: Python. Purpose: graph-based matrix completion using GNNs (recommender systems).