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