jeśli chodzi o algorytm kanału wiadomości, istnieje wiele teorii i mitów. Większość ludzi rozumie, że algorytm działa, a wielu zna niektóre czynniki, które informują o tym algorytmie (niezależnie od tego, czy lubisz post, czy angażujesz się w niego itp.). Ale nadal wiele jest niezrozumianych.
publicznie udostępniamy wiele szczegółów i funkcji kanału informacyjnego. Ale pod maską system rankingu machine learning (ML), który zasila Kanał Informacyjny, jest niezwykle złożony, z wieloma warstwami. Udostępniamy nowe informacje o tym, jak działa nasz system rankingowy i wyzwania związane z budową systemu personalizacji treści dla ponad 2 miliardów ludzi i pokazywania każdej z nich treści, które są dla nich istotne i znaczące, za każdym razem, gdy przychodzą na Facebooka.
co w tym takiego trudnego?
po pierwsze, objętość jest ogromna. Ponad 2 miliardy ludzi na całym świecie korzysta z Facebooka. Dla każdej z tych osób jest ponad tysiąc” kandydujących ” postów (lub postów, które potencjalnie mogą pojawić się w kanale tej osoby). Teraz mówimy o bilionach postów wszystkich ludzi na Facebooku.
teraz weź pod uwagę, że dla każdej osoby na Facebooku są tysiące sygnałów, które musimy ocenić, aby określić, co ta osoba może uznać za najbardziej istotne. Mamy więc biliony postów i tysiące sygnałów-i musimy natychmiast przewidzieć, co każda z tych osób chce zobaczyć w swoim kanale. Po otwarciu Facebooka proces ten odbywa się w tle w ciągu zaledwie sekundy, a więc trwa załadowanie kanału informacyjnego.
a kiedy już to wszystko działa, wszystko się zmienia i musimy uwzględnić nowe problemy, które się pojawiają, takie jak clickbait i rozprzestrzenianie się dezinformacji. Kiedy tak się stanie, musimy znaleźć nowe rozwiązania. W rzeczywistości system rankingowy to nie tylko jeden algorytm; to wiele warstw modeli ML i rankingów, które stosujemy w celu przewidywania treści, które są najbardziej istotne i znaczące dla każdego użytkownika. W miarę przechodzenia przez każdy etap, system rankingowy zawęża te tysiące postów kandydatów do kilkuset, które pojawiają się w czyimś kanale wiadomości w danym momencie.
Jak to działa?
mówiąc prościej, system określa, które posty pojawiają się w Twoim kanale wiadomości i w jakiej kolejności, przewidując, co najprawdopodobniej cię zainteresuje lub zaangażuje. Przewidywania te opierają się na różnych czynnikach, w tym na tym, co i kogo śledziłeś, lubiłeś lub z kim ostatnio współpracowałeś. Aby zrozumieć, jak to działa w praktyce, zacznijmy od tego, co dzieje się z jedną osobą logującą się na Facebooku: nazwiemy go Juan.
Od wczoraj jego kolega Wei opublikował zdjęcie swojego cocker spaniela. Inny przyjaciel, Saanvi, opublikował film z jej porannego biegu. Jego ulubiona strona opublikowała ciekawy artykuł o najlepszym sposobie oglądania Drogi Mlecznej w nocy, podczas gdy jego ulubiona grupa kulinarna opublikowała cztery nowe przepisy na zakwasy.
Wszystkie te treści mogą być istotne lub interesujące dla Juana, ponieważ zdecydował się śledzić osoby lub strony, które je udostępniają. Aby zdecydować, która z tych rzeczy powinna pojawić się wyżej w kanale informacyjnym Juana, musimy przewidzieć, co ma dla niego największe znaczenie i które treści niosą dla niego najwyższą wartość. Pod względem matematycznym musimy zdefiniować funkcję celu dla Juana i przeprowadzić optymalizację jednego celu.
możemy użyć cech postu, takich jak kto jest oznaczony na zdjęciu i kiedy został opublikowany, aby przewidzieć, czy Juan może go polubić. Na przykład, jeśli Juan ma tendencję do interakcji z postami Saanviego (np., dzielenie się lub komentowanie) często i jej bieganie wideo jest bardzo niedawne, istnieje duże prawdopodobieństwo, że Juan polubi jej post. Jeśli Juan zajmował się więcej treści wideo niż zdjęć w przeszłości, podobne przewidywania dotyczące Zdjęcia Wei jego cocker spaniela mogą być dość niskie. W tym przypadku nasz algorytm rankingowy oceniłby bieganie saanviego wyżej niż zdjęcie psa Wei, ponieważ przewiduje większe prawdopodobieństwo, że Juanowi by się to spodobało.
ale lubienie to nie jedyny sposób, w jaki ludzie wyrażają swoje preferencje na Facebooku. Każdego dnia ludzie dzielą się interesującymi artykułami, oglądają filmy od osób lub gwiazd, które obserwują, lub zostawiają przemyślane komentarze na postach swoich znajomych. Matematycznie rzeczy stają się bardziej złożone, gdy musimy zoptymalizować pod kątem wielu celów, które sumują się do naszego głównego celu: stworzenia najbardziej długoterminowej wartości dla ludzi poprzez pokazanie im treści, które są dla nich znaczące i istotne.
wiele modeli ML daje wiele prognoz dla Juana: prawdopodobieństwo, że zaangażuje się on w zdjęcie Wei, wideo Saanviego, artykuł Drogi Mlecznej lub przepisy na zakwas. Każdy model stara się uszeregować te fragmenty treści dla Juana. Czasami się nie zgadzają — może być większe prawdopodobieństwo, że Juan chciałby uruchomić film Saanviego niż artykuł Drogi Mlecznej, ale może być bardziej prawdopodobne, aby skomentować artykuł niż wideo. Potrzebujemy sposobu na połączenie tych różnych prognoz w jeden wynik zoptymalizowany pod kątem naszego głównego celu, jakim jest wartość długoterminowa.
Jak mierzyć, czy coś tworzy dla człowieka długoterminową wartość? Pytamy ich. Na przykład badamy ludzi, aby zapytać, jak znacząca okazała się interakcja ze swoimi przyjaciółmi lub czy post był wart ich czasu, aby nasz system odzwierciedlał to, co ludzie mówią, że lubią i uważają za znaczące. Następnie możemy wziąć pod uwagę każdą prognozę dla Juana w oparciu o działania, które ludzie mówią nam (za pośrednictwem ankiet), są bardziej znaczące i warte swojego czasu.
odrywanie warstw
aby oceniać ponad tysiąc postów na użytkownika, dziennie, dla ponad 2 miliardów ludzi — w czasie rzeczywistym — musimy sprawić, aby proces był wydajny. Zarządzamy tym w różnych krokach, strategicznie rozmieszczone, aby to szybko i ograniczyć ilość wymaganych zasobów obliczeniowych.
Po pierwsze, system zbiera wszystkie posty kandydatów, które możemy ewentualnie zaszeregować dla Juana (zdjęcie cocker spaniela, film z biegu itp.). Ten kwalifikujący się ekwipunek obejmuje każdy post udostępniony Juanowi przez znajomego, grupę lub stronę, z którą jest połączony, który został utworzony od ostatniego logowania i nie został usunięty. Ale jak radzić sobie z postami utworzonymi przed ostatnim logowaniem Juana, których jeszcze nie widział?
aby upewnić się, że niewidoczne posty są ponownie rozważane, stosujemy nieprzeczytaną logikę uderzeń: świeże posty, które zostały sklasyfikowane dla Juana (ale nie były przez niego widoczne) w poprzednich sesjach, są dodawane do kwalifikującego się ekwipunku dla tej sesji. Stosujemy również logikę akcji, dzięki czemu do kwalifikującego się ekwipunku dodawane są również wszelkie posty, które Juan już widział, a które od tego czasu wywołały ciekawą rozmowę wśród jego przyjaciół.
następnie system musi zdobyć każdy post pod kątem różnych czynników, takich jak rodzaj postu, podobieństwo do innych elementów i to, jak bardzo post pasuje do tego, z czym Juan ma tendencję do interakcji. Aby obliczyć to dla ponad 1000 stanowisk, dla każdego z miliardów użytkowników — wszystko w czasie rzeczywistym — uruchamiamy te modele dla wszystkich historii kandydatów równolegle na wielu maszynach, zwanych predyktorami.
zanim połączymy wszystkie te prognozy w jeden wynik, musimy zastosować pewne dodatkowe Zasady. Czekamy, aż otrzymamy te pierwsze prognozy, abyśmy mogli zawęzić pulę postów do rankingu — i stosujemy je w wielu przebiegach, aby zaoszczędzić moc obliczeniową.
Po pierwsze, niektóre procesy integralności są stosowane do każdego postu. Mają one na celu określenie, które środki wykrywania integralności, jeśli istnieją, należy zastosować do historii wybranych do rankingu. W kolejnym przejściu lekki model zawęża pulę kandydatów do około 500 najważniejszych stanowisk dla Juana. Ranking mniejszej liczby historii pozwala nam używać bardziej wydajnych modeli sieci neuronowych do następnych przejść.
Następna jest główna przepustka punktowa, w której odbywa się większość personalizacji. Tutaj wynik dla każdej historii jest obliczany niezależnie, a następnie wszystkie 500 postów są uporządkowane według wyniku. Dla niektórych wynik może być wyższy dla polubień niż dla komentowania, ponieważ niektórzy ludzie lubią wyrażać się bardziej poprzez lubienie niż komentowanie. Każde działanie, w które osoba rzadko się angażuje (na przykład przewidywanie podobne, które jest bardzo bliskie zeru) automatycznie dostaje minimalną rolę w rankingu, ponieważ przewidywana wartość jest bardzo niska.
wreszcie uruchamiamy przepustkę kontekstową, w której dodawane są funkcje kontekstowe, takie jak reguły różnorodności typów treści, aby upewnić się, że kanał informacyjny Juana ma dobrą mieszankę typów treści i nie widzi wielu postów wideo, jeden po drugim. Wszystkie te kroki rankingu się w czasie, który zajmuje Juan, aby otworzyć aplikację na Facebooku, iw ciągu kilku sekund, ma on punktowane News Feed, który jest gotowy do przeglądania i cieszyć.