Visão geral sobre sistemas de recomendação

Nesse artigo, você vai entender como funcionam os sistemas de recomendação, suas principais etapas e as abordagens mais usadas como content-based e collaborative filtering.

Terminologia

Itens (documentos): entidades que são recomendadas por um sistema a serem consultadas.

Consulta (context): Informações que um sistema usa para fazer recomendações.

Embedding: mapeamento de um sistema discreto (de itens e consultas) para um espaço vetorial multi-dimensional.

Etapas do Sistema

1. Geração de candidatos: O sistema, com base em um conjunto enorme de itens, avalia os mais rapidamente, reduzindo a quantidade significativa de itens a serem considerados.

2. Pontuação: Outro modelo atribui uma pontuação para cada candidato selecionado com base no contexto. Essa etapa pode requerer um modelo mais complexo.

3. Re-ranking: Por fim, o sistema utiliza outras informações para melhorar a qualidade do ranqueamento final. Isso pode envolver a remoção de itens que o usuário explicitamente rejeitou ou aumentar a pontuação de itens mais novos, garantindo novidade e diversidade.

Geração de Candidatos

Existem dois tipos de abordagens para a geração de candidatos:

Content-based filtering: Usa a similaridade entre itens para recomendar itens similares dos que o usuário tem interesse. Exemplo: Se o usuário A gosta de vídeos de gatinhos, o sistema pode recomendar vídeos de outros animais.

Collaborative filtering: Usa a similaridade entre usuários para determinar quais gostos eles podem ter em comum. Exemplo: Se o usuário A é similar ao usuário B, e o usuário A é fã do vídeo 1, o sistema pode recomendar o vídeo 1 para o usuário B.

Métricas de Similaridade:

Produto escalar: É definido pelo produto entre o módulo de dois vetores vezes o cosseno do ângulo formado entre eles.

Cosseno: Cosseno é o ângulo entre dois vetores no espaço de embedding. No caso de um dataset com os vetores normalizados, o produto escalar tem o mesmo resultado que o cosseno, pois seu módulo sempre será 1.

Distância Euclidiana: A distância euclidiana é a distância direta entre duas entidades no espaço do vetor.

Pontuação

Após a geração de candidatos, o próximo passo é atribuir uma pontuação a cada item selecionado. Essa etapa envolve modelos mais sofisticados, que utilizam diversas características do usuário, do item e do contexto para determinar a relevância de um candidato.

Abordagens para Pontuação

Modelos baseados em aprendizado de máquina: Modelos supervisionados ou não supervisionados podem ser treinados para prever a relevância de um item para um usuário específico. Exemplos incluem redes neurais, árvores de decisão e regressão logística.

Modelos heurísticos: Algumas implementações utilizam regras definidas manualmente para atribuir pontuações, como a frequência de interação com um item ou a popularidade de um documento dentro de um determinado período.

Modelos híbridos: Combinação de técnicas heurísticas e aprendizado de máquina para obter melhores resultados de recomendação.

Fatores Considerados na Pontuação

Histórico do usuário: Interações passadas, cliques, tempo gasto e avaliações de itens.

Características do item: Tipo de conteúdo, categoria, popularidade e metadata associada.

Contexto da recomendação: Hora do dia, localização do usuário, dispositivo utilizado e preferências atuais.

A pontuação final é utilizada para definir um ranqueamento preliminar dos itens candidatos.

Re-ranking

O re-ranking é a última etapa antes de exibir as recomendações ao usuário. Essa fase aprimora a lista de itens ranqueados levando em consideração fatores adicionais, como diversidade, novidade e personalização refinada.

Fatores de Re-ranking

Diversidade: Evita que a recomendação contenha apenas itens muito similares, garantindo variedade no conteúdo sugerido.

Novidade: Promove itens recentemente adicionados ao sistema para estimular o consumo de novos conteúdos.

Penalização de itens rejeitados: Itens que o usuário já rejeitou explicitamente podem ser removidos ou ter sua pontuação reduzida.

Ajuste de preferência contextual: Refinamento do ranqueamento com base no contexto imediato do usuário, como preferência por determinado tipo de conteúdo em horários específicos.

O resultado final é uma lista otimizada de recomendações que equilibra relevância, diversidade e personalização para proporcionar a melhor experiência ao usuário.