Loupe

Implémenter un moteur de recommandations grâce aux Microsoft Cognitive Services

La mise à disposition d’un moteur de recommandations, dans le cadre d’une application, est quelque chose qui peut s’avérer complexe à réaliser car cela repose sur un ensemble d’algorithmes et d’apprentissage qu’il n’est pas simple de maitriser.

Fort heureusement, parmi les Cognitive Services proposés par Microsoft, on retrouve une API dédiée à la mise en place de recommandations: Recommendations API.

Quand on parle de recommandations, il faut bien faire la distinction entre:

  • Les recommandations “Frequently Bought Together” (FBT): dans le processus d’achat d’un article, le moteur de recommandations va proposer à l’utilisateur des produits qui sont souvent achetés en même temps
  • Les recommandations “Item to item” (ITI): si votre client aime un produit, en se basant sur les produits et ventes précédentes, il est possible de déterminer quels autres produits pourraient intéresser le client
  • Les “Personalized user recommandations”: ou comment recommander du contenu personnalisé pouvant intéresser votre utilisateur

Mettre en place un moteur de recommandations de type “Item to item” est relativement simple grâce à Microsoft.

En effet, il faut d’abord commencer par créer un fichier dit “catalogue”. C’est ce fichier (bien souvent généré à partir de votre base de données) qui va contenir la liste de tous les produits, items, etc. qui sont utilisables, achetables, activables, etc. sur votre site/application. Le format de ce fichier est bien défini et se compose, au minimum, des éléments suivants:

  • L’identifiant du produit
  • Le nom du produit
  • La catégorie du produit (cela peut être une chaîne de caractères)

Voici un exemple de fichier catalogue:

image

Une fois le fichier catalogue terminé, il faut créer un fichier qui va contenir les données actuelles, sur lesquelles le modèle va travailler pour tenter de déterminer les recommandations. Là encore, ce fichier (dont le format est accessible en ligne) se compose d’éléments bien spécifiques:

  • L’identifiant de l’utilisateur
  • L’identifiant de l’item
  • La date/heure de l’opération

Voici un exemple, dans lequel on constate que 2 utilisateurs différents ont acheté des produits en lien avec le Web et en lien avec l’ALM:

image

Une fois les fichiers créés, il faut utiliser les APIs pour déclencher une build qui va permettre d’entraîner le modèle. Pour cela, vous pouvez le faire via l’API dédiée ou vous pouvez vous rendre sur le site http://recommendations-portal.azurewebsites.net/#/projects qui vous simplifiera la vie:

image

Après avoir uploadé les fichier sur le portail, vous pourrez créer une nouvelle build en indiquant pour quel type de recommandations celle-ci devra générer et entraîner le modèle:

image

Via le bouton “Score”, vous pouvez disposer d’une petite interface de test du moteur de recommandation. Ainsi, dans le cas précédent, on constate que si un utilisateur est intéressé par le Web, il a 50% de chances d’être intéressé par l’ALM (et vice-versa). Cela correspond bien aux données que nous avions utilisées précédemment!

image image

De la même manière, un utilisateur intéressé par l’IoT aura 50% de chances de s’intéresser au Web ET 50% de chances de s’intéresser à l’ALM:

image

Bien sûr, dans votre application, vous n’aurez pas accès à cette interface de tests mais l’appel à la prédiction du modèle, en fonction des paramètres (identifiant du modèle, identifiants des items, etc.) pourra se faire directement depuis l’API.

 

Happy coding! Smile

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus