Filtragem colaborativa

Para resolver algumas das limitações da filtragem com base em conteúdo, a filtragem colaborativa usa semelhanças entre usuários e itens simultaneamente para fornecer recomendações. Isso permite recomendações casuais, ou seja, modelos de filtragem colaborativas podem recomendar um item para o usuário A com base nos interesses de um usuário B semelhante. Além disso, os embeddings podem ser aprendidos automaticamente, sem depender da engenharia de atributos dos recursos.

Um exemplo de recomendação de filme

Considere um sistema de recomendação de filmes em que os dados de treinamento consistem em uma matriz de feedback, em que:

  • Cada linha representa um usuário.
  • Cada coluna representa um item (um filme).

O feedback sobre filmes se encaixa em uma destas duas categorias:

  • Explícito: os usuários especificam uma classificação numérica para saber quanto gostaram de um filme específico.
  • Implícito: se um usuário assistir a um filme, o sistema deduzirá que ele está interessado.

Para simplificar, supomos que a matriz de feedback é binária, ou seja, o valor 1 indica interesse no filme.

Quando um usuário visita a página inicial, o sistema deve recomendar filmes com base em:

  • semelhança com filmes que o usuário gostou anteriormente.
  • filmes que usuários semelhantes gostaram.

Para fins de ilustração, vamos analisar alguns recursos manualmente para os filmes descritos na tabela a seguir:

Filme Classificação Descrição
Batman: O Cavaleiro das Trevas Ressurge PG-13 Batman se empenha em salvar a Cidade de Gotham da nitidez nuclear nesta continuação de The Dark Knight, ambientado no universo DC Comics.
Harry Potter e a Pedra Filosofal PG Um menino órfão descobre que é um mago e se inscreve na Hogwarts School of Witchcraft and Wizardry, em que aposta na primeira batalha contra o maligno Senhor Voldemort.
Shrek PG Um ogro adorável e seu companheiro burro decolou em uma missão para resgatar a princesa Fiona, que está prisão em um castelo com um dragão.
As Bicicletas de Belleville PG-13 Quando o campeão profissional Champion é sequestrado durante o Tour de France, a avó e o cão cansado estão viajando para resgatar no exterior, com a ajuda de um trio de cantores de jazz idosos.
Memento R Uma amnésia busca desesperadamente resolver o assassinato da esposa dele tirando tatuagens do corpo dele.

Incorporação 1D

Vamos atribuir a cada filme um escalar em \([-1, 1]\) que descreve se o filme é para crianças (valores negativos) ou adultos (valores positivos). Suponha também que um escalar seja atribuído a cada usuário em \([-1, 1]\) que descreve o interesse do usuário em filmes infantis (mais próximo de -1) ou adulto (mais próximo de +1). O produto da incorporação de filmes e da incorporação de usuários precisa ser mais alto (mais próximo de 1) para filmes que esperamos que o usuário goste.

Imagem mostrando vários filmes e usuários organizados ao longo de um espaço de embedding unidimensional. A posição de cada filme neste eixo descreve se o filme é para crianças (à esquerda) ou para um adulto (à direita). A posição de um usuário descreve o interesse em filmes infantis ou adultos.

No diagrama abaixo, cada marca de seleção identifica um filme que um determinado usuário assistiu. O terceiro e o quarto usuário têm preferências bem explicadas por esse recurso. O terceiro usuário prefere filmes para crianças, e o quarto usuário prefere filmes para adultos. No entanto, as preferências do primeiro e do segundo usuários não são bem explicadas por esse recurso.

Imagem de uma matriz de feedback, em que uma linha corresponde a um usuário e uma coluna corresponde a um filme. Cada usuário e cada filme é mapeado em um embedding unidimensional (conforme descrito na figura anterior), de modo que o produto dos dois embeddings se aproxime do valor de informações empíricas na matriz de feedback.

Incorporação 2D

Um recurso não foi suficiente para explicar as preferências de todos os usuários. Para resolver esse problema, vamos adicionar um segundo recurso: o grau em que cada filme é um blockbuster ou um filme de arte. Com um segundo recurso, agora podemos representar cada filme com o seguinte embedding bidimensional:

Imagem mostrando vários filmes e usuários organizados em um espaço de embedding bidimensional. A posição de cada filme no eixo horizontal descreve se este é um filme infantil (à esquerda) ou adulto (à direita). A posição ao longo do eixo vertical descreve se este é um filme de grande sucesso (parte superior) ou um filme de arte (inferior). a posição dos usuários reflete os interesses deles em cada categoria;

Novamente colocamos nossos usuários no mesmo espaço de embedding para explicar melhor a matriz de feedback: para cada par de usuário (item), gostaríamos que o produto de ponto da incorporação do usuário e a incorporação do item estivessem perto de 1 quando o usuário assistiu ao filme e de 0 para outro caso.

Imagem da mesma matriz de feedback. Dessa vez, cada usuário e cada filme são mapeados para um embedding bidimensional (como descrito na figura anterior), de modo que o produto de ponto dos dois embeddings se aproxime do valor de informações empíricas na matriz de feedback.

Neste exemplo, desenvolvemos os embeddings manualmente. Na prática, os embeddings podem ser aprendidos automaticamente, que é o poder dos modelos de filtragem colaborativa. Nas próximas duas seções, discutiremos diferentes modelos para aprender esses embeddings e como treiná-los.

A natureza colaborativa dessa abordagem é aparente quando o modelo aprende os embeddings. Suponha que os vetores de embedding para os filmes sejam fixos. Em seguida, o modelo pode aprender um vetor de incorporação para que os usuários expliquem melhor as preferências. Consequentemente, as incorporações de usuários com preferências semelhantes serão aproximadas. Da mesma forma, se os embeddings para os usuários forem corrigidos, poderemos aprender os embeddings de filmes para explicar melhor a matriz de feedback. Como resultado, os embeddings de filmes marcados com "Gostei" por usuários semelhantes estarão próximos no espaço de embedding.

Teste seu conhecimento

O modelo recomenda um aplicativo de compras para um usuário porque ele instalou recentemente um aplicativo semelhante. Que tipo de filtro é um exemplo?
Filtro com base no conteúdo
Bom trabalho! A filtragem com base em conteúdo não analisa outros usuários.
Filtragem colaborativa
A filtragem colaborativa considera outros usuários. Nesse cenário, só precisamos de um usuário.