Goodreads Neural Network
September 2024 - November 2024
During my senior year at OSU, I elected to take Big Data Analytics in Physics with Dr. Hughes, a course focused on machine learning and advanced algorithms in the context of scientific research and dataset analysis. The final project for this course required students to use apply machine learning algorithms to categorize a large dataset, and train that algorithm using the Ohio Supercomputer Center. I elected to create a novel text-based book recommendation algorithm in Python based on fully connected neural networks and bidirectional encoder representations from transformers. The algorithm was able to predict binary user preferences with >70% accuracy using a training set of less than 7000 book descriptions and review pairs.
This algorithm was inspired by the limitations of most book recommendation algorithms, namely their lack of genuine personalization, large computational cost, and heavy reliance on book popularity to generate suggestions. Many of these algorithms aggregate review metrics from a large sample of users to determine the quality of a book, meaning the most frequently reviewed books are far more likely to be recommended to users. I attempted to sidestep these limitations by focusing on text-based reviews and book descriptions, rather than numerical ratings. Every book in the Goodreads database has an associated text description, greatly increasing the number of works the algorithm can extract meaningful data from and recommend, and this data is much more nuanced than a numerical rating.
In the future, I would love to return to this project and pursue the ideas laid out in the conclusion of this report. Specifically, I would like to train the algorithm on a larger dataset, then release an interactive version of the network.