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.
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.
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:
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.
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.