L'algorithme de recommandation de Twitter est un ensemble de services et de tâches chargés de diffuser des flux de Tweets et d'autres contenus sur toutes les surfaces des produits Twitter (par exemple, For You Timeline, Search, Explore, Notifications). Pour une introduction au fonctionnement de l'algorithme, veuillez consulter notre blog d'ingénierie.
Les surfaces de produits sur Twitter sont construites sur un ensemble partagé de données, de modèles et de cadres logiciels. Les composants partagés inclus dans ce référentiel sont répertoriés ci-dessous :
Taper | Composant | Description |
---|---|---|
Données | tweetypie | Service Tweet principal qui gère la lecture et l'écriture des données Tweet. |
actions utilisateur unifiées | Flux en temps réel des actions des utilisateurs sur Twitter. | |
service de signal utilisateur | Plateforme centralisée pour récupérer les signaux utilisateur explicites (par exemple, j'aime, réponses) et implicites (par exemple, visites de profil, clics sur tweet). | |
Modèle | SimClusters | Détection de communauté et intégrations clairsemées dans ces communautés. |
TwHIN | Intégrations denses de graphiques de connaissances pour les utilisateurs et les tweets. | |
modèles de confiance et de sécurité | Modèles de détection de contenus NSFW ou abusifs. | |
graphique réel | Modèle permettant de prédire la probabilité qu'un utilisateur de Twitter interagisse avec un autre utilisateur. | |
tweeter | Algorithme de Page-Rank pour calculer la réputation des utilisateurs de Twitter. | |
injecteur-recos | Processeur d'événements de streaming pour créer des flux d'entrée pour les services basés sur GraphJet. | |
service de fonctionnalités graphiques | Sert des fonctionnalités graphiques pour une paire d'utilisateurs dirigée (par exemple, combien d'utilisateurs A suivent les Tweets aimés de l'utilisateur B). | |
sujet-preuve-sociale | Identifie les sujets liés aux Tweets individuels. | |
représentation-buteur | Calculez les scores entre des paires d'entités (utilisateurs, tweets, etc.) en utilisant la similarité d'intégration. | |
Cadre logiciel | naviguer | Modèle d'apprentissage automatique hautes performances écrit en Rust. |
mélangeur de produits | Cadre logiciel pour créer des flux de contenu. | |
calendrier-agrégation-cadre | Framework pour générer des fonctionnalités agrégées par lots ou en temps réel. | |
responsable de la représentation | Service pour récupérer les intégrations (c'est-à-dire SimClusers et TwHIN). | |
twml | Ancien cadre d'apprentissage automatique basé sur TensorFlow v1. |
Les surfaces de produits actuellement incluses dans ce référentiel sont la chronologie For You et les notifications recommandées.
Le diagramme ci-dessous illustre comment les principaux services et emplois s'interconnectent pour construire une chronologie pour vous.
Les composants principaux de la chronologie For You inclus dans ce référentiel sont répertoriés ci-dessous :
Taper | Composant | Description |
---|---|---|
Source du candidat | index de recherche | Recherchez et classez les tweets en réseau. Environ 50 % des Tweets proviennent de cette source de candidats. |
cr-mélangeur | Couche de coordination pour récupérer les candidats tweet hors réseau à partir des services de calcul sous-jacents. | |
graphique d'entité tweet utilisateur (UTEG) | Conserve en mémoire un graphique d'interaction utilisateur-tweet et recherche des candidats en fonction des parcours de ce graphique. Ceci est construit sur le framework GraphJet. Plusieurs autres fonctionnalités basées sur GraphJet et sources candidates se trouvent ici. | |
service de suivi des recommandations (FRS) | Fournit aux utilisateurs des recommandations sur les comptes à suivre et les Tweets de ces comptes. | |
Classement | rang léger | Modèle Light Ranker utilisé par l'index de recherche (Earlybird) pour classer les Tweets. |
rang lourd | Réseau neuronal pour classer les tweets des candidats. L'un des principaux signaux utilisés pour sélectionner la chronologie des tweets après la recherche de candidats. | |
Mixage et filtrage des tweets | table de mixage maison | Service principal utilisé pour construire et servir la chronologie d'accueil. Construit sur un mélangeur de produits. |
filtres de visibilité | Responsable du filtrage du contenu Twitter pour assurer la conformité légale, améliorer la qualité des produits, accroître la confiance des utilisateurs, protéger les revenus grâce à l'utilisation d'un filtrage strict, de traitements de produits visibles et d'un déclassement grossier. | |
classement chronologique | Service existant qui fournit des tweets notés par pertinence à partir du service Earlybird Search Index et UTEG. |
Les principaux composants des notifications recommandées incluses dans ce référentiel sont répertoriés ci-dessous :
Taper | Composant | Description |
---|---|---|
Service | service de poussée | Le principal service de recommandation de Twitter était utilisé pour présenter des recommandations à nos utilisateurs via des notifications. |
Classement | pushservice-light-ranker | Modèle Light Ranker utilisé par pushservice pour classer les Tweets. Fait le pont entre la génération de candidats et le classement important en présélectionnant des candidats hautement pertinents à partir de l'énorme pool de candidats initial. |
pushservice-heavy-ranker | Modèle d'apprentissage multitâche pour prédire les probabilités que les utilisateurs cibles ouvrent et interagissent avec les notifications envoyées. |
Nous incluons des fichiers Bazel BUILD pour la plupart des composants, mais pas un fichier BUILD ou WORKSPACE de niveau supérieur. Nous prévoyons d'ajouter un système de construction et de test plus complet à l'avenir.
Nous invitons la communauté à soumettre des problèmes GitHub et à tirer des demandes de suggestions sur l'amélioration de l'algorithme de recommandation. Nous travaillons sur des outils pour gérer ces suggestions et synchroniser les modifications avec notre référentiel interne. Tout problème ou problème de sécurité doit être adressé à notre programme officiel de bug bounty via HackerOne. Nous espérons bénéficier de l’intelligence collective et de l’expertise de la communauté mondiale pour nous aider à identifier les problèmes et suggérer des améliorations, conduisant finalement à un meilleur Twitter.
Lisez notre blog sur l'initiative open source ici.