Twitter liberou o código do feed de mensagens recomendadas

Algoritmo de recomendação do Twitter

Algoritmo de recomendação do Twitter

Alguns dias atrás, veio a notícia de que O Twitter liberou o código-fonte para todo o “Algoritmo de recomendação”, que inclui serviços e drivers usados ​​para criar um feed de mensagem recomendado que é exibido para o usuário na linha do tempo de inicialização.

Além de dar transparência e permitir auditoria independente dos algoritmos utilizados, O Twitter expressou sua disposição em aceitar pull requests da comunidade com mudanças que melhoram os algoritmos que, após revisão, podem ser transferidos para a base de código de trabalho do Twitter.

No Twitter 2.0, acreditamos que temos a responsabilidade, como praça pública na Internet, de tornar nossa plataforma transparente. Portanto, hoje estamos dando o primeiro passo em uma nova era de transparência e abrindo muito do nosso código-fonte para a comunidade global.

Sobre o código lançado, é mencionado que a criação de um feed de recomendações é dividida em três etapas Principal:

  • Extraia os melhores tweets de diferentes fontes (fornecimento candidato). Nessa etapa, são utilizadas como fontes: o sistema de indexação do índice de busca, que abrange mensagens de pessoas que possuem assinatura (In-Network); uma camada cr-mixer para extrair mensagens de vários serviços auxiliares cobrindo mensagens de pessoas que não são assinantes (fora da rede); o componente user-tweet-entity-graph (UTEG) para extrair mensagens com base no gráfico de interação do usuário atual; Serviço de Rastreamento de Recomendações (FRS) para gerar recomendações com base na atividade de usuários rastreados. No feed, cerca de metade das postagens vem de pessoas que possuem assinatura.
  • Classificação dos tweets selecionados usando um modelo de aprendizado de máquina. Dois sistemas de classificação são usados: um modelo de classificação leve que usa um índice de pesquisa e uma rede neural de classificação pesada para selecionar os candidatos mais relevantes.
  • Aplicação de filtros e heurísticas para descartar mensagens bloqueado, obsceno ou já visto. O componente home-mixer é usado para formar a alimentação e o sistema de filtro de visibilidade é usado para filtrar. Além disso, o antigo sistema timelineranker, usado para extrair tweets do índice de pesquisa, foi codificado.

A base das recomendações do Twitter é um conjunto de modelos e recursos principais que extraem informações latentes de Tweets, usuários e dados de engajamento. Esses modelos visam responder questões importantes sobre a rede Twitter, como "Qual a probabilidade de você interagir com outro usuário no futuro?" ou “Quais são as comunidades no Twitter e quais são os Tweets em alta dentro delas?” Responder a essas perguntas com precisão permite que o Twitter ofereça recomendações mais relevantes.

Além disso, o código dos componentes auxiliares também é destacado que também está aberto:

  • simclusters-ann: Usado para definir comunidades com interesses semelhantes.
  • GÊMEO: tem a função de criar gráficos de conhecimento sobre usuários e tweets (assinantes, tweets selecionados pelo usuário, cliques em anúncios).
  • modelos de confiança e segurança: modelos para identificar conteúdos impróprios, obscenos e ofensivos.
  • gráfico real: é um modelo para prever interações entre diferentes usuários.
  • tweepcred : um algoritmo para calcular a reputação de um usuário com base nos links para suas postagens (Page-Rank).
    injetor recos: é um controlador de fluxo de eventos que gera entradas para serviços GraphJet.
  • gráfico-recurso-serviço: funções gráficas para estimar a interação de dois usuários, como o quanto o usuário "A" aprecia os tweets do usuário "B".
  • enviar: é um servidor de alto desempenho para processamento de modelos de aprendizado de máquina (escrito em Rust).
  • misturador de produtos: gerador de feeds com conteúdo de diferentes fontes.
  • twml: é uma antiga estrutura de aprendizado de máquina (fork do TensorFlow v1).

Cabe mencionar que a fonte está aberta sob a licença AGPLv3. A implementação utilizou as linguagens de programação Scala (53,8%), Java (29,7%), Starlark (6,3%), Python (4,7%), C++ (2,4%) e Rust (1,5%).

O código associado aos modelos de aprendizado de máquina usados ​​no Twitter é publicado em um repositório separado (os próprios modelos não são publicados por motivos de segurança e privacidade). Os componentes para geração de recomendações de publicidade também permanecem inéditos.

Se você interessado em poder saber um pouco mais sobre o assunto, você pode verificar os detalhes no link a seguir