Apprentissage automatique pour les systèmes de recommandation – Partie 1 (algorithmes, évaluation et démarrage à froid)

 Jean-Paul Kordík
Pavel Kordík

Suivre

Juin 3, 2018 * 7 min de lecture

Les systèmes de recommandation sont l’une des applications les plus réussies et les plus répandues des technologies d’apprentissage automatique en entreprise. Il y avait beaucoup de gens sur liste d’attente qui n’ont pas pu assister à notre conférence MLMU, alors je partage des diapositives et des commentaires ici.

Vous pouvez appliquer des systèmes de recommandation dans des scénarios où de nombreux utilisateurs interagissent avec de nombreux éléments.

Vous pouvez trouver des systèmes de recommandation à grande échelle dans la vente au détail, la vidéo à la demande ou le streaming musical. Pour développer et maintenir de tels systèmes, une entreprise a généralement besoin d’un groupe d’ingénieurs et de spécialistes des données coûteux. C’est pourquoi même de grandes entreprises telles que BBC ont décidé d’externaliser ses services de recommandation.

Notre société Recombee est basée à Prague et développe un moteur de recommandation automatisé universel capable de s’adapter aux besoins de l’entreprise dans de multiples domaines. Notre moteur est utilisé par des centaines d’entreprises du monde entier.

Étonnamment, la recommandation de nouvelles ou de vidéos pour les médias, la recommandation de produits ou la personnalisation dans les voyages et la vente au détail peuvent être gérées par des algorithmes d’apprentissage automatique similaires. De plus, ces algorithmes peuvent être ajustés en utilisant notre langage de requête spécial dans chaque demande de recommandation.

Les algorithmes d’apprentissage automatique dans les systèmes de recommandation sont généralement classés en deux catégories: les méthodes de filtrage basées sur le contenu et les méthodes de filtrage collaboratives, bien que les recommandateurs modernes combinent les deux approches. Les méthodes basées sur le contenu sont basées sur la similitude des attributs des articles et les méthodes collaboratives calculent la similitude à partir des interactions. Ci-dessous, nous discutons principalement des méthodes collaboratives permettant aux utilisateurs de découvrir de nouveaux contenus différents des éléments consultés dans le passé.

Les méthodes collaboratives fonctionnent avec la matrice d’interaction qui peut également être appelée matrice de notation dans les rares cas où les utilisateurs fournissent une notation explicite des éléments. La tâche de l’apprentissage automatique est d’apprendre une fonction qui prédit l’utilité des éléments pour chaque utilisateur. La matrice est généralement énorme, très clairsemée et la plupart des valeurs sont manquantes.

L’algorithme le plus simple calcule la similarité en cosinus ou en corrélation des lignes (utilisateurs) ou des colonnes (éléments) et recommande les éléments dont les k—voisins les plus proches ont bénéficié.

Les méthodes basées sur la factorisation matricielle tentent de réduire la dimensionnalité de la matrice d’interaction et de l’approximer par deux ou plusieurs petites matrices avec k composantes latentes.

En multipliant la ligne et la colonne correspondantes, vous prédisez l’évaluation de l’élément par l’utilisateur. L’erreur d’entraînement peut être obtenue en comparant les évaluations non vides aux évaluations prédites. On peut également régulariser la perte d’entraînement en ajoutant un terme de pénalité en maintenant les valeurs des vecteurs latents faibles.

L’algorithme d’entraînement le plus populaire est une descente de gradient stochastique minimisant la perte par les mises à jour de gradient des colonnes et des lignes de matrices p a q.

Alternativement, on peut utiliser la méthode des Moindres Carrés Alternés qui optimise itérativement la matrice p et la matrice q par étape des moindres carrés généraux.

Les règles d’association peuvent également être utilisées pour la recommandation. Les éléments qui sont fréquemment consommés ensemble sont reliés par une arête du graphique. Vous pouvez voir des grappes de best-sellers (articles densément connectés avec lesquels presque tout le monde a interagi) et de petits grappes séparées de contenu de niche.

Les règles extraites de la matrice d’interaction doivent avoir au moins un minimum de soutien et de confiance. Le soutien est lié à la fréquence d’occurrence — les implications des best-sellers ont un soutien élevé. Une confiance élevée signifie que les règles ne sont pas souvent violées.

Les règles de minage ne sont pas très évolutives. L’algorithme APRIORI explore l’espace d’état des ensembles d’éléments fréquents possibles et élimine les branches de l’espace de recherche, qui ne sont pas fréquentes.

Des ensembles d’éléments fréquents sont utilisés pour générer des règles et ces règles génèrent des recommandations.

À titre d’exemple, nous montrons les règles extraites des transactions bancaires en République tchèque. Les nœuds (interactions) sont des terminaux et les bords sont des transactions fréquentes. Vous pouvez recommander des terminaux bancaires pertinents en fonction des retraits / paiements passés.

Pénaliser les articles populaires et extraire des règles à longue queue avec un support inférieur conduit à des règles intéressantes qui diversifient les recommandations et aident à découvrir de nouveaux contenus.

La matrice de notation peut également être compressée par un réseau de neurones. Ce qu’on appelle autoencoder est très similaire à la factorisation matricielle. Les autoencodeurs profonds, avec plusieurs couches cachées et non-linéarités, sont plus puissants mais plus difficiles à entraîner. Neural net peut également être utilisé pour prétraiter les attributs des éléments afin que nous puissions combiner des approches basées sur le contenu et collaboratives.

Le pseudocode de recommandation User-KNN top N est donné ci-dessus.

Les règles d’associations peuvent être exploitées par plusieurs algorithmes différents. Nous montrons ici le pseudocode de recommandations de la meilleure règle.

Le pseudocode de factorisation matricielle est donné ci-dessus.

Dans le deep learning collaboratif, vous entraînez la factorisation matricielle simultanément avec l’autoencodeur intégrant des attributs d’élément. Il y a bien sûr beaucoup plus d’algorithmes que vous pouvez utiliser pour la recommandation et la partie suivante de la présentation introduit certaines méthodes basées sur l’apprentissage profond et par renforcement.

Évaluation des recommandateurs

Les recommandations peuvent être évaluées de la même manière que les modèles d’apprentissage automatique classiques sur des données historiques (évaluation hors ligne).

Les interactions d’utilisateurs de test sélectionnés au hasard sont validées pour estimer les performances du recommandeur sur des évaluations non vues.

L’erreur quadratique moyenne (RMSE) est encore largement utilisée malgré de nombreuses études qui ont montré que RMSE est un mauvais estimateur des performances en ligne.

Une mesure d’évaluation hors ligne plus pratique est le rappel ou l’évaluation de précision du pourcentage d’articles correctement recommandés (parmi les articles recommandés ou pertinents). DCG prend également en considération la position en supposant que la pertinence des éléments diminue logarithmiquement.

On peut utiliser une mesure supplémentaire qui n’est pas si sensible aux biais dans les données hors ligne. La couverture du catalogue ainsi que le rappel ou la précision peuvent être utilisés pour une optimisation multiobjective. Nous avons introduit des paramètres de régularisation à tous les algorithmes permettant de manipuler leur plasticité et de pénaliser la recommandation d’articles populaires.

Le rappel et la couverture doivent être maximisés afin que nous conduisions le recommandeur vers des recommandations précises et diverses permettant aux utilisateurs d’explorer de nouveaux contenus.

Démarrage à froid et recommandation basée sur le contenu

Parfois, les interactions manquent. Les produits de démarrage à froid ou les utilisateurs de démarrage à froid n’ont pas suffisamment d’interactions pour mesurer de manière fiable la similitude de leurs interactions, de sorte que les méthodes de filtrage collaboratif ne génèrent pas de recommandations.

Le problème de démarrage à froid peut être réduit lorsque la similitude des attributs est prise en compte. Vous pouvez encoder des attributs dans un vecteur binaire et les transmettre à recommender.

Les éléments regroupés en fonction de leur similitude d’interaction et de leur similitude d’attribut sont souvent alignés.

Vous pouvez utiliser le réseau de neurones pour prédire la similitude des interactions à partir de la similitude des attributs et vice versa.

Il existe de nombreuses autres approches nous permettant de réduire le problème du démarrage à froid et d’améliorer la qualité de la recommandation. Dans la deuxième partie de notre conférence, nous avons discuté des techniques de recommandation basées sur la session, de la recommandation approfondie, des algorithmes d’assemblage et de l’AutoML qui nous permet d’exécuter et d’optimiser des milliers d’algorithmes de recommandation différents en production.

Continuez à la deuxième partie de la présentation en discutant de la Recommandation Approfondie, de la Prédiction de Séquence, de l’Apprentissage Automatique et de l’Apprentissage par Renforcement dans la Recommandation.

Ou consultez nos dernières mises à jour dans Recombee en 2019 : Nouvelles fonctionnalités et améliorations.