Bonjour à tous!
Mon nom est Lydia, je suis le chef d'équipe d'une petite équipe DataScience dans QIWI.
Mes gars sont souvent confrontés à la tâche de rechercher les besoins des clients, et dans cet article, je voudrais partager mes réflexions sur la façon de démarrer un sujet avec une segmentation et sur les approches qui peuvent aider à trier une mer de données non allouées.
Qui va surprendre avec la personnalisation maintenant? L'absence d'offres personnelles dans un produit ou un service semble déjà être un homme mauvais, et nous attendons la même crème sélectionnée uniquement pour nous partout - des flux Instagram à un plan tarifaire personnel.
Cependant, d'où vient ce contenu ou cette offre? Si c'est la première fois que vous vous immergez dans les eaux sombres de l'apprentissage automatique, vous vous poserez probablement la question de savoir par où commencer et comment identifier les intérêts mêmes du client. Le plus souvent, s'il y a une grande base d'utilisateurs et un manque de connaissances à leur sujet, il y a un désir d'aller de deux manières populaires:
1. Marquez manuellement l'échantillon d'utilisateurs et formez-y un modèle qui vous permet de déterminer si cette classe ou ces classes appartiennent à - dans le cas d'une cible multiclasse.
Cette option n'est pas mauvaise, mais au stade initial, elle peut être un piège - car nous ne savons toujours pas quels segments nous avons en principe et à quel point ils seront utiles pour la promotion de nouvelles fonctionnalités, communications et autres choses. Sans parler du fait que le balisage manuel du client est assez cher et parfois difficile, car plus vous avez de services, plus vous devez parcourir les données pour comprendre comment ce client vit et respire. Il est très probable que quelque chose comme ça se révèle:
2. S'étant brûlés avec l'option n ° 1, ils choisissent souvent l'option d'
analyse non supervisée sans échantillon d'entraînement.Si vous omettez les blagues sur l'efficacité des kmeans, vous pouvez noter un point important qui combine toutes les méthodes de clustering sans formation - elles vous permettent simplement de combiner les clients en fonction de la proximité par des métriques sélectionnées. Par exemple, le nombre d'achats, le nombre de jours de vie, le solde, etc.
Cela peut également être utile si vous souhaitez diviser votre audience en grands groupes, puis étudier chacun d'eux, ou mettre en évidence le noyau et les segments en retard par rapport aux métriques du produit.
Par exemple, dans un espace à deux dimensions, un résultat utile peut ressembler à ceci - vous pouvez immédiatement voir quels clusters méritent d'être explorés plus en détail.

Mais plus vous utilisez de métriques pour le clustering, plus il sera difficile d'interpréter le résultat. Et ces mêmes préférences des clients sont toujours entourées de mystère.
Que faire, voici la question? Chez QIWI, nous avons à plusieurs reprises creusé nos cerveaux sur ce dilemme jusqu'à ce que nous arrivions à un modèle curieux inspiré par
cet article . Entre autres cas, l'article décrit la décision de Konstantin Vorontsov de mettre en évidence les modèles latents de comportement des utilisateurs de cartes bancaires sur
la base de
la bibliothèque BigARTM .
En fin de compte, les transactions client ont été présentées sous la forme d'un ensemble de mots, puis à partir de la collection de texte résultante, où document = client et mots = codes MCC (code de catégorie de marchand, classification internationale des points de vente), les sujets de texte ont été alloués à l'aide de l'un des outils de traitement du langage naturel ( PNL) -
modélisation thématique .
Dans nos performances, le pipeline ressemble à ceci:

Cela semble absolument naturel - si nous voulons comprendre comment et comment vit notre public, pourquoi ne pas imaginer les actions que les clients effectuent à l'intérieur de notre écosystème comme une histoire racontée par eux. Et faites un guide sur les sujets de ces histoires.
Malgré le fait que le concept soit élégant et simple, en pratique, lors de la mise en œuvre du modèle, j'ai dû faire face à plusieurs problèmes:
- la présence de valeurs aberrantes et d'anomalies dans les données et, par conséquent, un déplacement des sujets vers les catégories d'achats de clients à fort chiffre d'affaires
- la détermination correcte du nombre de thèmes N,
- une question de validation des résultats (est-ce possible en principe?)
Pour le premier problème, la solution a été trouvée assez facilement - tous les principaux clients ont été divisés par le classificateur le plus simple en «noyau» et «étoiles» (voir l'image ci-dessus) et déjà chacun des clusters était traité comme une collection de texte séparée.
Mais les deuxième et troisième points m'ont fait me demander - vraiment, comment valider les résultats d'apprentissage sans échantillon de formation? Bien sûr, il existe des métriques de qualité pour le modèle, mais il semble qu'elles ne soient pas suffisantes - et c'est pourquoi nous avons décidé de faire une chose très simple - pour vérifier les résultats sur les mêmes données source.
Cette vérification se présente comme suit: la classification entraîne un ensemble de rubriques, par exemple, comme ceci:

Ici, la liste Python est un ensemble des principales catégories d'achats du MCC pour ce sujet (à partir de la matrice «mot - sujet»). Si vous examinez séparément les achats dans la catégorie des compagnies aériennes et des transporteurs aériens, il est tout à fait logique que les clients ayant le thème «voyageurs» constituent la majeure partie de ses utilisateurs.

Et ce contrôle est mis en œuvre de manière pratique sous la forme d'un tableau de bord - en même temps, vous aurez du matériel visuel pour générer des hypothèses de produits - qui a une remise en argent pour les vols et qui a une remise sur le café.
Et dans la collection de modélisation thématique, vous pouvez ajouter non seulement des événements transactionnels, mais également des méta-informations provenant d'autres modèles, des sujets d'appels de support client et bien plus encore. Ou utilisez-les en tant que fonctionnalités catégorielles pour les algorithmes supervisés - par exemple, les modèles de prédiction des sorties et ainsi de suite.
Bien sûr, cette approche a ses propres nuances - par exemple, la collection est traitée comme un sac de mots et l'ordre des achats n'est pas pris en compte, mais elle peut être complètement compensée en utilisant N grammes ou en calculant des étiquettes thématiques pour chaque période significative de la vie du client (chaque mois, par exemple). Cependant, l'idée même d'une histoire client lisible et interprétable, une combinaison de PNL et d'autres modèles nous semble très attrayante.
Et comment aimez-vous ce sujet? À quelles difficultés ou joies de la segmentation votre équipe de science des données est-elle confrontée? Il sera intéressant de connaître votre opinion.