Comment Facebook a mis l'IA au cœur de son réseau social
Détection de contenus inappropriés, ranking du newsfeed, reconnaissance faciale... La plateforme recourt massivement au machine et deep learning.
L'intelligence artificielle (IA) est présente à tous les étages du réseau social Facebook. Au cœur du newsfeed, elle priorise les contenus en fonction des centres d'intérêts des utilisateurs, leur historique de consultation, leur graph social et relationnel. De même, elle permet de leur pousser des publicités auxquelles ils ont une forte probabilité d'adhérer, du clic jusqu'à l'achat. Plus délicat, l'IA est aussi exploitée par la plateforme pour détecter les connexions non-autorisées ou les faux comptes. Enfin, elle intervient pour orchestrer d'autres tâches, moins visibles, mais qui restent clé dans le quotidien du réseau social : personnaliser le classement des résultats de recherche, identifier des amis dans des photos (par reconnaissance faciale) pour vous recommander de les tagguer, gérer la reconnaissance vocale et la traduction de texte en vue d'automatiser le sous-titrage des vidéos dans Facebook Live...
Fonction cible | Famille d'algorithme | Type de modèle |
---|---|---|
Reconnaissance faciale, étiquetage des contenus | Deep learning | Réseau de neurones convolutifs |
Détection des contenus inappropriés, des accès non-autorisés, classification | Machine learning | Gradient Boosting d'arbres de décision |
Personnalisation du newsfeed, des résultats de recherche, des publicités | Deep learning | Perceptron multicouche |
Compréhension du langage naturel, traduction, reconnaissance vocale | Deep learning | Réseau de neurones récurrents |
Matching des utilisateurs | Machine learning | Machine à vecteurs de support |
Source : publication de recherche de Facebook |
Le réseau social fait largement appel aux techniques de machine learning standard. Des algorithmes statistiques (classification, régression…) adaptés pour créer des modèles prédictifs en partant de données chiffrées, par exemple en vue de prévoir des évolutions d'activité. Facebook y a notamment recours pour repérer les messages, commentaires et photos inappropriés. "L'intelligence artificielle représente une composante essentielle pour la protection des utilisateurs et le filtrage d'information sur Facebook", insiste Yann Lecun, vice-président et directeur scientifique de l'IA du groupe. "Une série de techniques sont mises en œuvre pour détecter dans les images ou les textes les contenus haineux, violents, pornographiques ou de propagande. Et à l'inverse, étiqueter les éléments susceptibles d'être les plus intéressants pour les utilisateurs en fonction de leurs goûts et de leurs centres d'intérêt".
De multiples réseaux de neurones
Aux côtés du machine learning traditionnel, le deep learning est évidemment mis en œuvre par Facebook. Basée sur le concept de réseau de neurones artificiels, cette technique s'applique à la fois aux chiffres et aux contenus audio ou graphiques. Le réseau se décline en couches, chacune étant chargée d'interpréter les résultats issus de la couche précédente. L'IA s'affine ainsi par itérations successives. Dans l'analyse de texte par exemple, la première couche s'attellera à la détection des lettres, la deuxième des mots, la troisième des groupes nominaux ou verbaux, et ainsi de suite.
Sans surprise, Facebook applique l'apprentissage profond à la reconnaissance faciale, via notamment des réseaux de neurones convolutifs, un algorithme particulièrement efficace pour le traitement d'images. Via la méthode du perceptron multicouche, idéale pour gérer un ranking, le réseau social y a recours pour personnaliser le newsfeed ou les résultats de son moteur de recherche. Enfin, le deep learning est également actionné par Facebook pour la traduction automatique.
Autour du traitement d'images en particulier, Facebook a bâti une plateforme de deep learning baptisée Rosetta. Elle repose sur un triple réseau de neurones (voir capture ci-dessus). Le premier, de nature convolutive, cartographie les photos. Le deuxième détecte la ou les zones contenant des caractères. Quant au dernier, il s'attache à reconnaître les mots, expressions ou phrases présentes à l'intérieur des régions identifiées. Une technique connue sous le nom Faster R-CNN que Facebook a légèrement adaptée à ses besoins. Objectif : mieux qualifier les images postées en vue d'en optimiser l'indexation, que ce soit dans le newsfeed ou le moteur de recherche.
Un pipeline de déploiement
Pour mettre en musique ses différentes IA, le groupe américain s'est équipé d'un pipeline fait maison. Nom de code : FBLearner (pour Facebook Learner). Il s'articule d'abord autour d'une boutique d'applications. A destination des équipes internes de data scientists, elle fédère un catalogue de fonctionnalités réutilisables aussi bien pour les phases d'entrainement que de déploiement des algorithmes. S'y greffe ensuite une brique de workflow pour manager le training des modèles et évaluer leurs résultats. Les processus d'entrainement peuvent être aussi bien exécutés sur des clusters de calcul (CPU) que des grappes d'accélérateurs graphiques (GPU), là encore conçus en interne. Dernière pierre de l'édifice, un environnement motorise les matrices prédictives, une fois celles-ci entraînées, in situ au cœur des applications de Facebook.
Côté librairies de deep learning, Facebook a historiquement choisi d'en développer deux. Chacune est désormais disponible en open source. Dessinée pour ses besoins en recherche fondamentale, la première, PytTorch, se caractérise par sa grande flexibilité, ses capacités avancées de débogage et surtout son architecture de réseaux de neurones dynamique. "Sa structure n'est pas déterminée et fixe. Elle évolue au fur à mesure de l'apprentissage et des exemples d'entrainement qu'on lui présente", explique Yann Lecun. Revers de la médaille : le moteur d'exécution Python sous le capot rend PytTorch peu performant sur des applications en production. A l'inverse, le second framework de deep learning dessiné par Facebook, Caffe2, a justement été conçu pour être les déploiements produits. Dans cette optique, il se veut multiplateforme et beaucoup plus performant, avec à la clé la capacité, selon Facebook, d'exécuter des modèles ingérant jusqu'à des dizaines de milliards de paramètres.
Plus récemment, Facebook a mis sur pied un outil baptisé ONNX visant à semi-automatiser le formatage pour Caffe2 de modèles initialement créés dans PyTorch. "La prochaine étape va consister à fusionner PyTorch et Caffe2 au sein d'un framework unique qui sera baptisé PyTorch 1.0", confie Yann Lecun. "L'objectif est de bénéficier du meilleur des deux mondes, et d'aboutir à une infrastructure à la fois flexible pour la recherche et dotée de techniques de compilation efficaces pour produire des applications d'IA exploitables."
Vers la conception d'un processeur taillé pour l'IA
Suivant le modèle des TPU (Tensorflow Processor Units) de Google taillés pour son framework de deep learning Tensorflow, Facebook envisage lui-aussi de développer ses propres puces optimisées pour l'apprentissage profond. "Nos utilisateurs chargent 2 milliards de photos par jour sur Facebook. En l'espace de 2 secondes, chacune est traitée par quatre systèmes d'IA : l'un gère le filtrage des contenus inappropriés, le deuxième l'étiquetage des images en vue de leur intégration au newsfeed et au moteur de recherche, le troisième la reconnaissance faciale, enfin le dernier génère une description des images pour les non-voyants. Le tout consomme des ressources informatiques et électriques gigantesques. Avec la traduction en temps réel de vidéo que nous cherchons désormais à développer, la problématique va s'intensifier. D'où notre volonté de plancher à la fois côté recherche fondamentale et côté recherche appliquée sur des processeurs visant à rendre plus efficace l'exécution de nos réseaux de neurones", confie Yann Lecun. Est-ce que ces futures puces seront baptisées les PyTorch Processor Units ? On ne le sait pas encore.