Le filtrage collaboratif est la technique qui se cache derrière les recommandations « Les fans aiment aussi » de Spotify et une grande partie de Discover Weekly. Au lieu d'analyser à quoi ressemble votre musique, il analyse ce que font vos auditeurs.
L'idée centrale : si les gens qui ont sauvegardé le Morceau A ont également tendance à sauvegarder le Morceau B, ces morceaux sont connectés, même s'ils ne se ressemblent absolument pas.
Comment cela fonctionne conceptuellement
Imaginez une feuille de calcul massive avec chaque utilisateur Spotify comme ligne et chaque chanson comme colonne. Chaque cellule contient un 1 si l'utilisateur a écouté cette chanson en streaming, et 0 s'il ne l'a pas fait.
Cette matrice est extraordinairement clairsemée. Avec plus de 700 millions d'utilisateurs et plus de 100 millions de morceaux, la grande majorité des cellules sont vides. Mais les cellules qui sont remplies contiennent des schémas cachés.
Le filtrage collaboratif trouve ces schémas en demandant : quels utilisateurs se comportent de manière similaire ? Et quelles chansons apparaissent ensemble dans l'historique d'écoute de ces utilisateurs ?
Lorsque l'algorithme constate que les fans de l'Artiste A écoutent constamment l'Artiste B, il crée une association. Les nouveaux auditeurs de l'Artiste A sont alors plus susceptibles de se voir recommander l'Artiste B.
Rétroaction implicite vs explicite
Netflix demande aux utilisateurs de noter les films sur une échelle de 1 à 5. C'est une rétroaction explicite, et elle mesure directement la préférence.
Spotify ne vous demande pas de noter les chansons. Au lieu de cela, il déduit la préférence de la rétroaction implicite :
| Signal | Interprétation |
|---|---|
| Écouter un morceau en streaming | Positif faible (vous l'avez toléré) |
| Terminer un morceau | Positif modéré (vous n'avez pas sauté) |
| Sauvegarder un morceau | Positif fort (vous voulez l'avoir dans votre bibliothèque) |
| Ajouter à une playlist | Positif fort (vous l'avez organisé intentionnellement) |
| Sauter avant 30 secondes | Négatif (vous l'avez rejeté) |
| Écoute répétée | Positif très fort (vous êtes revenu activement) |
Ces signaux sont plus bruyants que les notes explicites. Quelqu'un pourrait écouter un morceau en arrière-plan sans l'aimer. Mais à grande échelle, les schémas deviennent clairs.
Factorisation matricielle : les mathématiques derrière cela
Spotify utilise une technique appelée factorisation matricielle pour rendre la matrice utilisateur-chanson gérable.
Au lieu de stocker des milliards de 1 et de 0, l'algorithme compresse la matrice en deux matrices plus petites :
- Une matrice utilisateur qui décrit chaque utilisateur en termes de préférences cachées (appelées « facteurs latents »)
- Une matrice d'éléments qui décrit chaque chanson en termes des mêmes facteurs cachés
Ces facteurs latents ne sont pas des choses comme « genre » ou « tempo ». Ce sont des dimensions abstraites que l'algorithme découvre par lui-même. Un facteur pourrait capturer la « musique de danse à haute énergie ». Un autre pourrait capturer le « chanteur-compositeur acoustique ». L'algorithme ne les étiquette pas ; il apprend simplement qu'ils sont importants.
Pour prédire si un utilisateur aimera une chanson, l'algorithme multiplie les valeurs factorielles de l'utilisateur par les valeurs factorielles de la chanson. Un produit élevé signifie une correspondance probable.
Comment Spotify entraîne le modèle
L'entraînement utilise une méthode appelée Moindres Carrés Alternés (ALS) :
- Initialiser des valeurs aléatoires pour les facteurs utilisateur et élément
- Maintenir les facteurs élément fixes ; optimiser les facteurs utilisateur pour minimiser l'erreur de prédiction
- Maintenir les facteurs utilisateur fixes ; optimiser les facteurs élément
- Répéter jusqu'à ce que les prédictions cessent de s'améliorer
Les ingénieurs de Spotify ont également développé la Factorisation Matricielle Logistique, une variante qui prédit la probabilité qu'un utilisateur préfère un élément spécifique. Ceci est particulièrement utile pour la rétroaction implicite, où les niveaux de confiance varient.
Le modèle est entraîné sur l'infrastructure de calcul distribué de Spotify (Hadoop et Spark) et est mis à jour régulièrement pour capturer les nouveaux comportements d'écoute.
Recommandations en temps réel
L'entraînement du modèle complet est coûteux en calcul, mais les recommandations se font en temps réel.
L'astuce : conserver les vecteurs d'éléments statiques tout en mettant à jour fréquemment les vecteurs utilisateur. Lorsque vous écoutez une nouvelle chanson, Spotify met à jour votre vecteur utilisateur presque immédiatement. Votre prochaine Discover Weekly reflète ce changement.
Les recommandations sont ensuite calculées à l'aide de la recherche de plus proche voisin approximatif (ANN), trouvant les chansons dont les vecteurs d'éléments sont les plus proches de votre vecteur utilisateur.
Ce que cela signifie pour les artistes
Le filtrage collaboratif récompense le chevauchement d'audience. Plus vos auditeurs écoutent des artistes établis, plus les associations que l'algorithme peut construire sont fortes.
Comment construire un signal de filtrage collaboratif :
- Cibler les bons auditeurs - Les fans qui écoutent également des artistes similaires créent des schémas plus clairs que les auditeurs aléatoires qui ne correspondent pas à votre son
- Encourager les sauvegardes, pas seulement les streams - Les sauvegardes sont un signal plus fort que les streams passifs
- Sortir régulièrement - Des sorties régulières vous maintiennent actifs dans la rotation de vos auditeurs, renforçant les associations au fil du temps
Le défi du démarrage à froid (cold start) :
Les nouveaux artistes sans historique d'écoute n'ont aucune donnée de filtrage collaboratif. L'algorithme ne peut pas trouver de schémas qui n'existent pas encore. C'est pourquoi l' est importante pour les nouvelles sorties : elle fournit un signal de secours jusqu'à ce que les données d'écoute s'accumulent.
Filtrage collaboratif vs analyse audio
Ces deux systèmes se complètent :
| Filtrage collaboratif | Analyse audio |
|---|---|
| Basé sur le comportement de l'auditeur | Basé sur les caractéristiques sonores |
| « Les fans de X aiment aussi Y » | « Sonne comme Y » |
| Nécessite un historique d'écoute | Fonctionne pour les morceaux flambant neufs |
| Peut connecter des genres sans rapport | Reste dans les voisinages sonores |
Un artiste folk et un artiste hip-hop aux sons complètement différents peuvent être connectés par le filtrage collaboratif si leurs fanbases se chevauchent. L'analyse audio ne ferait jamais cette connexion.
Inversement, deux morceaux aux profils audio identiques pourraient ne jamais être recommandés ensemble si leurs audiences ne se chevauchent pas.
Le meilleur positionnement algorithmique vient des deux : une musique qui ressemble à ce que votre public cible écoute déjà, promue auprès des auditeurs qui s'engagent avec des artistes similaires.
