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.
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:
Acesse e autentique-se na interface da API IBM Master Data Management.
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çãofilter_recipe.inputsconté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çãoinputsPor exemplo, no exemplo,1corresponde ao métodoaddress_compare,2corresponde ao métododate_comparee3corresponde ao métodopername_compare.weights-A seçãoweightsé uma matriz de elementos que definem como cada entrada é pesada para a comparação tridimensional. A seçãoweightsincluidistancesevaluesdefinições para as entradas. O peso padrão é0para 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çãofilter_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âmetrofilter_recipe.weights.valuespode 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:
Recuperar o algoritmo atual:
GET /mdm/v1/algorithms/{record_type}Atualize o algoritmo, conforme necessário Por exemplo, é possível:
- Incluir ou atualizar elementos na seção
weightspara 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.
- Incluir ou atualizar elementos na seção
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:
Acesse e autentique-se na interface da API IBM Master Data Management.
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}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).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:
Acesse e autentique-se na interface da API IBM Master Data Management.
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}Em sua máquina local, edite o JSON para incluir o parâmetro
glue_thresholdsob 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: {...}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:
Acesse e autentique-se na interface da API IBM Master Data Management.
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}Em sua máquina local, edite o JSON para incluir o objeto
source_level_thresholdsno tipo de entidade apropriado (comoperson_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
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
- Avaliando resultados do limite de nível de origem
- Limites de nível de origem e revisões de pares.
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âmetrodefault. - Em cada origem, é possível definir uma matriz de limites de correspondência de origem para origem sob a propriedade
srcxsrcEsses 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
nulle 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 parasrc0no 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}}}}}'