the-algorithm/src/scala/com/twitter/recos/user_tweet_entity_graph
twitter-team bb095608b7 [minor] Fix grammar + typo issues
Closes #557, closes #678, closes #748, closes #806, closes #818, closes #842, closes #866, closes #948, closes #1024, closes #1313, closes #1458, closes #1461, closes #1465, closes #1491, closes #1503, closes #1539, closes #1611
2023-04-04 16:13:24 -05:00
..
BUILD Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
EntitySocialProofRunner.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
LoggingUserTweetEntityGraph.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 [minor] Fix grammar + typo issues 2023-04-04 16:13:24 -05:00
RecommendationHandler.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
SocialProofHandler.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
SocialProofHydrator.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
TweetRecommendationsRunner.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
TweetSocialProofHandler.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
TweetSocialProofRunner.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
UserTweetEdgeTypeMask.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
UserTweetEntityGraph.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00
UserTweetEntityGraphWriter.scala Twitter Recommendation Algorithm 2023-03-31 17:36:31 -05:00

README.md

UserTweetEntityGraph (UTEG)

What is it

User Tweet Entity Graph (UTEG) is a Finalge thrift service built on the GraphJet framework. It maintains a graph of user-tweet relationships and serves user recommendations based on traversals in this graph.

How is it used on Twitter

UTEG generates the "XXX Liked" out-of-network tweets seen on Twitter's Home Timeline. The core idea behind UTEG is collaborative filtering. UTEG 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 tweets engaged based on # of users that engaged the tweet, as well as the engaged users' weights.

UTEG is a stateful service and relies on a Kafka stream to ingest & persist states. It maintains in-memory user engagements over the past 24-48 hours. 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.