Um revolucionário fundo de investimento financeiro que faz uso de Inteligência Artificial e de modelos de Aprendizagem Profunda apareceu. Tu, entusiasmado com a ideia, decides ir à reunião de apresentação e perguntar o porquê de o modelo ter decidido comprar a ação Y. Há alguns anos, o que provavelmente te seria respondido era um sincero “Não sei”, com um sorriso do apresentador, mas atualmente tudo mudou.
A dificuldade de entender as decisões dos modelos de Aprendizagem Profunda foi e é um obstáculo à entrada destes decisores nos mercados onde esse entendimento é chave (por exemplo, nos serviços financeiros, na medicina e na justiça) o que leva à necessidade do aparecimento e aperfeiçoamento de processos e métodos capazes de explicar o que levou à decisão do modelo.
Quando utilizados algoritmos de Machine Learning clássico, como a Regressão Linear ou Árvores de Decisão, as decisões conseguem ser explicadas pelo algoritmo em si visto estes serem os chamados “glass-boxes”:
Regressão Linear
y= β0+β1x1+β2x2+…+ βnxn
Na regressão linear, podemos basear-nos nos pesos (βk) que o modelo atribui a cada variável independente (xk), conseguindo perceber a magnitude em que influenciam a variável objetivo pelo valor absoluto de βk e em que sentido a influenciam pelo sinal de (βk). Para isso, necessitamos que cada variável independente (xk) não seja correlacionada a nenhuma outra e que a escala dos valores seja tida em conta. Voltando à história do fundo de investimento:
- Se X1 for a receita anual de uma empresa que tem como única fonte de rendimento a venda de um produto e X2 o número anual de vendas de produtos, não conseguiremos tirar conclusões dos pesos (β1 e β2) pois as variáveis terão uma correlação próxima de 1, o que é um fator de impedimento.
- Se X1 for a receita anual de uma empresa em milhares de euros e X2 for o gasto anual de uma empresa, em euros, imaginando β1 = 12 e β2 = -10000, pode-se erradamente pensar que X2 tem uma maior importância para o modelo, mas convertendo à mesma escala de “milhares de euros” temos β1 = 12 e β2 = -10, o que atribui maior importância a X1.
Árvore de decisão
Numa árvore de decisão, as decisões são tomadas com base numa série de divisões definidas com o objetivo de maximizar o ganho de informação a cada decisão que for feita, permitindo que cada decisão possa ser visualizada e entendida através da estrutura da árvore construída. Por exemplo, na árvore apresentada na figura 1 conseguimos perceber o porquê de o modelo afirmar que deveríamos comprar uma ação Y com mais de 100M de receitas – o CEO não se demitiu no ano anterior!
FIGURA 1 – Um exemplar de uma árvore de decisão, um dos modelos mais usados para previsão
No entanto quando avançamos até ao território dos modelos de Aprendizagem Profunda, tudo se complica devido à sua natureza de “black boxes”.
Na rede neuronal simples apresentada na figura 2 podemos ver 3 camadas (camada de entrada, camada oculta e camada de saída), com 2, 4 e 1 neurónios, respetivamente. Cada neurónio, de cada camada que não a 1ª, calcula a soma ponderada das entradas (Wk ⋅ Xk) usando um vetor de pesos Wk individual. Por exemplo, o primeiro neurónio da camada oculta só está conectado ao 1º neurónio da camada de entrada, o que faz com que o seu vetor de pesos apenas tenha 1 valor, enquanto os 2º e 3º neurónio estão conectados aos 2 neurónios da camada de entrada, o que faz com que o seu vetor de pesos tenha 2 valores.
FIGURA 2 – A arquitetura de uma rede neuronal simples
Como esta rede neuronal é tão simples, à semelhança da regressão linear, facilmente se consegue perceber o que nos leva a ter maior peso numa decisão, mas como se procederia se a rede fosse mil milhões de vezes maior? Para se ter noção da magnitude do que falamos, esta rede tem 17 parâmetros, o GPT-3 tinha à data de lançamento 170 mil milhões de parâmetros, o que causa uma dificuldade inerente à capacidade de explicarmos a racionalidade do modelo face a uma decisão.
Para isso, houve a necessidade de investigar técnicas que nos permitissem essa explicação de uma forma eficaz e sem esforço. Serão apresentadas 3 das técnicas mais utilizadas no momento atual.
Local Interpretable Model-agnostic Explanations (LIME)
O LIME é uma técnica projetada para aumentar a transparência dos modelos de Machine Learning, principalmente daqueles considerados como “black boxes”, como as redes neuronais. O LIME fornece explicações locais para o comportamento de um modelo numa previsão específica, garantindo que esta se torne acessível à avaliação humana.
O processo de funcionamento é o seguinte:
- Seleção do Caso: O primeiro passo consiste na seleção do caso específico, no caso poderíamos considerar a decisão de não comprar a ação da empresa Y.
- Perturbação de Dados: O LIME cria vários casos semelhantes ao escolhido, alterando ligeiramente os dados de entrada desse caso específico — por exemplo, ajustando o valor das receitas ou o valor da dívida da empresa.
- Modelo Simples para Explicação: Usando os resultados obtidos no passo anterior, o LIME ajusta um modelo mais simples, como uma regressão linear, que permite uma análise à decisão mais fácil.
- Interpretação dos Resultados: O LIME é agora capaz de indicar os fatores decisivos para a decisão baseando-se num modelo mais simples (nos pesos, por exemplo).
O LIME é vantajoso por ser agnóstico ao modelo, funcionando com qualquer tipo de modelo de Machine Learning, além de dar explicações acessíveis mesmo a quem não tem conhecimento da área. No entanto, a técnica tem algumas desvantagens, entre elas o facto de as explicações poderem mudar significativamente com pequenas alterações nos dados de entrada.
SHapley Additive exPlanations (SHAP)
O SHAP (SHapley Additive exPlanations) é outra técnica usada para explicar os resultados em modelos de Machine Learning, sendo que esta se baseia na Teoria de Jogos. A diferença principal entre o SHAP e o LIME é que enquanto o LIME apenas fornece explicações centradas num caso específico, o SHAP pode fornecer tanto explicações para casos específicos quanto para o modelo completo, dependendo de como é utilizado.
O conceito dos valores de Shapley na Teoria de jogo consiste na criação de “coligações” num ambiente cooperativo, que se traduz para esta técnica como sendo a criação de coligações de variáveis independentes a escolher. Após isso, assumindo um modelo v, para cada variável i calcula-se o aporte em cada coligação S onde i pertence através da fórmula v(S) – v(S – {i}), sendo o resultado o valor da contribuição de cada variável i ao modelo v.
Na figura 3, abaixo, podemos ver uma previsão do número de bicicletas alugadas num dia, onde se observa que o valor esperado (média de todos os valores previstos) seria de 4518, mas o modelo prevê apenas 2409. Ora, para entendermos o porquê de o modelo ter previsto este valor, 2108 bicicletas abaixo da média, podemos observar os números gerados pelo SHAP, onde o valor da humidade fez o modelo retirar cerca de 1100 bicicletas ao dia, o estado do tempo retira cerca de 600 bicicletas, enquanto a temperatura estar nos 17.5ºC fez o modelo adicionar 400 bicicletas ao resultado. Quando somamos todos os valores à média, obtemos o valor previsto para o dia.
Figura 3 – Os resultados da aplicação do modelo SHAP
A técnica de SHAP é uma das técnicas mais utilizadas por se basear em conceitos sólidos de teoria de jogos, garantindo fiabilidade e justiça aos resultados, fornecendo explicações consistentes. Os fatores que mais a prejudicam são o facto de se poder tornar computacionalmente muito cara para modelos com muitas variáveis independentes e de as versões agnósticas ao modelo não serem tão precisas quanto as versões específicas.
Layer-Wise Relevance Propagation (LRP)
A LRP (Layer-Wise Relevance Propagation) é uma técnica especialmente desenvolvida para redes neuronais, não sendo agnóstica ao modelo como o LIME ou o SHAP, consistindo no cálculo de um valor de “Relevância” baseando-se nos pesos de cada nodo que se vai propagando inversamente partindo da camada de saída até à camada de entrada.
No desenho da figura 4 e, com vista a facilitar o entendimento, assumimos uma função R em que R(O1) significa a relevância de O1. R(O1) é propagado para trás de acordo com os pesos das ligações, fazendo com que N1, que só tem uma ligação de saída fique com:
Já no caso de I1, ficamos com
No final deste processo na camada de entrada, ficamos com as relevâncias de cada um dos parâmetros que colocamos no neurónio correspondente.
Figura 4 – Rede neuronal legendada
Esta técnica não é aplicável a outros tipos de modelos de Machine Learning, podendo ser difícil de implementar para certas arquiteturas. Apesar disso, é especialmente usada para dados de imagem pois consegue destacar as regiões relevantes para a decisão do modelo.
A performance diminui com o aumento da profundidade (número de camadas) e da complexidade (número de neurónios) da arquitetura.
João Ferreira
Cientista de Dados