Ajuste avançado do algoritmo de correspondência usando a API REST do IBM Master Data Management

Para alcançar um nível avançado de personalização, você pode usar a API REST do IBM Master Data Management para configurar e ajustar seu algoritmo de correspondência.

Ao trabalhar com a API, deve-se implementar explicitamente o algoritmo antes de executar suas tarefas correspondentes Na API de microsserviço api-model , o método POST /mdm/v1/algorithms/{record_type} gera um algoritmo correspondente com base nos atributos e campos fornecidos.

É possível customizar ainda mais o algoritmo correspondente usando o método PUT /mdm/v1/algorithms/{record_type} , que permite fornecer um algoritmo correspondente totalmente definido na carga útil do método.

Aqui está uma carga útil de amostra para POST /mdm/v1/algorithms/{record_type} que define o limite de link automático e um conjunto de atributos e campos correspondentes:

{"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"]}]}}

Para obter mais informações sobre a API REST do IBM Master Data Management e os SDKs correspondentes, incluindo instruções de autenticação e a documentação completa de cada método, consulte a referência da API em IBM Master Data Management.

Lembre-se: sempre que você atualizar o algoritmo correspondente, mesmo por meio da API, deve-se executar a correspondência posteriormente para ver as mudanças refletidas em seus resultados de correspondência.

Neste tópico:

Configurando filtros de comparação multidimensionais

Ajuste seu algoritmo correspondente ainda mais definindo filtros de comparação multidimensionais. Os filtros multidimensionais podem comparar atributos entre registros e ajustar pontuações e pesos correspondentes para cima ou para baixo com base nos critérios definidos. Os filtros de comparação multidimensionais podem reduzir a quantidade de correspondências negativas falsas ou positivas falsas em seus resultados de correspondência.

Também é possível usar filtros de comparações multidimensionais para incluir suas próprias regras de correspondência determinística que substituem os resultados de correspondência baseados em aprendizado de máquina..

Gerando um filtro de comparação multidimensional

Para gerar um filtro de comparação multidimensional em seu algoritmo correspondente, atualize a configuração do mecanismo correspondente usando comandos da API REST:

  1. Acesse e autentique-se na interface da API IBM Master Data Management.

  2. Especifique uma carga útil POST /mdm/v1/algorithms/{record_type} que defina um filtro, como no exemplo a seguir:

    {"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"]}]}}
    

    Na carga útil de amostra, false_positive_filter é o nome do filtro customizado.. Ele aplica-se a cada atributo na carga útil que inclui o nome do filtro

A carga útil da API de amostra gerará um algoritmo contendo um false_positive_filter no qual os pesos e penalidades são o padrão, que é 0.

Opcionalmente, é possível customizar os pesos e penalidades para atender aos requisitos de sua organização e, em seguida, implementar seu algoritmo atualizado usando a API PUT /mdm/v1/algorithms/{record_type} .

Entendendo os parâmetros que definem filtros

Para entender os parâmetros de configuração que definem os filtros de comparação multidimensional, considere o exemplo do false_positive_filter criado na seção anterior.

Recupere o algoritmo atual usando o comando da API GET /mdm/v1/algorithms/{record_type}

Depois que você enviou a solicitação POST na seção anterior, com a carga útil de exemplo correspondente, a seção a seguir na configuração do algoritmo foi gerada:

{
  "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"
  }
}

