La mise en correspondance à l'aide de l'apprentissage automatique d'un point de vue algorithmique

EnrichVersion
6.5
EnrichProdName
Talend Big Data Platform
Talend Real-Time Big Data Platform
Talend Data Fabric
task
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement utilisant l'apprentissage automatique
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement utilisant l'apprentissage automatique
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement utilisant l'apprentissage automatique
EnrichPlatform
Studio Talend

La mise en correspondance à l'aide de l'apprentissage automatique d'un point de vue algorithmique

La mise en correspondance à l'aide de l'apprentissage automatique implique l'utilisation des composants suivants :
  • Le tMatchPairing

  • Le tMatchModel

  • Le tMatchPredict

Pour un aperçu du processus de prédiction automatique des correspondances dans des jeux de données, consultez L'approche de l'apprentissage automatique.

Comment le tMatchPairing calcule-t-il les paires suspectes ?

Le tMatchPairing utilise comme méthode de blocking, le tableau des suffixes (Suffix Array), que l'on peut considérer comme étant une méthode de blocking floue, afin de calculer les paires suspectes.

Les principales étapes du processus sont les suivantes :

  1. Pour chaque ligne, les valeurs des différentes colonnes utilisées comme clé de bloc sont concaténées. Ensuite, tous les suffixes d'une longueur supérieure ou égale à la valeur définie pour le paramètre Min suffix length sont générés. Par défaut, cette valeur est définie à 3 dans le Studio Talend.

    Par exemple, les colonnes first_name et last_name sont utilisées comme clés de bloc. La colonne first_name contient la valeur John et la colonne last_name contient la valeur Doe. Alors, les suffixes générés sont Doe, nDoe, hnDoe, ohnDoe et JohnDoe.

  2. Les suffixes restants sont classés par ordre alphabétique. Si deux suffixes consécutifs sont trop similaires, ils sont fusionnés.

    Si le nombre de lignes ayant le même suffixe dépasse la valeur définie pour le paramètre Max block size, ce suffixe est considéré comme étant trop fréquent. Il est alors supprimé.

  3. Pour chaque suffixe, toutes les paires possibles de lignes contenant des enregistrements avec le même suffixe sont générées. La valeur définie pour le paramètre Max block size ne doit pas être trop élevée car le nombre de combinaisons peut augmenter considérablement. Par défaut, la valeur du paramètre Max block size est définie à 10.

  4. L'étape de filtrage est la dernière étape. Elle consiste en une suppression des paires les moins susceptibles de correspondre. Pour chaque paire, un score est calculé et ajouté dans le schéma de sortie. Pour calculer un score pour chaque paire de paires suspectes, un échantillon de taille fixe est généré. La taille par défaut est définie à 10000. Les deux étapes suivantes sont appliquées à l'échantillon :

    • Calcul des différentes mesures - Levenshtein, Jaro-Winkler et Exact without case - pour chaque paire et chaque colonne.

    • Calcul du centile pour chaque paire suspecte et chaque colonne.

Il est maintenant possible de donner une bonne approximation pour le centile, selon la valeur d'une mesure. Sur l'ensemble du jeu de données, différentes mesures sont calculées pour chaque paire et le centile est extrait pour chaque mesure. Ensuite, le calcul du score se fait en deux étapes :

  • Calcul du centile maximum au-delà des mesures, pour chaque colonne

  • Calcul du centile minimum au-delà des colonnes.

Si le score est inférieur au seuil, la paire est filtrée. Ceci garantit que chaque colonne possède au moins une mesure au-dessus du seuil, ce qui signifie que toutes les colonnes correspondent par rapport au moins à une mesure.

Comment le tMatchPairing calcule-t-il l'échantillon de paires suspectes ?

La liste de paires suspectes peut être très longue. Vous ne libellez qu'un sous-ensemble de cette liste, afin d'identifier des groupes potentiels de doublons.

Vous pouvez ensuite utiliser l'apprentissage automatique pour prédire des valeurs sur toute la liste. Ensuite, il est possible de générer en sortie un échantillon de cette liste, dont la taille est définie manuellement. L'échantillon est choisi aléatoirement.

Pour un exemple de la façon dont vous pouvez libeller des paires suspectes dans une campagne de type Grouping créée dans Talend Data Stewardship, consultez Gérer des tâches de regroupement pour décider des relations entre les paires d'enregistrements.

Comment le tMatchModel apprend-il un modèle de mise en correspondance ?

Extraire les attributs de correspondance en utilisant le tMatchModel

Vous pouvez utiliser les paires suspectes libellées en tant que données d'entrée du tMatchModel.

Vous devez définir l'ensemble de colonnes à partir duquel le modèle sera construit et la colonne définissant le libellé. L'algorithme calculera différentes mesures, appelées attributs, afin de capturer le plus d'informations possible sur cet ensemble de colonnes.

Le tMatchModel utilise l'algorithme Random forest pour construire le modèle. Cet algorithme est une généralisation des arbres décisionnels.

Analyser des données en utilisant les arbres décisionnels et l'algorithme Random forest

L'arbre décisionnel est un algorithme glouton qui effectue une partitionnement binaire récursif de l'espace des attributs.

Chaque partition est choisie en sélectionnant le meilleur partitionnement parmi un ensemble de partitionnements possibles, afin de maximiser le gain d'information à chaque nœud de l'arbre. Le gain d'information est lié à l'impureté du nœud, qui mesure l'homogénéité des libellés par rapport à un nœud donné.

L'implémentation actuelle fournit deux mesure d'impureté pour la classification :

  • L'index de Gini

  • L'entropie où fi est la fréquence du label i à un nœud donné.

Afin d'être partitionné, chaque attribut continu doit être discrétisé. Le nombre de boîtes de chaque attribut doit être géré par le paramètre Max Bins. Augmenter la valeur de ce paramètre permet à l'algorithme de prendre en considération davantage de candidats pour le partitionnement et de prendre des décisions plus fines. Cependant, cela augmente les besoins en calculs. La construction de l'arbre de décision s'arrête dès que l'une des conditions suivantes est respectée :

  • La profondeur du nœud est égale à la profondeur maximale d'un arbre. Les arbres de décisions plus profonds sont plus expressifs mais ils sont également plus consommateurs en ressources et sujets au sur-apprentissage.

  • Aucun candidat au partitionnement n'apporte de gain d'information supérieur à la valeur de Min Info Gain.

  • Aucun candidat au partitionnement ne produit de nœuds descendants, ayant chacun au moins un nombre de lignes égal à Min Instance Per Node.

L'algorithme Random forest exécute plusieurs fois l'algorithme des arbres de décisions (contrôlé par le paramètre numTrees), sur un sous-ensemble du jeu de données et un sous-ensemble des attributs.

Ces deux sous-ensembles sont gérés par deux paramètres :

  • Le taux de sous-échantillonnage : ce paramètre définit la fraction du jeu de données d'entrée utilisé pour apprendre chaque arbre de décision dans une forêt. Le jeu de données est créé selon la méthode de l'échantillonnage par remplacement, ce qui veut dire que, par exemple, une ligne peut être présente plusieurs fois.

  • La stratégie d’échantillonnage : ce paramètre définit le nombre d'attributs à prendre en considération pour chaque arbre. Vous pouvez définir l'une des valeurs suivantes :
    • auto : la stratégie est automatiquement basée sur le nombre d'arbres dans la forêt.

    • all : la totalité des attributs est prise en considération pour le partitionnement.

    • sqrt : le nombre d'attributs pris en considération est égal à la racine carrée du nombre total d'attributs.

    • log2: le nombre d'attributs pris en considération est égal à log2(M), où M est le nombre total d'attributs.

Différents arbres seront générés. De nouvelles valeurs peuvent être prédites par vote consensuel au sein de l'ensemble d'arbres.

Paramétrer les hyper-paramètres et utiliser la validation croisée à k plis afin d'améliorer le modèle de mise en correspondance

Test du modèle en utilisant la technique de la validation croisée à k plis

La technique de la validation croisée à k plis consiste en une évaluation de la performance du modèle sur un jeu de donnée indépendant.

Pour tester le modèle, le jeu de données est partitionné en k sous-ensembles et l'algorithme Random forest est exécuté k fois :

  • À chaque itération, l'un des k sous-ensembles est utilisé comme jeu de validation et les k-1 sous-ensembles restants sont utilisées comme jeu d'entraînement.

  • Un score pour chacune des k exécutions est calculé, une moyenne de scores obtenues est calculée afin de pouvoir calculer le score global.

Paramétrer les hyper-paramètres de l'agorithme Random forest en utilisant la recherche dans une grille (grid search)

Vous pouvez définir des valeurs pour les deux hyper-paramètres de l'algorithme Random forest :

  • Le nombre d'arbres de décision

  • La profondeur maximale d'un arbre de décision

Afin d'améliorer la qualité du modèle et de paramétrer les hyper-paramètres, la recherche dans la grille construit des modèles pour chaque combinaison des valeurs des deux hyper-paramètres de l'algorithme Random forest, dans les limites que vous avez définies.

Par exemple :

  • Le nombre d'arbres est compris entre 5 et 50 avec un intervalle de 5 ;

  • la profondeur d'un arbre est comprise entre 5 et 10 avec un intervalle de 1.

Dans cet exemple, il y aura 60 combinaisons différentes (10 × 6).

Seule la meilleure combinaison de valeurs des deux hyper-paramètres sera retenue. Cette mesure sera reportée lors de la validation croisé à k plis.

Comment le tMatchPredict prédit-il des valeurs sur un jeu de données ?

Une fois le modèle d'apprentissage généré, le tMatchPredict peut prédire des valeurs sur un jeu de données à l'aide du modèle qu'il reçoit du tMatchModel.

Les enregistrements d'entrée peuvent être appariés ou non :

  • Si les enregistrement d'entrée sont appariés, le tMatchPredict peut libeller les doublons suspects automatiquement.

  • Si les enregistrement d'entrée n'ont pas été appariés, utilisez le modèle permettant d'apparier les données, généré par le tMatchPairing, pour calculer les doublons suspects.

Plutôt que de retourner des pairs, le composant peut aussi retourner des groupes d'enregistrements qui correspondent entre eux, par l'ajout d'un étape de clustering dans l’algorithme. Vous pouvez définir les classes de clustering, qui sont, en règle générale, le libellé utilisé pour les correspondances.

L'algorithme utilisé pour le clustering calcule les composants connectés du graphe, où chaque nœud est un enregistrement. Une arête relie deux nœuds si la paire d'enregistrements possède le bon libellé.

Par exemple, si un enregistrement A correspond à un enregistrement B et que cet enregistrement B correspond à un enregistrement C, un groupe comprenant les enregistrements A, B et C créé même si les enregistrements A et record C ne correspondent pas.