Recuperação

Suponha que você tenha um modelo de embedding. Como você decidiria quais usuários recomendar?

No tempo de exibição, dada uma consulta, você começa com uma das seguintes ações:

  • Para um modelo de fatoração de matrizes, a incorporação da consulta (ou do usuário) é conhecida estaticamente, e o sistema pode simplesmente procurá-la na matriz de incorporação de usuários.
  • Para um modelo de DNN, o sistema calcula a incorporação de consultas \(\psi(x)\) no momento da veiculação, executando a rede no vetor de atributos \(x\).

Quando você tiver a incorporação de consulta \(q\), pesquise as incorporações de itens \(V_j\) que estejam perto \(q\) do espaço de embedding. Esse é um problema vizinho mais próximo. Por exemplo, é possível retornar os mil principais itens de acordo com a pontuação de semelhança \(s(q, V_j)\).

Imagem de espectro bidimensional com vários filmes e usuários organizados
de filmes infantis a adultos, de arte a blockbuster. Um usuário está
destacado para dois filmes próximos.

É possível usar uma abordagem semelhante nas recomendações de itens relacionados. Por exemplo, quando o usuário assiste a um vídeo do YouTube, o sistema pode procurar primeiro a incorporação desse item e, em seguida, procurar incorporações de outros itens \(V_j\) que estejam próximos no espaço de embedding.

Recuperação em larga escala

Para calcular os vizinhos mais próximos no espaço de incorporação, o sistema pode pontuar exaustivamente todos os possíveis candidatos. A pontuação exaustiva pode ser cara para corpora muito grande, mas você pode usar uma das estratégias a seguir para torná-la mais eficiente:

  • Se a incorporação da consulta for conhecida estaticamente, o sistema poderá executar uma pontuação completa off-line, pré-calcular e armazenar uma lista dos principais candidatos de cada consulta. Essa é uma prática comum para recomendações de itens relacionados.
  • Use vizinhos mais próximos.