Rumo a um Sistema de Recomendação Híbrido

Sistemas de Recomendação (RS) podem ser considerados uma das aplicações mais bem sucedidas de Machine Learning e Big Data. Esse sucesso fica claro quando observamos a precisão das recomendações geradas por empresas como:

  • Netflix
  • Spotify
  • Amazon

RS é um software desenhado para recomendar itens (produtos, filmes, eventos, artigos, músicas, or whatever you want to) para usuários (clientes, usuários, leitores, etc.). Por isso, sua aplicabilidade é muito grande e por consequência dessa magnitude, há muito esforço sendo realizado em direção do aprimoramento (better it’s always better =] ), seja por parte da academia (pesquisa científica), seja por parte dos profissionais (tutoriais bem bacanas, frameworks bem completos, etc.).

Tendo em vista sua importância, irei explicar alguns conceitos básicos a respeito deles. Meu objetivo aqui, é explicar de forma didática e simples o funcionamento, assim como as vantagens e desvantagens, de um dos três tipos mais tradicionais de RS:

  • RS por Filtragem Baseada em Conteúdo
  • RS por Filtragem Colaborativa
  • RS por Filtragem Híbrida

SISTEMAS DE RECOMENDAÇÃO

RS por Filtragem Baseada em Conteúdo são aqueles que geram predições (recomendações) do tipo do tipo “baseado nesse produto que você comprou, esse pode ser de seu interesse”, ou seja, com base no que o usuário já conhece (comprou, assistiu, whatever). Em outras palavras, se um usuário assistiu o filme dos Mercenários, então ele pode ter interesse em assistir outros filmes que tenham características parecidas (similares), como por exemplo o elenco, categoria, etc. Nesse caso, uma possível recomendação para o usuário que assistiu Mercenários, seria Mercenários 2, pois estes dois possuem características bem parecidas.

Por outro lado, alguns filmes podem ser recomendados com base no que outros usuários assistem (colaborativo). Desse modo, se João assiste Velozes e Furiosos e American PIE, e Joaquim assiste American PIE, então uma possível recomendação para Joaquim seria Velozes e Furiosos, já que Joaquim é parecido (com base nos filmes assistidos) com João (que assistiu Velozes e Furiosos). Esse tipo de recomendação pode ser de duas formas:

  1. Explícita: o usuário fornece feedback explícito a respeito do item. Na Netflix, por exemplo, é possível dar stars pros filmes que vão de 1 (muito ruim) a 5 (muito bom).
  2. Implícita: nesse caso, o feedback é fornecido de modo implícito, sem que ele necessariamente dê uma star ao item. Desse modo, se um usuário visualizou ou comprou um item, significa que ele tem interesse nesse item, porém ele não “disse” para o software que ele tem interesse, ele apenas demonstrou interesse.

Você deve estar se perguntando:

mas qual é a vantagem dos RS baseados em conteúdos para os RS baseados colaboração? E qual é a vantagem das recomendações implícitas para as explícitas?

A resposta para essas perguntas é que, embora não haja uma verdade universal, pois depende do contexto do problema (dataset, problema, etc.), geralmente as recomendações geradas de forma implícita são mais efetivas do que as geradas de forma explícita. Assim como, as colaborativas (talvez por serem geradas com base um dataset maior) aparentemente apresentam resultados melhores do que as baseada em conteúdo.

Nesse momento, talvez tenha passado pela tua cabeça: tá, mas será que se eu conseguir combinar as duas, não irei obter um resultado melhor?

Sim, a resposta é sim. A combinação das duas abordagens mencionadas acima (colaborativa e baseada em conteúdo) dá origem a abordagem híbrida (mindblowing). A principal vantagem da híbrida em relação às abordagens anteriores é que esta é capaz de gerar recomendações para novos itens ou usuários. Para explicar melhor essa ideia, imagine que os usuários que assistem Mercenários possuem idade média entre 22 e 55 anos, enquanto que os usuários que assistem American PIE possuem idade entre 16 e 30 anos. Agora imagine que um novo usuário que tem 40 anos de idade deseja receber uma recomendação de filme, porém como ele é novo, ainda não assistiu nenhum filme. Assim, se o RS for híbrido, irá recomendar Mercenários para o usuário, pois os usuários que têm características (idade) mais próximas das que ele tem, assistem Mercenários.

Considerações Finais

Nesse post abordei de forma didática alguns dos conceitos básicos em relação a RS. Farei outros três posts. O primeiro explicando e mostrando o código (yeah! That’s what I’m talking about) a respeito dos RS baseados em conteúdo, seguido pelos RS baseados em colaboração, e por último, os RS híbridos (hell yeah!).

Qualquer dúvida ou consideração, sinta-se à vontade para me contatar :)

Like what you read? Give Felipe Appio a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.