Scaling Graph Neural Networks for Friend Recommendation: Multi-Hash User Embeddings and Temporal Neighbor Sampling

2026-08-27Information Retrieval

Information RetrievalMachine LearningSocial and Information Networks
AI summary

The authors created a system to recommend friends on huge social networks by using graph neural networks (GNNs). They focus on two main improvements: a way to compress user ID information drastically, and a faster method to pick recent friends for analysis, making the system much more efficient. Their approach works on a giant network with nearly 200 million users and improves friend recommendations significantly. They also released the tools they built so others can use them on big, time-based graphs.

Graph Neural NetworksFriend RecommendationMulti-hash EmbeddingsTemporal Neighbor SamplingDistributed TrainingAdjacency ListCSR StorageBinary SearchGraph EmbeddingsA/B Testing
Authors
Maksim Utushkin, Andrei Ovsiannikov, Alexander D'yakonov
Abstract
Friend recommendation is inherently graph-structured: the relevance of a potential connection depends on multi-hop social context rather than user attributes alone. However, deploying message-passing GNNs on a production-scale social graph with hundreds of millions of users and tens of billions of edges requires addressing numerous modeling and systems challenges. We present a scalable end-to-end GNN ranking system for production social graphs, focusing on two design choices that are critical in this setting: multi-hash ID embeddings and temporal neighbor sampling. Multi-hash embeddings are common for high-cardinality features, but industrial GNN systems typically either ignore trainable IDs or accept full embedding tables, exceeding 200 GB for our graph. We integrate multi-hash as the primary node representation, reducing the ID-embedding table size by more than 98 percent while preserving ranking quality. Temporal neighbor sampling is well understood in principle, but existing implementations scan full adjacency lists, which is a non-starter for users with tens of thousands of friends. We implement timestamp-sorted CSR storage with binary search, reducing the per-node temporal sampling cost from $O(deg(v) + k)$ to $O(\log(deg(v)) + k)$. Beyond these components, we show that this combination scales and yields measurable production impact. On a graph with 194M users and 28B edges, offline ablations isolate each design choice's contribution. In an online A/B test, our system increases friend additions from recommendations by 16 percent and unique friend adders by 11.5 percent over a strong production baseline. We release our framework for distributed training and inference on large temporal graphs.