Pergunta de entrevista para Engenheiro de Machine Learning

Como você lidaria com o problema de cold start para usuários e itens novos num recomendador?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Trate os dois lados separadamente. Para itens novos, use features de conteúdo (texto, categoria, embeddings derivados do próprio item) para que eles possam ser pontuados antes de existir qualquer interação, e dê a eles orçamento de exploração. Para usuários novos, caia para popularidade ou recomendações por segmento, depois use sinais do início da sessão e migre para sinais colaborativos personalizados quando houver interações suficientes.

Por que os entrevistadores perguntam isso

Cold start é a primeira coisa que quebra filtragem colaborativa pura em produção, então entrevistadores usam isso para ver se você já colocou um recomendador no ar em vez de treinar um em dataset estático. Eles querem o lado do usuário e o lado do item tratados separadamente, uma resposta híbrida de conteúdo mais colaborativo, e algum reconhecimento de exploração, já que um sistema que nunca mostra itens novos nunca aprende sobre eles.

Como estruturar sua resposta

  • Divida o problema no lado do item novo e no lado do usuário novo.
  • Use features de conteúdo para pontuar itens sem histórico de interação.
  • Descreva a escada de fallback para um usuário totalmente novo.
  • Adicione exploração explícita para que itens novos acumulem sinal.

Exemplo de resposta

Exemplo falado, em primeira pessoa

São dois problemas diferentes, então eu trato separadamente. Itens novos são a metade mais fácil: eu uso uma montagem de duas torres em que a torre de item recebe features de conteúdo, ou seja texto do título, categoria, faixa de preço, um embedding da descrição ou da miniatura. Isso significa que um item recém publicado tem um vetor utilizável desde o primeiro minuto, antes de qualquer clique. Usuários novos ganham uma escada. Nada de nada significa popularidade, idealmente popularidade dentro do contexto que eu conheço, como país e dispositivo. Assim que interagem umas duas vezes eu consigo montar uma representação baseada em sessão a partir desses itens, o que na minha experiência vale mais do que qualquer coisa vinda de um questionário de cadastro. Depois, quando cruzam uma contagem de interações, eles migram para o caminho totalmente personalizado. A parte que as pessoas esquecem é exploração. Um ranker puramente de explotação nunca mostra um item novo, então ele nunca ganha impressões, então nunca ganha sinal, e o catálogo silenciosamente se cristaliza. Eu reservo um espaço no feed para um candidato escolhido por uma regra tipo upper confidence bound, e acompanho cobertura de catálogo como métrica de verdade ao lado da taxa de clique.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você avaliaria um recomendador offline antes de ele ir ao ar?
  • O que é viés de popularidade e como ele se agrava com o tempo?
  • Como você decidiria quanto tráfego gastar em exploração?

Mais perguntas para Engenheiro de Machine Learning

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot