Guia de ML inclusivo: AutoML
No Google, pensamos muito sobre os princípios que motivam e moldam o nosso trabalho em inteligência artificial (IA). Estamos comprometidos com uma abordagem centrada no ser humano que enfatiza práticas de IA responsáveis e produtos que funcionam bem para todas as pessoas e contextos. Explicamos a seguir como esses valores de IA responsável e inclusiva são uma parte essencial do pacote de produtos de machine learning do AutoML.
O AutoML promove a expansão de empresas e indivíduos com capacidade de se beneficiar da IA, oferecendo uma experiência do usuário sem código e fácil de usar, que não requer nenhum conhecimento prévio em machine learning.
Ao usar técnicas algorítmicas, como "aprendizado por transferência" e "aprender a aprender", o AutoML diminui o nível de exigência inicial, permitindo que organizações criem modelos personalizados com conjuntos de dados menores do que os exigidos normalmente.
O AutoML oferece a possibilidade de produzir facilmente sistemas de ML significativos e contextualmente relevantes. Por exemplo, se você perceber que seu modelo genérico não captura gírias ou o vocabulário que interessa a você, crie um modelo personalizado que inclua as características linguísticas que importam. Se os modelos de classificação de vestuário genéricos não funcionam bem com o tipo de roupa usado em sua comunidade, é possível treinar um modelo que seja mais compatível.
Como parte da nossa missão de levar os benefícios do machine learning a todos, nós nos empenhamos muito em reduzir vieses preexistentes acerca das categorias sociais que estruturam e afetam as vidas de todos nós. No Google, essa área de pesquisa é chamada de Imparcialidade no machine learning. Nesta página, compartilhamos nosso ponto de vista atual sobre esse tópico e damos recomendações sobre como usar o AutoML em consonância com a imparcialidade no machine learning.
O que é imparcialidade no machine learning?
Imparcialidade no machine learning é uma interessante e promissora área de pesquisa e discussão entre estudiosos, praticantes e o público em geral. O objetivo é entender e prevenir o tratamento injusto ou preconceituoso de pessoas com base na etnia, renda, orientação sexual, religião, gênero e outras características historicamente associadas à discriminação e à marginalização, sempre que essas características aparecerem em sistemas algorítmicos ou em processos de tomada de decisões auxiliados por algoritmos.
Esses desafios relacionados aos algoritmos surgem de diversas maneiras, incluindo o viés social incorporado a conjuntos de dados de treinamento, decisões tomadas durante o desenvolvimento de um sistema de ML e por meio de loops de feedback complexos que surgem quando um sistema de ML é implantado no mundo real.
Na busca pela imparcialidade no machine learning, encontramos uma infinidade de pontos de vista e objetivos válidos. Por exemplo, podemos treinar classificadores de ML para prever com o mesmo nível de igualdade em todos os grupos sociais. Ou então, com base em pesquisas sobre o impacto das injustiças históricas, podemos nos concentrar em projetar sistemas de ML que tentem corrigir ou reduzir futuros resultados adversos. Essas e muitas outras abordagens são importantes e, muitas vezes, estão correlacionadas.
Para ver mais informações, consulte Práticas de IA responsáveis do Google e Práticas de imparcialidade recomendadas, assista o vídeo do Google sobre machine learning e o viés humano e leia "Tutorial sobre imparcialidade em ML", de Moritz Hardt e Solon Barocas (todos os materiais em inglês).
A imparcialidade em ML e o AutoML
Com o AutoML, temos a oportunidade de promover a inclusão e a imparcialidade de várias maneiras. Como mencionado anteriormente, se os modelos de machine learning aos quais você tem acesso no momento não satisfazem completamente as necessidades de sua comunidade ou usuários, seja devido a ausências históricas ou distorção dos dados, é possível criar modelos personalizados mais eficientes. Em qualquer modelo personalizado criado por você com o AutoML, é possível buscar metas de imparcialidade por meio da inclusão de dados que ajudam o modelo a fazer previsões com igualdade em todas as categorias importantes para seu caso de uso. Essas ações de promoção da imparcialidade podem ajudar a reduzir os riscos dos tipos de consequências negativas abaixo, que estão associados a alguns sistemas de ML.
Dano à representatividade
Esse tipo de dano ocorre quando um sistema de ML amplifica ou reflete os estereótipos negativos sobre determinados grupos. Por exemplo, os modelos de ML que geram resultados de pesquisa de imagens ou sugestões de texto automatizadas geralmente são treinados com base no comportamento prévio dos usuários (por exemplo, comentários ou termos de pesquisa comuns), o que pode levar a resultados ofensivos. E, além de ofender usuários específicos em um dado momento, esse tipo de dano à representatividade também causa um impacto social difuso e de longo prazo em grupos grandes de pessoas.
Privação de oportunidade
Os sistemas de machine learning são cada vez mais utilizados para fazer previsões e tomar decisões com consequências reais e impactos duradouros no acesso a oportunidades e recursos, bem como na qualidade de vida em geral das pessoas.
Falha desproporcional em produtos
Em alguns casos, a prática discriminatória é uma questão de acesso e funcionalidade básica. Por exemplo, alguns dispensadores de sabonete líquido usados em banheiros públicos tiveram taxas de falha desproporcionalmente altas para indivíduos com tons de pele mais escuros.
Agora, vamos falar sobre as medidas que podem ser tomadas para promover a imparcialidade ao criar modelos personalizados no AutoML e usá-los nos seus sistemas de ML. Nosso foco principal será na redução de viés no treinamento de conjuntos de dados, na avaliação de modelos personalizados para detectar disparidades no desempenho e nos fatores a serem levados em consideração ao usar seu modelo personalizado.
Quais são os primeiros passos para avaliar seu caso de uso quanto à imparcialidade no machine learning?
Pense sobre o contexto e o uso do seu produto.
Em alguns casos, conforme descrito acima, a imparcialidade é uma questão de acesso e funcionalidade básica.
Em outros casos, a imparcialidade está relacionada a leis e normas que restringem o uso de dados que identifiquem de modo direto ou estejam altamente correlacionados a características delicadas, mesmo quando esses dados têm relevância estatística. Também há a possibilidade de que as pessoas com algumas dessas características estejam protegidas por lei contra a discriminação em determinados contextos. Por exemplo, em "classes protegidas".
Além disso, em determinadas situações, a discriminação não é óbvia e requer que façamos perguntas sociais, políticas e éticas complexas sobre como seu sistema de ML poderá ser usado na prática ou como poderá ficar enviesado com o passar do tempo. Por exemplo, se você usa IA para gerar traduções ou textos automáticos, é importante considerar que tipos de vieses ou estereótipos podem ser eticamente problemáticos (por exemplo, associação de gênero a tipos de trabalho ou de religião a opiniões políticas).
Ao começar a criar seu próprio sistema de ML, analise a legislação relacionada à discriminação em sua região e nos locais em que seu aplicativo será disponibilizado. Além disso, leia pesquisas ou informações de produtos no seu domínio para saber mais sobre questões comuns relacionadas à imparcialidade.
Questões importantes a serem consideradas
Veja a seguir algumas perguntas importantes que valem a pena ser feitas. Se você responder alguma delas com um “sim”, talvez o ideal seja conduzir uma análise mais detalhada do seu caso de uso para encontrar problemas associados ao viés.
Seu caso de uso ou produto usa especificamente algum destes tipos de dados: informações biométricas, etnia, cor da pele, religião, orientação sexual, status socioeconômico, renda, país, local, saúde, idioma ou dialeto?
Seu caso de uso ou produto usa dados que provavelmente têm alta correlação com qualquer uma das características pessoais listadas acima? Por exemplo, CEP ou outros dados geoespaciais geralmente estão correlacionados com status socioeconômico e/ou renda; da mesma forma, dados de imagem/vídeo podem revelar informações sobre etnia, gênero e idade.
Há a possibilidade de seu caso de uso ou produto afetar de maneira negativa oportunidades econômicas ou outras oportunidades importantes na vida de pessoas?
Agora, vamos ver de que maneiras é possível trabalhar para promover a imparcialidade no machine learning durante as diferentes etapas do fluxo de trabalho do AutoML.
Diretrizes sobre dados
Vamos começar com a primeira etapa no AutoML: preparar os dados de treinamento. Sempre haverá algum tipo de viés nos dados de treinamento, mesmo que mínimo. No entanto, você pode aumentar as chances de criar um produto melhor e mais inclusivo se refletir cuidadosamente sobre as possíveis fontes de viés nos dados e como solucionar esse problema.
Que tipos de viés os dados podem ter?
Distribuição de dados enviesados
Isso ocorre quando os dados de treinamento não representam de fato a população que usará seu produto. Pense cuidadosamente sobre como seus dados foram coletados. Por exemplo, se você tiver um conjunto de dados de fotos enviadas pelos usuários e filtrá-lo por nitidez de imagem, isso poderá distorcer seus dados, representando em excesso os usuários que têm câmeras caras. Em geral, pense em como os dados são distribuídos em relação aos grupos de usuários que utilizarão seu produto. Você tem dados suficientes para cada grupo relevante? É comum que existam motivos sutis e sistêmicos para que o conjunto de dados não capture a real diversidade total do seu caso de uso.
Para atenuar esse problema, adquira dados de várias fontes ou filtre-os com cuidado para garantir que apenas os exemplos mais úteis dos grupos excessivamente representados sejam utilizados.
Representação de dados enviesada
É possível que você tenha uma quantidade de dados adequada de cada grupo demográfico imaginável, mas que alguns grupos sejam representados de maneira menos positiva que outros. Imagine um conjunto de dados de postagens de um microblog sobre atores. É possível que o excelente trabalho de coletar dados sobre atores e atrizes na proporção de 50% para cada gênero tenha sido realizado. No entanto, ao analisar o conteúdo, as postagens sobre as atrizes tendem a ser mais negativas do que as sobre os atores. Com isso, seu modelo pode aprender um tipo de viés de gênero.
Para algumas aplicações, representações diferentes entre grupos podem ser aceitáveis. Na classificação médica, por exemplo, é importante capturar diferenças demográficas sutis para fazer diagnósticos mais precisos. Mas em outros casos, associações negativas tendenciosas podem ter repercussões financeiras ou educacionais, limitar as oportunidades econômicas e provocar angústia emocional e mental.
Analise os dados manualmente para detectar essas associações negativas se for viável ou aplique filtros baseados em regras para remover as representações negativas se você achar que isso é o ideal para seu caso.
Variáveis de proxy
É fácil pensar que, depois de remover variáveis que codificam informações demográficas protegidas, seu modelo ficará isento de vieses. No entanto, muitas variáveis estão bastante correlacionadas com dados demográficos, como localização, nível de escolaridade e renda, entre outros. Se você tem acesso a informações demográficas sobre seus dados, sempre é uma boa ideia analisar os resultados com base nessas informações para garantir que seu modelo trate grupos diferentes com igualdade.
Rótulos enviesados
Uma etapa essencial na criação dos dados de treinamento para o AutoML é a aplicação de rótulos aos dados, dividindo-os em categorias relevantes. Minimizar o viés nesses rótulos é tão importante quanto garantir a representatividade nos dados. Entenda quem são as pessoas que aplicam os rótulos. Onde elas vivem? Qual é o idioma nativo delas? A que grupo etário e gênero elas pertencem? Grupos homogêneos de rotuladores podem produzir etiquetas incorretas ou deturpadas, e talvez isso não seja óbvio imediatamente.
O ideal é que as pessoas responsáveis pelos rótulos sejam especialistas no domínio. Outra opção é fornecer instruções para treiná-las sobre os aspectos relevantes e implementar um segundo processo de análise para verificar pontualmente a qualidade dos rótulos. Quanto mais complicada for a rotulagem dos dados, mais complexo será garantir que as pessoas responsáveis pelos rótulos compreendam o trabalho. Desenhar caixas delimitadoras e rotular as entidades de texto pode não ser intuitivo para todos. Portanto, divida as tarefas e antecipe as perguntas mais comuns. Otimize esse processo para que a tomada de decisões seja mais objetiva do que subjetiva. O treinamento sobre “viés inconsciente” também ajuda a melhorar a qualidade dos rótulos em relação às metas de diversidade. Além disso, permita que as pessoas responsáveis pelos rótulos relatem problemas e façam perguntas sobre as instruções. Isso também pode ajudar a minimizar o viés nesse processo.
Dica: se você estiver usando o serviço humano para aplicação de rótulos no AutoML, tenha em mente as diretrizes a seguir ao redigir as instruções.
Nas instruções e nos materiais de treinamento para a aplicação de rótulos, inclua um contexto detalhado e específico sobre o caso de uso, uma descrição dos usuários finais e exemplos ilustrativos que ajudem os responsáveis pelos rótulos a manter a diversidade da base de usuários em mente.
Analise todos os comentários que você receber dos responsáveis pelos rótulos para identificar as dificuldades. Preste atenção nas categorias delicadas durante a verificação, aprovação e rejeição dos rótulos que você receber de volta.
Quando o conjunto de dados estiver pronto, especifique a divisão entre dados de teste e de treinamento
Nos guias da Vertex AI e do Translation do AutoML, discutimos como seu conjunto de dados é dividido no processo de machine learning. Como mencionado, com o AutoML, a divisão do conjunto de dados entre teste e treinamento pode ser realizada automaticamente pelo Google ou especificada de maneira manual por você. Dependendo do seu caso de uso, a segunda opção pode ser a ideal.
Se você dividir os dados manualmente, considere as orientações que abordamos até agora para criar conjuntos de testes diversos e inclusivos. Usar todos os melhores dados inclusivos no treinamento pode prejudicar o teste porque é provável que o resultado do desempenho do modelo em grupos sub-representados seja muito mais promissor no teste do que na realidade. Se você tiver dados escassos sobre um subgrupo em particular, realizar a divisão entre dados de teste e de treinamento ajudará a garantir que os dados sejam distribuídos de maneira representativa entre os conjuntos de treinamento e de teste. Em alguns produtos do AutoML, como o AutoML Tables, também é possível tentar especificar pesos personalizados para tipos raros de dados para dar mais importância a eles no processo de treinamento.
Analise os dados de treinamento
Avaliação: análise do desempenho do modelo
Avaliar a imparcialidade do modelo requer uma profunda reflexão sobre o caso de uso em particular e o impacto que o modelo pode ter sobre os usuários finais se tudo der errado. Isso significa entender o impacto de tipos de erros diferentes em grupos distintos de usuários. Nesse momento, vemos a importância de pensar sobre possíveis problemas em relação à imparcialidade. Por exemplo, os erros do modelo afetam todos os usuários da mesma maneira ou são mais prejudiciais para determinados grupos de usuários?
Depois de analisar essa questão, será possível definir melhor as métricas de desempenho que faz sentido otimizar (por exemplo, precisão x recall), avaliar as compensações entre elas e examinar exemplos de erros para verificar se há algum viés.
Caso de uso: avaliação de fotos para passaportes
Imagine que você queira criar uma ferramenta para ajudar pessoas a editar e imprimir fotos para passaportes. Cada país tem regras próprias de dimensões, enquadramento, cores de plano de fundo, expressões faciais aceitáveis e outros elementos que podem estar presentes ou não nas fotos. Antes de as pessoas enviarem o requerimento de passaporte, você precisa alertá-las de que a foto talvez não seja aceitável.
Falso positivo:
Nesse caso, um resultado falso positivo é quando o sistema marca uma foto como inaceitável sendo que, na verdade, ela não seria recusada pela entidade emissora de passaportes do país. Isso não é um grande problema porque a nova foto provavelmente seria ainda mais adequada.
Falso negativo:
Por outro lado, um falso negativo nesse caso é quando ocorre uma falha na detecção de uma foto que não poderia ser utilizada. O cliente se daria ao trabalho de imprimir a foto e enviar o requerimento que, posteriormente, seria rejeitado. Na pior das hipóteses, ele perderia uma viagem já planejada porque não recebeu o passaporte a tempo.
Considerações sobre a imparcialidade: nessa situação, é importante verificar se o modelo produz falsos negativos com mais frequência para determinados grupos de pessoas, de acordo com a etnia ou o gênero, por exemplo. No AutoML, é possível realizar essa verificação com o exame de falsos negativos individuais para identificar padrões problemáticos.
Otimização: neste caso, talvez o mais conveniente seja a otimização usando recall. O uso dessa métrica visa reduzir o número de falsos negativos que, nesse cenário, são os erros mais problemáticos.
Caso de uso: filtro de conteúdo infantil
Imagine que você está criando um app de leitura para crianças e queira incluir uma biblioteca digital de livros adequados para essa faixa etária. Você quer criar um classificador de texto que selecione livros infantis de um banco de dados de livros para adultos e crianças com base no título e na descrição de cada livro.
Falso positivo:
Um falso positivo, neste caso, seria um livro para adultos que é incorretamente classificado como um livro infantil e, portanto, adicionado ao app de leitura para crianças, podendo expor as crianças a conteúdos impróprios para essa idade. Os pais ficariam muito aborrecidos e, provavelmente, excluiriam o app.
Falso negativo:
Um falso negativo, neste caso, é quando um livro infantil é sinalizado incorretamente como adulto, sendo excluído da biblioteca interna do app. Dependendo do livro, seria um pequeno inconveniente (no caso da exclusão da sequência de uma série pouco conhecida) ou muito mais problemático (por exemplo, se o livro infantil incluir conteúdo considerado controverso por algumas pessoas, mas tiver grande aceitação devido ao óbvio valor educacional ou social).
Considerações sobre a imparcialidade: ainda que à primeira vista este pareça ser um caso simples, ele traz à tona algumas das complexidades na avaliação da imparcialidade. Por um lado, há uma necessidade clara de evitar falsos positivos para minimizar a probabilidade de exposição das crianças a um conteúdo inadequado para a idade delas. Por outro lado, os falsos negativos também podem ser prejudiciais. Por exemplo, se o classificador de textos tender a sinalizar como inadequados os livros infantis com temática LGBTQ, como histórias sobre crianças com dois pais ou duas mães, isso será um problema. Da mesma maneira, se livros sobre determinadas culturas ou locais forem excluídos com mais frequência do que outros, isso será igualmente preocupante.
Otimização: neste caso de uso, talvez o mais conveniente seja a otimização usando precisão. Seu app exibirá apenas uma pequena fração dentre todos os livros infantis do mundo. Portanto, é possível se dar ao luxo de ser seletivo quanto ao que recomendar aos usuários. No entanto, você também precisa pensar em soluções de experiência do usuário para exibir livros que talvez necessitem da opinião dos pais. É possível, por exemplo, adicionar um recurso para recomendar que os pais leiam o livro com a criança e, assim, explicar as questões levantadas pela obra.
Caso de uso: distribuição de pesquisa
Imagine que você esteja trabalhando na distribuição de uma pesquisa e queira criar um modelo para escolher os participantes com maior probabilidade de responder. Você não tem permissão para considerar a renda como um fator para as escolhas dos participantes, mas os dados têm uma coluna "Renda". No AutoML Tables, você remove a coluna "Renda" do treinamento. Mas quando você divide os dados por receita para verificar se isso não afetou os resultados, descobre que o modelo não escolheu de maneira uniforme os intervalos de receita. Como isso aconteceu?
Variáveis de proxy: você removeu a coluna "Renda" da consideração, mas os dados ainda podem incluir muitas outras variáveis que oferecem pistas sobre a renda das pessoas no conjunto de dados. Você tem o CEP, o nível de escolaridade ou até mesmo a idade das pessoas? Qualquer uma dessas variáveis poderia ser correlacionada com a renda. Quando você quiser ter certeza de que o modelo está escolhendo uma amostra que realize uma divisão igual em todas as fatias demográficas, observe atentamente a guia "Análise" do AutoML Tables para verificar as correlações. E avalie cuidadosamente seu modelo quanto ao viés antes de usá-lo na produção.
Previsão: realize um teste preliminar no modelo
Depois de avaliar o desempenho do modelo com relação à imparcialidade usando as métricas de machine learning no AutoML, é possível testar seu modelo personalizado com novo conteúdo na guia "Previsão". Ao fazer isso, tenha em mente as recomendações a seguir sobre a imparcialidade:
Reflita cuidadosamente sobre o domínio do problema, bem como nos possíveis vieses e discriminações. Você conhece sua área como ninguém. Há alguma chance de seu classificador de imagens ou vídeos ser afetado pela etnia ou gênero das pessoas nos conteúdos? Há a possibilidade de seu classificador de textos ser sensível a termos referentes a grupos demográficos? O par de idiomas do tradutor que você está criando tem diferenças culturais que podem ser destacadas ou um conjunto de pronomes não correspondentes que pode expor vieses sociais ocultos? Imagine casos que poderiam afetar negativamente os usuários se ocorressem no estágio de produção e teste-os na página “Previsão” ou nos seus próprios testes de unidade.
Lembre-se de que seus usuários podem ser afetados negativamente não apenas por previsões ofensivas ou discriminatórias, mas também pela ausência de uma previsão clara (falsos negativos). Se você descobrir que os resultados não estão alinhados com a experiência que gostaria de criar para todos os usuários finais, continue a eliminar os vieses do conjunto de dados adicionando mais dados nas classes relevantes ou usando o modelo de maneira a corrigir os problemas encontrados.
Uso: o modelo em produção
Implemente correções simples. Se o modelo ainda não está perfeito, você tem mais opções além de treiná-lo novamente. Às vezes, uma etapa de pré ou pós-processamento simples pode ser uma ótima solução para remover determinadas palavras ou tipos de imagens.
Ajuste os limites de pontuação do modelo para encontrar um equilíbrio “justo” aceitável entre precisão e recall, de acordo com seu entendimento de como os diferentes tipos de erros afetam os usuários.
Uma vez que seu modelo esteja pronto e disponibilize previsões, há a possibilidade de que a distribuição de dados seja alterada sutilmente no decorrer do tempo. Assim, o modelo deixará de refletir os contextos relevantes do aplicativo. Continue monitorando o desempenho do modelo com o passar do tempo para garantir que ele esteja funcionando conforme o esperado. Além disso, colete o feedback dos usuários para identificar possíveis problemas que exigirão novos dados e treinamentos.
Às vezes, ocorrem casos extremos imprevisíveis. Caso haja a preocupação com um possível comportamento inadequado do modelo, de modo que seus usuários e negócios sejam negativamente afetados, elabore um plano de respostas a incidentes.
Feedback
Este é um documento dinâmico, e ainda estamos aprendendo à medida que avançamos. Queremos receber seu feedback sobre as orientações contidas aqui. Envie um e-mail para inclusive-ml-feedback@google.com e fale sobre sua experiência na criação de modelos personalizados, incluindo o que funcionou e o que deu errado. Aguardamos seu feedback.