Accueil / Factory / Algos ML / Recommandation par contenu — factory / algos ML / système de recommandation

RECOMMANDATION PAR CONTENU.

Une méthode qui recommande les produits les plus proches, par leurs caractéristiques, de ceux que le client a déjà choisis. On transforme chaque description en vecteur, on construit le profil du client, puis on cherche les produits les plus ressemblants. Elle marche dès le premier jour d'un nouveau produit, sans attendre d'avis.

RecommandationTexteTF-IDFDémarrage à froidNiveau : débutant

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformancePertinente mais peu surprenante : recommande du déjà-vu
InterprétabilitéJustifiable par les mots ou attributs en commun
VitesseUn calcul de similarité, instantané sur un catalogue
Facilité de réglageLe travail porte sur la qualité des descriptions
Tolérance aux données brutesDescriptions pauvres ou hétérogènes : suggestions pauvres
EN 30 SECONDES

Un libraire qui ne connaît pas ses autres clients, mais lit très bien les quatrièmes de couverture : vous avez aimé deux polars nordiques, il vous tend le troisième.

1. On décrit chaque produit par un vecteur

Ici, la description de chaque formation est transformée en TF-IDF : un poids par mot, fort pour les mots rares et caractéristiques, faible pour les mots courants.

2. On construit le profil du client

Le profil est la moyenne des vecteurs des produits déjà choisis. Un apprenant qui a suivi Excel avancé et SQL a un profil tourné vers les tableaux, les rapports et les données.

3. On classe le catalogue par ressemblance

La similarité cosinus mesure la proximité entre le profil et chaque produit. On propose les plus proches, en retirant ceux déjà suivis.

LE CAS MÉTIER

formation · parcours de l'apprenant
EN ENTRÉE

Un catalogue et un historique

Huit formations décrites en une phrase, et les formations déjà suivies par l'apprenant : Excel avancé et SQL. Aucun avis, aucune note : seul le contenu compte. Le catalogue est écrit directement dans le code.

EN SORTIE

Les formations suivantes à proposer

Dans l'exemple Python, la formation Python analyse arrive en tête, devant Data storytelling et Power BI. IA générative et Machine learning ferment la marche : aucun mot en commun avec le profil.

CE QU'ON MESURE

Le taux d'inscription, testé en ligne

Hors ligne, un expert métier vérifie que les suggestions ont du sens. En ligne, on compare le taux d'inscription aux formations recommandées à celui d'une sélection par popularité, par test A/B.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Nouveaux produits sans historique : ils sont recommandables dès leur mise en ligne
  • Catalogue riche en descriptions ou attributs (texte, catégorie, marque, prix)
  • Trop peu de clients ou d'interactions pour un filtrage collaboratif
  • Besoin de justifier la suggestion : « parce que vous avez suivi SQL »

NON

  • Objectif de découverte : la méthode ne sort pas des centres d'intérêt connus, le filtrage collaboratif surprend davantage
  • Descriptions courtes, incomplètes ou rédigées différemment selon les fournisseurs : les harmoniser d'abord
  • Synonymes et reformulations fréquents : remplacer TF-IDF par des embeddings
  • Nouveau client sans aucun historique : il n'a pas de profil, proposer d'abord les produits populaires
LES 4 CHOIX QUI COMPTENT

Pas d'entraînement à proprement parler : les choix portent sur la représentation des produits et du client.

Représentation des produits

TF-IDF pour du texte simple, attributs codés (catégorie, gamme, prix) pour des fiches structurées, embeddings pour capter le sens au-delà des mots exacts.

Mots vides (stop_words / stopwords)

Les mots sans contenu (de, les, pour) doivent être retirés. scikit-learn n'intègre qu'une liste anglaise : il faut fournir la liste française, que tm propose en R avec stopwords("french").

Profil du client

Moyenne des produits choisis, ou moyenne pondérée qui donne plus de poids aux choix récents et aux produits bien notés.

Diversité

Retirer les quasi-doublons et glisser quelques suggestions plus éloignées évite une liste de cinq variantes du même produit.

LE CODE MINIMAL

données simulées dans le code
# Catalogue de formations : recommandation par contenu en R
library(tm)

catalogue <- data.frame(
  formation = c("Excel avancé", "Power BI", "SQL", "Python analyse", "Machine learning",
                "IA générative", "Statistiques", "Data storytelling"),
  description = c("Tableaux croisés dynamiques, formules avancées et automatisation des rapports sous Excel",
                  "Tableaux de bord interactifs, modélisation des données et visualisation sous Power BI",
                  "Requêtes SQL, jointures et agrégations pour interroger les bases de données",
                  "Préparation des données avec pandas, visualisation et automatisation des rapports en Python",
                  "Modèles prédictifs en Python : régression, classification et évaluation des modèles",
                  "Rédiger, résumer et analyser des documents avec les assistants IA générative",
                  "Moyennes, tests statistiques et lecture des indicateurs pour décider avec les données",
                  "Raconter les données : visualisation, tableaux de bord et présentation aux décideurs"))

# Chaque formation devient un vecteur de mots pondérés (TF-IDF)
dtm <- DocumentTermMatrix(VCorpus(VectorSource(catalogue$description)),
                          control = list(weighting = weightTfIdf, removePunctuation = TRUE,
                                         stopwords = stopwords("french")))
X <- as.matrix(dtm)
X <- X / sqrt(rowSums(X^2))   # vecteurs de longueur 1 : le produit scalaire devient le cosinus

# Profil de l'apprenant = moyenne des formations déjà suivies
suivies <- c(1, 3)   # Excel avancé et SQL
profil <- colMeans(X[suivies, ])
score <- as.vector(X %*% profil) / sqrt(sum(profil^2))
names(score) <- catalogue$formation
print(round(sort(score[-suivies], decreasing = TRUE), 2))

QUESTIONS FRÉQUENTES

Quels sont les avantages de la recommandation par contenu ?

Elle fonctionne pour un produit tout juste ajouté, n'a pas besoin des autres clients et s'explique facilement. Son défaut : elle enferme le client dans ce qu'il connaît déjà, faute de s'appuyer sur les goûts des autres.

Qu'est-ce que la similarité cosinus ?

Une mesure de ressemblance entre deux vecteurs, fondée sur l'angle qui les sépare. Avec des vecteurs TF-IDF, elle vaut 1 pour deux textes aux mots identiquement pondérés et 0 pour deux textes sans mot commun. Elle ne dépend pas de la longueur des textes.

Qu'est-ce qu'un système de recommandation hybride ?

Un système qui combine plusieurs approches, en général le contenu et le filtrage collaboratif. Le contenu couvre les nouveaux produits, le collaboratif apporte la découverte. On mélange les scores ou on bascule de l'un à l'autre selon l'historique disponible.

LES ALGOS VOISINS

à comparer avant de choisir
la représentation utilisée

TF-IDF

Pondère les mots rares et fréquents pour transformer une description en vecteur.

Voir la fiche →
pour capter le sens

Embeddings

Représentent un texte par son sens : « tableur » et « Excel » deviennent proches même sans mot commun.

Voir la fiche →
le complément

Filtrage collaboratif

S'appuie sur les comportements des autres clients plutôt que sur le contenu. Les deux se combinent souvent.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →