0 / 0
Retourner à la version anglaise de la documentation
Optimisation avancée de l'algorithme de correspondance à l'aide de l'API REST IBM Match 360
Dernière mise à jour : 28 nov. 2024
Optimisation avancée de l'algorithme de correspondance à l'aide de l'API REST IBM Match 360

Pour atteindre un niveau de personnalisation avancé, vous pouvez utiliser l'API REST IBM Match 360 pour configurer et optimiser votre algorithme de correspondance.

Lorsque vous utilisez l'API, vous devez explicitement déployer l'algorithme avant d'exécuter vos travaux correspondants. Dans l'API de microservice api-model , la méthode POST /mdm/v1/algorithms/{record_type} génère un algorithme de correspondance basé sur les attributs et les zones fournis.

Vous pouvez personnaliser davantage l'algorithme de correspondance à l'aide de la méthode PUT /mdm/v1/algorithms/{record_type} , qui vous permet de fournir un algorithme de correspondance entièrement défini dans le contenu de la méthode.

Voici un exemple de contenu pour POST /mdm/v1/algorithms/{record_type} qui définit le seuil de liaison automatique et un ensemble d'attributs et de zones correspondants:

{"person_entity":{"auto_link_threshold":0.4,"matching_attributes":[{"attributes":["legal_name"]},{"attributes":["primary_residence"]}, {"attributes":["mobile_telephone"]},
{"attributes":["birth_date"]}, {"attributes":["gender"]}, {"attributes":["personal_email"]}]}}

Pour plus d'informations sur l'API REST IBM Match 360 et les SDK correspondants, y compris les instructions d'authentification et la documentation complète de chaque méthode, voir la référence APIIBM Match 360

Rappel: Chaque fois que vous mettez à jour l'algorithme de mise en correspondance, même via l'API, vous devez exécuter la mise en correspondance par la suite pour voir les modifications reflétées dans vos résultats de mise en correspondance.

Dans cette rubrique :

Configuration de filtres de comparaison multidimensionnelle

Affinez encore plus votre algorithme de correspondance en définissant des filtres de comparaison multidimensionnels. Les filtres multidimensionnels peuvent comparer les attributs entre les enregistrements et ajuster les scores correspondants et les pondérations vers le haut ou vers le bas en fonction des critères que vous définissez. Les filtres de comparaison multidimensionnels peuvent réduire la quantité de faux positifs ou de faux négatifs dans vos résultats de correspondance.

Vous pouvez également utiliser des filtres de comparaison multidimensionnelle pour inclure vos propres règles de correspondance déterministes qui remplacent les résultats de correspondance basés sur l'apprentissage automatique.

Génération d'un filtre de comparaison multidimensionnel

Pour générer un filtre de comparaison multidimensionnel dans votre algorithme de correspondance, mettez à jour la configuration du moteur de correspondance à l'aide des commandes d'API REST:

  1. Accédez à l'interface d'API IBM Match 360 et authentifiez-vous.

  2. Spécifiez un contenu POST /mdm/v1/algorithms/{record_type} qui définit un filtre, comme dans l'exemple suivant:

    {"person_entity":{"auto_link_threshold":0.4,"matching_attributes":[{"attributes":["legal_name"], "post_filter_methods": ["false_positive_filter"]},{"attributes":["primary_residence"], "post_filter_methods": ["false_positive_filter"]}, {"attributes":["mobile_telephone"]},
    {"attributes":["birth_date"], "post_filter_methods": ["false_positive_filter"]}, {"attributes":["gender"]}, {"attributes":["personal_email"]}]}}
    

    Dans l'exemple de contenu, false_positive_filter est le nom du filtre personnalisé. Elle s'applique à chaque attribut du contenu qui inclut le nom du filtre.

L'exemple de contenu d'API génère un algorithme contenant un false_positive_filter dans lequel les pondérations et les pénalités sont la valeur par défaut, c'est-à-dire 0.

Vous pouvez éventuellement personnaliser les pondérations et les pénalités pour répondre aux exigences de votre organisation, puis déployer votre algorithme mis à jour à l'aide de l'API PUT /mdm/v1/algorithms/{record_type} .

Description des paramètres qui définissent les filtres

Pour comprendre les paramètres de configuration qui définissent les filtres de comparaison multidimensionnelle, prenez en compte l'exemple de false_positive_filter créé dans la section précédente.

Extrayez l'algorithme en cours à l'aide de la commande d'API GET /mdm/v1/algorithms/{record_type}.

Une fois que vous avez soumis la demande POST dans la section précédente, avec l'exemple de contenu correspondant, la section suivante de la configuration de l'algorithme a été générée:

{
  "false_positive_filter": {
    "filter_recipe": [
      {
        "method": "FilterMethod.MultiDimFilter",
        "inputs": [1,2,3],
        "label": "Multi-Dim filter",
        "weights": [
          {
            "distances": [0,0],
            "values": [0,0,0,0,0,0]
          }
        ]
      }
    ],
    "inputs": [
      {"compare_method": "address_compare"},
      {"compare_method": "date_compare"},
      {"compare_method": "pername_compare"}
    ],
    "label": "false_positive_filter"
  }
}

L'exemple de section false_positive_filter inclut les paramètres standard qui définissent les filtres de comparaison multidimensionnelle:

  • filter_recipe -Cette section contient un tableau de paramètres qui fournissent la recette nécessaire pour définir des pondérations de correspondance pour chaque entrée.

    • inputs. La section filter_recipe.inputs contient un index des entrées auxquelles cette recette de filtre s'applique. Il s'agit de valeurs numériques qui correspondent à l'ordre des méthodes de comparaison répertoriées dans la section inputs . Par exemple, dans l'exemple, 1 correspond à la méthode address_compare , 2 correspond à la méthode date_compare et 3 correspond à la méthode pername_compare .
    • weights -La section weights est un tableau d'éléments qui définissent la façon dont chaque entrée est pesée pour la comparaison tridimensionnelle. La section weights inclut des définitions distances et values pour les entrées. La pondération par défaut est 0 pour toute entrée qui n'est pas définie.
  • inputs -Cette section contient les méthodes de comparaison pour les attributs correspondants. Ces méthodes utilisent les distances et les pondérations que vous définissez dans la section filter_recipe .

  • max_distance -Facultatif (non affiché). Ce paramètre définit la distance maximale. La distance maximale par défaut est 5, ce qui signifie que le paramètre filter_recipe.weights.values peut inclure 6 éléments ("values":[0,1,2,3,4,5]).

Configuration de filtres personnalisés

Pour personnaliser des méthodes de comparaison existantes à utiliser avec un filtre de comparaison multidimensionnel:

  1. Extraire l'algorithme en cours:

    GET /mdm/v1/algorithms/{record_type}
    
  2. Mettez à jour l'algorithme si nécessaire. Par exemple, vous pouvez :

    • Ajoutez ou mettez à jour des éléments dans la section weights pour personnaliser les pondérations des entrées répertoriées.
    • Définissez la distance maximale en ajoutant un paramètre max_distance .
    • Ajoutez des méthodes de comparaison en tant qu'entrées qui utiliseront ce filtre à la place des pondérations de correspondance par défaut.
  3. Remplacez l'algorithme correspondant par votre version mise à jour:

    PUT /mdm/v1/algorithms/{record_type}
    

Exemple 1: Utilisez l'exemple de contenu suivant si vous souhaitez définir la distance maximale sur 9 et spécifier des pondérations et des pénalités personnalisées pour différentes combinaisons d'entrées et de distances comme suit: -input1 distance=0, input2 distance=0, input3 distance = [ 0,1,2,3,4,5,6,7,8, 9 ]. Dans ce cas, la combinaison de distances [ 0,0, 3 ] donne un score de 15.

  • input1 distance=1, input2 distance=0, input3 distance = [ 0,1,2,3,4,5,6,7,8, 9 ]. Dans ce cas, la combinaison de distance [ 10, 9 ] donne un score pénalisé de -30.
{
  "false_positive_filter": {
    "filter_recipe": [
      {
        "method": "FilterMethod.MultiDimFilter",
        "max_distance": 9,
        "inputs": [1,2,3],
        "label": "Multi-Dim filter",
        "weights": [
          {
            "distances": [0,0],
            "values": [0,-5,-10,-15,-20,-25,-30,-30,-30,-30]
          },
          {
            "distances": [1,0],
            "values": [0,-5,-10,-15,-20,-25,-30,-30,-30,-30]
          }
        ]
      }
    ],
    "inputs": [
      {"compare_method": "address_compare"},
      {"compare_method": "date_compare"},
      {"compare_method": "pername_compare"}
    ],
    "label": "false_positive_filter"
  }
}

Exemple 2: Vous pouvez ajouter vos propres méthodes de comparaison personnalisées et les configurer pour qu'elles soient exclues de la contribution au score de correspondance global, comme dans l'exemple de contenu suivant. Dans ce cas, les méthodes personnalisées ne sont utilisées que par le filtre de comparaison multidimensionnel.

Dans l'exemple suivant, le filtre given_name_only_compare définit overall_score_contribution sur false.

{
  "given_name_only_compare": {
    "methods": [
      {
        "inputs": [
          {
            "attributes": [
              "legal_name"
            ],
            "fields": [
              "given_name"
            ]
          }
        ],
        "compare_recipe": [
          {
            "comparison_resource": "person_person_entity_person_compare_spec_name",
            "method": "CompareMethod.NameCompare",
            "inputs": [
              1
            ],
            "label": "Given Name Only Match",
            "fields": [
              "given_name"
            ]
          } 
        ]
      }
    ],
    "overall_score_contribution" : false,
    "label": "Given Name Only Compare",
    "weights": [1,0,0,0,0,0,0,0,0,0,0]
  }
}

Commutation de la fonction de distance d'édition

Le moteur de correspondance IBM Match 360 calcule la distance d'édition comme l'une des fonctions internes lors de la comparaison et de la mise en correspondance de divers attributs. La distance d'édition est une mesure de la façon dont les deux chaînes sont différentes les unes des autres. Elle est calculée en comptant le nombre de modifications requises pour transformer une chaîne en une autre.

Vous pouvez choisir entre la fonction de distance d'édition standard ou une fonction spécialisée. La distance d'édition standard est la configuration par défaut pour garantir des performances plus rapides lors de la mise en correspondance. Pour plus d'informations sur la distance d'édition, voir Algorithmes de correspondanceIBM Match 360.

Pour modifier la fonction de distance d'édition active, mettez à jour la configuration du moteur correspondant à l'aide des commandes d'API REST:

  1. Accédez à l'interface d'API IBM Match 360 et authentifiez-vous.

  2. Extrayez le fichier JSON de configuration existant pour la fonction de comparaison, compare_spec_resource:

    GET /mdm/v1/compare_spec_resources/{resource_name}
    
  3. Sur votre machine locale, éditez le JSON pour ajouter la ligne "similar_characters_enabled": true (ou supprimez-le si vous souhaitez revenir au paramètre de distance d'édition par défaut).

  4. Mettez à jour la configuration IBM Match 360 en téléchargeant le JSON édité :

    PUT /mdm/v1/compare_spec_resources/{resource_name}
    

Configuration d'un seuil d'enregistrement de colle

Vous pouvez définir un seuil d'enregistrement glue à l'aide de commandes d'API pour mettre à jour l'algorithme de correspondance IBM Match 360 .

Lorsque IBM Match 360 forme des entités via la mise en correspondance, certains enregistrements de mauvaise qualité peuvent agir comme des enregistrements de colle. Les enregistrements de colle obtiennent leur nom parce qu'ils s'en tiennent à beaucoup d'autres enregistrements comme la colle. Etant donné que les enregistrements de colle contiennent peu ou pas de valeurs d'attribut détaillées, ils peuvent sembler correspondre à de nombreux enregistrements différents. Le comportement de mise en correspondance d'un enregistrement de colle peut créer par inadvertance et de manière incorrecte des entités de très grande taille qui n'ont en commun qu'un seul enregistrement de colle de mauvaise qualité.

A titre d'exemple simplifié, considérons un enregistrement de faible qualité qui n'a pas d'autres attributs qu'un nom, tel que "John Smith". Un enregistrement de ce type peut facilement correspondre à n'importe quel autre "John Smith" dans le jeu de données, ce qui entraîne l'inclusion d'autres enregistrements qui, autrement, ne seraient pas mis en correspondance dans une seule entité "John Smith".

En définissant un seuil d'enregistrement de colle dans l'algorithme de correspondance pour chaque type d'entité, les ingénieurs en traitement de données peuvent empêcher les enregistrements de colle de provoquer la formation d'entités volumineuses et mal appariées.

Lorsqu'un seuil d'enregistrement de colle est configuré, IBM Match 360 identifie les enregistrements de colle en utilisant leur score d'auto-concordance. Un score d'auto-correspondance est le score de correspondance obtenu en comparant un enregistrement à lui-même. Un score d'auto-concordance élevé indique que l'enregistrement possède un bon nombre d'attributs de correspondance de haute qualité.

IBM Match 360 identifie les enregistrements glue en vérifiant si leur score d'auto-correspondance plus la valeur du seuil d'enregistrement glue est inférieur au score d'auto-correspondance de l'enregistrement central dans l'entité. S'il est inférieur, l'enregistrement est considéré comme un enregistrement de colle et ne sera pas inclus dans l'entité.

Les seuils d'enregistrement Glue sont facultatifs et ne sont pas définis par défaut. Le seuil d'enregistrement glue de chaque type d'entité doit être défini séparément.

Pour définir un seuil d'enregistrement de colle:

  1. Accédez à l'interface d'API IBM Match 360 et authentifiez-vous.

  2. Extrayez le fichier JSON de l'algorithme de correspondance de configuration existant pour le type d'enregistrement donné:

    GET /mdm/v1/algorithms/{record_type}
    
  3. Sur votre machine locale, éditez le fichier JSON pour ajouter le paramètre glue_threshold sous le type d'entité approprié. Indiquez une valeur de seuil numérique. (Supprimez le paramètre si vous souhaitez supprimer un seuil d'enregistrement de colle existant.) Par exemple :

    locale: {...}
    encryption: {...}
    standardizers: {...}
    entity_types:
      person_entity:
        bucket_generators: {...}
        auto_link_threshold: 65
        clerical_review_threshold: 55
        glue_threshold: 20
        compare_methods: {...}  
    
  4. Mettez à jour l'algorithme de correspondance IBM Match 360 :

    PUT /mdm/v1/algorithms/{record_type}
    

