Posts in Data Science

Les catalogues produits : des données délicates à manipuler

mai 14th, 2020 Posted by Data Science, Intelligence artificielle, Retail & Marketplace 0 thoughts on “Les catalogues produits : des données délicates à manipuler”

S’il y a bien une tâche au quotidien qui donne des insomnies à beaucoup de gens qui travaillent dans le domaine du retail, c’est le nettoyage de catalogues de produits. En effet, les personnes en charge de la qualité des catalogues produits – que ça soit au sein d’une marketplace, d’un distributeur, d’une marque ou d’une agence – sont confrontés à ce problème de qualité de données au sein de leur catalogue, et sont souvent amenés à devoir rectifier, nettoyer, enrichir leur catalogues de produits.

 

Bien que la tâche semble anodine, elle est d’une traître complexité à résoudre et souvent les tâches de nettoyage se font à la main et prennent énormément de temps. La complexité réside dans la nature hétérogène propre aux données de produits, mais également dans la variété de problèmes que l’on peut rencontrer en manipulant des catalogues de produits.

 

Cet article a pour but de mettre en exergue les raisons qui font que les tâches de nettoyage, et donc d’amélioration de la qualité des données de produit, sont complexes à résoudre et font que certains projets peuvent prendre plus de temps que prévu.

Introduction

La qualité des données de produit constitue une des clés les plus importante pour gérer des données de produits. En effet, des données de produits de bonne qualité permettent de construire de belles fiches produits, bien renseignées, précises et complètes. Lorsque l’on fait de la vente en ligne, c’est une composante essentielle pour bien vendre ses produits. Un produit bien décrit et détaillé, ça inspire confiance, on sait ce que l’on achète sans pour autant avoir vu le produit, et cette relation de confiance est essentielle pour éviter les mauvaises surprises lors de la réception du produit.

 

Plusieurs éléments constituent la chaîne de qualité de la donnée de produit, parmi lesquels on retrouve les données manquantes, les champs incorrects (mal remplis) ou encore les fiches produits doublonnées. 

 

Ces problématiques de qualité de données sont en général instigatrices de grands chantiers dont les gestionnaires de catalogues de produits sont responsables. Cette volonté forte d’automatisation de la chaîne de qualité de la donnée est motivée par un besoin de contrôle sur la vie de la donnée au sein d’une marketplace, mais également d’un besoin d’efficacité. 

 

En effet, le quotidien des gestionnaires de catalogues est trop souvent ponctué de travail manuel de vérification, de nettoyage et d’enrichissement, dont l’exécution est rébarbative et longue. L’automatisation de ces tâches permettrait au responsable de catalogue d’améliorer davantage la qualité de ses fiches produits, d’intégrer plus de catalogues, et surtout les intégrer beaucoup plus vite. 

 

Néanmoins, l’automatisation de la mise en qualité des fiches de produits n’est pas chose aisée, et est souvent très coûteuse en interne. Deux raisons à cela : la nature des données de produits et le type d’erreur rencontré. 

Particularité des données de produits

Les données de produits sont difficiles à manipuler car il s’agit d’un type de données bien particulier, qui est un mélange de données structurées (en général un tableau excel de valeurs, qui regroupe les catégories de produits et certains attributs propres aux produits) et de données non-structurées (des photos, des descriptions ou des catégories en texte libre). 

 

Il est assez rare de retrouver ce genre de données mixtes dans d’autres applications. On pourra citer notamment les données médicales, pour lesquelles on a en général des données d’imagerie associées à des données structurées, mais en règle générale c’est une caractéristique plutôt propre aux catalogues de produits.

 

Les méthodes pour traiter des données structurées et des données non-structurées sont fondamentalement différentes, et c’est là qu’intervient une des difficultés de travailler avec des données de produits. Certains acteurs sont très bons pour travailler avec des données non-structurées, et parmi ceux-ci, on distingue même souvent une distinction de spécialisation entre l’analyse d’images et l’analyse de texte (car les méthodes de traitement de ces deux types de données sont également bien distinctes). D’autres acteurs, sont spécialisés dans l’analyse de données structurées, et là encore, les méthodes d’analyse et les problèmes techniques rencontrés ne sont pas les mêmes.

Les images

L’analyse d’image est une discipline bien connue des data scientists, et consiste à extraire un certain nombre d’informations à partir d’images ou de photographies. Les méthodes d’analyse d’images consistent pour la plupart à décomposer l’analyse de l’image sur des parties très localisées de l’image, afin d’en déduire des associations de formes et de couleur et donc une disposition spatiale de l’image en termes de contenu (objets dans l’image par exemple). 

 

Les photographies des produits contiennent en général une grande quantité d’information sur le produit, notamment on peut déterminer sa catégorie principale ses sous-catégories en fonction de la nomenclature interne de classification, mais également déterminer précisément la couleur du produit et toutes les déclinaisons qui en découlent. 

 

Mettre en place un système d’analyse d’image pour un catalogue de produit permet de compléter automatiquement certains attributs des produits (par exemples, la catégorie, les sous-catégories, les couleurs, certaines caractéristiques techniques, etc.), et donc c’est un gain de temps notable comparé à l’exécution manuelle de la tâche.

 

Néanmoins, bien que l’intelligence artificielle permette de modéliser précisément certaines choses, il faut toujours garder en tête que ce n’est pas une baguette magique, et qu’on ne peut pas créer d’information. Ainsi, si l’information n’est pas présente dans les données, alors il ne faut pas s’attendre à ce qu’un modèle d’intelligence artificielle le fasse, car ça sera la déception à coup sûr.

L’analyse des descriptions des produits

L’analyse de texte consiste à extraire des informations cibles contenues dans un texte (souvent un texte libre), typiquement une description dans le cadre d’une fiche produit. Ce type de modélisation, dont les architectures à l’état de l’art permettent d’extraire des éléments assez subtils dans du texte, peut s’avérer utile lorsque les fournisseurs ne renseignent pas entièrement les catégories de leurs produits, et ne donnent qu’une brève description du produit.

 

Toutefois, ce type de modélisation est en général assez lourd à mettre en place, et est coûteux à entraîner (au même titre que les modèles d’analyse d’images). En règle générale on préfèrera mettre en place des modèles moins complexes, qui certes peuvent laisser passer quelques erreurs ou ne pas détecter autant de subtilités, mais qui vont chercher la bonne information rapidement, quitte à prévoir une boucle de rétroaction avec le gestionnaire de catalogue une fois en production.

 

Là encore, attention, comme tout modèle d’intelligence artificielle, on ne peut pas créer d’information. C’est à dire que si les descriptions des produits ne sont pas suffisamment exhaustives en termes de contenu, alors ce n’est pas la peine d’attendre d’un modèle de classification qu’il trouve l’information là où elle n’est pas.

L’analyse des catégories de produits

 

Les données structurées sont des données qui, comme leur nom l’indique, possèdent une structure, c’est à dire qu’on peut les ranger dans un joli tableau excel avec des colonnes bien définies et clairement nommées. Ce type de données est en général le plus rencontré, peu importe le secteur d’activité de l’entreprise, et contrairement à ce que l’on peut penser, ce ne sont pas les données les plus faciles à traiter

 

En effet, les problèmes de qualité de données les plus souvent rencontrés portent sur ce type de données. Valeurs manquantes, mal renseignées, partiellement renseignées, certains champs au mauvais endroit, autant de problèmes que l’on a déjà tous rencontré au moins un fois, et on en passe. 

 

Paradoxalement, les données structurées sont sans doute le format le plus important pour traiter des données de produits, étant donné que la plupart des systèmes de gestion de données de produit (Product Information Management, PIM) utilisés par les marketplaces sont conçus sur un schéma de données structurées. Et donc, pour que l’intégration d’un catalogue de produit sur une marketplace s’effectue correctement, chaque champ du catalogue doit être correctement renseigné, ce qui est assez lourd à construire, tant pour les marques que pour les marketplaces et tous les acteurs intermédiaires comme les agences ou les intégrateurs de flux.

 

Ainsi, le nettoyage et l’enrichissement d’un catalogue de produits prend du temps et nécessite souvent des interactions entre les fournisseurs et les intégrateurs. Cela a donc un coût non-négligeable, ce qui renforce l’intérêt d’une automatisation (au moins partielle) du nettoyage de catalogues de produits.

Quels problèmes rencontre-t-on dans des catalogues de produits ?

Des problèmes de qualité de données, on peut en trouver autant que l’imagination le permet. Les données de produits sont particulièrement sujettes à des problèmes de qualité. Ceci est principalement causé par le fait que les catalogues de produits sont en général des agrégats de plusieurs catalogues de marques, et donc sont la résultante d’un savoureux mélange de processus de gestion de données bien distincts. En effet, il n’y a pas de raison qu’un fournisseur A emploie les mêmes règles de remplissage de son catalogue qu’un fournisseur B. 

 

Plus généralement, ce genre de problème de qualité de données intervient lorsque les entreprises travaillent avec des données qui proviennent de sources multiples et hétérogènes. Par exemple, une marketplace doit gérer les données de plusieurs marques (fournisseurs) distinctes, au même titre qu’un CRM est alimenté par plusieurs canaux de communication (un formulaire de contact, une entrée en contact via LinkedIn, parmi tant d’autres).

 

Les données de produit sont particulièrement sujettes à des problèmes de qualité, et à cela s’ajoute une particularité propre aux données de produits : le caractère hétérogène, à la fois au niveau du contenu (une grande variété de produits différents, et les articles de mode ne se traitent pas de la même façon que les articles de bricolage), mais aussi au niveau du type de donnée (des images, du texte libre et beaucoup de catégories). 

 

Cet article passe brièvement en revue les trois problèmes de qualité de données les plus rencontrés lorsque l’on doit gérer des catalogues de données de produits.

Les champs manquants

Ce n’est pas prendre un grand risque que de dire qu’aucun gestionnaire de catalogue produit n’a reçu du premier coup un fichier de produits où tout était à sa place, sans aucun élément manquant. Les données manquantes sont probablement le problème le plus rencontré dans la gestion des catalogues de produits. 

 

Les raisons qui conduisent à ce phénomène s’expliquent en partie par le fait que le nombre de champs à remplir (catégories, sous-catégories, les descriptions en plusieurs langues, les caractéristiques techniques, etc.) est souvent élevé et très exhaustif. Par ailleurs, ce travail de remplissage de données de produits doit souvent répondre à une norme bien précise (qui dépend en général de la marketplace ou du retailer), et les fournisseurs (les marques) doivent compléter ce genre de fichier pour toutes les normes, ce qui est potentiellement rébarbatif.

 

L’imputation (le remplissage) de données manquantes est une tâche délicate qui dépend de la nature du phénomène qui a conduit au non-remplissage du champ, et qui est souvent négligée par les méthodes standard d’imputation qui utilisent l’intelligence artificielle. Néanmoins, dans le cadre du remplissage d’un catalogue de produit, les raisons qui conduisent au non-remplissage ne dépendent en général pas de la nature du produit, et donc l’intelligence artificielle permet de compléter efficacement les champs manquants à partir des éléments à dispositions (les images, les descriptions et les caractéristiques renseignées). 

 

Attention toutefois à l’excès d’enthousiasme, il faut que l’information figure dans les données renseignées pour que ce genre d’approche fonctionne, il n’existe pas de modèle magique qui crée de l’information.

Les champs incorrects

Ahhhh les champs incorrects quelle douleur ! Oui, vous en avez déjà vu, c’est certain. Des tailles de vêtement rangées dans la colonne du prix, des matériaux rangés dans la colonne des codes barres, on pense qu’on a tout vu jusqu’à ce qu’on découvre une nouvelle anomalie dans les champs.

 

