Des marques complémentaires, pas concurrentes
Cela faisait quelques semaines que mon petit algorithme proposait des potentiels partenaires à des marques. Pas de co-acquisition sans partenaire, mais il faut d'abord trouver le bon ! Votre partenaire est une marque qui vous ressemble, qui partage vos valeurs. L'association des deux doit paraître naturelle, surprenante dans le sens « ah mais bien sûr, pourquoi n'y avais-je pas pensé » et pas dans le sens « je ne vois pas le rapport entre les deux ».
Une métrique de similarité à affiner
J'avais donc conçu une métrique pour capturer la similarité entre deux marques, puis orienté et peaufiné mon algorithme pour maximiser cette métrique. Les résultats étaient très bons à première vue, mais il fallait tester nos hypothèses auprès de nos clients. Ça marchait, pour certains d'entre eux. Mais pour d'autres...
L'erreur : des partenaires trop similaires
Les marques qui vous ressemblent le plus font la même chose que vous, et pour cause, ce sont vos concurrents directs. Personne ne va faire un partenariat avec la concurrence. L'algorithme fait exactement ce qu'on lui demande, mais il ne fait pas ce qu'on veut vraiment.

En regardant les données sous cet angle, le problème devient très clair. Certaines marques se démarquent (haha) tellement de leur environnement qu'elles n'ont pas ce souci. D'autres évoluent dans un espace où c'est leur style, leur design qui fait la différence, pas le type de produit qu'elles mettent en avant.
Modifier l'algorithme pour progresser
Qu'à cela ne tienne, l'algorithme n'est pas gravé dans le marbre et je suis là pour le faire progresser. À force d'étudier la répartition des marques, il se trouve que les suggestions qui sont faites capturent à la fois ce que l'on veut (l'association de valeurs) et ce qu'on ne veut pas (l'association de produits), sous une même métrique de similarité. Peut-on avoir l'un sans l'autre ?
Éliminer le biais : développer un détecteur de concurrents
Quand on veut enlever un biais dans un algorithme, on peut être tenté de masquer les indicateurs à la source du biais, avec le raisonnement « si la machine ne sait rien sur le produit, elle ne pourra pas associer les produits ! » mais non, ça ne marche pas comme ça. C'est équivalent à dire « si je mets un bandeau sur les yeux quand je cuisine, je ne saurai pas ce que je mets dans ma salade ». Tout comme il y a d'autres indicateurs que la vue pour identifier des ingrédients, il est peu probable que je parvienne à masquer tout ce qui pointe vers un produit chez les marques, sans éliminer ce qui m'intéresse vraiment dans la foulée.
L'astuce est, au contraire, de retourner le problème en ma faveur. Puisque j'arrive apparemment très bien à trouver quelles marques se font concurrence, je construis un détecteur spécialisé pour cette tâche. Il n'a pas à être parfait, et il s'appuie justement sur les indicateurs que j'aurais eu tendance à masquer.
Une combinaison de modèles pour optimiser les objectifs
Mon nouvel algorithme devient : fais tes associations comme avant, mais pénalise fortement celles que le détecteur de concurrents relève. Au lieu de casser et de retirer des choses dans un modèle qui optimisait le mauvais objectif, j'ai maintenant deux modèles qui optimisent des objectifs séparés, dont la combinaison me donne ce que je veux vraiment.
Il est entièrement possible que, non, mes nouveaux résultats ne soient pas exactement ce que je veux. Mais c'est déjà beaucoup plus proche de l'idéal, et je n'ai aucun doute sur notre capacité à progresser encore.