Configuration des seuils de correspondance spécifiques à la source

Les ingénieurs en données peuvent définir des seuils de révision administrative et des seuils de liaison automatique au sein de l'algorithme de correspondance qui sont spécifiques à diverses sources d'enregistrement. Cela permet à votre organisation de gérer la mise en correspondance différemment en fonction de la fiabilité de la source.

Votre organisation peut avoir des enregistrements provenant de différentes sources qui utilisent chacun des attributs différents et ont des niveaux de qualité différents. En configurant des seuils de correspondance au niveau de la source d'enregistrement, vous pouvez peser les données provenant de sources dignes de confiance plus lourdement que les données provenant de sources moins dignes de confiance, ou même exclure certaines sources de la participation à la mise en correspondance. Les sources exclues de la mise en correspondance peuvent toujours être utilisées comme sources de référence dans le système.

Les seuils de niveau source sont facultatifs et ne sont pas définis par défaut.

Les seuils de niveau source doivent être définis séparément pour chaque type d'entité de votre modèle de données. Pour rappel, chaque type d'entité possède sa propre définition d'algorithme de correspondance.

Pour configurer des seuils de correspondance de niveau source:

  1. Accédez à l'interface d'API IBM Match 360 et authentifiez-vous.

  2. Extrayez le fichier de configuration d'algorithme de correspondance existant (au format JSON) pour le type d'entité que vous souhaitez configurer.

    GET /v1/algorithms/{record_type}
    
  3. Sur votre machine locale, éditez le fichier JSON pour ajouter l'objet source_level_thresholds sous le type d'entité approprié (par exemple, person_entity). Par exemple :

    "person_entity":{
    
      "auto_link_threshold":150,
    
      "clerical_review_threshold":120,
    
      "source_level_thresholds": {
    
           "src0": {
    
                "default":[165, 150],
    
                “srcxsrc” : {
    
                      "src0": [null, null],    
    
                      "src1": [160, 130], 
    
                      "src2": [123, 111], 
    
                      "src3": [null, null]
    
               }
    
           },
    
           "src1": {
    
                “srcxsrc” : {
    
                      "src1": [160, 130], 
    
                      "src2": [123, 111], 
    
                      "src3": [136, 120], 
    
                      "src4": [120, null]
    
               }
    
           }
    
        }
    
    }
    

    Pour plus d'informations sur cet exemple et pour savoir comment définir l'objet JSON de seuil de niveau source, voir Exemple d'objet JSON définissant des seuils de niveau source.

  4. Mettez à jour l'algorithme de correspondance IBM Match 360 :

    PUT /v1/algorithms/{record_type}
    

Pour plus d'informations sur les seuils de niveau source, voir les sous-sections suivantes:

Exemple d'objet JSON pour les seuils de niveau source

