Design clássico · Pleno
Recomendação de eventos
Projeto de entrevista clássico. Pontos centrais: learning to rank, features geo/tempo e cold start de itens efêmeros.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: learning to rank, features geo/tempo e cold start de itens efêmeros. O roteiro de entrevista parte de um sistema de recomendação de eventos semelhante ao do Eventbrite, no contexto de desenho de sistemas de ML.
01 · CONTEXTO E OBJETIVO
O que significa recomendar um evento
O roteiro de entrevista parte de um sistema de recomendação de eventos semelhante ao do Eventbrite, no contexto de desenho de sistemas de ML. O objetivo de negócio é aumentar a venda de ingressos, com recomendação personalizada para cada usuário, eventos gratuitos ou pagos e usuários no mundo todo, em vários idiomas.
Para dimensionar, o roteiro assume cem milhões de usuários ativos por dia e um milhão de eventos por mês, e sugere uma latência de 200 ms (no roteiro, com ponto de interrogação).
Como problema de ML, o objetivo é recomendar os eventos mais relevantes para maximizar o número de eventos registrados. A categoria é um sistema de recomendação com abordagem de ranking: entra o identificador do usuário e sai uma lista ordenada de eventos com uma pontuação de relevância.
O roteiro lista três formulações de learning to rank, pointwise, pairwise e listwise, e escolhe a pointwise. Nela a entrada é o par usuário e evento e a saída é a probabilidade de registro, uma classificação binária.
02 · DADOS E ITENS EFÊMEROS
Poucos sinais por evento, muita engenharia de features
As fontes de dados do roteiro incluem o usuário, com perfil e interações históricas, as amizades entre usuários e as interações entre usuário e evento. O roteiro também pergunta, no esclarecimento inicial, se amizades entre usuários podem ser usadas.
O roteiro afirma que recomendar eventos é mais difícil que recomendar filmes ou vídeos: o evento tem vida curta, então acumula poucas interações históricas, o que leva ao cold start, descrito como um problema constante de item novo. A resposta do roteiro é investir mais esforço em engenharia de features, com muitas features significativas.
03 · FEATURES GEO, TEMPO E SOCIAIS
Quatro grupos de features
| Grupo | Exemplos citados no roteiro |
|---|---|
| Usuário | Idade, gênero e histórico de eventos |
| Evento | Preço e número de registrados; horário, duração e tempo restante; local (cidade, país, acessibilidade); anfitrião e sua popularidade |
| Usuário e evento | Similaridade de preço, de descrição e de tempo (duração, dia, hora do dia); mesma cidade, estado ou país |
| Social | Número ou proporção de amigos que vão; convites de amigos; evento organizado por amigo |
No pré-processamento, o roteiro usa bucketização com one-hot para idade, distância e tempo. Features de localização e distância pedem cálculo eficiente, e o roteiro separa o processamento em lote, para o que é estático, do processamento online por streaming, para o que é dinâmico (pipelines de dados, analytics em tempo real).
Como evolução, o roteiro cita aprender embeddings de usuários e de eventos.
04 · FUNIL DE DOIS ESTÁGIOS
Filtrar por regras e depois ranquear
A arquitetura MVP do roteiro é um funil de dois estágios. O primeiro gera candidatos por filtragem de eventos baseada em regras, como a localização, e reduz o conjunto de milhões de eventos para centenas. O segundo é o ranking, um classificador binário pointwise que pontua os pares usuário e evento e ordena.
O app pede ao serviço de recomendação a lista para o usuário: entra o identificador do usuário e sai uma lista ordenada de eventos com pontuação de relevância.
O serviço aciona o filtro de candidatos, que consulta o catálogo de eventos aplicando regras baseadas em atributos como a localização.
A filtragem reduz o conjunto de milhões de eventos para centenas.
Para pontuar cada par, o ranker lê as features no armazenamento online, alimentado pelo processamento em lote das features estáticas e pelo fluxo das dinâmicas.
O ranker calcula a pontuação dos pares usuário e evento com um classificador binário pointwise e ordena.
A lista ordenada volta ao serviço e ao app do usuário.
05 · MODELO E TREINO
GBDT de linha de base, rede neural como melhoria
| Modelo | O que o roteiro diz |
|---|---|
| GBDT | Bom para dados estruturados, mas não para aprendizado contínuo |
| Rede neural | Aprendizado contínuo, expressiva e com relações não lineares |
O roteiro sugere começar com GBDT como linha de base e testar a rede neural como melhoria, e considera ambas boas opções.
O dataset tem uma linha por par usuário e evento, com as features calculadas e rótulo positivo se houve registro e negativo se não. O roteiro cita o desbalanceamento de classes e aponta a perda focal ou a perda balanceada por classe como saída.
O app registra as interações entre usuário e evento num registro de eventos.
O processo de montagem lê as interações e o catálogo de eventos e junta perfil, histórico e amizades do usuário.
Para cada par usuário e evento, calcula as features e grava o exemplo com rótulo positivo se houve registro e negativo se não.
O treino lê o dataset; o roteiro sugere começar por GBDT e experimentar rede neural.
O modelo treinado é guardado e fica disponível para o ranker usar no serving.
06 · MÉTRICAS
Como saber se funcionou
| Tipo | Métricas citadas |
|---|---|
| Offline | Precisão e revocação em k, que não consideram a qualidade do ranking; mAP, porque o registro é relevância binária |
| Online | CTR, taxa de conversão, taxa de favoritar ou curtir e ganho de receita |
Perguntas frequentes
O que é Recomendação de eventos?
Projeto de entrevista clássico. Pontos centrais: learning to rank, features geo/tempo e cold start de itens efêmeros.
O que o design de Recomendação de eventos cobre?
Ele está organizado nestas seções: O que significa recomendar um evento, Poucos sinais por evento, muita engenharia de features, Quatro grupos de features, Filtrar por regras e depois ranquear, GBDT de linha de base, rede neural como melhoria e Como saber se funcionou.
Quanto tempo leva Recomendação de eventos 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.