Meta

Comment le fil d’actualité de Facebook prévoit-il ce que vous souhaitez voir ?

Il existe de nombreux mythes et théories autour de l’algorithme du fil d’actualité de Facebook. La plupart des utilisateurs savent qu’il s’appuie sur un algorithme, et bon nombre d’entre eux connaissent même certains des facteurs qui le régissent. Par exemple, si vous aimez ou non une publication ou si vous interagissez avec elle. Mais il y a encore beaucoup de choses à son propos qui sont mal comprises. 

Nous partageons régulièrement de nombreux détails et caractéristiques du fil d’actualité. En y regardant de plus près, le système de classement basé sur le machine learning qui est utilisé par le fil d’actualité, est incroyablement complexe et composé de plusieurs couches. Voici plus d’informations sur le mode de fonctionnement de ce système, et sur le défi que représente la personnalisation du contenu pour plus de 2 milliards d’utilisateurs, permettant de montrer à chacun un contenu pertinent et utile à chaque connexion à Facebook.

En quoi cela représente-t-il un véritable défi ?

Tout d’abord, parce que le volume de données est gigantesque. Plus de 2 milliards d’internautes utilisent Facebook dans le monde. Pour chacun d’eux, il existe plus d’un millier de publications « possibles » – autrement dit, autant de publications qui pourraient éventuellement apparaître dans le fil d’actualité de chacun. Nous parlons ici de milliers de milliards de publications pour tous les utilisateurs de Facebook. 

Si l’on part du principe que pour chacun de ces utilisateurs, il existe des milliers de signaux tels que les publications aimées ou commentées, il est nécessaire d’évaluer ces contenus afin de déterminer ceux qui pourraient être les plus intéressants pour chaque utilisateur. Ainsi, parmi des milliards de publications et des milliers de signaux, nous devons prévoir ce que chaque utilisateur souhaite voir instantanément dans son fil d’actualité. Lorsque vous vous connectez à Facebook, ce processus s’effectue en arrière-plan en l’espace d’une seconde environ, qui équivaut au temps de chargement de votre fil d’actualité.

Mais les choses changent constamment, et nous devons tenir compte de nouveaux enjeux qui se posent, tels que les pièges à clic et la circulation de fausses informations. Quand cela se produit, nous devons trouver de nouvelles solutions. De fait, le système de classement n’est pas qu’un simple algorithme ; ce sont plusieurs couches de modèles de machine learning et de classements que nous appliquons pour prévoir le contenu le plus pertinent et utile pour chaque utilisateur. À chaque étape du processus, le système de classement réduit ces milliers de publications possibles à la centaine de publications qui apparaissent dans le fil d’actualité de l’utilisateur à n’importe quel moment.

Comment cela fonctionne-t-il ?

Pour faire simple, le système détermine les publications qui apparaissent dans le fil d’actualité ainsi que leur ordre d’affichage, en prévoyant celles qui sont les plus susceptibles de vous intéresser ou de vous faire interagir. Ces prévisions s’appuient sur différents facteurs, tels que les utilisateurs récemment suivis ou les contenus récemment aimés ou commentés. Pour mieux comprendre ce processus dans la pratique, voyons ce qui se passe lorsqu’un utilisateur se connecte à Facebook. 

Prenons l’exemple de Juan. Depuis qu’il s’est connecté hier, Wei, un de ses amis, a publié une photo de son chien. Une autre amie, Saanvi, a publié une vidéo de son jogging matinal. Sa Page favorite a publié un article sur la meilleure façon d’observer la Voie lactée de nuit, et son Groupe de cuisine préféré a publié 4 nouvelles recettes de levain. 

Il est probable que Juan trouve tout ce contenu pertinent ou intéressant, car il a choisi de suivre les utilisateurs ou Pages qui le partagent. Pour déterminer les publications qui devraient apparaître en premier dans le fil d’actualité de Juan, nous devons prévoir ce qui est le plus important pour lui, et le contenu qui a une plus grande valeur à ses yeux. En termes mathématiques, nous devons définir une fonction objective pour Juan, et procéder à une optimisation à objectif unique. 

Nous pouvons utiliser les caractéristiques d’une publication, comme par exemple les personnes identifiées sur une photo et sa date de publication, pour prévoir si Juan pourrait l’aimer ou non. Ainsi, si Juan a tendance à interagir souvent avec les publications de Saanvi, par exemple en les partageant ou en les commentant, et si la vidéo de son jogging matinal est très récente, il est fort probable que Juan aimera sa publication. Si, jusqu’à présent, Juan a plus interagi avec des contenus vidéo qu’avec des photos, la probabilité qu’il aime la photo du chien de Wei risque d’être assez faible. Dans ce cas, notre algorithme classerait la vidéo du jogging matinal de Saanvi plus haut que la photo du chien de Wei, car la probabilité que Juan l’aime serait plus élevée. 

Mais les utilisateurs peuvent exprimer leurs préférences sur Facebook de bien d’autres façons qu’à travers des Likes (“J’aime”). Chaque jour, des utilisateurs partagent des articles qu’ils trouvent intéressants, regardent des vidéos d’autres utilisateurs ou de célébrités qu’ils suivent, ou publient des commentaires sur les publications de leurs amis. D’un point de vue mathématique, les choses se compliquent lorsque nous devons optimiser plusieurs objectifs qui viennent s’ajouter à notre objectif principal : créer de la valeur à plus long terme possible pour les utilisateurs en leur montrant un contenu pertinent et intéressant pour eux. 

L’utilisation de plusieurs modèles de machine learning permet d’obtenir diverses prévisions pour Juan : la probabilité qu’il interagisse avec la photo de Wei, la vidéo de Saanvi, l’article sur la Voie lactée ou les recettes de levain. Chaque modèle tente de classer ces différents contenus pour Juan. Mais ils peuvent parfois être discordants : la probabilité que Juan préfère la vidéo du jogging matinal de Saanvi à l’article sur la Voie lactée peut être plus élevée, mais il peut être plus enclin à commenter l’article que la vidéo. Il faut donc trouver un moyen de combiner ces différentes prévisions de manière à obtenir un score optimisé pour notre objectif principal de valeur à long terme. 

Comment peut-on savoir si un contenu crée de la valeur à long terme pour quelqu’un ? En lui posant la question. Nous effectuons par exemple des sondages auprès des utilisateurs pour savoir l’importance qu’ils ont accordée à une interaction avec leurs amis, ou si une publication a réellement valu le temps consacré, de façon à ce que notre système reflète ce que les utilisateurs aiment et trouvent intéressant. Nous pouvons ensuite exploiter chaque prévision pour Juan en fonction des actions que les utilisateurs considèrent les plus intéressantes et utiles dans leurs réponses aux sondages.

Un système multi-couches

Pour classer plus d’un millier de publications par utilisateur, par jour, pour plus de 2 milliards d’utilisateurs, en temps réel, le processus doit être efficace. Nous procédons pour cela en plusieurs étapes stratégiquement organisées pour rendre le processus rapide et limiter les ressources de calcul nécessaires. 

Dans un premier temps, le système recense toutes les publications possibles qui pourraient être classées pour Juan (la photo du chien, la vidéo du jogging matinal, etc.). Cet inventaire éligible inclut toute publication partagée avec Juan par un ami, un groupe ou une Page qu’il suit depuis sa dernière connexion et qui n’a pas été supprimée. Mais comment gérer les publications créées avant la dernière connexion de Juan et qu’il n’a pas encore vues ?

Pour s’assurer que les publications qui n’ont pas encore été vues soient prises en compte, nous appliquons une logique de remontée du contenu non lu : les publications récentes qui ont été classées pour Juan, mais qu’il n’a pas encore vues lors de ses connexions antérieures, sont aussi ajoutées à l’inventaire éligible pour cette connexion. Nous appliquons également une logique de remontée en fonction des actions de manière à ce que toute publication que Juan a déjà vue et qui a depuis généré une conversation intéressante entre ses amis soit aussi ajoutée à l’inventaire éligible. 

Le système doit ensuite calculer le score de chaque publication à partir de divers facteurs, tels que le type de publication, la similitude avec d’autres éléments, ou encore la mesure dans laquelle la publication correspond à ce avec quoi Juan a tendance à interagir. Pour calculer ce score pour plus de 1 000 publications, pour chacun des milliards d’utilisateurs et en temps réel, nous exécutons ces modèles pour toutes les publications possibles en parallèle sur plusieurs machines dites de prévision. 

Avant de combiner toutes ces prévisions pour obtenir un score unique, nous devons appliquer des règles supplémentaires. Nous attendons d’avoir ces premières prévisions pour pouvoir réduire le nombre de publications à classer, et nous les appliquons sur plusieurs passages pour économiser la puissance de calcul. 

Tout d’abord, des processus d’intégrité sont appliqués à chaque publication. Ils visent à déterminer quelles mesures de détection de l’intégrité, le cas échéant, doivent être appliquées aux articles sélectionnés pour le classement. Lors du passage suivant, un modèle léger réduit le nombre de candidats à environ 500 publications parmi les plus pertinentes pour Juan. Le fait de classer moins de publications nous permet d’utiliser des modèles de réseaux de neurones plus puissants pour les prochains passages. 

Ensuite, il y a le passage principal de la notation, au cours duquel se fait l’essentiel de la personnalisation. Ici, un score pour chaque histoire est calculé indépendamment, puis les 500 publications sont classées par ordre de score. Pour certaines, le score peut être plus élevé pour les Likes que pour les commentaires, car certaines personnes aiment s’exprimer davantage ainsi. Toute action qu’une personne entreprend rarement, comme par exemple, une prévision de Like très proche de zéro, joue automatiquement un rôle minime dans le classement, car la valeur prédite est très faible. 

Enfin, nous effectuons un passage contextuel, au cours duquel des caractéristiques contextuelles, comme les règles de diversité des types de contenu, sont ajoutées pour s’assurer que le fil d’actualité de Juan offre un mélange équilibré de types de contenu, et éviter qu’il ne voit plusieurs vidéos à la suite les unes des autres. 

Toutes ces étapes de classement ne prennent que le temps nécessaire à Juan pour ouvrir l’application Facebook. Et en l’espace de quelques secondes seulement, il peut profiter d’un fil d’actualité dont le contenu a été spécialement conçu pour lui et l’explorer comme bon lui semble.



Nous utilisons des cookies pour personnaliser le contenu, ajuster et mesurer les publicités et offrir une expérience plus sûre. En cliquant ou en naviguant sur le site, vous nous autorisez à collecter des informations sur et en dehors de Facebook via les cookies. Pour en savoir plus, notamment sur les contrôles disponibles : Politique d’utilisation des cookies