Usando o emparelhamento de logs contrafactuais

Depois de determinar que o Contrafactual Logit Pairing (CLP) é a técnica apropriada para o seu caso de uso, você pode aplicá-la seguindo as etapas a seguir:

  1. Crie uma instância de CounterfactualPackedInputs com os dados originais e contrafactuais.
  2. Meça a taxa de flip e a contagem de flip para determinar se a intervenção é necessária.
  3. Se for necessária intervenção, passe os dados de entrada originais, dados contrafactuais, modelo original e perda contrafactual para o modelo contrafactual.
  4. Avalie o impacto do CLP medindo a taxa de flip e a contagem de flip.

Para ver um exemplo de aplicação do CLP a um modelo Keras, consulte o tutorial Use Counterfactual Logit Pairing with Keras .

Crie uma instância de CounterfactualPackedInputs

Para criar o conjunto de dados contrafactuais, comece determinando os termos e recursos que você deseja avaliar que, quando removidos ou substituídos, podem alterar a previsão do seu modelo.

Depois de entender os termos e recursos para avaliar, você precisará criar uma instância de CounterfactualPackedInputs , que inclui a entrada original e os dados contrafactuais. A entrada original deve ser o conjunto de dados que você usou para treinar seu modelo Keras. Os dados contrafactuais têm um valor original_x , um valor counterfactual_x e um counterfactual_sample_weight . O valor contrafactual deve ser quase idêntico ao valor original, com a diferença de que um ou mais dos atributos sensíveis são removidos ou substituídos. A qualidade do conjunto de dados contrafactuais é importante, pois é usado para emparelhar a função de perda entre o valor original e o valor contrafactual com o objetivo de garantir que a previsão do modelo não mude quando o atributo sensível for diferente.

Para obter detalhes sobre como desenvolver esse conjunto de dados contrafactual, consulte o notebook sobre como criar um conjunto de dados contrafactual personalizado .

Meça a contagem de flip e a taxa de flip

Um flip é definido como um classificador que dá uma decisão diferente quando o atributo sensível referenciado no exemplo muda. Ele captura a situação em que um classificador altera sua previsão na presença, ausência ou alteração de um atributo de identidade. Uma métrica mais contínua deve ser usada ao avaliar o valor real (pontuação) de um classificador.

Contagem de inversão

A contagem de inversão mede o número de vezes que o classificador dá uma decisão diferente se o termo de identidade em um determinado exemplo for alterado.

  • Total Flip Count : Total de flips de uma previsão de positivo para negativo e vice-versa.
  • Contagem de inversão de previsão positiva para negativa: número de inversões em que o rótulo de previsão mudou de positivo para negativo.
  • Contagem de inversão de previsão negativa para positiva : Número de inversões em que o rótulo de previsão mudou de negativo para positivo.

Taxa de inversão

A taxa de inversão mede a probabilidade de que o classificador dê uma decisão diferente se o termo de identidade em um determinado exemplo for alterado.

  • Taxa de inversão geral : contagem total de inversão sobre o número total de exemplos
  • Taxa de inversão de previsão positiva para negativa: contagem de inversão positiva para negativa sobre exemplos positivos no conjunto de dados contrafactuais
  • Taxa de inversão de previsão negativa para positiva: contagem de inversão negativa para positiva sobre exemplos negativos no conjunto de dados contrafactuais

Depois de calcular a taxa de inversão e a contagem de inversão com indicadores de imparcialidade , você pode determinar se o classificador está fazendo uma previsão diferente com base em um atributo sensível nos dados. Você pode usar a contagem de exemplo e os intervalos de confiança para determinar se você tem dados suficientes para aplicar o CLP e tirar conclusões da taxa de inversão. Uma alta taxa de inversão e contagem de inversão são indicativas da ocorrência desse comportamento e podem ser usadas para decidir se o CLP é apropriado para seu caso de uso. Essa decisão é específica para seu modelo e depende de fatores como o dano que pode ser causado aos usuários finais e o produto em que o modelo é usado.

Aplique o emparelhamento de logit contrafactual ao seu modelo Keras

Para usar o CLP, você precisa do modelo Keras original que deseja corrigir, do conjunto de dados de treinamento original e do conjunto de dados contrafactual. Determine qual counterfactual loss deve ser aplicada para o emparelhamento de logit. Com isso, você pode construir o modelo Contrafactual com a função de perda contrafactual desejada e a função de perda do seu modelo original.

Depois de aplicar o CLP, você deve calcular a taxa de flip e a contagem de flip e quaisquer alterações em outras métricas, como precisão geral, para medir a melhoria resultante da aplicação dessa técnica.