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