Conceitos
Recomendação em dois estágios: geração de candidatos e ranking
Intuição
Imagine escolher um filme numa locadora com milhões de títulos: ninguém avalia cada um com cuidado. Primeiro você separa rapidamente algumas centenas que combinam com seu gosto, usando pistas simples; depois olha essas poucas com lupa, comparando detalhes, e fica só com as melhores. Recomendar dessa forma permite varrer um catálogo enorme sem gastar análise cara em cada item.
Como funciona
No paper do YouTube, o funil tem duas redes neurais: a geração de candidatos reduz um corpus de milhões de vídeos a algumas centenas, e o ranking pontua essas centenas e apresenta só algumas dezenas. A geração de candidatos é formulada como classificação multiclasse extrema: a rede aprende um embedding do usuário (função do histórico e do contexto), cada vídeo tem seu embedding, e um softmax prevê qual vídeo será assistido; o treino usa feedback implícito e amostragem de candidatos negativos com importance weighting; com alguns milhares de negativos por exemplo, a aceleração é de mais de 100 vezes sobre o softmax tradicional, segundo o paper. Ela usa atributos grosseiros (IDs de vídeos assistidos, tokens de busca, dados demográficos) e busca precisão com personalização ampla por filtragem colaborativa. No serving, como não são necessárias probabilidades calibradas, o problema vira uma busca aproximada de vizinhos mais próximos no espaço de produto escalar, que precisa responder em dezenas de milissegundos. O ranking, por pontuar só algumas centenas de vídeos, pode usar centenas de atributos do vídeo e do usuário, combina candidatos de várias fontes cujas pontuações não são diretamente comparáveis e otimiza o tempo de exibição esperado (regressão logística ponderada), em vez de cliques. Na geração de candidatos, um atributo central é a idade do exemplo: entra como atributo no treino e é fixada em zero (ou levemente negativa) no serving, para corrigir o viés implícito em direção ao passado e simular uma previsão feita no fim da janela de treino.
Na prática
O paper justifica a divisão em dois estágios porque ela permite recomendar a partir de um corpus enorme e ainda ter certeza de que os poucos itens exibidos são personalizados; ela também permite misturar candidatos vindos de outras fontes, cujas pontuações o ranking combina. Os autores relatam que os resultados de A/B não eram muito sensíveis ao algoritmo de vizinhos mais próximos escolhido, e que a decisão final sobre um modelo vem de testes A/B ao vivo, já que métricas offline nem sempre se correlacionam com eles.
Use em um desenho
Pratique na escola de System Design os casos que dependem deste conceito.