Techniquement parlant, on parle ici de détection d’anomalies (valeur aberrante). Les manières de détecter ce genre d’anomalies sont assez standards, c’est à dire qu’on va regarder chaque champ un par un, et on va regarder les produits pour lesquels la valeur du champ en question n’est pas cohérente avec le reste des produits. 

 

Par exemple, on va analyser pour chaque ligne les valeurs renseignées dans le le champ “taille” (pour des données de mode), et lever une alerte s’il y a une incohérence, comme par exemple un prix en euro dans le champ “taille”, là où tous les autres champs valent soit une taille lettrée (S, M, L, XL, etc.), soit une taille chiffrée normé (38, 40, 42, etc.). 

 

Détecter ce genre d’anomalies équivaut à entraîner un modèle de machine learning à :

  • comprendre la nature de chaque champ dans le fichier de produit,
  • détecter les anomalies au sein des valeurs d’un même champ, conditionnellement à la nature du champ et à la nature du produit.

Ce dernier point est crucial car une anomalie dépend également de la nature du produit. Par exemple, la taille d’une cravate est souvent exprimée en centimètres, là où la taille d’une chemise est exprimée en lettres (S, M, L, …) ou en chiffre. 

 

Ainsi, la détection d’anomalies est une tâche qui nécessite qu’un modèle ait une compréhension fine du catalogue de produit et des éléments qui le constitue.

Les produits en doublons

Parmi les problèmes fréquemment rencontrés dans la gestion des catalogues de produits, on pourra citer le problème des fiches produits en doublons. Deux fiches produits sont considérées comme étant des doublons si elles réfèrent au même modèle de produit et à la même marque

 

Ce genre de phénomène est gênant car cela réduit drastiquement l’expérience utilisateur des visiteurs du site de vente en ligne. En effet, lorsqu’un utilisateur cherche un produit en particulier sur un site, il ne s’attend pas à avoir sous les yeux des copies d’un même produit. Ce n’est pas clair pour l’acheteur si les produits sont les mêmes ou non, et donc le taux de conversion est naturellement plus bas, car dans le doute l’utilisateur va acheter le produit ailleurs.

 

Corriger les doublons dans un catalogue de produit peut paraître simple, mais cela soulève quelques difficultés que l’on n’a pas tendance à identifier avant de se lancer. En effet, il peut arriver que certains fournisseurs disposent de plusieurs déclinaisons d’un même produit (par exemple avec des finitions légèrement différentes, quelques accessoires en plus, etc.). Ces déclinaisons présentent souvent des attributs communs (comme les photographies, les descriptions et la plupart des caractéristiques), ce qui a tendance à rendre le dédoublonnage difficile (les différences étant subtiles, l’information est difficile à identifier). A contrario, certaines fiches produits doublonnées (même modèle, même marque) peuvent présenter quelques différences, notamment dans la description ou encore dans le titre, et pour autant référer au même produit.

 

Il faut donc construire un modèle capable de faire la part des choses entre les petites différences que peuvent comporter les fiches produits, et leurs similarités. Ce juste milieu est compliqué à construire sans un a priori métier fort, c’est pourquoi il est souvent nécessaire de prévoir une boucle de rétroaction avec des gestionnaire de catalogues, pour ré-entraîner régulièrement le modèle à bien détecter les produits présents en doublons.

En conclusion

La qualité des données de produits a une influence forte sur la vitesse d’intégration et de mise en ligne des catalogues de produits. Cela représente un coût, en général un coût humain car les choses sont souvent faites à la main, et c’est le point de départ de nombreux projets de création de référentiels produits unifiés (RPU). 

 

Les données de produits présentent une particularité que l’on retrouve rarement ailleurs : elles ont des types de données multiples, avec des données non-structurées (les images, les descriptions), et des données structurées (les caractéristiques, les catégories, le tout rangé dans un tableur Excel).

 

Certains acteurs sont spécialisés pour travailler sur un type particulier de données, et très peu de solutions existent pour traiter l’ensemble de la chaîne de qualité de la donnée. Attention également avec les solutions basées sur des données non-structurées : en général les approches sont basées sur du Deep Learning, et les coûts d’entraînements et de maintenance sont en général plus élevés.
N’hésitez pas à nous contacter si vous rencontrez ce type de problématiques. 

Dédupliquer ses données : un vieux fardeau toujours d’actualité

mars 20th, 2020 Posted by Data Science 0 thoughts on “Dédupliquer ses données : un vieux fardeau toujours d’actualité”

Migration d’un CRM à un autre, utilisation de plusieurs outils différents, consolidation de plusieurs bases de données suite à une fusion, autant de situations qui peuvent amener à vouloir dédoublonner sa base de données de produits, de clients ou autre. 

Dédupliquer une base de données réfère au fait de détecter les entités (les lignes) similaires présentes dans un même fichier. Une problématique bien connue des métiers et qui pour autant reste encore peu documentée aujourd’hui.

Le but de cet article est de faire un état des lieux des méthodes de déduplication appliquées aujourd’hui sur le marché, et de mettre en exergue les défis qu’une telle problématique, aussi simple soit-elle à formuler, peut soulever.

 

Introduction

 

Utiliser plusieurs outils différents pour gérer ses contacts (ou ses produits), migrer un CRM (ou un PIM) vers un autre, unifier une base de données suite à une fusion entre deux entreprises, unifier une base de données de produits pour avoir une meilleur vision de son catalogue (par exemple, les centrales d’achats), tout autant de cas qui conduisent à la même problématique : des données en doublons.

 

Des données en doublons, c’est gênant. En effet, cela biaise une étude statistique lorsque l’on veut faire une étude sur ses clients ou sur ses produits, les coûts de stockages sont élevés, les clients ne sont pas contents qu’on les contacte plusieurs fois pour la même chose, vous achetez les mêmes produits plusieurs fois, bref, on pourrait en écrire un livre. C’est une problématique bien connue des métiers, qui n’est pas nouvelle et qui a fait l’objet de beaucoup de réunions en interne pour pallier ce phénomène fâcheux. 

