Categories
Uncategorized

Graph Neural Networks

A Graph Neural Network (GNN) is a Neural Network that utilizes the graph data structure and information contained within the nodes and edges to tune model parameters and produce a node label.

First nodes are given a distributed vector representation based on features of the nodes.

We then use this an input to our GNN which will use a loss function to iteratively train a model and tune parameters using Gradient Ascent to transform each node representation. These node representations can then be used to complete the task your loss function was minimizing.

Application of GNN at Uber

GNNs are used at Uber to make dish and restaurant recommendations on Uber Eats based on previous order history. There are two graphs one with users and dishes and one with users and restaurants. They have undirected weighted edges denoting how many times a dish has been ordered by a user or how many times a user has ordered from a restaurant.

The goal is to be able to take a user node and compare it with an unseen dish or restaurant node and compute the similarity of the outputs of the GNN and if it is high then we recommend this dish or restaurant.

Our model will effectively learn what general users like what general dishes or restaurants making the output similar or different. The way it decides this is by using the supplied edges. The higher the weighting between users and dishes/restaurants the similar the outputs get and if there is no edge then the outputs are different.

The quality of our model in correctly making outputs similar and different is based on the loss function. The loss function is then used in Gradient Descent to find the minimum of the loss function to make it correctly transform our node vectors.

Implementing this in offline testing, using the similarity of the outputs of the GNN for recommendations along with other features it was the most important one. A/B testing also demonstrated that using the GNN produced better recommendations.

This article was interesting because after working with NNs and CNNs this is an interesting way of using graphs with NN. Graphs seem to be a versatile data structure and can be used in many places even Reinforcement Learning.

Sources:

Food Discovery with Uber Eats: Using Graph Learning to Power Recommendations

MSR Cambridge Lecture Series: An Introduction to Graph Neural Networks: Models and Applications

https://arxiv.org/abs/1812.08434

Leave a Reply