Ensinar a transformação Find Matches - AWS Glue

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ensinar a transformação Find Matches

Cada transformação FindMatches precisa ser ensinada para saber o que deve ou não ser considerado como correspondência. Você ensina sua transformação adicionando rótulos a um arquivo e fazendo upload de suas escolhas para o AWS Glue.

Você pode orquestrar esse rotulamento no console do AWS Glue ou usando as operações da API de machine learning do AWS Glue.

Quantas vezes devo adicionar rótulos? Quantos rótulos são necessários?

As respostas para essas perguntas dependem de você. Você deve avaliar se FindMatches está fornecendo o nível de acurácia de que você precisa e se o esforço adicional de rotulamento vale a pena. A melhor maneira de decidir isso é analisando as métricas “Precision (Precisão)”, “Recall (Revocação)” e “Area under the precision recall curve (Área sob a curva de precisão e revocação)” que você pode gerar selecionando Estimate quality (Estimativa de qualidade) no console do AWS Glue. Depois de rotular mais conjuntos de tarefas, execute essas métricas novamente e verifique se foram aprimoradas. Caso, depois de rotular alguns conjuntos de tarefas, você não veja uma melhoria na métrica em que está focando, a qualidade da transformação pode ter atingido seu auge.

Qual é a necessidade de ter ambos os rótulos verdadeiro positivo e verdadeiro negativo?

A transformação FindMatches precisa de exemplos positivos e negativos para aprender o que você considera como correspondência. Se você estiver rotulando dados de treinamento gerados por FindMatches (por exemplo, usando a opção I do not have labels (Eu não tenho rótulos)), a transformação FindMatches tentará gerar um conjunto de "label set ids" (IDs de conjunto de rótulo) para você. Em cada tarefa, você atribui o mesmo “rótulo” a alguns registros e “rótulos” diferentes a outros registros. Em outras palavras, as tarefas não costumam ser completamente iguais ou completamente diferentes (porém, não há problema se uma tarefa específica for tudo “igual” ou tudo “diferente”).

Se você estiver ensinando a sua transformação FindMatches usando a opção Upload labels from S3 (Fazer upload de rótulos do S3), tente incluir os exemplos de registros correspondentes e não correspondentes. Ter apenas um tipo é aceitável. Esses rótulos ajudam a aumentar a acurácia da transformação FindMatches, mas você ainda precisa rotular alguns registros que gerou com a opção Generate labeling file (Gerar arquivo de rotulamento).

Como posso garantir que a transformação faça correspondências conforme ensinei?

A transformação FindMatches aprende com os rótulos que você fornece, portanto, pode gerar pares de registros que não seguem os rótulos fornecidos. Para garantir que a transformação FindMatches siga seus rótulos, selecione EnforceProvidedLabels em FindMatchesParameter.

Quais técnicas podem ser usadas quando uma transformação de ML identifica como correspondentes itens que não são uma correspondência verdadeira?

Você pode usar as seguintes técnicas:

  • Aumente o valor de precisionRecallTradeoff. Isso resultará eventualmente em menos correspondências encontradas, mas também deve dividir seu grande cluster quando atingir um valor alto o suficiente.

  • Execute as linhas de saída correspondentes aos resultados incorretos e reformate-as como um conjunto de rotulamento (removendo a coluna match_id e adicionando uma coluna labeling_set_id e label). Se necessário, quebre-as (subdivida-as) em vários conjuntos de rotulamento para garantir que o rotulador possa ter todos os conjuntos em mente ao atribuir rótulos. Depois, rotule corretamente os conjuntos correspondentes, faça upload do arquivo de rótulo e anexe-o aos rótulos existentes. Isso pode ajudar a ensinar o transformador sobre o que deve procurar para entender o padrão.

  • (Avançado) Por fim, observe os dados para ver se há um padrão que você pode detectar, mas o sistema não está observando. Pré-processe esses dados usando funções padrão do AWS Glue para normalizá-los. Destaque o que deseja que o algoritmo aprenda separando os dados que você considera importante em suas próprias colunas. Ou crie colunas combinadas de colunas cujos dados são relacionados.