Et paradoxalement, les méthodes pour dédupliquer des éléments (des lignes, des contacts, des produits) d’une base de données sont encore peu documentées.

Pour cause, il faut l’avouer, ce n’est pas une problématique très sexy à résoudre, il est clair que les data scientists préfèrent largement mettre au point des architectures de pointe pour analyser des images ou extraire des informations d’un texte libre plutôt que de devoir chercher des informations dupliquées dans un CRM, et c’est bien compréhensible.

 

Un peu de contexte

Dans cette section, nous allons présenter quelques éléments qui vont vous aider à comprendre pourquoi dédupliquer une base de données n’est pas une tâche si simple.

 

Un problème complexe

 

Mettons que nous ayons à notre disposition un fichier de 1000 contacts à dédupliquer. Le but est donc, parmi ces 1000 contacts, d’identifier les lignes qui réfèrent à une même personne. 

 

Une approche exhaustive est de comparer tous les contacts un par un. En d’autres termes, pour un contact donné, on le compare à tous les autres contacts du fichier (excepté lui-même évidemment), et on met de côté les contacts identiques.

Le problème avec cette approche, c’est qu’il est nécessaire d’effectuer 999 comparaison pour chaque contact, donc au total 999 1000 = 999 000 comparaisons, soit presque 1 million de comparaisons à faire, pour un fichier de seulement 1000 contacts. Vous imaginez donc que si vous avez un fichier conséquent (avec plusieurs dizaines de milliers de contacts ou de produit), l’approche exhaustive est à prohiber si le temps de comparaison n’est pas rapide.

 

En algorithmique, on dit que cette problématique, et donc l’approche exhaustive naturelle présentée ci-dessus, admet une complexité quadratique. C’est à dire que si vous avez un fichier de n lignes à dédupliquer, alors le nombre total de comparaisons à effectuer est de l’ordre de n2

Les problèmes quadratiques sont assez courant (par exemple, une multiplication de matrice), mais se gèrent assez bien de nos jours avec une bonne puissance informatique. Néanmoins, dans le cadre de la déduplication, la comparaison n’est pas aussi simple qu’elle peut paraître, et donc le fait que le problème soit quadratique pose problème. Nous détaillons cela dans la prochaine section.

 

L’impact de la qualité de données

 

Comme évoqué précédemment, dédupliquer un fichier revient à comparer chacun de ses éléments avec le reste du fichier. La définition de cette comparaison constitue le fondement des différentes méthodes de déduplication.

 

En effet, la méthode de comparaison la plus simple, c’est de regarder chaque élément de chaque ligne, et de comparer leur exacte adéquation. Par exemple, dans le cas d’un fichier de contact, on sera amené à comparer les deux contacts suivants : 

 

  • Jean Dupont, comptable chez Globex Corp.
  • Jean Dupont, travaillant chez Globex.

 

Dans ce cas bien précis, si l’on effectue une comparaison exacte sur le nom et sur le prénom, alors on peut en déduire qu’il s’agit de la même personne, et donc d’un doublon. Néanmoins, la comparaison exacte échouerait si l’on compare l’entreprise dans laquelle Jean Dupont travaille, et c’est bien dommage parce que les champs se ressemblent fortement !

 

Cela motive donc le fait de ne pas travailler avec des comparaisons exactes, mais avec des similarités. Et le calcul de ces similarités est un enjeu fort pour mesurer une proximité, une distance, entre deux lignes à comparer.

Nous détaillons les similarités dans une section plus bas, un peu de patience !

 

La comparaison par similarité aide également à pallier les problèmes de qualité de données sous-jacents. Par exemple, en reprenant l’exemple énoncé ci-dessus :

 

  • Jean Dupont, comptable chez Globex Corp.
  • Jean Dupond, travaillant chez Globex.

 

La similarité entre Dupont et Dupond sera élevée, ce qui laisse à penser qu’il s’agit de la même personne, et donc d’un doublon, même si la qualité de la donnée n’est pas parfaite.

 

Un autre exemple de problème de qualité de données, plus traître cette fois :

 

  • Marie Durand, née Dupont, ingénieure chez Globex Corp.
  • Marie Dupont, née Durand, ingénieure chez Globex Corp.

 

Dans ce cas là, il s’agit très probablement de la même personne (même s’il n’est toutefois pas à exclure la possibilité que cela corresponde à deux personnes distinctes). Dans le cas où il s’agit de la même personne, cela est causé par le fait que le nom marital et le nom de jeune fille aient été inversés. Et dans ce cas là, même une approche par similarité n’est pas suffisante puisque Durand n’est pas si proche de Dupont. 

Ainsi, cela motive la nécessité d’effectuer des croisements, des recoupements d’informations, parmi les champs d’une même comparaison (ici nom marital et nom de jeune fille), le tout combiné avec des calculs de similarité.

 

Vous l’aurez compris, la qualité de la donnée a un impact direct sur la qualité du dédoublonnage d’un fichier. Des erreurs dans les champs, des champs qui peuvent comporter des valeurs identiques inversés (par exemple, nom de famille et nom marital), des champs erronés, des champs manquants, autant de phénomènes que vous avez déjà croisé, et qui vous compliquent drastiquement la tâche de déduplication.

 

Les mathématiques sous-jacentes

 

Dans cette section, nous allons vous donner une formulation mathématique du problème, bien que nous ne donnerons pas ici un formalisme avancé, ce n’est pas l’objet de cet article.

 

Nous vous donnerons également quelques exemples de fonctions (là encore, dans un formalisme plutôt léger, ce n’est pas le but de l’article) pour calculer des similarités entre les champs d’une base de données.

Contexte

 

On démarre avec un jeu de données D à dédupliquer, disons un fichier de contacts pour rester dans la même typologie d’exemple que présenté précédemment, et supposons également que ce fichier de contact comporte n lignes. Notez que nous parlons en lignes ici, et pas en contacts, car on veut dédupliquer notre fichier, et donc a priori notre fichier comporte plus de lignes que de contacts réels !

 

Prenons donc deux lignes au hasard l1, l2 de notre fichier de contacts. On dira dans notre jargon que ces deux lignes représentent un couple, le couple (l1, l2). Le but de la déduplication, c’est de déterminer si le couple (l1, l2) est oui ou non un doublon. 

ATTENTION, il ne s’agit pas de déterminer ici si l1=l2, mais de déterminer si l1 et l2 réfèrent au même contact ou non. C’est un écueil dans lequel il ne faut pas se prendre. Alors oui, vous me direz que si l1 = l2, alors le couple (l1, l2) est un doublon, ça oui, mais attention, la réciproque est fausse dès lors qu’il y a des imperfections dans les données !

 

On va supposer également que notre fichier de contacts contient m contacts uniques, que l’on note c1,…, cm. Notez bien que si le fichier ne comporte aucun doublon, alors m = n.

Ainsi, pour en revenir à nos moutons, dédoublonner revient  à déterminer si le couple (l1, l2) réfère à un seul et même contact, disons le i-ème contact ci. A noter aussi que m n’est jamais connu ni observé (sauf dans quelques rares cas où le fichier est petit, mais en règle générale non).

 

En d’autres termes, il s’agit ici de construire deux groupes de couples (l1, l2) : un groupe de doublons, et un groupe de non-doublons. La littérature anglo-saxonne nomme ces groupes M(pour match) et U(pour unmatch).

Ainsi, lorsque l’on va dédoublonner notre fichier de contacts D, on va calculer la probabilité que le couple (l1, l2) appartiene à M, c’est à dire la probabilité que les deux lignes du couple réfèrent au même contact. Et on effectue cela pour toutes les lignes du fichier, d’où le fait que le problème ait une complexité quadratique !

 

Plusieurs approches

 

Pour calculer cette probabilité, il existe plusieurs façons de faire. Les approches historiques modélisent cette probabilité en effectuant une hypothèse sur sa distribution sous-jacente (la loi, la façon dont les données et les doublons  sont répartis dans le jeu de données), puis en estimant les paramètres de cette distribution avec les données.

 

Ce genre d’approche est en général très efficace si l’hypothèse structurelle (hypothèse de départ) posée par le statisticien est correcte, ce qui n’est en général pas le cas. Mais malgré l’erreur de modélisation, ce genre d’approche reste relativement rapide et présente des performances correctes, on pourra notamment citer (Culotta & Mccallum, 2005) [1] et (Hall et al., 2008) [2]. Néanmoins, ce genre d’approche présente en général des difficultés lorsque la dimension (le nombre de champs à comparer par exemple, ou encore le nombre de similarités calculées) augmente.

 

Les approches plus récentes, notamment (Sarawagi, Sunita & Bhamidipaty, Anu., 2002) [3], optent pour une approche à base de machine learning, et entraînent un algorithme qui va calculer automatiquement cette probabilité, en se basant sur un ensemble de mesures de similarités entre les champs de la base de données.

Ce genre d’approche présente en général une qualité de prédiction bien supérieure, et fonctionnent assez bien en grande dimension. 

 

Cependant, les approches à base de machine learning requièrent en général un nombre de couples (l1, l2) conséquent pour présenter des résultats convenable, ce qui n’est pas le cas ici puisque l’on ne sait pas d’avance si le couple (l1, l2) est un doublon ou pas ! (ça serait trop facile sinon)

 

Les data scientists comprendront, mais là il faut le dire : on essaye d’entraîner un modèle d’apprentissage supervisé sans target, il n’y a pas comme un paradoxe là ? 

Eh bien justement si ! C’est bien problématique ! On veut entraîner un modèle de prédiction à prédire un phénomène qu’il n’a jamais observé. L’IA n’en est pas encore là malheureusement, vous ne verrez ça que dans Terminator.

 

Plus sérieusement, pour palier le problème d’apprentissage supervisé sans variable cible, il existe une solution plutôt simple : l’active learning. L’active learning consiste à : 

 

  1. taguer quelques exemples à la main, c’est à dire renseigner, pour quelques couples (l1, l2) si le couple en question est bien un doublon ou pas,
  2. entraîner un modèle de prédiction sur ces quelques exemples, 
  3. taguer quelques exemples supplémentaires, basés sur les prédictions du modèle, et ainsi de suite.

 

Ainsi, l’active learning est en général une bonne solution pour qu’un modèle atteigne d’excellentes performances tout en s’affranchissant du fait de devoir taguer un grand nombre de lignes.

 

Calcul des similarités

 

Toutes les méthodes statistiques, qu’elles soient classiques au sens historique du terme (statistique paramétrique) ou à base de machine learning, nécessitent de quantifier l’information présente dans les champs. 

En effet, toute méthode statistique doit prendre à un moment donné des entrées numériques, de sorte à pouvoir estimer les probabilités qui nous intéressent.

 

Dans cette section, nous allons décrire quelques méthodes pour quantifier intelligemment l’information présente dans notre fichier de contacts D.

 

La distance de Levenshtein est probablement la mesure de similarité la plus courante et la plus facile à implémenter. Elle est très pratique pour calculer un écart entre deux chaînes de caractères, et permet de tenir compte des éventuelles fautes d’orthographe.

 

Pour deux champs d’un fichier, disons deux prénoms, la distance de Levenshtein compte le nombre d’opérations élémentaires (ajout, suppression ou remplacement d’une lettre) pour transformer le premier prénom en le second.

 

Ainsi, Pierre et Piere auront une distance de Levenshtein égale à 1, alors que Pierre et Emma auront une distance de 4. Et donc, plus la distance est faible, plus les prénoms sont similaires, et plus il y a de chances qu’il s’agisse d’un doublon !

 

Néanmoins, Léa et Léo ont également une distance de Levenshtein à 1, et donc la méthode présente ses limites, même si on normalise la distance avec les longueurs des prénoms.

 

D’autres distances, comme la distance de Jaro-Winkler, permettent de quantifier l’information un peu différemment. La distance de Jaro-Winkler (JW) fait glisser le long du prénom une petite fenêtre mobile d’une longueur de quelques lettres, et regarde au sein de cette fenêtre si les lettres des deux prénoms sont alignées ou non, et compte les permutations de lettres.

Ainsi, cela permet de détecter des erreurs très locales au sein des prénoms (ou sur d’autres champs que le prénom), et de prendre en compte les permutations de lettres.

La figure 1 ci-dessous illustre le procédé de calcul de la distance de JW. Pour plus de détails sur le calcul de cette distance, nous vous invitons à consulter la page Wikipédia dédiée.

calcul de la distance de JW

Au même titre que la distance de Levenshtein, deux prénoms similaires auront une distance très proche, et deux prénoms très différent seront éloignés.

Et c’est très bien ! Puisque les deux méthodes de calcul sont radicalement différentes, cela permet au modèle d’exploiter une quantité plus riche d’information pour l’aider à décider du fait que (l1, l2) soit un doublon ou non.

 

Il existe toute une panoplie de distances entre chaînes de caractère, et plus on fait, meilleures seront les prédictions. On ne va pas décrire toutes les mesures de similarités ici, car ce n’est pas le but de cet article. Ce qui compte, c’est que vous ayez compris qu’il est important de quantifier intelligemment l’information présente dans les champs pour pallier au mieux aux erreurs rencontrées dans les données, et pour ainsi améliorer les performances du modèle.

Limites des méthodes mathématiques

 

Comme nous l’avons évoqué dans la section précédente, les méthodes de calcul de similarité entre deux champs à comparer permettent de quantifier intelligemment une information qui n’est pas sous forme numérique à l’origine.

 

Les méthodes les plus prometteuses en termes de qualité de prédiction, et donc de qualité de détection des doublons dans fichier, sont les méthodes à base de machine learning. Il est cependant relativement rare d’avoir un fichier partiellement annoté (c’est à dire un fichier avec des exemples de doublons, et des exemples de non-doublons) pour entraîner l’algorithme sans avoir à mettre en place une interface d’active learning. 

Néanmoins, utiliser les travaux manuels de déduplication faits par équipes métiers (si jamais ils sont conservés) est une bonne façon de valoriser le travail des équipes métier, et d’avoir un premier jeu d’entraînement pour l’algorithme. Mais attention, cela ne permet en général pas de s’affranchir de l’étape d’active learning.

 

Par ailleurs, afin de tirer un maximum de performances de la part d’un algorithme de machine learning, il est également important de calculer un nombre assez conséquent de similarités, afin que l’algorithme puisse affiner ses prédictions de doublons. Là encore, ce problème paraît anodin, mais c’est probablement le plus gros problème que vous allez rencontrer.

 

En effet, le calcul d’une dizaine de similarités sur un fichier de contacts prend environ 200 microsecondes (c’est à dire 0,0002 seconde) par couple, et le calcul de la probabilité de doublon pour le couple prend environ 150 microsecondes. C’est rapide vous me direz ! Alors oui, MAIS, n’oubliez pas que la complexité est quadratique ! Cela signifie que vous devez répéter cette opération pour tous les couples de lignes de votre fichier, et donc si vous avez un fichier de 1000 lignes, la déduplication vous prendra 1000 999 0,00035 350 secondes, soit un peu moins de 6 minutes, pour seulement 1000 lignes !

Et attention, la magnitude est quadratique, donc si vous avez 10 000 lignes dans votre fichier de contact, vous n’allez pas multiplier le temps de calcul par 10, mais par 100. Et donc, pour dédupliquer un fichier de 10 000 lignes, il vous faudra presque 10 heures.

 

Ce problème est sans doute celui qui vous donnera le plus d’insomnies, même pour des data scientists aguerris. Il vous faudra non seulement optimiser drastiquement le calcul des similarités, mais également réduire l’espace de recherche des doublons, sans pour autant nuire aux performances du modèle. Certaines méthodes peuvent efficacement réduire l’espace de recherche, comme des méthodes de blocking ou de hashing, mais ce n’est pas l’objet de cet article de les détailler.

 

Conclusion

 

Vous l’aurez compris, la déduplication est un problème bien connu des experts métiers qui travaillent avec leurs données de contacts, de produits, de transaction au quotidien, et c’est une douleur qui se transmet de génération en génération. 

 

La déduplication est une tâche qui est en général faite manuellement, ce qui ne valorise pas le temps des métiers, qui est très compliquée à automatiser de par le caractère quadratique du problème, et où les problèmes dans les données (champ manquant, valeurs bruitées, erronées, etc.) rajoutent une couche de complexité.

 

Par ailleurs, la communauté de recherche en machine learning se concentre très peu sur les problèmes de dédoublonnage, et plus généralement sur les travaux relatifs à la qualité de la donnée sur des fichiers structurés comme des fichiers de contacts. 

 

Il y a donc encore beaucoup à faire, pour redorer le blason de l’étude d’un problème assez vieux (pas comme le monde, mais presque), et particulièrement dans le domaine du machine learning appliqué aux données incomplètes.

 

Si vous souhaitez échanger sur vos problématiques de déduplication, n’hésitez pas à nous contacter. 

 

Références

[1] Culotta, Aron & Mccallum, Andrew. (2005). Joint deduplication of multiple record types in relational data. 257-258. 10.1145/1099554.1099615.

[2] Hall, Robert & Sutton, Charles & Mccallum, Andrew. (2008). Unsupervised deduplication using cross-field dependencies. 310-317. 10.1145/1401890.1401931.

[3] Sarawagi, Sunita & Bhamidipaty, Anu. (2002). Interactive Deduplication using Active Learning. Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 10.1145/775047.775087.

Data et IA : l’arme magique des équipes marketing ?

mars 16th, 2020 Posted by Data Science, Intelligence artificielle, Procurement, Retail & Marketplace 0 thoughts on “Data et IA : l’arme magique des équipes marketing ?”

L’intelligence artificielle est en train de révolutionner de nombreux secteurs et de nombreux métiers. Les métiers du marketing ont été parmi les premiers à utiliser l’IA. Grâce à cette nouvelle technologie, les entreprises peuvent désormais profiter d’analyses et d’informations plus pertinentes. Parmi les bénéfices de cette technologie, on peut inclure l’optimisation et la meilleure orientation des campagnes grâce à une connaissance client plus fine et l’anticipation des tendances futures. Toutefois, il y a quelques écueils à éviter. 

 

Les données en marketing

 

Ces dernières années, le volume de données disponibles pour les marques ne cesse d’augmenter. En effet, le développement du e-commerce, des objets connectés, des nouveaux canaux de communication (les réseaux sociaux, les tchats en ligne, etc.) ont permis aux marques de récolter un très grand nombre d’informations sur leurs clients, leurs prospects, malgré la récente mise en place d’une réglementation rgpd stricte. Ainsi, les marques peuvent croiser leurs sources d’informations pour connaître en détail le profil de leurs acheteurs : leur âge, leurs loisirs, leur environnement, leurs centres d’intérêts, leurs achats, leurs retours, leurs visites en boutique, etc. 

 

L’objectif de cette collecte de données est d’atteindre le Graal de toute équipe marketing : la satisfaction du client dans son expérience avec la marque. Une expérience client ou utilisateur réussie, c’est lorsque vous avez comblé, voire surpassé, les besoins et attentes de votre client en laissant un souvenir positif et fort. Pour y arriver, la première étape est de connaître vos clients pour personnaliser leur expérience. Vous comprenez donc l’intérêt de collecter un maximum d’informations et de les analyser ensuite. Vous pouvez ainsi prendre des décisions éclairées pour parvenir à vos objectifs.

 

Dans le contexte actuel de forte concurrence, les équipes marketing vont devoir redoubler d’efforts pour atteindre ce Graal. Pour collecter des données et les utiliser, l’intelligence artificielle aura un véritable impact pour les métiers marketing. 

 

L’IA en pratique dans les métiers marketing

 

L’IA pour prédire

 

Une fois collectées, les données doivent être analysées pour être utilisées à bon escient. La puissance de l’intelligence artificielle mise au service de l’analyse des historiques de vente, et l’analyse sémantique sur les réseaux sociaux, permet aux marques d’en déduire des prévisions de vente et de détecter des tendances. Ces résultats les aident à optimiser leurs stocks pour satisfaire la demande sans rupture, optimiser les livraisons. Prévoir l’avenir en détectant des tendances a un impact direct sur le chiffre d’affaire : moins d’invendus, des clients satisfaits et donc plus fidèles, plus de vente. Mais surtout sur les marges, avec des prévisions justes, il est plus facile de négocier avec ses fournisseurs et d’anticiper ses coûts logistiques. 

 

L’IA pour communiquer

 

La satisfaction des clients passe aussi par la relation qu’ils entretiennent avec la marque. La démultiplication des canaux de communication a renforcé ce besoin de communiquer des consommateurs pendant ou après l’acte d’achat. Le challenge des équipes marketing se trouve aussi dans la rapidité et la pertinence des réponses apportées. Dans ce contexte, l’intelligence artificielle a permis l’essor de solutions de chatbot permettant de répondre aux questions rapidement et sans interruption. L’IA aide aussi les conseillers en relation client en les guidant dans leur conversation et en les assistant en poussant les bonnes informations. 

 

L’IA pour personnaliser

 

Pouvoir dresser des profils détaillés de ses clients et prospects permet aux marques d’établir une segmentation plus fine. Par conséquent, les marketeurs peuvent personnaliser l’expérience client, notamment en e-commerce. Les sites peuvent dynamiquement et intelligemment s’adapter à l’internaute pour lui fournir une expérience personnalisée, pour lui proposer des articles qui lui correspondent. Vous augmentez ainsi les chances de vendre. La personnalisation du discours améliore considérablement l’expérience client. 

 

Dans la continuité de personnalisation, vous pouvez utiliser l’intelligence artificielle dans les campagnes de publicité. Les algorithmes sont capables de vous aider à proposer des promotions ciblées selon les goûts, les envies, les besoins de vos différents profils de clients. L’analyse concurrentielle avec de l’IA vous donne la possibilité d’optimiser les prix en quasi-temps réel. Longtemps dédiée à l’hôtellerie et aux transports, cette pratique de prix dynamiques s’étend à de plus en plus de secteurs. 

 

Quelques conseils 

 

L’intérêt et l’impact, que peut avoir l’intelligence artificielle sur les métiers du marketing, ont déjà fait leurs preuves. Cependant, nous souhaitons aussi aborder les points sur lesquels être attentifs. Il ne s’agit pas là de relativiser le pouvoir de l’intelligence artificielle, mais plutôt de vous alerter pour vous permettre de réussir vos projets d’IA. 

 

La qualité des données 

 

Le premier point que nous souhaitons mettre en lumière est certainement le plus important de cette dernière partie. L’intelligence artificielle est puissante si et seulement si les données sont fiables. Autrement dit, si elles sont propres : aucun doublon, une nomenclature unifiée, les informations complètes, etc. Une nomenclature non unifiée dans vos données entraîne de nombreux doublons. Le danger des doublons est réel. Si vous avez beaucoup de doublons dans votre base client, votre connaissance client sera faussée. Dans ce cas, non seulement votre relation client risque d’en pâtir, mais vos prévisions seront fausses, ce qui vous entraînera vers de mauvaises décisions. Si vous multipliez les doublons dans vos produits, au-delà d’une expérience utilisateur complexe, vous risquez aussi de pénaliser votre SEO : en effet Google traque les “duplicate content” sur les sites internets et ne référencera pas des fiches produits en doublons trop nombreux par exemple. 

 

Plus vous avez de données, plus ce travail de traitement est long. Plus vous avez de sources de collecte, plus ce travail est fastidieux. Le temps que cela représente, et donc le coût, amène de nombreuses entreprises à sous-traiter. Les risques d’erreurs augmentent, car la connaissance métier des données est essentielle. Aujourd’hui, il existe des solutions d’automatisation du traitement des données par l’intelligence artificielle, comme UNiFAi. 

 

