Près d'un an après qu'Elon Musk a lancé pour la première fois l'idée de rendre public l'algorithme de recommandation de Twitter, la société a publié le code source de son algorithme de recommandation sur GitHub. Dans un Twitter Space discutant de cette décision, Musk a déclaré qu'il espérait que les utilisateurs seraient en mesure de trouver des « problèmes » potentiels dans le code et de contribuer à l'améliorer.Toutefois, le code publié vendredi ne traite que de la façon dont les tweets sont affichés dans le flux « Pour Vous » de Twitter. La société n'a pas publié le code sous-jacent de son algorithme de recherche ni la manière dont le contenu est affiché sur d'autres parties de Twitter, bien que Musk ait déclaré que la société ouvrirait également « à coup sûr » l'algorithme de recherche.
Le timing est également intéressant. Des parties du code source de Twitter ont été divulguées en ligne via GitHub peu de temps avant. Le réseau social a déposé une demande de retrait en vertu de la loi américaine DMCA. La demande, que GitHub a publiée en ligne, indique que les informations divulguées comprenaient « le code source exclusif de la plateforme de médias sociaux et des outils internes de Twitter ». Certains se demandent si ce n'est pas cet évènement qui a un peu forcé la main à Elon Musk.
Comme promis à plusieurs reprises par le PDG de Twitter, Elon Musk, Twitter a ouvert une partie de son code source à l'inspection publique, y compris l'algorithme qu'il utilise pour recommander des tweets dans la chronologie des utilisateurs.
Sur GitHub, Twitter a publié deux référentiels contenant du code pour de nombreuses parties qui font fonctionner le réseau social, y compris le mécanisme utilisé par Twitter pour contrôler les tweets que les utilisateurs voient sur la chronologie Pour Vous.
Dans un billet de blog décrivant le fonctionnement des recommandations de Twitter, la société a expliqué les différentes étapes de l'algorithme, y compris le classement et le filtrage. Ceux qui sont intéressés peuvent trouver un extrait ci-dessous.
Comment choisissons-nous les Tweets ?
La base des recommandations de Twitter est un ensemble de modèles et de fonctionnalités de base qui extraient des informations latentes des tweets, des utilisateurs et des 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 à la mode en leur sein ? » Répondre à ces questions avec précision permet à Twitter de fournir des recommandations plus pertinentes.
Le pipeline de recommandations est composé de trois étapes principales qui consomment ces fonctionnalités :
Le service responsable de la construction et du service de la chronologie Pour Vous s'appelle Home Mixer. Home Mixer est construit sur Product Mixer, notre framework Scala personnalisé qui facilite la création de flux de contenu. Ce service agit comme l'épine dorsale du logiciel qui relie différentes sources de candidats, fonctions de notation, heuristiques et filtres.
Le diagramme ci-dessous illustre les principaux composants utilisés pour construire une chronologie*:

[ndlr. Des détails sont donnés à ce niveau concernant entre autres les sources de candidats]
Classement
L'objectif de la chronologie Pour Vous est de vous proposer des Tweets pertinents. À ce stade du pipeline, nous avons environ 1500 candidats qui pourraient être pertinents. La notation prédit directement la pertinence de chaque Tweet candidat et constitue le principal signal de classement des Tweets sur votre journal. À ce stade, tous les candidats sont traités de la même manière, quelle que soit la source du candidat dont ils proviennent.
Le classement est réalisé avec un réseau neuronal d'environ 48 millions de paramètres qui est continuellement formé sur les interactions Tweet pour optimiser l'engagement positif (par exemple, J'aime, Retweets et Réponses). Ce mécanisme de classement prend en compte des milliers de fonctionnalités et produit dix étiquettes pour donner à chaque Tweet un score, où chaque étiquette représente la probabilité d'un engagement. Nous classons les Tweets à partir de ces scores.
Heuristiques, filtres et fonctionnalités du produit
Après l'étape de classement, nous appliquons des heuristiques et des filtres pour implémenter diverses fonctionnalités du produit. Ces fonctionnalités marchent ensemble pour créer un flux équilibré et diversifié. Voici quelques exemples :
La base des recommandations de Twitter est un ensemble de modèles et de fonctionnalités de base qui extraient des informations latentes des tweets, des utilisateurs et des 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 à la mode en leur sein ? » Répondre à ces questions avec précision permet à Twitter de fournir des recommandations plus pertinentes.
Le pipeline de recommandations est composé de trois étapes principales qui consomment ces fonctionnalités :
- récupérer les meilleurs Tweets à partir de différentes sources de recommandation dans un processus appelé recherche de candidats ;
- classer chaque Tweet à l'aide d'un modèle d'apprentissage automatique ;
- appliquer des heuristiques et des filtres, tels que le filtrage des Tweets des utilisateurs que vous avez bloqués, du contenu NSFW et des Tweets que vous avez déjà vus.
Le service responsable de la construction et du service de la chronologie Pour Vous s'appelle Home Mixer. Home Mixer est construit sur Product Mixer, notre framework Scala personnalisé qui facilite la création de flux de contenu. Ce service agit comme l'épine dorsale du logiciel qui relie différentes sources de candidats, fonctions de notation, heuristiques et filtres.
Le diagramme ci-dessous illustre les principaux composants utilisés pour construire une chronologie*:
[ndlr. Des détails sont donnés à ce niveau concernant entre autres les sources de candidats]
Classement
L'objectif de la chronologie Pour Vous est de vous proposer des Tweets pertinents. À ce stade du pipeline, nous avons environ 1500 candidats qui pourraient être pertinents. La notation prédit directement la pertinence de chaque Tweet candidat et constitue le principal signal de classement des Tweets sur votre journal. À ce stade, tous les candidats sont traités de la même manière, quelle que soit la source du candidat dont ils proviennent.
Le classement est réalisé avec un réseau neuronal d'environ 48 millions de paramètres qui est continuellement formé sur les interactions Tweet pour optimiser l'engagement positif (par exemple, J'aime, Retweets et Réponses). Ce mécanisme de classement prend en compte des milliers de fonctionnalités et produit dix étiquettes pour donner à chaque Tweet un score, où chaque étiquette représente la probabilité d'un engagement. Nous classons les Tweets à partir de ces scores.
Heuristiques, filtres et fonctionnalités du produit
Après l'étape de classement, nous appliquons des heuristiques et des filtres pour implémenter diverses fonctionnalités du produit. Ces fonctionnalités marchent ensemble pour créer un flux équilibré et diversifié. Voici quelques exemples :
- filtrage de la visibilité : filtrez les Tweets en fonction de leur contenu et de vos préférences. Par exemple, supprimez les Tweets des comptes que vous bloquez ou désactivez ;
- diversité des auteurs : évitez trop de Tweets consécutifs d'un même auteur ;
- équilibre du contenu : Assurez-vous que nous diffusons un juste équilibre entre les Tweets In-Network et Out-of-Network ;
- fatigue basée sur les commentaires : réduisez le score de certains Tweets si le spectateur a fourni des commentaires négatifs autour de ceux-ci ;
- preuve sociale : Exclure les Tweets Out-of-Network sans connexion de second degré au Tweet comme garantie de qualité. En d'autres termes, assurez-vous qu'une personne que vous suivez interagit avec le Tweet ou suit l'auteur du Tweet ;
- conversations : fournissez plus de contexte à une réponse en l'associant au Tweet d'origine ;
- tweets modifiés : déterminez si les Tweets actuellement sur un appareil sont obsolètes et envoyez des instructions pour les remplacer par les versions modifiées.
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
