Visão geral da geração de candidatos

A geração de candidatos é o primeiro estágio da recomendação. Depois de uma consulta, o sistema gera um conjunto de candidatos relevantes. A tabela a seguir mostra duas abordagens comuns de geração de candidatos:

TipoDefiniçãoExemplo
filtragem com base em conteúdo Usa semelhança entre itens para recomendar itens semelhantes ao que o usuário gosta. Se o usuário A assistir a dois vídeos de gatos fofos, o sistema poderá recomendar vídeos de animais fofos a esse usuário.
filtragem colaborativa Usa semelhantes entre consultas e itens simultaneamente para fornecer recomendações. Se o usuário A for semelhante ao usuário B e o usuário B gostar do vídeo 1, o sistema poderá recomendar o vídeo 1 ao usuário A, mesmo que o usuário A não tenha visto nenhum vídeo semelhante ao vídeo 1.

Espaço de embedding

A filtragem colaborativa e baseada em conteúdo mapeia cada item e cada consulta (ou contexto) para um vetor de embedding em um espaço de embedding comum \(E = \mathbb R^d\). Normalmente, o espaço de embedding é de baixa dimensão, ou seja, \(d\) é muito menor que o tamanho do corpus, e captura alguma estrutura latente do item ou conjunto de consultas. Itens semelhantes, como vídeos do YouTube, que geralmente são assistidos pelo mesmo usuário, acabam se aproximando no espaço de embedding. A noção de "closeness" é definida por uma medida de semelhança.

Medidas de semelhança

Uma medida de semelhança é uma função \(s : E \times E \to \mathbb R\) que usa um par de embeddings e retorna um escalar medindo a semelhança. Os embeddings podem ser usados para geração de candidato da seguinte maneira: considerando um embedding de consulta \(q \in E\), o sistema procura embeddings de itens\(x \in E\) próximos a \(q\), ou seja, embeddings com alta semelhança \(s(q, x)\).

Para determinar o grau de semelhança, a maioria dos sistemas de recomendação depende de um ou mais dos seguintes:

  • cosseno
  • produto ponto
  • Distância euclidiana

Cosseno

Isso é simplesmente o cosseno do ângulo entre os dois vetores, \(s(q, x) = \cos(q, x)\)

Produto ponto

O produto de ponto de dois vetores é\(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\). Ele também é fornecido pelo \(s(q, x) = \|x\| \|q\| \cos(q, x)\) (o cosseno do ângulo) multiplicado pelo produto das normas. Assim, se os embeddings forem normalizados, pontos e produto cosseno coincidirão.

Distância euclidiana

Essa é a distância normal no espaço euclidiano, \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\). Uma distância menor significa uma semelhança maior. Quando os embeddings são normalizados, a distância euclidiana ao quadrado coincide com o produto do ponto (e cosseno) até uma constante, desde que nesse caso \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\).

Imagem mostrando um espaço de embedding bidimensional, que contém um embedding de consulta e três itens candidatos.

Comparação de medidas de semelhança

Veja o exemplo na figura à direita. O vetor preto ilustra a incorporação de consultas. Os outros três vetores de embedding (Item A, Item B, Item C) representam os candidatos candidatos. Dependendo da medida de semelhança usada, a classificação dos itens pode ser diferente.

Usando a imagem, tente determinar a classificação do item usando as três medidas de semelhança: cosseno, produto de ponto e distância euclidiana.

Qual medida de semelhança deve ser escolhida?

Em comparação com o cosseno, a semelhança dos produtos de ponto é sensível à norma do embedding. Ou seja, quanto maior a norma de um embedding, maior a semelhança (para itens com um ângulo agudo) e maior é a probabilidade de o item ser recomendado. Isso pode afetar as recomendações da seguinte maneira:

  • Itens que aparecem com muita frequência no conjunto de treinamento (por exemplo, vídeos populares do YouTube) tendem a ter embeddings com normas grandes. Se quiser capturar informações de popularidade, dê preferência ao produto ponto. No entanto, se você não tiver cuidado, os itens em alta poderão dominar as recomendações. Na prática, é possível usar outras variantes de medidas de semelhança que colocam menos ênfase na norma do item. Por exemplo, defina \(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) para alguns \(\alpha \in (0, 1)\).

  • Os itens que aparecem muito raramente podem não ser atualizados com frequência durante o treinamento. Consequentemente, se eles forem inicializados com uma norma grande, o sistema poderá recomendar itens raros em vez de itens mais relevantes. Para evitar esse problema, tenha cuidado ao incorporar a inicialização e use a regularização adequada. Vamos detalhar esse problema no primeiro exercício.