Simple model for exploiting scoial networks data in recommender systems.
- : Score rated by user to item
- : Hidden feature vector for user
- : Hidden feature vector for item
- : Hidden weight for user impact on user
is estimated from predictive distribution approximated by varational infrence. See the doc.pdf
for more information and derivations.
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
Output of main.py
:
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