Sistema de Recomendação Colaborativo

Introdução

Conceitos matemáticos utilizados na construção de um sistema de recomendação, utilizando filtragem colaborativa.

Objetivo

Notas do meu estudo sobre inteligência artificial, uma tentativa de explicar de forma simples e contextualizar como a distância Euclidiana é utilizada para calcular o percentual de similaridade entre usuários ou itens. Com essa abordagem responder a pergunta que todo estudante de Geometria faz ao longo do curso “pra que ou quando vou usar isso?”

Situação Problema

Uma empresa de turismo tem cinco destinos de viagem e seus clientes frequentemente recebem sugestões de viagens, para ser o mais acertivo as sugestões são feitas com base na pontuação dada ao destino por outros clientes.

Dessa forma, afim de divulgar novos destinos a seus clientes a empresa deseja enviar promoções para clientes potenciais (alvo) e para isso se faz necessário saber se o destino é interessante, segue exemplo dos dados:

A tabela é preenchida com pontos que vão de 1 a 5, correspondem as avaliações dados pelos clientes, campos em branco são destinos não visitados pelo cliente, o foco desse estudo é encontrar clientes com preferências similares e fazer predição da nota que seria dada ao destino.

Princípio

O primeiro passo é saber quais são os clientes próximos, para isso é necessário avaliar a proximidade entre dois destinos, no gráfico abaixo foram representados os clientes da tabela para dois destinos:

Observe que no gráfico não foram representados todos os clientes, isso porque Luís, Laura e Fábio não conhecem Florianópolis, Ilhabela ou ambos.

No gráfico é fácil identificar quem são os clientes similares, basta ver quais intersecções estão próximas, nesse exemplo Thaís e João, isso ocorre porquê:

  • Para Ilhabella: A diferença entre Thais e João é zero porque ambos pontuaram com o mesmo valor o destino, podemos concluir que para esse destino eles são 100% compatíveis.
  • Para Florianópolis: A diferença entre Thais e João é 1, porque Thaís pontuou com 2 e João com 1, a mesma diferença pode ser observada entre Thaís e Antônio.

A similaridade sempre é calculada entre clientes que pontuaram destinosem comum, com os dados plotados em um gráfico, visualmente é fácil observar essa proximidade mas para provar isso matemáticamente é necessário um pouco de geometria plana.

Distância Euclidiana

É o calculo do menor trajeto entre dois pontos, no plano sempre é uma linha reta, como Thaís e João tem o mesmo valor para Ilhabella, é possível saber a distância entre eles calculando a diferença entre Thais e João no eixo y (Florianópolis), onde:

Como para o destino Ilhabela ambos pontuaram com 3, para saber a distância entre Thais e João é necessário fazer o cálculo em uma dimensão fazendo a diferença entre os dois pontos:

Agora vamos analisar a distância entre Thais e Júlia, perceba que elas não compartilham dos mesmos valores, Thaís pontuou o destino com 3 e 2 enquanto Júlia pontuou com 1 e 5.

Para saber a menor distância entre elas é necessário traçar uma linha reta (em vermelho), com mostrado na figura a seguir:

Agora você tem um triângulo retângulo e para saber o tamanho da linha vermelha (hipotenusa) é usado teorema de Pitágoras.

Para saber o tamanho docateto adjacente, você faz a diferença entre os valores que formam o triângulo no eixo x:

Para saber o tamanho do cateto oposto, você faz a diferença entre os valores que formam o triângulo no eixo y:

Agora se substituir as variáveis no teorema de Pitagoras, você consegue deduzir a fórmula para calcular a distância entre dois pontos:

  • Qual o percentual de similariedade entre Thaís e Júlia?
  • Qual o percentual de similariedade entre Thaís e João?

Perceba que no primeiro cálculo entre Thaís e João a distância entre eles para Ilhabela foi 0, equivale a 100%, considerando dois destinos a distância aumenta e consequentemente o percentual de similaridade diminui.

Similares

Para calcular a similaridade entre dois usuários, considerando todos os dados da base, você faz o cálculo da distância Euclidiana para todos os destinos (planos) em comum entre eles:

  • Qual a similariedade entre Antônio e Evelyn?

Nesse exemplos temos n dimensões (destinos) e para calcular a distância entre Antônio e Evelyn você soma a diferença entre os pontos, uma abstração do teorema de Pitágoras, onde:

Para sabe se esse percentual é alto ou baixo, você precisa calcular a similariedade do seu cliente alvo com todos os demais clientes, sempre considerando somente os destinos em comum para fazer uma recomendação.

Recomendação

Para isso é necessário o cálculo de similaridade entre todos os clientes em relação a nosso cliente alvo, assim é possível fazer recomendações de destinos, para esse caso será analisado o Luis, que não conhece 3 destinos: Ilhabela, Maraú e Ilha do Boipeba.

Para calcular a similariedade utilizamos as fórmulas:

Dessa forma para Luis em relação a Laura temos:

A similariedade entre Luis e Laura é de 33,33%, perceba que só foram utilizados os pontos de Florianopolis, porque somente esse destino é comum entre eles, com essa informação é feito o cálculo do alvo para as cidades que Luis não conhece.

Na tabela a seguir, Ilhabela está em branco para Laura porque ela não conhece esse destino, o zero não foi utilizado afim de não ser interpretado como ela ter gostado do destino, mas o cálculo do alvo para as demais cidades se dá pela fórmula:

O próximo passo é somar os valores de alvo para todas as cidades e dividir pela soma da similaridade (somente para os destinos pontuados), assim para:

Ilhabela

Total Luis

Total Similar

Predição

Processo se repete para todas as cidades que o cliente Luis não visitou em relação a todos os demais clientes.

Conclusão

Temos que o cliente Luis, de acordo com o cálculo de similariedade entre os demais clientes, pontuaria: Ilhabela com 2,66 pontos, Maraú com 3,07 pontos e Ilha de Boipeba com 3,79 pontos.

Ainda sobre esses valores é possível fazer uma “nota de corte”, onde somente as cidades com predição de pontuação acima da média do cliente alvo seriam recomendadas.

A essa altura já deve ter se perguntado, serão milhares de cálculos para uma base de dados real, está correto. São cálculos como estes que compõe sistemas de recomendação do Netflix, Spotify, Amazon entre outros.

Fontes

Veja também

Agradecimentos

Luciana Nehme (Revisão texto) e Junior Messias (Revisão matemática)

Leave a Reply

Your email address will not be published. Required fields are marked *