Recommending new products is one of the fundamental ways to enhance the shopping experience for users. This is facilitated by recommendation systems, which aim to determine the most accurate rating for an item and then present the highest-rated items to the user. There are various types of recommendation systems or algorithms that calculate ratings. This thesis focuses on collaborative filtering and the implementation of three recommendation systems in the open-source relational database PostgreSQL. The idea behind this approach comes from the practical need to run recommendations directly in the relational database where the data is stored. This avoids extra data transfer and makes use of PostgreSQL’s built-in SQL features and optimizations. The efficient implementation process of such a system in the PL/pgSQL language is presented, along with the advantages and disadvantages of this implementation. The systems were tested using the MovieLens dataset and compared with the Surprise tool (Python programming language) and the existing RecDB solution built within the PostgreSQL relational database. At the end, the key findings of the system comparison are presented, along with possible directions for future work and improvements.
|