Skip to content

A variation of the Restricted Boltzmann Machine (RBM) for Collaborative Filtering tasks

Notifications You must be signed in to change notification settings

erwtokritos/collaborativefiltering-rbm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

collaborativefiltering-rbm

This is a Java implementation of the paper Restricted Boltzmann Machines for Collaborative Filtering by Salakhutdinov et al. The authors propose a two-layer undirected graphical model that is suited for collaborative filtering tasks. More specifically, a different RBM is used for each user under the following constraints:

  1. Every RBM has the same number of hidden units, but an RBM has active softmax visible units only for the items rated by that user
  2. The connection weights (and biases) between the softmax visible layer and the hidden layer are tied i.e. if two users have rated the same movie, their two RBM's must use the same weights between the softmax unit for that movie and the hidden units

The network is trained by optimizing the Contrastive Divergence (CD). The main class is the 'CollaborativeFilteringRBM' class which resides in the 'deeplearning\tools\rbmforcollaborativefiltering' package. It supports three methods:

  • loadRatings(String file), which loads and transforms the rating data. It expects a tab separated file in the form : 'user' 'item' 'rating'. For convenience, I have included a snapshot of the Movielens dataset under the 'data' folder
  • fit(RbmOptions) : It optimizes the parameters of the network for the given data
  • predict(String userId, String itemId, PredictionType predictionType) : It predicts the rating for a (user, item) pair. PredictionType can be either MAX (get max prob choice) or MEAN (weighted mean of all ratings)

I have used this algorithm in my paper Trust Inference in Online Social Networks. If you find this contribution useful, I would appreciate it if you cited my paper :

Athanasios Papaoikonomou, Magdalini Kardara, and Theodora Varvarigou. 2015. Trust Inference in Online Social Networks. In Proceedings of the 2015 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining 2015 (ASONAM '15), Jian Pei, Fabrizio Silvestri, and Jie Tang (Eds.). ACM, New York, NY, USA, 600-604. DOI=http://dx.doi.org/10.1145/2808797.2809418

About

A variation of the Restricted Boltzmann Machine (RBM) for Collaborative Filtering tasks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages