Boltzmann Machine is an unsupervised deep learning model. It has no direction, and it's not a deterministic model. In deterministic models, the output of the model is fully determined by the parameter values and the initial conditions initial conditions. Boltzmann Machine is a stochastic model which possesses some inherent randomness. The same set of parameter values and initial conditions will lead to an ensemble of different outputs. A movie dataset has been used which has more than 24,000,000 ratings and 670,000 tags applied to 40,000 movies by 260,000 users.
Boltzmann Machine Model
Input values are the visible nodes in the image below. They are connected to each other and create some hidden nodes. It's just like a nuclear power plant. You can measure some metrics in the plant, but there are also some metrics you cannot measure. Also, the purpose of this model is to find out a stable and normal state of it. Just like the nuclear power plant, you cannot use a supervised learning model to measure meltdown, so we use an unsupervised learning model to check the state of our model. For Boltzmann Machines, all the nodes are equal and the same. Also, it uses contrastive divergence to adjust its weights.


Boltzmann Machine Recommender System
In this project, I use Boltzmann Machines to make two recommender systems, one to predict the audience's yes or no to a movie, the other one to predict a movie's rating. These are the two most popular recommender systems in the industry. A movie dataset has been used which has more than 24,000,000 ratings and 670,000 tags applied to 40,000 movies by 260,000 users.
Coding




Conclusion
After training and testing the dataset, the test lost is 25%, which means we have a 75% accuracy.

Software used: Python, Jupyter Notebook
Packages used: Pytorch