Wenn es um den Newsfeed-Algorithmus geht, gibt es viele Theorien und Mythen. Die meisten Menschen verstehen, dass ein Algorithmus am Werk ist, und viele kennen einige der Faktoren, die diesen Algorithmus beeinflussen (ob Sie einen Beitrag mögen oder damit interagieren usw.).). Aber es gibt immer noch ziemlich viel, was missverstanden wird.
Wir teilen öffentlich viele der Details und Funktionen von News Feed. Aber unter der Haube ist das Ranking-System für maschinelles Lernen (ML), das den Newsfeed antreibt, unglaublich komplex und hat viele Ebenen. Wir teilen neue Details darüber, wie unser Ranking-System funktioniert und welche Herausforderungen es beim Aufbau eines Systems zur Personalisierung der Inhalte für mehr als 2 Milliarden Menschen gibt und zeigen jedem von ihnen Inhalte, die für sie relevant und sinnvoll sind, jedes Mal, wenn sie zu Facebook kommen.
Was ist daran so schwer?
Erstens ist das Volumen enorm. Mehr als 2 Milliarden Menschen auf der ganzen Welt nutzen Facebook. Für jede dieser Personen gibt es mehr als tausend „Kandidaten“ -Posts (oder Posts, die möglicherweise im Feed dieser Person erscheinen könnten). Wir sprechen jetzt über Billionen von Posts über alle Menschen auf Facebook.
Nun bedenke, dass es für jede Person auf Facebook Tausende von Signalen gibt, die wir auswerten müssen, um festzustellen, was diese Person am relevantesten finden könnte. Wir haben also Billionen von Posts und Tausende von Signalen — und wir müssen vorhersagen, was jeder dieser Leute sofort in seinem Feed sehen möchte. Wenn Sie Facebook öffnen, geschieht dieser Prozess im Hintergrund in nur der Sekunde, die Sie zum Laden Ihres Newsfeeds benötigen.
Und sobald wir das alles zum Laufen gebracht haben, ändern sich die Dinge, und wir müssen neue Probleme berücksichtigen, die auftreten, wie Clickbait und die Verbreitung von Fehlinformationen. Wenn das passiert, müssen wir neue Lösungen finden. In Wirklichkeit ist das Ranking-System nicht nur ein einziger Algorithmus; Es sind mehrere Schichten von ML-Modellen und Rankings, die wir anwenden, um den Inhalt vorherzusagen, der für jeden Benutzer am relevantesten und aussagekräftigsten ist. Während wir uns durch jede Phase bewegen, schränkt das Ranking-System die Tausenden von Kandidatenposts auf die wenigen hundert ein, die zu einem bestimmten Zeitpunkt im Newsfeed einer Person erscheinen.
Wie funktioniert das?
Einfach ausgedrückt bestimmt das System, welche Beiträge in welcher Reihenfolge in Ihrem Newsfeed angezeigt werden, indem es vorhersagt, woran Sie am ehesten interessiert sind oder mit wem Sie sich am ehesten beschäftigen. Diese Vorhersagen basieren auf einer Vielzahl von Faktoren, einschließlich dessen, was und wem Sie in letzter Zeit gefolgt, gemocht oder mit wem Sie sich beschäftigt haben. Um zu verstehen, wie dies in der Praxis funktioniert, beginnen wir mit dem, was für eine Person passiert, die sich bei Facebook anmeldet: Wir nennen ihn Juan.
Seit Juans Login gestern hat sein Freund Wei ein Foto seines Cocker Spaniels gepostet. Eine andere Freundin, Saanvi, hat ein Video von ihrem Morgenlauf gepostet. Seine Lieblingsseite veröffentlichte einen interessanten Artikel über die beste Art, die Milchstraße nachts zu sehen, während seine Lieblingskochgruppe vier neue Sauerteigrezepte veröffentlichte.
Alle diese Inhalte sind wahrscheinlich für Juan relevant oder interessant, weil er sich entschieden hat, den Personen oder Seiten zu folgen, die sie teilen. Um zu entscheiden, welche dieser Dinge in Juans Newsfeed höher erscheinen sollen, müssen wir vorhersagen, was für ihn am wichtigsten ist und welche Inhalte für ihn den höchsten Wert haben. In mathematischer Hinsicht müssen wir eine Zielfunktion für Juan definieren und eine Ein-Ziel-Optimierung durchführen.
Anhand der Merkmale eines Beitrags, z. B. wer auf einem Foto markiert ist und wann es gepostet wurde, können wir vorhersagen, ob es Ihnen gefällt. Zum Beispiel, wenn Juan dazu neigt, mit Saanvis Posts zu interagieren (z., teilen oder kommentieren) oft und ihr laufendes Video ist sehr neu, es besteht eine hohe Wahrscheinlichkeit, dass Juan ihren Beitrag mögen wird. Wenn Juan sich in der Vergangenheit mit mehr Videoinhalten als mit Fotos beschäftigt hat, ist die Like-Vorhersage für Weis Foto seines Cocker Spaniels möglicherweise ziemlich niedrig. In diesem Fall würde unser Ranking-Algorithmus das laufende Video von Saanvi höher einstufen als das Hundefoto von Wei, da es eine höhere Wahrscheinlichkeit vorhersagt, dass Juan es mögen würde.
Aber Liken ist nicht die einzige Art, wie Menschen ihre Vorlieben auf Facebook ausdrücken. Jeden Tag teilen Menschen Artikel, die sie interessant finden, sehen sich Videos von Personen oder Prominenten an, denen sie folgen, oder hinterlassen nachdenkliche Kommentare zu den Beiträgen ihrer Freunde. Mathematisch gesehen werden die Dinge komplexer, wenn wir für mehrere Ziele optimieren müssen, die alle zu unserem primären Ziel beitragen: den langfristigsten Wert für die Menschen zu schaffen, indem wir ihnen Inhalte zeigen, die für sie sinnvoll und relevant sind.
Mehrere ML-Modelle liefern mehrere Vorhersagen für Juan: die Wahrscheinlichkeit, dass er sich mit Weis Foto, Saanvis Video, dem Milchstraßenartikel oder den Sauerteigrezepten beschäftigt. Jedes Modell versucht, diese Inhalte für Sie zu bewerten. Manchmal sind sie anderer Meinung – es besteht möglicherweise eine höhere Wahrscheinlichkeit, dass Juan Saanvis laufendes Video mag als der Milchstraßen-Artikel, aber er kommentiert den Artikel eher als das Video. Wir brauchen also eine Möglichkeit, diese unterschiedlichen Vorhersagen zu einem Score zu kombinieren, der für unser primäres Ziel des langfristigen Werts optimiert ist.
Wie können wir messen, ob etwas einen langfristigen Wert für eine Person schafft? Wir fragen sie. Zum Beispiel befragen wir Menschen, um zu fragen, wie sinnvoll sie eine Interaktion mit ihren Freunden fanden oder ob ein Beitrag ihre Zeit wert war, damit unser System widerspiegelt, was die Leute sagen, dass sie Spaß haben und sinnvoll finden. Dann können wir jede Vorhersage für uns selbst berücksichtigen, basierend auf den Aktionen, die uns die Leute (über Umfragen) mitteilen, sind aussagekräftiger und ihre Zeit wert.
Die Schichten zurückziehen
Um mehr als tausend Beiträge pro Benutzer und Tag für mehr als 2 Milliarden Menschen in Echtzeit zu bewerten, müssen wir den Prozess effizient gestalten. Wir verwalten dies in verschiedenen Schritten, strategisch angeordnet, um es schnell zu machen und die Menge der benötigten Rechenressourcen zu begrenzen.
Zunächst sammelt das System alle Kandidatenposten, die wir möglicherweise für Juan einstufen können (das Cocker Spaniel-Foto, das laufende Video usw.). Dieses berechtigte Inventar enthält alle Beiträge, die von einem Freund, einer Gruppe oder einer Seite, mit der er verbunden ist, mit Juan geteilt wurden und die seit seinem letzten Login erstellt und nicht gelöscht wurden. Aber wie sollen wir mit Posts umgehen, die vor Juans letztem Login erstellt wurden und die er noch nicht gesehen hat?
Um sicherzustellen, dass nicht gesehene Beiträge überprüft werden, wenden wir eine ungelesene Bumping-Logik an: Neue Beiträge, die für Juan in seinen vorherigen Sitzungen eingestuft (aber von ihm nicht gesehen) wurden, werden dem berechtigten Inventar für diese Sitzung hinzugefügt. Wir wenden auch eine Action-Bumping-Logik an, so dass alle Beiträge, die Juan bereits gesehen hat und die seitdem eine interessante Konversation unter seinen Freunden ausgelöst haben, ebenfalls zum berechtigten Inventar hinzugefügt werden.
Als nächstes muss das System jeden Beitrag für eine Vielzahl von Faktoren bewerten, z. B. die Art des Beitrags, die Ähnlichkeit mit anderen Elementen und wie stark der Beitrag mit dem übereinstimmt, mit dem Er interagiert. Um dies für mehr als 1.000 Beiträge für jeden der Milliarden Benutzer zu berechnen — alles in Echtzeit — führen wir diese Modelle für alle Kandidatengeschichten parallel auf mehreren Computern aus, die als Prädiktoren bezeichnet werden.
Bevor wir all diese Vorhersagen zu einer einzigen Punktzahl kombinieren, müssen wir einige zusätzliche Regeln anwenden. Wir warten, bis wir diese ersten Vorhersagen haben, damit wir den Pool der zu rankenden Beiträge eingrenzen können — und wir wenden sie über mehrere Durchgänge an, um Rechenleistung zu sparen.
Zunächst werden bestimmte Integritätsprozesse auf jeden Beitrag angewendet. Diese sollen bestimmen, welche Integritätserkennungsmaßnahmen gegebenenfalls auf die für das Ranking ausgewählten Geschichten angewendet werden müssen. Im nächsten Durchgang verengt ein leichtes Modell den Kandidatenpool auf ungefähr 500 der für Sie relevantesten Stellen. Das Ranking weniger Geschichten ermöglicht es uns, leistungsfähigere neuronale Netzwerkmodelle für die nächsten Durchgänge zu verwenden.
Als nächstes folgt der Haupt-Scoring-Pass, bei dem der größte Teil der Personalisierung stattfindet. Hier wird eine Punktzahl für jede Story unabhängig berechnet, und dann werden alle 500 Posts nach Punktzahl sortiert. Für einige kann die Punktzahl für Likes höher sein als für Kommentare, da einige Leute sich mehr durch Likes als durch Kommentare ausdrücken möchten. Jede Aktion, an der eine Person selten teilnimmt (z. B. eine ähnliche Vorhersage, die sehr nahe bei Null liegt), spielt automatisch eine minimale Rolle im Ranking, da der vorhergesagte Wert sehr niedrig ist.
Schließlich führen wir den Contextual Pass aus, in dem kontextbezogene Funktionen wie Regeln für die Vielfalt der Inhaltstypen hinzugefügt werden, um sicherzustellen, dass Juans Newsfeed eine gute Mischung aus Inhaltstypen enthält und er nicht mehrere Videobeiträge nacheinander sieht. All diese Ranking-Schritte erfolgen in der Zeit, die Juan benötigt, um die Facebook-App zu öffnen, und innerhalb von Sekunden hat er einen neuen Newsfeed, den er durchsuchen und genießen kann.