the-algorithm/src/scala/com/twitter/recos/user_user_graph
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
2023-03-31 17:36:31 -05:00
..
BUILD Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
KafkaConfig.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
LoggingUserUserGraph.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
Main.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
README.md Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
RecommendUsersHandler.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
RecosConfig.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
UserEdgeTypeMask.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
UserUserGraph.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
UserUserGraphWriter.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00

README.md

UserUserGraph (UUG)

What is it

User User Graph (UUG) is a Finalge thrift service built on the GraphJet framework. In maintains a graph of user-user relationships and serves user recommendations based on traversals of this graph.

How is it used on Twitter

UUG recommends users to follow based on who your follow graph have recently followed. The core idea behind UUG is collaborative filtering. UUG takes a user's weighted follow graph (i.e a list of weighted userIds) as input, performs efficient traversal & aggregation, and returns the top weighted users basd on # of users that engaged the users, as well as the engaging users' weights.

UUG is a stateful service and relies on a Kafka stream to ingest & persist states. It maintains an in-memory user engagements over the past week. Older events are dropped and GC'ed.

For full details on storage & processing, please check out our open-sourced project GraphJet, a general-purpose high performance in-memory storage engine.