O Algoritmo de Recomendação do Twitter é um conjunto de serviços e trabalhos responsáveis por fornecer feeds de Tweets e outros conteúdos em todas as superfícies de produtos do Twitter (por exemplo, For You Timeline, Search, Explore, Notifications). Para obter uma introdução sobre como o algoritmo funciona, consulte nosso blog de engenharia.
As superfícies de produtos no Twitter são construídas em um conjunto compartilhado de dados, modelos e estruturas de software. Os componentes compartilhados incluídos neste repositório estão listados abaixo:
Tipo | Componente | Descrição |
---|---|---|
Dados | tweetypie | Serviço principal do Tweet que lida com a leitura e gravação de dados do Tweet. |
ações de usuário unificadas | Fluxo em tempo real de ações do usuário no Twitter. | |
serviço de sinal do usuário | Plataforma centralizada para recuperar sinais de usuários explícitos (por exemplo, curtidas, respostas) e implícitos (por exemplo, visitas a perfis, cliques em tweets). | |
Modelo | SimClusters | Detecção de comunidades e incorporações esparsas nessas comunidades. |
TwHIN | Incorporações densas de gráficos de conhecimento para usuários e tweets. | |
modelos de confiança e segurança | Modelos para detecção de NSFW ou conteúdo abusivo. | |
gráfico real | Modelo para prever a probabilidade de um usuário do Twitter interagir com outro usuário. | |
tweepcred | Algoritmo Page-Rank para calcular a reputação do usuário do Twitter. | |
injetor recos | Processador de eventos de streaming para construir fluxos de entrada para serviços baseados em GraphJet. | |
serviço de recurso gráfico | Fornece recursos de gráfico para um par direcionado de usuários (por exemplo, quantos seguidores do Usuário A curtiram os Tweets do Usuário B). | |
tópico-prova social | Identifica tópicos relacionados a Tweets individuais. | |
artilheiro da representação | Calcule pontuações entre pares de entidades (usuários, tweets, etc.) usando similaridade de incorporação. | |
Estrutura de software | navegar | Modelo de aprendizado de máquina de alto desempenho escrito em Rust. |
misturador de produto | Estrutura de software para construção de feeds de conteúdo. | |
estrutura de agregação de cronogramas | Framework para geração de funcionalidades agregadas em lote ou em tempo real. | |
gerente de representação | Serviço para recuperar embeddings (ou seja, SimClusers e TwHIN). | |
twml | Estrutura legada de aprendizado de máquina criada no TensorFlow v1. |
As superfícies de produtos atualmente incluídas neste repositório são a linha do tempo para você e as notificações recomendadas.
O diagrama abaixo ilustra como os principais serviços e empregos se interconectam para construir um cronograma para você.
Os componentes principais da linha do tempo For You incluídos neste repositório estão listados abaixo:
Tipo | Componente | Descrição |
---|---|---|
Fonte Candidata | índice de pesquisa | Encontre e classifique tweets na rede. Cerca de 50% dos Tweets vêm desta fonte candidata. |
misturador cr | Camada de coordenação para buscar candidatos a tweets fora da rede a partir de serviços de computação subjacentes. | |
gráfico de entidade de tweet do usuário (UTEG) | Mantém um gráfico de interação de usuário para tweetar na memória e encontra candidatos com base nas travessias desse gráfico. Isso é baseado na estrutura GraphJet. Vários outros recursos baseados em GraphJet e fontes candidatas estão localizados aqui. | |
serviço de recomendação de seguimento (FRS) | Fornece aos usuários recomendações de contas a serem seguidas e tweets dessas contas. | |
Classificação | classificador leve | Modelo Light Ranker usado pelo índice de pesquisa (Earlybird) para classificar Tweets. |
ranker pesado | Rede neural para classificação de tweets candidatos. Um dos principais sinais usados para selecionar a linha do tempo dos Tweets é a publicação do candidato. | |
Mistura e filtragem de tweets | batedeira | Principal serviço usado para construir e servir a Home Timeline. Construído em misturador de produtos. |
filtros de visibilidade | Responsável por filtrar o conteúdo do Twitter para apoiar a conformidade legal, melhorar a qualidade do produto, aumentar a confiança do usuário, proteger a receita por meio do uso de filtragem rígida, tratamentos de produtos visíveis e downranking grosseiro. | |
timelineranker | Serviço legado que fornece tweets com pontuação de relevância do Earlybird Search Index e do serviço UTEG. |
Os principais componentes das notificações recomendadas incluídas neste repositório estão listados abaixo:
Tipo | Componente | Descrição |
---|---|---|
Serviço | serviço push | Principal serviço de recomendação do Twitter usado para apresentar recomendações aos nossos usuários por meio de notificações. |
Classificação | pushservice-light-ranker | Modelo Light Ranker usado pelo pushservice para classificar Tweets. Faz a ponte entre a geração de candidatos e a classificação pesada, pré-selecionando candidatos altamente relevantes do enorme conjunto inicial de candidatos. |
ranker pesado pushservice | Modelo de aprendizagem multitarefa para prever as probabilidades de os usuários-alvo abrirem e interagirem com as notificações enviadas. |
Incluímos arquivos Bazel BUILD para a maioria dos componentes, mas não um arquivo BUILD ou WORKSPACE de nível superior. Planejamos adicionar um sistema de construção e teste mais completo no futuro.
Convidamos a comunidade a enviar problemas do GitHub e solicitar sugestões sobre como melhorar o algoritmo de recomendação. Estamos trabalhando em ferramentas para gerenciar essas sugestões e sincronizar as alterações com nosso repositório interno. Quaisquer preocupações ou problemas de segurança devem ser encaminhados para nosso programa oficial de recompensas de bugs através do HackerOne. Esperamos beneficiar da inteligência colectiva e da experiência da comunidade global para nos ajudar a identificar problemas e sugerir melhorias, conduzindo, em última análise, a um Twitter melhor.
Leia nosso blog sobre a iniciativa de código aberto aqui.