Skip to content

ArminKmz/Social-Matrix-Factorization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social-Matrix-Factorization

Simple model for exploiting scoial networks data in recommender systems.

Model

  • : Score rated by user to item

  • : Hidden feature vector for user

  • : Hidden feature vector for item

  • : Hidden weight for user impact on user

SMF Model

Model Distributions



is estimated from predictive distribution approximated by varational infrence. See the doc.pdf for more information and derivations.

Useage

To train model set hyperparameters and use .train() method. For load the model and predict scores from data initialize the model with network=network, load=True and use .predict(data) method.

Take a look at main.py for train and load model.

To speed up you can limit each user outdegree with setting LIMIT in main.py. Data format is available in dataset/readme.txt

Example

Output of main.py:

train-rmse

iteration 0  RMSE: 1.1623740799051603
iteration 1  RMSE: 0.974779153572551
iteration 2  RMSE: 0.9061886948956133
iteration 3  RMSE: 0.8767977965409327
iteration 4  RMSE: 0.8624643916488482
iteration 5  RMSE: 0.85406229979618
iteration 6  RMSE: 0.8484390298439565
iteration 7  RMSE: 0.8441520641876232
iteration 8  RMSE: 0.8405251123950408
iteration 9  RMSE: 0.8375187875896802
iteration 10  RMSE: 0.8351068584344935
RMSE on validation data: 1.022167855935175

About

Exploiting scoial networks data in recommender systems.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages