Design clássico · Pleno
Recomendação de jogos
Projeto de entrevista clássico. Pontos centrais: filtragem colaborativa e feedback implícito.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: filtragem colaborativa e feedback implícito. O roteiro de entrevista parte de um catálogo de jogos e de usuários com histórico de interação, no contexto de desenho de sistemas de ML. A meta de negócio sugerida é aumentar o engajamento (jogar, curtir, clicar, compartilhar) e, talvez, a compra, com recomendação personalizada para cada usuário.
01 · CONTEXTO E OBJETIVO
O que significa recomendar um jogo
O roteiro de entrevista parte de um catálogo de jogos e de usuários com histórico de interação, no contexto de desenho de sistemas de ML. A meta de negócio sugerida é aumentar o engajamento (jogar, curtir, clicar, compartilhar) e, talvez, a compra, com recomendação personalizada para cada usuário. Formulado como problema de ML, a entrada é o usuário e a saída é uma lista ordenada de jogos com uma pontuação de relevância.
Para dimensionar, o roteiro assume 100 milhões de jogos e 100 milhões de usuários ativos por dia, e sugere uma latência de 200 ms.
| Objetivo a maximizar | O que o roteiro aponta |
|---|---|
| Número de cliques | Favorece clickbait |
| Jogos, sessões ou níveis concluídos | Viés para jogos mais curtos |
| Itens relevantes (proxy por reações implícitas e explícitas) | Mais controle sobre os sinais, sem esses problemas |
O roteiro pede que a relevância seja definida de forma explícita: por exemplo, uma curtida já conta como relevante, ou jogar metade do jogo.
02 · DADOS E FEEDBACK IMPLÍCITO
Do que o modelo aprende
Os dados vêm de perfil do usuário, metadados dos jogos e das interações entre usuário e jogo (pipelines de dados). As interações históricas incluem jogar, comprar, curtir e buscar, e o roteiro lista também a impressão como tipo de interação.
O feedback explícito é o que o usuário declara, como uma pesquisa; o implícito vem do registro de comportamento. O roteiro rotula um par usuário e jogo como positivo quando o usuário curtiu de forma explícita ou interagiu por pelo menos um tempo mínimo, por exemplo metade do jogo, e amostra os negativos da distribuição de fundo.
Na representação das entradas, ids categóricos como jogo, usuário, idioma e cidade viram embeddings aprendidos durante o treino, e título e descrição podem usar embeddings de um modelo de linguagem pré-treinado.
03 · O FUNIL
Três estágios para caber na latência
| Abordagem | Vantagem | Limite |
|---|---|---|
| Filtragem colaborativa | Não exige conhecimento de domínio | Cold start de usuário e de item |
| Baseada em conteúdo | Recomenda itens novos, sem cold start de item | Cold start de usuário novo; exige conhecimento de domínio |
A escolha do roteiro é um híbrido sequencial, organizado como funil de três estágios (geração de candidatos, ranking e re-ranking) para atender aos requisitos de latência. A filtragem colaborativa entra na geração de candidatos e a baseada em conteúdo, no ranking.
O app do jogador pede ao serviço de recomendação a lista para o usuário.
O serviço aciona os módulos de geração de candidatos: um por relevância (filtragem colaborativa), um por popularidade e um por tendência.
Nessa etapa um modelo leve reduz um catálogo de milhões a milhares de candidatos.
O módulo colaborativo busca no índice de embeddings os jogos mais próximos do usuário, um problema de vizinho mais próximo aproximado.
O ranker, com um modelo mais poderoso, foca em precisão e roda só sobre o subconjunto de candidatos.
O re-ranking aplica critérios de negócio, como filtros e promoção, e a lista final volta ao app.
04 · CANDIDATOS E RANKING
Duas torres para gerar, atributos para ordenar
| Critério | Fatoração de matrizes | Rede de duas torres |
|---|---|---|
| Vantagem | Treino e serving rápidos (embeddings estáticos) | Aceita atributos do usuário e trata usuários novos |
| Limite | Só usa interações usuário e item; cold start de usuário novo | Treino caro |
O roteiro escolhe a rede de duas torres: uma torre codifica o usuário, outra codifica o jogo, e a similaridade entre os dois vetores é a pontuação de relevância. O treino minimiza a entropia cruzada sobre cada exemplo positivo e sobre negativos amostrados.
No ranking o roteiro prioriza precisão sobre eficiência e usa um modelo baseado nos atributos do item, com opções como uma rede feed-forward com regressão logística ou uma Deep Cross Network.
O app registra as interações do jogador (jogar, comprar, curtir, buscar) numa fila de eventos.
Um processo de rotulagem monta pares usuário e jogo, marca positivos e amostra negativos, e grava o dataset.
O treino das duas torres lê o dataset e minimiza a entropia cruzada.
No diagrama, o treino publica os embeddings gerados no índice que o serviço de recomendação consulta.
O roteiro pede que o modelo possa ser afinado com dados novos; no diagrama, é o treino voltando a ler o dataset atualizado.
05 · COLD START E VIESES
O que quebra primeiro
Para usuários novos, a rede de duas torres ainda aceita o perfil do usuário, então há o que codificar mesmo sem interação. Para jogos novos, o roteiro sugere recomendá-los a usuários aleatórios, coletar dados e afinar o modelo com eles.
Entre as extensões, o roteiro lista o dilema entre exploração e aproveitamento, ligado ao bandit multi-armado, e o viés de posição e o viés de seleção, ambos com detecção e correção.
06 · MÉTRICAS E ENTREGA
Como saber se funcionou
| Tipo | Métricas citadas |
|---|---|
| Offline | Precisão@k, mAP e diversidade |
| Online | CTR, jogos concluídos, compras, tempo total de jogo, gasto total e feedback do usuário |
No re-ranking, o roteiro aplica critérios de negócio adicionais, como filtro por idade, filtro por região, promoção de conteúdo novo e deduplicação.
Perguntas frequentes
O que é Recomendação de jogos?
Projeto de entrevista clássico. Pontos centrais: filtragem colaborativa e feedback implícito.
O que o design de Recomendação de jogos cobre?
Ele está organizado nestas seções: O que significa recomendar um jogo, Do que o modelo aprende, Três estágios para caber na latência, Duas torres para gerar, atributos para ordenar, O que quebra primeiro e Como saber se funcionou.
Quanto tempo leva Recomendação de jogos 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.