Graph Neural Networks for Social Recommendation
Who:
Jennifer Wang (jwang400), Emily Wang (ewang96), Calvin Eng (ceng4), Isha Mody (imody)
Introduction:
We are looking at datasets from social and product review websites to create a product recommendation network using Graph Neural Networks (GNNs). The paper’s objectives are to generate accurate product recommendations for different users based on their own rating histories plus the rating histories of people they trust. Using GNNs, we will hopefully see better results than other networks designed for social recommendations like PMF, Soec, SoReg etc. The problem is a structured prediction—one that uses the connections between users on a platform to create predictions based on their previous interactions and social network.
Related Work:
The project is drawn from previous work on social recommendations, which can be found at the following link. One paper relevant to the topic can be found here and is titled “A Neural Influence Diffusion Model for Social Recommendation”. CollaborativeFiltering (CF) is a way to study a given user’s item interaction history in order to create new recommendations, but we incur data loss in the process. Instead, studying social networks gets a broader picture of a given user with respect to the histories of those they trust, and so creates better recommendations. This paper improves on the existing models of social networks, which use a user's information to influence the user embeddings and item embeddings of the immediate neighbors. In their paper, they propose a method of simulating the recursive diffusion in social networks using layer-wise propagation. In this way, they find better results for social recommendations, as the full effect of diffusion is able to be incorporated into recommendations for a user. The paper we are re-implementing has code written in PyTorch that can be found here. We will be re-implementing the code in TensorFlow.
Data:
The paper works with Ciao and Epinions as their training and testing sets. Both contain information on users, products, reviews, user ratings, and trust relations (a directed relation e.g. following someone’s reviews). To validate the experiment, we will be using the Douban dataset, which comes from a website dedicated to connecting users interested in reading. Similar to Ciao and Epinions, users are able to review books and connect with other users on the website. The dataset is roughly 1.5 GB and will require some preprocessing, but it is mainly reformatting the data into a similar structure as the code we are reimplementing and accounting for the changed user-user connection on this site. Methodology: The architecture of the model contains three main components: user modeling, item modeling, and rating prediction. The user modeling learns latent factors of users from both the social graph and user-item graph, using an item and a social aggregation to combine information. The item modeling component learns latent factors of items using a user aggregation similar to the previous component. The third component is to learn model parameters via prediction by integrating user and item modeling components. In order to train the model, an objective function is used that combines the number of observed ratings with the ground truth ratings that users assign to items.
Metrics:
The metrics for success used by most social recommender research papers are Mean Absolute Error (MAE) and Root Mean Square Error (RMSE).The notion of accuracy does apply to our project, and we will be comparing accuracy in our implementation with that of the paper, which uses the same metrics; we aim to get similar results with the datasets they used. The authors of the paper we are implementing hoped to create a model more successful than past social recommenders and compared accuracy with other known models on the same datasets. Our base and target goals include re-implementing the paper in TensorFlow and applying it to the dataset used in the paper and a new one, specifically the Douban dataset. A stretch goal would be to re-implement another simple model in addition to the GNN and compare their results.
Ethics:
Deep Learning is a good approach to this model because it allows for the model to incorporate social diffusion similar to how it actually works in real life. Propagating the effects of user-user and user-item interactions, the GNN more fully uses social diffusion to make accurate predictions, especially given that datasets for this type of research are not extremely large. One societal issue relevant to this project is recommendation systems that create a filter bubble. Although it may be nice for users to get relevant suggestions, algorithms such as the social recommender we are implementing may too narrowly consider the interests of individuals, creating a bubble in which they are not opened up to diverse suggestions.
Division of labor:
List of tasks: data processing, translation, modifying code to run new dataset, training/tinkering with the model, visualizations, writeup/presentation
Emily: I will translate the repository into Tensorflow and work with Jenn to train/tinker with the model. I can also work on visualizing our accuracy results and dataset stats.
Jenn: data preprocessing of the Epinions and Douban datasets, later on I will train/tinker with the model on department GPUs.
Calvin: Will also work on translating the repository into Tensorflow, as well as processing the code/new dataset Douban to run with the code.
Isha: I will help with the translation and modification to Tensorflow and do the writeups for the presentation.
Built With
- python
- tensorflow

Log in or sign up for Devpost to join the conversation.