Der Empfehlungsalgorithmus von Twitter besteht aus einer Reihe von Diensten und Jobs, die für die Bereitstellung von Feeds von Tweets und anderen Inhalten auf allen Twitter-Produktoberflächen (z. B. For You Timeline, Search, Explore, Notifications) verantwortlich sind. Eine Einführung in die Funktionsweise des Algorithmus finden Sie in unserem Engineering-Blog.
Produktoberflächen bei Twitter basieren auf einem gemeinsamen Satz von Daten, Modellen und Software-Frameworks. Die in diesem Repository enthaltenen gemeinsam genutzten Komponenten sind unten aufgeführt:
Typ | Komponente | Beschreibung |
---|---|---|
Daten | Tweetypie | Kern-Tweet-Dienst, der das Lesen und Schreiben von Tweet-Daten übernimmt. |
einheitliche Benutzeraktionen | Echtzeit-Stream von Benutzeraktionen auf Twitter. | |
Benutzersignaldienst | Zentralisierte Plattform zum Abrufen expliziter (z. B. Likes, Antworten) und impliziter (z. B. Profilbesuche, Tweet-Klicks) Benutzersignale. | |
Modell | SimCluster | Community-Erkennung und spärliche Einbettung in diese Communities. |
ZWEI | Dichte Einbettungen von Wissensgraphen für Benutzer und Tweets. | |
Vertrauens- und Sicherheitsmodelle | Modelle zur Erkennung von NSFW oder missbräuchlichen Inhalten. | |
Real-Graph | Modell zur Vorhersage der Wahrscheinlichkeit, dass ein Twitter-Benutzer mit einem anderen Benutzer interagiert. | |
tweepcred | Page-Rank-Algorithmus zur Berechnung der Reputation von Twitter-Benutzern. | |
Recos-Injektor | Streaming-Ereignisprozessor zum Erstellen von Eingabeströmen für GraphJet-basierte Dienste. | |
Graph-Feature-Service | Stellt Diagrammfunktionen für ein bestimmtes Benutzerpaar bereit (z. B. wie viele Benutzer A den Tweets von Benutzer B mit „Gefällt mir“ folgen). | |
Thema-Social-Proof | Identifiziert Themen im Zusammenhang mit einzelnen Tweets. | |
Repräsentations-Torschütze | Berechnen Sie Scores zwischen Entitätspaaren (Benutzer, Tweets usw.) mithilfe der Einbettungsähnlichkeit. | |
Software-Framework | Navi | Hochleistungsfähiges Modell für maschinelles Lernen, geschrieben in Rust. |
Produktmischer | Software-Framework zum Erstellen von Inhalts-Feeds. | |
Timelines-Aggregation-Framework | Framework zum Generieren aggregierter Features im Batch oder in Echtzeit. | |
Vertretungsleiter | Dienst zum Abrufen von Einbettungen (z. B. SimClusers und TwHIN). | |
twml | Älteres Framework für maschinelles Lernen, das auf TensorFlow v1 basiert. |
Die derzeit in diesem Repository enthaltenen Produktoberflächen sind die „Für Sie“-Zeitleiste und empfohlene Benachrichtigungen.
Das folgende Diagramm veranschaulicht, wie wichtige Dienste und Jobs miteinander verbunden sind, um eine „Für Sie“-Zeitleiste zu erstellen.
Die Kernkomponenten der in diesem Repository enthaltenen For You Timeline sind unten aufgeführt:
Typ | Komponente | Beschreibung |
---|---|---|
Kandidatenquelle | Suchindex | Finden und bewerten Sie Tweets im Netzwerk. Etwa 50 % der Tweets stammen von dieser Kandidatenquelle. |
Cr-Mischer | Koordinierungsschicht zum Abrufen von Tweet-Kandidaten außerhalb des Netzwerks von zugrunde liegenden Rechendiensten. | |
User-Tweet-Entity-Graph (UTEG) | Verwaltet im Speicher ein Benutzer-Tweet-Interaktionsdiagramm und findet Kandidaten basierend auf Durchläufen dieses Diagramms. Dies basiert auf dem GraphJet-Framework. Mehrere andere auf GraphJet basierende Funktionen und mögliche Quellen finden Sie hier. | |
Follow-Recommendation-Service (FRS) | Bietet Benutzern Empfehlungen für Konten, denen sie folgen können, und Tweets von diesen Konten. | |
Rang | Lichtranker | Light-Ranker-Modell, das vom Suchindex (Earlybird) zum Ranking von Tweets verwendet wird. |
Heavy-Ranker | Neuronales Netzwerk zur Einstufung von Kandidaten-Tweets. Eines der Hauptsignale für die Timeline-Auswahl von Tweets nach Kandidatensuche. | |
Mischen und Filtern von Tweets | Heimmixer | Hauptdienst, der zum Erstellen und Bereitstellen der Home-Timeline verwendet wird. Aufgebauter Produktmischer. |
Sichtbarkeitsfilter | Verantwortlich für die Filterung von Twitter-Inhalten zur Unterstützung der Einhaltung gesetzlicher Vorschriften, zur Verbesserung der Produktqualität, zur Stärkung des Benutzervertrauens und zum Schutz der Einnahmen durch den Einsatz von Hartfilterung, sichtbaren Produktbehandlungen und grobkörnigem Downranking. | |
timelineranker | Legacy-Dienst, der nach Relevanz bewertete Tweets aus dem Earlybird Search Index und dem UTEG-Dienst bereitstellt. |
Die Kernkomponenten der in diesem Repository enthaltenen empfohlenen Benachrichtigungen sind unten aufgeführt:
Typ | Komponente | Beschreibung |
---|---|---|
Service | Pushservice | Hauptempfehlungsdienst bei Twitter, der unseren Benutzern Empfehlungen über Benachrichtigungen anzeigt. |
Rang | pushservice-light-ranker | Light-Ranker-Modell, das vom Pushservice zum Ranking von Tweets verwendet wird. Überbrückt die Kandidatengenerierung und hohe Rankings durch eine Vorauswahl hochrelevanter Kandidaten aus dem anfänglichen riesigen Kandidatenpool. |
pushservice-heavy-ranker | Multitasking-Lernmodell zur Vorhersage der Wahrscheinlichkeiten, mit denen die Zielbenutzer die gesendeten Benachrichtigungen öffnen und mit ihnen interagieren. |
Wir schließen Bazel BUILD-Dateien für die meisten Komponenten ein, jedoch keine BUILD- oder WORKSPACE-Datei der obersten Ebene. Wir planen, in Zukunft ein umfassenderes Build- und Testsystem hinzuzufügen.
Wir laden die Community ein, GitHub-Probleme einzureichen und Anfragen für Vorschläge zur Verbesserung des Empfehlungsalgorithmus zu stellen. Wir arbeiten an Tools, um diese Vorschläge zu verwalten und Änderungen mit unserem internen Repository zu synchronisieren. Alle Sicherheitsbedenken oder -probleme sollten über HackerOne an unser offizielles Bug-Bounty-Programm weitergeleitet werden. Wir hoffen, von der kollektiven Intelligenz und dem Fachwissen der globalen Gemeinschaft zu profitieren, die uns dabei hilft, Probleme zu identifizieren und Verbesserungen vorzuschlagen, was letztendlich zu einem besseren Twitter führt.
Lesen Sie hier unseren Blog zur Open-Source-Initiative.