Avec l’essor du Big Data, tout le monde s’est mis à collecter et stocker des données. Mais si vous basez vos analyses, vos actions automatisées sur des données de mauvaise qualité, vous obtiendrez des résultats de très mauvaise qualité. Les risques sont évidemment principalement financiers, mais votre image peut aussi être touchée. 

 

Le déploiement de l’IA

 

Les possibilités de l’intelligence artificielle sont si larges que les projets représentent très souvent un grand terrain de jeu dans lequel on peut vite se perdre. Nous vous conseillons de bien cadrer les projets un à un et de les implémenter un à un. L’objectif est aussi de pouvoir réduire le temps de mise en place de ces projets et intensifier le déploiement à grande échelle. 

 

Présente chez les acteurs “digital-natives” depuis leurs créations, les acteurs traditionnels ont plus de difficultés à implémenter cette nouvelle technologie. C’est, en effet, plus complexe car, pour beaucoup, ils sont encore en phase de digitalisation. La conduite du changement d’aussi grands effectifs et de processus ancrés augmente le temps nécessaire à une adoption intégrale. Les acteurs traditionnels ne voulant pas louper le train de l’IA, ont trouvé une bonne alternative en développant des équipes Data pour ne pas prendre trop de retard. 

 

Pour conclure, 

 

Les données à la disposition des équipes marketing sont nombreuses. Elles augmentent leur valeur lorsqu’elles sont utilisées avec de l’Intelligence Artificielle. Au service de l’expérience et la satisfaction de vos clients, ce combo devient une arme magique pour les équipes marketing. 

Si vous souhaitez échanger sur vos données, Maximilien Baudry, notre co-fondateur et Docteur en IA sera ravi de pouvoir vous conseiller.  

 

4 raisons d’automatiser le traitement de fichiers excel

janvier 28th, 2020 Posted by Data Science 0 thoughts on “4 raisons d’automatiser le traitement de fichiers excel”

Depuis de nombreuses années, Excel est un outil incontournable : suivi financier, répertoire de contacts, organisation de produits, catalogues produits, etc. Excel est un logiciel tableur de la suite bureautique Microsoft Office, la suite Google propose un équivalent : Google Sheet. Ces deux logiciels, les principaux utilisés dans le monde, intègrent des fonctions de calcul numérique, mais aussi de représentation graphique, et d’analyse de données (notamment de tableau croisé dynamique). Pour les petites organisations, le traitement des fichiers Excel est assez facile et rapide. En revanche, les entreprises plus grandes ont des volumes à traiter autrement plus importants, ce qui motive l’automatisation de tâches sur ce type de logiciel.

 

De gros volumes à nettoyer

 

Lorsque le volume de données est de l’ordre de quelques centaines de lignes, leur nettoyage peut se faire manuellement, rapidement et sans difficulté, aussi bien pour dédoublonner que pour catégoriser ou enrichir des données. En revanche, lorsque la volumétrie augmente, le nettoyage manuel devient risqué en plus d’être drastiquement plus long. En effet, les tâches répétitives à faible valeur ajoutée (marginalement) conduisent souvent à une baisse d’attention et peuvent conduire à un mauvais nettoyage de la donnée.

Des besoins réguliers

 

Quand vous êtes devant un gros fichier à nettoyer ponctuellement, vous pouvez faire l’effort de le faire manuellement, ou avec simplement quelques formules. Si toutefois la volumétrie est raisonnable. Mais votre métier implique sans doute de devoir le faire régulièrement. Vous pouvez dédier une équipe ou ajuster votre mission/métier pour palier aux difficultés techniques liées au nettoyage de vos données, ou bien utiliser des logiciels pour automatiser efficacement le nettoyage.

Un besoin d’efficacité

 

Si vous êtes confronté à de gros volumes à nettoyer quasi quotidiennement, vous allez vite vous rendre compte que le traitement manuel représente, en plus d’un risque opérationnel, une perte d’efficacité et donc d’argent. Nous avons déjà vu des équipes dont la mission de nettoyage des données représentaient plus d’un tiers de leurs temps alors que ce n’est pas le cœur de leur métier. Les outils mettant à profit l’Intelligence Artificielle au service de la qualité de la donnée sont un véritable atout pour gagner en efficacité et permettre à vos équipes de se recentrer sur leur métier.

Un besoin d’intelligence à grande échelle

 

Certains cas d’usage nécessitent une qualité de donnée particulièrement élevée, ce qui nécessite une attention et un traitement particulier de la donnée lorsque vous voulez les nettoyer ou les enrichir. La communauté autour de l’intelligence artificielle se concentre depuis peu sur l’importance de la qualité de données. De nouveaux algorithmes et de nouvelles technologies sont en train d’émerger afin de permettre un nettoyage et un enrichissement efficace de la donnée, dans le respect de votre expertise et au service de votre métier.

 

Pour conclure,

Excel, un des logiciels les plus utilisés dans le monde de l’entreprise, est un outil qui permet à de nombreux métiers de simplifier leur quotidien. Néanmoins, il peut s’avérer être inadapté pour nettoyer et enrichir simplement un volume important de données, tout en tenant compte de votre expertise. Si vous avez, au quotidien, à gérer des fichiers Excel à fort volume, nous vous invitons à lire notre article proposant 3 méthodes pour nettoyer des gros volumes de données. Notre équipe peut aussi vous aider, n’hésitez pas à nous contacter.

3 méthodes pour nettoyer des gros volumes de données

janvier 17th, 2020 Posted by Data Science 0 thoughts on “3 méthodes pour nettoyer des gros volumes de données”

Les capacités informatiques ont fortement évolué ces 20 dernières années, ce qui a ouvert de nouvelles perspectives d’analyse de données pour toutes les entreprises.

(suite…)

Newsletter

Ne manquez pas nos articles ! (1 email/mois)