Il y a quelques jours, la nouvelle a éclaté que Twitter a publié le code source pour l’ensemble « Algorithme de recommandation », qui inclut les services et les pilotes utilisés pour créer un flux de messages recommandé qui est affiché à l’utilisateur dans la chronologie de démarrage.
En plus d’assurer la transparence et de permettre un audit indépendant des algorithmes utilisés, Twitter a exprimé sa volonté d’accepter les pull requests de la communauté avec des changements qui améliorent les algorithmes qui, après examen, peuvent être transférés à la base de code de travail de Twitter.
Chez Twitter 2.0 , nous pensons que nous avons la responsabilité, en tant que place publique sur Internet, de rendre notre plateforme transparente. Aujourd’hui, nous faisons donc le premier pas vers une nouvelle ère de transparence et ouvrons une grande partie de notre code source à la communauté mondiale.
À propos du code publié, il est mentionné que la création d’un flux de recommandations se décompose en trois étapes principaux:
- Extraire les meilleurs tweets de différentes sources (recherche de candidats). A ce stade, sont utilisés comme sources : le système d’indexation de l’index de recherche, qui couvre les messages des personnes qui ont un abonnement (In-Network) ; une couche cr-mixer pour extraire les messages de divers services auxiliaires couvrant les messages des personnes non abonnées (hors réseau) ; le composant user-tweet-entity-graph (UTEG) pour extraire des messages basés sur le graphique d’interaction utilisateur actuel ; Service de suivi des recommandations (FRS) pour générer des recommandations basées sur l’activité des utilisateurs suivis. Dans le flux, environ la moitié des messages proviennent de personnes qui ont un abonnement.
- Classement des tweets sélectionnés à l’aide d’un modèle d’apprentissage automatique. Deux systèmes de classement sont utilisés : un modèle de classement léger qui utilise un index de recherche et un réseau de neurones de classement lourd pour sélectionner les candidats les plus pertinents.
- Application de filtres et d’heuristiques pour éliminer les messages bloqué, obscène ou déjà vu. Le composant home-mixer est utilisé pour former le flux et le système de filtre de visibilité est utilisé pour filtrer. De plus, l’ancien système de classement chronologique, qui était utilisé pour extraire les tweets de l’index de recherche, était codé en clair.
La base des recommandations Twitter est un ensemble de modèles et de fonctionnalités de base qui extraient des informations latentes à partir de Tweet, d’utilisateurs et de données d’engagement. Ces modèles visent à répondre à des questions importantes sur le réseau Twitter, telles que « Quelle est la probabilité que vous interagissiez avec un autre utilisateur à l’avenir ? » ou “Quelles sont les communautés sur Twitter et quels sont les Tweets tendance qu’elles contiennent ?” Répondre précisément à ces questions permet à Twitter de proposer des recommandations plus pertinentes.
En plus de ça, le code des composants auxiliaires est également mis en évidence qui est également ouvert :
- simclusters-ann : utilisé pour définir les communautés ayant des intérêts similaires.
- TwHIN : sa fonction est la formation de graphes de connaissances sur les utilisateurs et les tweets (abonnés, tweets sélectionnés par l’utilisateur, clics sur les publicités).
- modèles de confiance et de sécurité : modèles permettant d’identifier les contenus inappropriés, obscènes et offensants.
- real-graph : c’est un modèle pour prédire les interactions entre différents utilisateurs.
- tweepcred – Un algorithme pour calculer la réputation d’un utilisateur en fonction des liens vers ses publications (Page-Rank).
recos-injector : est un contrôleur de flux d’événements qui génère des entrées pour les services GraphJet. - graph-feature-service – Fonctions graphiques pour estimer l’interaction de deux utilisateurs, comme la mesure dans laquelle l’utilisateur « A » apprécie les tweets de l’utilisateur « B ».
- navi – est un serveur hautes performances pour le traitement des modèles d’apprentissage automatique (écrits en Rust).
- product-mixer : générateur de flux avec du contenu provenant de différentes sources.
- twml – est un ancien framework d’apprentissage automatique (fork de TensorFlow v1).
Il convient de mentionner ce que la source est ouverte sous la licence AGPLv3. L’implémentation a utilisé les langages de programmation Scala (53,8%), Java (29,7%), Starlark (6,3%), Python (4,7%), C++ (2,4%) et Rust (1,5%).
Le code associé aux modèles d’apprentissage automatique utilisés sur Twitter est publié dans un référentiel séparé (les modèles eux-mêmes ne sont pas publiés pour des raisons de sécurité et de confidentialité). Les composants permettant de générer des recommandations publicitaires restent également inédits.
Siestes intéressé d’en savoir un peu plus, vous pouvez vérifier les détails dans le lien suivant.