Présentation des recommandations

Les systèmes de recommandation sont l'une des applications de machine learning les plus performantes et les plus répandues pour les entreprises. Vous pouvez utiliser un système de recommandation afin d'aider les utilisateurs à trouver du contenu intéressant dans un volume important de contenus. Par exemple, Google Play Store et YouTube proposent respectivement des millions d'applications et des milliards de vidéos, avec toujours plus d'applications et de vidéos ajoutées chaque jour. Les utilisateurs peuvent se servir de la recherche pour trouver de nouveaux contenus, mais les termes de recherche qu'ils utilisent sont limités. Un système de recommandation permet de suggérer des contenus que les utilisateurs n'ont peut-être pas pensés à rechercher par eux-mêmes. Pour en savoir plus, consultez la page Présentation des systèmes de recommandation.

Les algorithmes de machine learning dans les systèmes de recommandation sont généralement classés dans les catégories suivantes :

  • Filtrage basé sur le contenu : utilise la similarité entre les éléments pour fournir des recommandations. Par exemple, si un utilisateur regarde deux vidéos de chats mignons, le système de recommandation peut lui recommander des vidéos d'animaux mignons.
  • Filtrage collaboratif : utilise les similitudes entre les utilisateurs (en fonction des requêtes des utilisateurs) pour fournir des recommandations. Par exemple, si l'utilisateur A recherche des éléments similaires à l'utilisateur B, et que l'utilisateur B aime la vidéo 1, le système de recommandation peut recommander la vidéo 1 à l'utilisateur A, même si l'utilisateur A n'a regardé aucune vidéo similaire à la vidéo 1.

Modèles de factorisation matricielle

Les modèles de factorisation matricielle sont couramment utilisés comme méthode de filtrage collaboratif pour les systèmes de recommandation.

Dans un modèle de factorisation matricielle, les paires utilisateur-élément sont mappées sur une matrice bidimensionnelle, avec les utilisateurs uniques sur un axe et les éléments uniques sur l'autre axe. Les notes qu'un utilisateur a attribuées aux éléments se trouvent dans les cellules de la matrice. Cette matrice n'a pas besoin d'être entièrement remplie. La plupart du temps, les utilisateurs n'auront pas de valeur pour chaque élément. L'objectif du modèle de factorisation matricielle est de créer deux matrices de pondérations denses plus petites qui, lorsqu'elles sont multipliées ensemble, permettent d'approximer les valeurs des cellules de la matrice d'origine et de fournir des notes prédites pour les cellules vides de la matrice.

L'une des plus petites matrices contient les utilisateurs uniques sur un axe et le nombre de facteurs latents sur l'autre axe, comme spécifié par l'option NUM_FACTORS de l'instruction CREATE MODEL. L'autre matrice plus petite contient les éléments uniques sur un axe et le nombre de facteurs latents sur l'autre axe. Dans cette matrice, les pondérations des facteurs latents sont générées par l'algorithme utilisé pour entraîner le modèle, en fonction des combinaisons utilisateur-article de la matrice d'entrée.

Pour en savoir plus, consultez Factorisation matricielle.

Vous pouvez utiliser un modèle de factorisation matricielle avec la fonction ML.RECOMMEND pour émettre des recommandations.

Autres modèles de recommandation

Pour étendre un système de recommandation basé sur le filtrage collaboratif au-delà de ce qu'il est possible de faire avec un modèle de factorisation matricielle, vous pouvez utiliser un réseau de neurones profond (DNN, Deep Neural Network) et des modèles Wide et deep avec la fonction ML.PREDICT pour émettre des recommandations. Ces modèles peuvent intégrer des fonctionnalités de requête et d'élément pour améliorer la pertinence des recommandations. Pour en savoir plus, consultez les ressources suivantes :

En utilisant les paramètres par défaut dans les instructions CREATE MODEL et les fonctions d'inférence, vous pouvez créer et utiliser un modèle de recommandation même sans grandes connaissances en ML. Toutefois, des connaissances de base sur le développement du ML, et des modèles de recommandation en particulier, vous aident à optimiser à la fois vos données et votre modèle pour obtenir de meilleurs résultats. Nous vous recommandons d'utiliser les ressources suivantes pour vous familiariser avec les techniques et les processus de ML :