Design clássico · Pleno
Ranqueamento de busca
Projeto de entrevista clássico. Pontos centrais: query understanding, LTR multiestágio e nDCG.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: query understanding, LTR multiestágio e nDCG. A fonte trata o problema como um projeto de entrevista: antes de desenhar, esclareça se a busca é geral, como a de um buscador da web, ou especializada, como a de produtos.
01 · CONTEXTO E ESCOPO
Antes de desenhar, esclareça a busca
A fonte trata o problema como um projeto de entrevista: antes de desenhar, esclareça se a busca é geral, como a de um buscador da web, ou especializada, como a de produtos. O caso aqui é a busca de itens de um comércio eletrônico: o usuário digita uma consulta de texto e o sistema mostra os itens mais relevantes.
O objetivo de negócio citado é aumentar o CTR e a conversão. Como requisitos, a fonte lista tempo de resposta, precisão e escalabilidade, com uma escala de cinquenta milhões de usuários ativos por dia.
Na formulação de ML, a relevância pode ser definida como uma soma ponderada de clique, sessão bem-sucedida e conversão. A entrada é a consulta de texto e a saída é a lista ranqueada dos itens mais relevantes.
O diagrama tem três caixas: o cliente, o serviço de busca e o índice de itens.
As arestas ligam o cliente ao serviço de busca e o serviço ao índice.
A Educative descreve o módulo de ranqueamento de busca do seu curso como um percurso por desenho de sistemas de ranqueamento, escolha de métricas e filtragem de resultados. Só essa descrição pública foi usada aqui.
02 · MÉTRICAS
Offline e online não medem a mesma coisa
A fonte separa métricas offline e online. Entre as offline, lista precisão e revocação em k, MRR, mAP e NDCG, e escolhe o NDCG por causa da relevância não binária.
| Métrica | Tipo | O que a fonte registra |
|---|---|---|
| CTR | Online | Problema apontado: não acompanha a relevância, e há click baits |
| Taxa de sessões bem-sucedidas | Online | Tempo de permanência acima de T ou adição ao carrinho |
| NDCG | Offline | Escolhida pela fonte; relevância não binária |
03 · ARQUITETURA EM CAMADAS
Da consulta ao resultado
A arquitetura da fonte é em camadas: entendimento da consulta, geração de candidatos, ranqueador do primeiro estágio, ranqueador do segundo estágio, blender e filtro, nessa ordem.
O usuário digita uma consulta de texto na caixa de busca; o sistema deve mostrar os itens mais relevantes.
A consulta passa primeiro pelo entendimento da consulta, que reúne corretor ortográfico, normalização, expansão ou relaxamento e classificação de intenção.
A geração de candidatos busca no índice invertido e foca em recall.
No exemplo da fonte, o ranqueador do primeiro estágio usa um modelo linear.
No exemplo da fonte, o segundo estágio usa uma rede neural profunda e termina com quinhentos itens.
O blender monta a página de resultados e o filtro vem por último, na ordem da fonte.
O entendimento da consulta reúne corretor ortográfico, normalização, expansão, que adiciona alternativas, ou relaxamento, que remove termos (a fonte dá o exemplo de remover good), e classificação de intenção ou domínio.
A geração de candidatos foca em recall e reduz milhões ou bilhões de itens a dezenas de milhares. Na recuperação por texto, a fonte usa um índice invertido, que mapeia palavras para suas posições num conjunto de documentos; depois da expansão da consulta, busca nesse índice e obtém itens com uma pontuação de relevância.
A pontuação de relevância é uma combinação linear ponderada. Os exemplos da fonte são a correspondência de termos, por exemplo TF-IDF, e a popularidade do item, por exemplo o número de avaliações ou de compras.
A fonte indica ranqueamento em vários estágios quando há mais de dez mil itens para escolher ou quando a taxa de consultas por segundo passa de dez mil. Com cem mil itens, o exemplo usa um modelo linear no primeiro estágio e uma rede neural profunda no segundo, chegando a quinhentos itens.
O blender produz a página de resultados (SERP) e combina resultados de várias fontes, como a busca textual e a busca visual.
04 · RANQUEAMENTO
Pointwise no primeiro estágio, pairwise no segundo
Para ranquear, a fonte descreve duas famílias de modelos. O pointwise recebe um par usuário e item e devolve uma nota de relevância. O pairwise recebe um usuário e dois itens e prevê se a nota do primeiro supera a do segundo; a fonte o descreve como mais natural para ranqueamento e mais complicado.
| Aspecto | Primeiro estágio | Segundo estágio |
|---|---|---|
| Tipo de modelo | LTR pointwise, classificador binário | LTR pairwise |
| Sugestões da fonte | LR ou um MART pequeno | LambdaMART ou LambdaRank |
| Métrica | ROC AUC | NDCG |
No segundo estágio, o LambdaMART é uma variação do MART com função objetivo alterada para melhorar o ranqueamento par a par; o LambdaRank é baseado em rede neural, com perda par a par que minimiza inversões no ranqueamento. A fonte manda escolher entre os dois conforme os dados de treino disponíveis e a capacidade. Para o primeiro estágio, indica latência na ordem de microssegundos.
05 · DADOS E TREINO
Rótulos que nascem do engajamento
Os rótulos vêm de dados de engajamento online. As amostras positivas são de usuários que engajaram, com clique, tempo de permanência acima de T, adição ao carrinho ou compra. As negativas são de itens sem engajamento, mais negativos aleatórios, por exemplo de páginas a partir da dez.
Para gerar dados de treino, uma das opções da fonte são avaliadores humanos, que ela aponta como caros e sem escala. A outra são os dados de engajamento online, em que cada tipo de engajamento recebe uma nota.
| Engajamento | Nota |
|---|---|
| Impressão sem clique | Zero |
| Somente clique | Um |
| Tempo após o clique acima de T | Dois |
| Adição ao carrinho | Três |
| Compra | Quatro |
Como exemplo de volume, a fonte parte de cinco milhões de consultas por dia, que viram dez milhões de amostras por dia. Recomenda usar ao menos uma semana de dados para capturar padrões diários e, na divisão temporal, três semanas, com os dois primeiros terços para treino e a última semana para validação e teste.
Entre as features, a fonte organiza as de par consulta e item, como a correspondência de texto em título, descrição e categoria, e o engajamento histórico, por exemplo a taxa de cliques do item para aquela consulta.
06 · FILTRO E FECHAMENTO
O que acontece depois do ranqueamento
Depois do ranqueamento, a fonte prevê um re-ranqueamento com lógica de negócio, que inclui filtrar itens inapropriados e garantir diversidade, entre exploração e aproveitamento.
A fonte aponta duas formas de filtrar: filtros e agregadores por regras, ou um modelo de ML. No modelo, trata-se de uma classificação binária da probabilidade de o item ser inapropriado, com dados de avaliadores humanos e feedback dos usuários, como denúncias e avaliações.
Entre os outros pontos de conversa, a lista da fonte menciona o viés de posição.
Perguntas frequentes
O que é Ranqueamento de busca?
Projeto de entrevista clássico. Pontos centrais: query understanding, LTR multiestágio e nDCG.
O que o design de Ranqueamento de busca cobre?
Ele está organizado nestas seções: Antes de desenhar, esclareça a busca, Offline e online não medem a mesma coisa, Da consulta ao resultado, Pointwise no primeiro estágio, pairwise no segundo, Rótulos que nascem do engajamento e O que acontece depois do ranqueamento.
Quanto tempo leva Ranqueamento de busca e qual é o nível?
Leva cerca de 14 minutos para ler e tem nível Pleno.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.