No mundo digital rico em conteúdo de hoje, entregar o conteúdo certo para o usuário certo no momento certo é crucial. Baseando-nos em nosso trabalho anterior no pipeline de dados da Momspresso, agora implementamos um poderoso motor de recomendação que personaliza o conteúdo para milhões de usuários da Momspresso. Vamos mergulhar em como construímos esse sistema.
O Desafio#
A Momspresso precisava de um sistema de recomendação que pudesse:
- Processar grandes volumes de dados de interação do usuário
- Gerar recomendações de artigos personalizadas rapidamente
- Atualizar recomendações em tempo real conforme os usuários interagem com o conteúdo
- Escalar para lidar com milhões de usuários e artigos
Nossa Solução: Um Motor de Recomendação Alimentado por Spark#
Projetamos um sistema de recomendação multicomponente que aproveita o pipeline de dados que construímos anteriormente:
1. Scripts de Geração de Dados#
Usando o armazenamento de eventos do nosso pipeline de dados, criamos scripts para gerar o conjunto de treinamento para nosso modelo de recomendação. Isso nos permite usar dados reais de interação do usuário para treinar nosso modelo.
2. Spark ML-lib para Treinamento do Modelo#
Configuramos um sistema baseado em Spark ML-lib para treinamento do modelo. Atualmente, estamos usando filtragem colaborativa, que pode ser treinada rapidamente com apenas 3-4 dias de dados. Isso nos permite atualizar nosso modelo frequentemente, garantindo que nossas recomendações permaneçam relevantes.
3. Serviço Web de Recomendação#
Construímos um serviço web que fornece recomendações de artigos com base nos IDs dos usuários. Para lidar com a alta latência de carregamento do modelo na memória, implementamos uma estratégia de cache usando Redis. Isso garante tempos de resposta rápidos para nossas recomendações.
4. Serviço de Exclusão de Recomendação#
Para manter as recomendações atualizadas, implementamos um serviço que remove artigos visualizados das recomendações de um usuário. Este serviço se conecta ao Kafka e escuta eventos de visualização, atualizando as recomendações em tempo real.
Principais Características do Nosso Motor de Recomendação#
Personalização: Ao usar filtragem colaborativa, podemos fornecer recomendações personalizadas com base nos comportamentos de usuários similares.
Atualizações em Tempo Real: Nosso sistema atualiza as recomendações conforme os usuários interagem com o conteúdo, garantindo relevância.
Escalabilidade: O uso de Spark e Redis permite que nosso sistema lide eficientemente com grandes volumes de dados e usuários.
Flexibilidade: Nosso design modular nos permite trocar facilmente o algoritmo de recomendação ou adicionar novos recursos no futuro.
Implementação e Resultados#
A integração do motor de recomendação com a plataforma da Momspresso foi simples. Fizemos uma pequena alteração de configuração no Nginx para usar nosso novo serviço web de recomendação como a API para um dos feeds no site de produção.
Os resultados iniciais têm sido promissores:
- Aumento do Engajamento: Os usuários estão passando mais tempo na plataforma, lendo mais artigos por sessão.
- Descoberta Aprimorada: Os usuários estão encontrando e se envolvendo com uma variedade maior de conteúdo.
- Satisfação do Usuário Aprimorada: O feedback inicial sugere que os usuários consideram as recomendações personalizadas valiosas.
Olhando para o Futuro#
À medida que continuamos a refinar nosso motor de recomendação, estamos empolgados com várias melhorias futuras:
- Abordagem Multi-modelo: Implementar diferentes modelos de recomendação para diferentes tipos de conteúdo ou segmentos de usuários.
- Filtragem Baseada em Conteúdo: Incorporar características dos artigos para melhorar as recomendações, especialmente para conteúdo novo ou de nicho.
- Framework de Testes A/B: Construir um sistema para testar facilmente diferentes estratégias de recomendação.
Ao melhorar continuamente nosso motor de recomendação, estamos ajudando a Momspresso a entregar mais valor aos seus usuários, mantendo-os engajados e voltando para mais conteúdo personalizado.
Fique atento ao nosso próximo post, onde discutiremos como estamos usando o pipeline de dados e o motor de recomendação para obter insights acionáveis para a estratégia de conteúdo da Momspresso!