A seção false_positive_filter de exemplo inclui os parâmetros padrão que definem filtros de comparação multidimensionais:

  • filter_recipe -Esta seção contém uma matriz de parâmetros que fornecem a fórmula necessária para definir pesos correspondentes para cada entrada..

    • inputs. A seção filter_recipe.inputs contém um índice das entradas às quais esta receita de filtro se aplica Esses são os valores de número que correspondem à ordem dos métodos de comparação listados na seção inputs Por exemplo, no exemplo, 1 corresponde ao método address_compare , 2 corresponde ao método date_compare e 3 corresponde ao método pername_compare .
    • weights -A seção weights é uma matriz de elementos que definem como cada entrada é pesada para a comparação tridimensional. A seção weights inclui distances e values definições para as entradas. O peso padrão é 0 para qualquer entrada não definida.
  • inputs -Esta seção contém os métodos de comparação para os atributos correspondentes Esses métodos usarão as distâncias e os pesos definidos na seção filter_recipe .

  • max_distance -Opcional (não mostrado). Esse parâmetro define a distância máxima. A distância máxima padrão é 5, o que significa que o parâmetro filter_recipe.weights.values pode incluir 6 elementos ("values":[0,1,2,3,4,5]).

Configurando filtros customizados

Para customizar os métodos de comparação existentes para uso com um filtro de comparação multidimensional:

  1. Recuperar o algoritmo atual:

    GET /mdm/v1/algorithms/{record_type}
    
  2. Atualize o algoritmo, conforme necessário Por exemplo, é possível:

    • Incluir ou atualizar elementos na seção weights para customizar os pesos para as entradas listadas.
    • Defina a distância máxima, incluindo um parâmetro max_distance
    • Inclua métodos de comparação como entradas que usarão esse filtro em vez dos pesos correspondentes padrão.
  3. Sobrescreva o algoritmo correspondente com sua versão atualizada:

    PUT /mdm/v1/algorithms/{record_type}
    

Exemplo 1: Use a carga útil de amostra a seguir se desejar configurar a distância máxima para 9 e especificar pesos e penalidades customizados para diferentes combinações de entradas e distâncias, conforme a seguir: -input1 distance=0, input2 distance=0, distância input3 = [0,1,2,3,4,5,6,7,8, 9]. Neste caso, a combinação da distância [0,0, 3] dá uma pontuação de 15.

  • input1 distance=1, input2 distance=0, input3 distance = [0,1,2,3,4,5,6,7,8, 9]. Neste caso, a combinação de distância [1,0, 9] dá uma pontuação penalizada 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"
  }
}

Exemplo 2: é possível incluir seus próprios métodos de comparação customizados e configurá-los para que sejam excluídos da contribuição para a pontuação de correspondência geral, como na carga útil de amostra a seguir. Nesse caso, os métodos customizados seriam usados apenas pelo filtro de comparação multidimensional

No exemplo a seguir, o filtro given_name_only_compare configura o overall_score_contribution como 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]
  }
}

Alternando a função de distância de edição

O mecanismo de correspondência do IBM Master Data Management calcula a distância de edição como uma das funções internas durante a comparação e correspondência de vários atributos. A distância de edição é uma medição do grau de dissimilaridade entre duas sequências de caracteres. Ela é calculada contando o número de mudanças necessárias para transformar uma sequência de caracteres na outra.

É possível escolher entre a função de distância de edição padrão ou uma função especializada. A distância de edição padrão é a configuração padrão para assegurar um desempenho mais rápido durante a correspondência Para obter mais informações sobre a distância de edição, consulte IBM Master Data Management algoritmos de correspondência.

Para mudar a função de distância de edição ativa, atualize a configuração do mecanismo correspondente usando comandos da API REST:

  1. Acesse e autentique-se na interface da API IBM Master Data Management.

  2. Recupere o arquivo JSON de configuração existente para a função de comparação, compare_spec_resource:

    GET /mdm/v1/compare_spec_resources/{resource_name}
    
  3. Em sua máquina local, edite o JSON para incluir a linha "similar_characters_enabled": true (ou removê-la se deseja alternar de volta para a configuração de distância de edição padrão).

  4. Atualize a configuração do IBM Master Data Management enviando seu arquivo JSON editado:

    PUT /mdm/v1/compare_spec_resources/{resource_name}
    

Configurando um limite de registro de cola

Você pode definir um limite para registros de ligação usando comandos da API para atualizar o algoritmo de correspondência do IBM Master Data Management.

Quando IBM Master Data Management cria entidades por meio da correspondência, alguns registros de baixa qualidade podem funcionar como registros de ligação. Os registros de cola obtêm seu nome porque eles aderem a muitos outros registros, como cola. Como os registros de cola incluem poucos ou nenhum valor de atributo detalhado, eles podem aparecer para corresponder a muitos registros diferentes. O comportamento correspondente de um registro de cola pode inadvertidamente e incorretamente criar entidades muito grandes que tenham apenas um registro de cola de baixa qualidade em comum.

Como exemplo simplificado, considere um registro de baixa qualidade que não tenha atributos diferentes de um nome, como "John Smith". Um registro como este pode facilmente corresponder a qualquer outro "John Smith" no conjunto de dados, fazendo com que outros registros que de outra forma não seriam correspondidos sejam incluídos em uma única entidade "John Smith".

Configurando um limite de registro de cola no algoritmo correspondente para cada tipo de entidade, os engenheiros de dados podem evitar que os registros de cola causem a formação de entidades grandes e mal correspondidas.

Quando um limite para registros de colagem é configurado, IBM Master Data Management identifica os registros de colagem com base em sua pontuação de autocorrespondência. Uma pontuação de auto-correspondência é a pontuação correspondente obtida comparando um registro com ele mesmo. Uma pontuação de autocorrespondência alta indica que o registro tem um bom número de atributos de correspondência de alta qualidade.

IBM Master Data Management identifica registros de ligação verificando se a pontuação de autocorrespondência, somada ao valor do limite do registro de ligação, é menor do que a pontuação de autocorrespondência do registro central na entidade. Se for menor, o registro será considerado um registro de cola e não será incluído na entidade.

Os limites de registro de cola são opcionais e não são configurados por padrão.. Cada limite de registro de cola do tipo de entidade deve ser definido separadamente.

Para configurar um limite de registro de cola:

  1. Acesse e autentique-se na interface da API IBM Master Data Management.

  2. Recupere o arquivo JSON do algoritmo de correspondência de configuração existente para o tipo de registro fornecido:

    GET /mdm/v1/algorithms/{record_type}
    
  3. Em sua máquina local, edite o JSON para incluir o parâmetro glue_threshold sob o tipo de entidade apropriado Forneça um valor de limite numérico. (Exclua o parâmetro se desejar remover um limite de registro de cola existente.) Por exemplo:

    locale: {...}
    encryption: {...}
    standardizers: {...}
    entity_types:
      person_entity:
        bucket_generators: {...}
        auto_link_threshold: 65
        clerical_review_threshold: 55
        glue_threshold: 20
        compare_methods: {...}  
    
  4. Atualizar o algoritmo de correspondência do IBM Master Data Management :

    PUT /mdm/v1/algorithms/{record_type}
    

Configurando limites de correspondência específicos de origem

Os engenheiros de dados podem definir limites de revisão clerical e limites de link automático dentro do algoritmo correspondente que são específicos para várias origens de registro. Isso permite que sua organização manipule a correspondência de forma diferente, dependendo de como a origem é confiável.

Sua organização pode ter registros de diferentes origens de que cada um usa atributos diferentes e tem níveis variados de qualidade Ao configurar limites de correspondência de nível de origem de registro, é possível pesar os dados de origens confiáveis mais intensamente do que os dados de origens menos confiáveis ou até mesmo excluir algumas origens da participação na correspondência. As origens excluídas da correspondência ainda podem ser usadas como origens de referência no sistema.

Os limites de nível de origem são opcionais e não são configurados por padrão

Os limites em nível de origem devem ser definidos separadamente para cada tipo de entidade em suas definições de tipo de dados. Como lembrete, cada tipo de entidade tem sua própria definição de algoritmo correspondente.

Para configurar limites de correspondência de nível de origem:

  1. Acesse e autentique-se na interface da API IBM Master Data Management.

  2. Recupere o arquivo de configuração do algoritmo correspondente existente (no formato JSON) para o tipo de entidade que você deseja configurar.

    GET /v1/algorithms/{record_type}
    
  3. Em sua máquina local, edite o JSON para incluir o objeto source_level_thresholds no tipo de entidade apropriado (como person_entity). Por exemplo:

    "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]
    
               }
    
           }
    
        }
    
    }
    

    Para obter mais informações sobre este exemplo e orientação sobre como definir o objeto JSON de limite de nível de origem, consulte Objeto JSON de amostra que define os limites de nível de origem

  4. Atualizar o algoritmo de correspondência do IBM Master Data Management :

    PUT /v1/algorithms/{record_type}
    

Para obter mais informações sobre limites de nível de origem, consulte as subseções a seguir:

Objeto JSON de amostra para limites de nível de origem

No exemplo JSON a seguir, é possível ver um fragmento do arquivo de configuração de algoritmo correspondente que define limites de nível de origem para a entidade 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]

           }

       }

    }

}

No exemplo anterior:

  • O limite de link automático global padrão é 150.
  • O limite de revisão administrativa global padrão é 120.
  • src0, src1, src2, src3e src4 são exemplos de nomes de origem.
  • No objeto source_level_thresholds , os limites de origem por origem são definidos para duas origens: src0 e src1.

Orientação geral:

  • Em cada origem no objeto source_level_thresholds , é possível, opcionalmente, substituir os limites de correspondência globais padrão para essa origem usando o parâmetro default .
  • Em cada origem, é possível definir uma matriz de limites de correspondência de origem para origem sob a propriedade srcxsrc Esses limites são usados ao comparar registros das origens listadas.
  • Na matriz, os valores fornecidos entre colchetes estão no formato a seguir: [autolink-threshold, clerical-threshold]. Portanto, [136, 120] indica que para a comparação de origem para origem, o limite de link automático é 136 e o limite de revisão clerical é 120.
  • Quando ambos os valores são fornecidos, o limite de link automático deve ser sempre maior do que o limite de revisão clerical
  • Se um valor for fornecido como null, esse limite será desativado.
  • Se ambos os valores em um par forem fornecidos como null, a correspondência e a vinculação entre as duas origens serão desativadas.
  • Quando ambos os valores são null e as duas origens fornecidas são as mesmas, a origem é considerada uma origem de referência somente. Por exemplo, src0 é a origem de referência para src0 no JSON de exemplo anterior.. Qualquer entidade que tenha apenas registros de origens de referência não é viável

Avaliando resultados do limite de nível de origem

Se você tiver configurado os limites de nível de origem em seu algoritmo de correspondência customizado, use o método da API REST a seguir para obter detalhes de pontuação

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

Use as informações retornadas por este método para ajudá-lo a avaliar os resultados e, se necessário, ajustar sua configuração de limite de nível de origem...

Limites de nível de origem e revisões de pares.

Os limites de nível de origem poderão ser sobrescritos se você aceitar as recomendações de ajuste geradas por revisões de pares Se a sua organização utiliza, ou pretende utilizar, o recurso de análise de pares do IBM Master Data Management para gerar recomendações inteligentes de ajuste, é recomendável concluir as tarefas de análise de pares antes de definir seus limites no nível do código-fonte.

Se você já definiu limites no nível da fonte em algoritmos de correspondência personalizados, desative o recurso de limites no nível da fonte editando o CR ( IBMmdm-cr) Master Data Management. Use o seguinte comando para desativar os limites no nível da fonte no CR:

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

Pode levar de 20 a 30 minutos para o CR se reconciliar depois de fazer uma mudança. Os pods de serviço do mdm-matching também devem ser reiniciados para aplicar a configuração atualizada Se necessário, esses pods devem ser reiniciados manualmente..

Para reativar os limites de nível de origem, execute o seguinte comando:

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

Próximas etapas

Saiba Mais