Filtragem colaborativa

Para lidar com algumas limitações do filtro com base no conteúdo, a filtragem colaborativa usa semelhanças entre usuários e itens simultaneamente para fornecer recomendações. Isso permite para recomendações inesperadas, ou seja, filtragem colaborativa modelos podem recomendar um item para o usuário A com base nos interesses de um usuário B semelhante. Além disso, é possível aprender os embeddings automaticamente, sem depender da engenharia manual dos atributos.

Exemplo de recomendação de filme

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

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

O feedback sobre filmes se enquadra em uma das duas categorias:

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

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

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

  • Semelhanças com filmes que o usuário gostou anteriormente
  • filmes que usuários parecidos gostaram

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

Filme Classificação Descrição
O Cavaleiro das Trevas Ressurge PG-13 Batman tenta salvar Gotham City da aniquilação nuclear nesta continuação do O Cavaleiro das Trevas, definida em CC Universo em quadrinhos.
Harry Potter e a Pedra Filosofal PG Um menino órfão descobre que é um bruxo e se inscreve Escola de Hogwarts Bruxaria e magia, onde ele trava sua primeira batalha contra o maligno Lord Voldemort.
Shrek (link em inglês) PG Um ogro adorável e seu ajudante de burro embarcam em uma missão para resgatar a Princesa Fiona, que está emprisionada por um dragão no castelo dela.
As Bicicletas de Belleville PG-13 Quando o Campeão de ciclismo profissional é sequestrado durante o Tour de France, a avó dele e o cachorro acima do peso vão ao exterior para resgatá-lo, com com a ajuda de um trio de cantores de jazz idosos.
Memento (link em inglês) S Um amnésio busca resolver o assassinato da esposa tatuando pistas no corpo dele.

Incorporação 1D

Suponha que atribuímos a cada filme um escalar em \([-1, 1]\) que descreva se o filme é para crianças (valores negativos) ou adultos (valores positivos). Suponha que também atribuímos um escalar a cada usuário em \([-1, 1]\) que descreva o interesse do usuário em filmes infantis (mais próximo de -1) ou conteúdo adulto filmes (mais próximo de +1). O produto de embedding do filme e o estado o embedding deve ser maior (mais próximo de 1) para filmes que esperamos que o usuário de curtir.

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

No diagrama abaixo, cada marca de seleção identifica um filme que um determinado que o usuário assistiu. O terceiro e o quarto usuários têm preferências que são bem explicado por esse recurso. O terceiro usuário prefere filmes infantis e o quarto prefere filmes para adultos. No entanto, a primeira e a segunda dos usuários preferências não são bem explicadas por este único 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 para um embedding unidimensional (como descrito na figura anterior), de modo que o produto dos dois embeddings se aproxime do valor de informações empíricas da matriz de feedback.

Incorporação 2D

Um recurso não foi suficiente para explicar as preferências de todos os usuários. Para superar esse problema, vamos adicionar um segundo atributo: o grau em que cada filme é um blockbuster ou um filme artístico. Com um segundo atributo, 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 o filme é infantil (à esquerda) ou adulto (à direita). sua posição no eixo vertical descreve se o filme é de sucesso (na parte superior) ou de arte (na parte inferior). A posição dos usuários reflete seus interesses em cada categoria.

Novamente, colocamos nossos usuários no mesmo espaço de embedding para explicar melhor matriz de feedback: para cada par (usuário, item), queremos que a produto escalar do embedding do usuário e do embedding do item a ser fechado para 1 quando o usuário assistiu ao filme e para 0 caso contrário.

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

Neste exemplo, fizemos a engenharia manual dos embeddings. Na prática, os embeddings podem ser aprendidos automaticamente, que é o poder da filtragem colaborativa de modelos de machine learning. Nas próximas duas seções, vamos discutir modelos diferentes para aprender esses embeddings e como treiná-los.

A natureza colaborativa dessa abordagem fica evidente quando o modelo aprende o e embeddings. Suponha que os vetores de embedding dos filmes sejam fixos. Depois, o modelo pode aprender um vetor de embedding para que os usuários expliquem melhor suas preferências. Consequentemente, os embeddings de usuários com preferências semelhantes estarão próximas. Da mesma forma, se os embeddings dos usuários forem fixos, podemos aprender embeddings de filmes para explicar melhor a matriz de feedback. Como resultado, os embeddings de filmes de que usuários semelhantes gostaram no espaço de embedding.

Teste seu conhecimento

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