Usando os dados para transformar a Globo.com

Nós da Globo.com lidamos com os dados de nossos usuários com muito cuidado e segurança. Todo o processo de captura e processamento precisa ser cuidadosamente anonimizado para garantir que nossos usuários não sejam identificados.

Atualmente temos aproximadamente 100 milhões de usuários acessando nossos portais e precisamos dar uma experiência única para cada um deles.

Vamos explicar aqui um pouco de como é feito o processamento e por onde esse dado passa para que consigamos melhorar a sua experiência de navegação.

Onde tudo começa

Todo dado coletado é processado por nosso event tracker Horizon, estocado no Kafka e depois salvo no nosso HDFS (Hadoop Distributed File System) utilizando streaming ou batchs do Spark. Esse dado já é guardado com um identificador que não permite acesso aos dados pessoais do usuário. Com isso, podemos processar dados somente de navegação.

Kafka

O Kafka é uma plataforma de streaming distribuída que podemos utilizar como barramento.

Existem produtores (no caso o Horizon) e consumidores (Jobs Spark) que conseguem se comunicar e enfileirar mensagens. Isso serve para:

  • aumentar a resiliência, evitando perdas de mensagens;
  • backpressure, para que as mensagens possam ser consumidas com calma.

O Kafka é dividido em tópicos e esses tópicos podem ter várias partições para paralelizar a leitura dos dados.

Somente de dados de navegação temos 4 bilhões de sinais diários enviados para o Kafka. Monitoramos toda a navegação para aprimorar a experiência e entender o gosto de todos os usuários.

Spark

O Spark é um framework de processamento paralelo que possui elementos para processamento de:

  • Dados genéricos com uma linguagem SQL (Spark SQL)
  • Streaming de dados (Structured Streaming)
  • Grafos (GraphX);
  • Machine Learning (MLlib)

O framework otimiza consultas simples em SQL em um grande volume de dados através da sua estrutura de driver e executores. Você pode controlar a quantidade de executores e, com isso, o grau de paralelismo e recursos utilizados.

Normalmente tentamos alinhar o número de executores com o número de partições de um tópico no Kafka para otimizar a leitura em streamings.

HDFS

O HDFS é um sistema de arquivos distribuído visando resiliência. Ele é parte do ecossistema Hadoop e é composto por:

  • datanodes, que guardam o dado;
  • namenodes, que conhecem onde os dados estão e metadados sobre eles.

Sempre que um dado é salvo no HDFS, o namenode orquestra uma replicação para manter réplicas do arquivo. Um número comumente utilizado de réplicas é 3, ou seja, cada 1 Mega colocado no cluster ocupa 3 Megas.

Esse formato de replicação e armazenamento é tão seguro que permite o uso até máquinas sucateadas para serem datanodes.

O que é feito com esses dados

Depois que o dado chega ao cluster HDFS, ou até enquanto está no Kafka, podemos consumir de diversas formas para gerar mais riqueza na navegação de usuário. Algumas coisas que fazemos atualmente envolvendo Machine Learning para melhorar nossa entrega de conteúdo são:

  • Classificar usuários em segmentos dado sua navegação. Alguns exemplos de segmentos são: fãs do BBB, amantes de carros, etc;
  • Recomendar matérias e vídeos com base nas preferências de cada usuário. Nosso feed das páginas iniciais é personalizado e customizado por produto;
  • Melhorar o título das matérias dependendo do que os usuários mais querem ler. Ajudamos o editor a encontrar títulos mais pertinentes;
  • Identificar automaticamente assunto das matérias e classificar em entidades semânticas. Uma matéria pode falar do Luciano Huck ou do Bolsonaro;
  • Identificação de famosos em vídeos. Podemos saber o trecho em que cada artista apareceu em uma série ou novela.

Isso tudo é planejado com muito estudo e análise dos nossos cientistas de dados, alinhado com o desenvolvimento de produto.

Como transformamos a experiência do usuário

Através de testes A/B conseguimos identificar a melhor experiência e manter nosso desenvolvimento sempre orientado a dados. Quem disse que testes A/B servem somente para mudança de layout em páginas web? Alguns exemplos do que é feito orientado a dados e com testes A/B dentro da área de Big Data são:

  • Testamos vários algoritmos de recomendação vendo sempre o que se comporta melhor para um determinado produto;
  • Usamos a plataforma de A/B para treinar algoritmos de aprendizado por reforço e encontrar o melhor título de matéria;
  • Fazemos testes para encontrar o melhor segmento ou a melhor forma de informar que um usuário está em um segmento.

A metodologia orientada a dados alinha muito bem com metodologias como OKRs. Estamos tão alinhados com isso que temos nossa própria plataforma de testes A/B customizada para nossas necessidades e controle de métricas em todos os lugares usando: Superset, Grafana, ou o que for melhor para visualizar nossos KPIs.

4 comentários em “Usando os dados para transformar a Globo.com

  1. Diogo, a homepage é filtrada pelos interesses do usuário apenas se ele faz o login? Esse filtro ocorre desde a homepage do Globo.com até as páginas iniciais internas do G1, por exemplo?

    Curtido por 1 pessoa

    1. A recomendação pode ser colocada aonde os produtos quiserem porque fornecemos ela como um serviço. Qualquer lugar que precise de personalização pode adicionar a recomendação e escolher os algoritmos que vão compor a entrega de conteúdo.

      Curtir

      1. Diogo, obrigado pela resposta! Isso é restrito ao conteúdo comercial ou eu logando terei uma seleção diferente de notícias na minha homepage?

        Curtir

Deixe um comentário