Twitter hat ziemlich detailliert dargelegt, wie der Empfehlungsalgorithmus funktionier (https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm). Das wollen wir im Folgenden analysieren und überlegen, wie sich dieses Wissen nutzen lässt.
“Hacking” mit ChatGPT
Aber zunächst fragen wir einfach ChatGPT, wie sich mit den bereitgestellten Informationen die Reichweite erhöhen lässt:
Die verlinkte Internetseite beschreibt die Empfehlungs-Algorithmen von Twitter, die dazu beitragen sollen, dass Nutzer auf Twitter Inhalte finden, die für sie am relevantesten sind. Obwohl die Informationen auf der Seite nicht direkt darauf abzielen, die Reichweite eines einzelnen Benutzers zu erhöhen, gibt es einige Schlussfolgerungen, die gezogen werden können, um Ihre Twitter-Reichweite zu verbessern:
1. Erstellen Sie relevante Inhalte: Stellen Sie sicher, dass Ihre Tweets interessant und relevant für Ihre Zielgruppe sind. Die Empfehlungs-Algorithmen von Twitter berücksichtigen die Relevanz der Inhalte, um diese den Nutzern zu empfehlen.
2. Verwenden Sie relevante Hashtags: Hashtags helfen anderen Nutzern, Ihre Tweets zu finden. Verwenden Sie relevante Hashtags, die zu Ihrem Tweet und Ihrer Zielgruppe passen.
3. Bauen Sie eine engagierte Community auf: Interagieren Sie mit anderen Nutzern, antworten Sie auf ihre Tweets und stellen Sie Fragen. Wenn Ihre Tweets engagiert und relevant sind, besteht eine höhere Wahrscheinlichkeit, dass andere Nutzer Ihre Inhalte teilen oder retweeten, was Ihre Reichweite erhöhen kann.
4. Seien Sie konsistent: Tweeten Sie regelmäßig und halten Sie Ihren Content-Stil und Ihre Qualität konsistent. Das wird Ihnen helfen, Ihre Zielgruppe zu halten und Ihre Reichweite zu erhöhen.
Indem Sie diese Prinzipien anwenden, können Sie Ihre Chancen erhöhen, dass Ihre Tweets von anderen Nutzern gesehen und geteilt werden, was zu einer höheren Reichweite führen kann.
Relevanz, Hashtags, Community und Konsistenz: Das ist ein bisschen dürftig. Schauen wir uns den Algorithmus also etwas genauer an. Zunächst…
Ein Deep-Dive
Welche Tweets euch in dem “Für-Dich”-Tab angezeigt werden, wird in drei Schritten ermittelt. Zunächst werden mögliche Tweets aus der Gesamtheit der Tweets ausgewählt, dann werden sie in eine Rangfolge gebracht und schlussendlich werden Filter angewandt.
Candidate Tweets
Zunächst werden 1500 Tweets ausgewählt, die für euch besonders interessant sein könnten. Davon kommt die eine Hälfte aus eurem Netzwerk und die andere von Accounts, denen ihr nicht folgt. Betrachten wir zunächst die Tweets aus eurem Netzwerk.
In-Network-Source
Der Twitter-Algorithmus kombiniert unterschiedliche Verfahren, was Twitter RealGraph nennt. Alles fängt an mit einer logistischen Regression.
Logistische Regression
Alle Accounts, denen du folgst werden durch eine logistische Regression in relevant und nicht relevant unterteilt. Wer sich mit der logistischen Regression beschäftigen möchte, hier ein Erklärvideo:
Wer mit dem Algorithmus vertraut ist, wird sich vielleicht etwas wundern. Die logistische Regression ist ein Klassifizierungsalgorithmus. D. h., man bekommt keine Werte, wie relevant etwas ist sondern eine binäre Antwort (es sei denn, man erweitert den Algrithmus auf mehrere Klassen, was aber unter Datenwissenschaftlern nicht als State-of-the-Art gilt). Was sind also die zwei Klassen, die der Algorithmus versucht vorherzudsagen? Die Antwort gibt Twitter mit Verweis auf den hausinternen Algorithmus RealGrah (https://www.ueo-workshop.com/wp-content/uploads/2014/04/sig-alternate.pdf). Was Twitter da macht ist, ein Netzwerk der Nutzer zu erstellen. Dabei sind zwei Nutzer A und B miteinander verbunden, wenn A B folgt, wenn B im Telefonbuch (!) von A auftaucht oder wenn A auf einen Tweet von B reagiert. Dieses Netzwerk wird jeden Tag neu berechnet. Der Algorithmus wird als klassisches “supervised learning” trainiert, d. h. es werden Daten genommen, wo das echte Ergebnis bereits bekannt ist. Der Algorithmus soll also zum Beispiel auf den Daten von vorgestern errechnen, ob gestern ein Link entstanden ist.
Aber: Diesen Algorithmus benutzt Twitter, um Tweets von Personen anzuzeigen, denen ihr eh folgt. Die binäre Vorhersage “Link oder Kein-Link” hilft daher nicht. Die logistische Regression liefert aber nicht nur das Label “Link ja oder Link nein”. Für jede mögliche Verbindung wird die Wahrscheinlichkeit berechnet, dass sie eintreten könnte. Diese Wahrscheinlichkeitswerte benutzt Twitter dann als Input für einen weiteren Algorithmus, den wir von Google kennen: den PageRank.
Was ist der PageRank?
Der PageRank war Googles Durchbruch, um Suchergebnisse zu ordnen. Die Idee ist an Webseiten einfach zu illustrieren. Über Weblinks sind Seiten mit anderen Verbunden. Wenn wir uns jetzt eine Person vorstellen, die im Web surft und dabei völlig zufällig auf irgendeinen Link auf einer Seite klickt, um zur nächsten zu kommen, dann wird dieser Random Surfer auf manchen Seiten öfter landen als auf anderen. Und zwar nicht nur, weil mehr Seiten auf eine bestimmte Seite verlinken, sondern auch, weil wichtige Seiten (auf die häufig verlinkt wird) einen Link auf diese Seite haben. Das Verfahren nennt man übrigens Random Walk. Der PageRank erfasst also auf eine sehr intelligente Art die Bedeutung einzelner Knoten im Netzwerk. Und das macht sich Twitter in seinem RealGraph zunutze. Basierend auf den Wahrscheinlichkeiten aus der logistischen Regression berechnet Twitter den Pagerank und kann so entscheiden, von welchen Personen euch Inhalte angezeigt werden. Die User, die im RealGraph eine höhere Wahrscheinlichkeit haben, dass ein direkter oder indirekter Link zu euch entsteht bilden euren “Circle of Trust” und werden bevorzugt angezeigt.
It’s interaction, stupid!
Mal von der Mathematik dahinter abgesehen: Der Hauptfaktor, der die Auswahl der Tweets im In-Network (also Leute, denen ihr folgt) bestimmt, ist wie häufig auf Tweets von einem Nutzer reagiert wird. Und zwar durch den PageRank nicht nur von euch selber, sondern auch von allen anderen (mehr Links im RealGraph = höherer PageRank). Ein Account mit großer Reichweite, der noch dazu viele Nutzer dazu bringt, auf seine Tweets zu reagieren, wird also noch viel mehr Leuten angezeigt werden.
Und dieses Prinzip wiederholt sich bei den Tweets, die nicht von Leuten stammen, denen ihr folgt.
Die Out-of-Network-Sources
Die Zuordnung von Tweets von Accounts, denen ihr gar nicht folgt, ist etwas komplizierter für Twitter. Hauptsächlich werden zwei Verfahren angewandt: GraphJet und SimCluster.
GraphJet
Zunächst erstellt Twitter ein weiteres Netzwerk, in dem diesmal Tweets mit Nutzern verbunden werden. Mit einem ähnlichen Verfahren wie oben beschrieben, wird die Wahrscheinlichkeit errechnet, dass ihr auf einen bestimmten Tweet reagiert. Ein großes Problem dabei ist, dass dies in Echtzeit passieren muss und nicht auf täglicher Basis. Dafür verwendet Twitter einen Algorithmus, der SALSA (Stochastic Approach for Link-Structure Analysis) genannt wird (https://www.vldb.org/pvldb/vol9/p1281-sharma.pdf).
Auch hier spielt euer “Circle of Trust” eine große Rolle. Ausgehend von diesen Accounts, die einen hohen PageRank in eurem Netzwerk haben (weil ihr oder Accounts, denen ihr folgt mit den Tweets interagiert), wird jetzt geschaut, mit welchen Tweets sie reagieren. In welcher Rangfolge euch diese dann präsentiert werden, wird wieder über einen Random Walk berechnet, der allerdings zwischen eurem Circle of Trust (Hubs) und den Tweets, mit denen diese interagieren (Authorities) hin und her pendelt. Das bedeutet übersetzt, je mehr Nutzer aus eurem Circle of Trust mit einem Tweet interagieren, um so höher ist die Wahrscheinlichkeit, dass er euch auch angezeigt wird.
SimClusters
Twitter verwendet weitere Algorithmen, um Tweets und Nutzer bestimmten Themen zuzuordnen (https://dl.acm.org/doi/10.1145/3394486.3403370). Dazu werden alle Tweets und Nutzer in 145-tausend “thematische” Gruppen eingeteilt, wobei jedes Element in mehreren Gruppen auftauchen kann. Auch hier ist eine der Hauptschwierigkeiten, dass man einen Algorithmus braucht, der das sehr schnell erledigen kann (der Metropolis-Hastings-Algorithmus). Twitter verwendet hier einen Trick: Alle Verbindungen werden in rechte (ausgehende) und linke (eingehende) Verbindungen unterteilt. Irgendwelche Nutzer liken meine Tweets (also ausgehend) und auch die Tweets von jemand anderen. Dadurch steigt die Wahrscheinlichkeit, dass diese Tweets zum gleichen Thema gehören. Thema darf man sich übrigens nicht semantisch vorstellen. Es werden rein aus der Interaktion im Netzwerk Cluster gebildet und die Anzahl der Cluster ist ein externer Parameter. Das Verfahren ist durchaus ähnlich zum bekannten k-means-clustering, allerdings durch das Sampling über Metropolis-Hastings wesentlich schneller und vor allem kann derselbe Tweet in mehreren Clustern auftauchen.
Wendet man das Verfahren jetzt auf Tweets an, dann kann also zu jedem Tweet, den jemand schreibt eine Gruppenzuordnung gemacht werden. Und jetzt kommt der Trick mit rechts und links: Jeder Tweet, den jemand liest, ist ja schon einer Gruppe zugeordnet. Ich kann also aus den Tweets, die jemand liest, ableiten, für welche Themen er sich interessiert. Dann kann ich die linken (gelesenen) Tweets mit den rechten (geschriebenen) korrelieren und weiß, was ich der Person vorschlage. Nämlich die Tweets aus dem entsprechendem Cluster mit den meisten Likes und Retweets.
So, jetzt haben wir für jeden Nutzer 1.500 Tweets, die sich aus den In-Network-Tweets und den Out-of-Network-Tweets zusammensetzen. Für die “Für-Dich-Seite” müssen diese Tweets jetzt erneut geordnet werden.
Ranking
Für das Ranking wird ein tiefes neuronales Netz mit 48 Millionen Parametern verwendet, das mit “thousands of features” (https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm) gefüttert wird. Hier hört die Transparenz von Twitter also auf, denn welche Features verwendet werden, wäre durchaus interessant. Aber wir erfahren immerhin zwei andere wichtige Merkmale dieses Algorithmus: Als Output wird ein Ranking von 1 bis 10 erstellt und - viel wichtiger - es ist wieder ein Supervised-Learning-Algorithmus, der versucht, vorherzusagen mit welchen vorgeschlagenen Tweets ihr interagiert.
Filtering
In einem letzten Schritt werden dann noch Heuristiken angewandt, die zum Beispiel Tweets ausblenden von Leuten, die ihr geblockt habt, oder mehrere Tweets zu einem Thread zusammenfassen. Das muss auch die Stelle sein, an der Twitter dann mit Shadow-Bans etc. in die Content-Moderation eingreift. Dazu heißt es aber leider nur sehr schmallippig: “Visibility Filtering: Filter out Tweets based on their content and your preferences. For instance, remove Tweets from accounts you block or mute.”
Außerdem schlägt ein anderer Filter zu, den Twitter “Social Proof” nennt. Nachträglich wird nocheinmal überprüft, ob jemand, dem du folgst auch auf den Tweet reagiert hat oder dem Author des Tweets folgt.
Zusammenfassung
Die “Währung” bei Twitter, die über die darüber entscheidet, ob ein Tweet angezeigt wird oder nicht, sind Interaktionen/Engagement. Dabei sind Interaktionen aus deinem engeren Netzwerk (Circle of Trust) und aus den Themenclustern, in denen du aktiv bist, besonders wichtig.
Hacking für Reichweite
Die hier dargestellten Details lassen sich nutzen, um seine eigene Reichweite zu boostern. Ein Kernangriffspunkt dabei ist der PageRank. Wenn es mir gelingt, möglichst viele “Schleifen” von Nutzern zu generieren, die sich am besten nicht untereinander folgen, aber alle mir folgen (und selbst auch Follower attrahieren) steigt mein PageRank erheblich. Der Zufallssurfer kommt auf mein Profil, geht zu einem dieser Accounts und kommt mit erhöhter Wahrscheinlichkeit wieder zu mir zurück. Dadurch gehöre ich dann für mehr Accounts zum Circle of Trust. Wichtig ist auch, dass meine Tweets möglichst viel Interaktion hervorrufen. Da lässt sich schon viel erreichen, wenn man durch Koordination oder Like-Bots Interaktion vortäuscht. Aber auch provokante Inhalte und besonders gefällige, die sich schnell konsumieren lassen, steigern die Interaktion. Thematisch lohnt es sich für hohe Reichweite, die größten Cluster zu bedienen. Laut Twitter wäre das Pop, News, Bollywood, Fussball und NBA. Da meine Tweets (wenn alles gut läuft) nur angezeigt werden, wenn sich die andere Person auch für das Thema interessiert, kann ich so zusagen mit dem gleichen Account unterschiedliche thematische Identitäten bespielen. In den Daten zu Social Bots aus der Ukraine 2014 hatte ich bereits festgestellt, dass diese automatisierten Programme neben Propaganda für den “Rechten Sektor” auch sehr viele Sportnachrichten verbreiten (https://ojs.aaai.org/index.php/ICWSM/article/view/14764/14613).
Ansonsten sollte ich aufpassen, dass ich nicht geblockt werde, denn das reduziert meine Reichweite wiederum. Und Hashtags scheinen nahezu keine Relevanz zu haben. (Wird schon einen Grund geben, warum Musk keine verwendet.)
Der Social-Proof-Filter ist ebenfalls anfällig für Manipulationen: Wenn ich einen mächtigen Account mit vielen Followern dazu bringe, auf meinen Tweet zu reagieren (oder sogar mir zu folgen) dann wird mein Tweet viel häufiger angezeigt werden, nämlich auch vielen, bei denen er ansonsten rausgefiltert würde, obwohl er zum beispiel Inhaltlich relevant ist. Ich könnte also zum Beispiel eine nette Antwort auf einen reichweitenstarken Tweet schreiben, mir ein Like abholen und dann versuchen den Thread zu kapern.
Hacking für mehr Relevanz
Anstatt zu versuchen, einen möglichst große Reichweite zu erlangen, kann ich natürlich auch versuchen, die Algorithmen so zu beeinflussen, dass mir möglichst relevante Inhalte angezeigt werden. Die Stellschrauben sind natürlich die selben aber die Umsetzung ist wesentlich schwieriger. Der Kernpunkt würde darin bestehen, dass ich mich in einer Community bewege, die insbesondere Interaktion mit anderen Tweets auf wirklich relevante Inhalte beschränkt. Da die Frage, wer auf was reagiert, an allen Stellen eine Rolle spielt, ist generell davon auszugehen, dass eine Community, die sparsam mit Likes und Retweets ist, eher relevantere Inhalte angezeigt bekommt, da die Interaktionsschleifen, in denen ein Tweet hochgeschaukelt wird, weniger relevant sind. Jedesmal, wenn ich mich von einem süßen Tiervideo zu einer Reaktion hinreißen lasse, hat das Auswirkungen auf meine Follower. Eine kleine, thematisch fokussierte Community ist da wesentlich verlässlicher als wenn jeder einfach den üblichen “Stars” folgt. Die Social-Proof-Filterung wird bei kleinen Communities, die eben nicht jedem folgen, wesentlich stringenter funktionieren. Über die Themencluster lässt sich ein bisschen steuern, dass man sich dennoch nicht nur in seiner Bubble bewegt. Gerade das häufigere benutzen der Suchfunktion, um Inhalte zu finden, die mich wirklich interessieren, sollte schnell dazu führen, dass mir auch ähnliche Tweets aus dem Themenbereich angezeigt werden.
Ich bin immer wieder überrascht, wie unterschiedlich Twitter für unterschiedliche Leute ist. Hier haben wir eine recht gründliche Antwort warum.