mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-12 22:28:50 +02:00
bb095608b7
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
18 lines
1.1 KiB
Markdown
18 lines
1.1 KiB
Markdown
# 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.
|
|
- https://github.com/twitter/GraphJet
|
|
- http://www.vldb.org/pvldb/vol9/p1281-sharma.pdf
|