Dans l'exemple JSON suivant, vous pouvez voir un fragment du fichier de configuration d'algorithme correspondant qui définit des seuils de niveau source pour l'entité Person.

"person_entity":{

  "auto_link_threshold":150,

  "clerical_review_threshold":120,

  "source_level_thresholds": {

       "src0": {

            "default":[165, 150],

            “srcxsrc” : {

                  "src0": [null, null],    

                  "src1": [160, 130], 

                  "src2": [123, 111], 

                  "src3": [null, null]

           }

       },

       "src1": {

            “srcxsrc” : {

                  "src1": [160, 130], 

                  "src2": [123, 111], 

                  "src3": [136, 120], 

                  "src4": [120, null]

           }

       }

    }

}

Dans l'exemple précédent :

  • Le seuil de liaison automatique globale par défaut est 150.
  • Le seuil de revue administrative globale par défaut est 120.
  • src0, src1, src2, src3et src4 sont des exemples de noms de source.
  • Dans l'objet source_level_thresholds , des seuils source par source sont définis pour deux sources: src0 et src1.

Conseils généraux:

  • Sous chaque source de l'objet source_level_thresholds , vous pouvez éventuellement remplacer les seuils de correspondance globale par défaut pour cette source à l'aide du paramètre default .
  • Sous chaque source, vous pouvez définir un tableau de seuils de correspondance de source à source sous la propriété srcxsrc . Ces seuils sont utilisés lors de la comparaison des enregistrements provenant des sources répertoriées.
  • Dans le tableau, les valeurs fournies entre crochets sont au format suivant: [autolink-threshold, clerical-threshold]. Ainsi, [136, 120] indique que pour la comparaison source-à-source donnée, le seuil de liaison automatique est 136 et le seuil de révision administrative est 120.
  • Lorsque les deux valeurs sont indiquées, le seuil de liaison automatique doit toujours être supérieur au seuil de révision administrative.
  • Si la valeur nullest indiquée, ce seuil est désactivé.
  • Si les deux valeurs d'une paire sont indiquées sous la forme null, la mise en correspondance et la liaison entre les deux sources sont désactivées.
  • Lorsque les deux valeurs sont null et que les deux sources données sont identiques, la source est considérée comme une source de référence uniquement. Par exemple, src0 est la source de référence pour src0 dans l'exemple JSON précédent. Toute entité qui possède uniquement des enregistrements provenant de sources de référence n'est pas viable.

Evaluation des résultats de seuil au niveau de la source

Si vous avez configuré des seuils de niveau source dans votre algorithme de correspondance personnalisé, utilisez la méthode d'API REST suivante pour obtenir les détails du scoring.

POST /v1/compare/?details=debug&crn={CRN}&entity_type={entity_type}&record_type={record_type}

Utilisez les informations renvoyées par cette méthode pour vous aider à évaluer les résultats et, si nécessaire, à affiner votre configuration de seuil de niveau source.

Seuils de niveau source et révisions de paires

Les seuils de niveau source peuvent être remplacés si vous acceptez les recommandations d'optimisation générées par les révisions de paires. Si votre organisation utilise ou a l'intention d'utiliser la fonction de révision de la paire IBM Match 360 pour générer des recommandations d'optimisation intelligente, il est préférable d'effectuer les tâches de révision de la paire avant de définir vos seuils de niveau source.

Si vous avez déjà défini des seuils de niveau source dans des algorithmes de correspondance personnalisés, désactivez la fonction de seuil de niveau source en éditant la ressource personnalisée IBM Match 360 (mdm-cr). Utilisez la commande suivante pour désactiver les seuils de niveau source dans la ressource personnalisée:

oc patch mdm mdm-cr --type=merge -p '{"spec": {"mdm_matching": {"features": {"source_level_thresholds": {"enabled": false}}}}}' 

Il peut s'écouler de 20 à 30 minutes avant que la ressource personnalisée ne se réconcilie après avoir effectué une modification. Les pods de service mdm-matching doivent également être redémarrés pour appliquer la configuration mise à jour. Si nécessaire, ces pods doivent être redémarrés manuellement.

Pour réactiver les seuils de niveau source, exécutez la commande suivante:

oc patch mdm mdm-cr --type=merge -p '{"spec": {"mdm_matching": {"features": {"source_level_thresholds": {"enabled": true}}}}}' 

Etapes suivantes

En savoir plus

Rubrique parent: Personnalisation et renforcement de l'algorithme de correspondance

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus