Når det kommer til nyhedsfeedalgoritmen, er der mange teorier og myter. De fleste mennesker forstår, at der er en algoritme på arbejde, og mange kender nogle af de faktorer, der informerer den algoritme (uanset om du kan lide et indlæg eller engagere dig i det osv.). Men der er stadig en hel del, der er misforstået.
Vi deler offentligt mange af detaljerne og funktionerne i nyhedsfeed. Men under hætten er Machine learning (ML) ranking system, der driver nyhedsfeed, utroligt komplekst med mange lag. Vi deler nye detaljer om, hvordan vores rangeringssystem fungerer, og udfordringerne ved at opbygge et system til at personalisere indholdet til mere end 2 milliarder mennesker og vise hvert af dem indhold, der er relevant og meningsfuldt for dem, hver gang de kommer til Facebook.
Hvad er så svært ved dette?
for det første er lydstyrken enorm. Mere end 2 milliarder mennesker over hele verden bruger Facebook. For hver af disse mennesker er der mere end tusind “kandidat” – indlæg (eller indlæg, der potentielt kan vises i personens feed). Vi taler nu om billioner af indlæg på tværs af alle mennesker på Facebook.
overvej nu, at der for hver person på Facebook er tusindvis af signaler, som vi skal evaluere for at bestemme, hvad den person kan finde mest relevant. Så vi har billioner af indlæg og tusindvis af signaler — og vi er nødt til at forudsige, hvad hver af disse mennesker ønsker at se i deres feed med det samme. Når du åbner Facebook, sker denne proces i baggrunden på bare det andet eller deromkring, det tager at indlæse dit nyhedsfeed.
og når vi først har fået alt dette til at fungere, ændrer tingene sig, og vi er nødt til at indregne nye problemer, der opstår, såsom clickbait og spredning af forkert information. Når dette sker, er vi nødt til at finde nye løsninger. I virkeligheden er rangeringssystemet ikke kun en enkelt algoritme; det er flere lag ML-modeller og placeringer, som vi anvender for at forudsige det indhold, der er mest relevant og meningsfuldt for hver bruger. Når vi bevæger os gennem hvert trin, indsnævrer rangeringssystemet de tusinder af kandidatposter til de få hundrede, der vises i nogens nyhedsfeed til enhver tid.
Hvordan virker det?
kort sagt bestemmer systemet, hvilke indlæg der vises i dit nyhedsfeed, og i hvilken rækkefølge ved at forudsige, hvad du mest sandsynligt vil være interesseret i eller engagere dig i. Disse forudsigelser er baseret på en række faktorer, herunder hvad og hvem du har fulgt, kunne lide eller forlovet med for nylig. For at forstå, hvordan dette fungerer i praksis, lad os starte med, hvad der sker for en person, der logger ind på Facebook: vi kalder ham Juan.
siden Juan ‘ s login i går, sendte hans ven vei et billede af sin cocker spaniel. En anden ven, Saanvi, sendte en video fra hendes morgenkørsel. Hans yndlingsside offentliggjorde en interessant artikel om den bedste måde at se Mælkevejen om natten, mens hans foretrukne madlavningsgruppe sendte fire nye surdejsopskrifter.
alt dette indhold vil sandsynligvis være relevant eller interessant for Juan, fordi han har valgt at følge de mennesker eller sider, der deler det. For at beslutte, hvilken af disse ting der skal vises højere i Juan ‘ s nyhedsfeed, er vi nødt til at forudsige, hvad der betyder mest for ham, og hvilket indhold der har den højeste værdi for ham. I matematiske termer skal vi definere en objektiv funktion for Juan og udføre en enkelt objektiv optimering.
Vi kan bruge egenskaberne ved et indlæg, såsom hvem der er tagget på et foto, og hvornår det blev sendt, til at forudsige, om Juan måske kan lide det. For eksempel, hvis Juan har tendens til at interagere med Saanvis indlæg (f. eks., deler eller kommenterer) ofte, og hendes løbende video er meget nylig, er der stor sandsynlighed for, at Juan vil kunne lide hendes indlæg. Hvis Juan tidligere har beskæftiget sig med mere videoindhold end fotos, kan den lignende forudsigelse for vei ‘ S foto af hans cocker spaniel være ret lav. I dette tilfælde vil vores rankingalgoritme rangere Saanvis kørende video højere end viis hundefoto, fordi det forudsiger en højere sandsynlighed for, at Juan vil have det.
men smag er ikke den eneste måde, folk udtrykker deres præferencer på Facebook. Hver dag deler folk artikler, de finder interessante, ser videoer fra mennesker eller Berømtheder, de følger, eller efterlader tankevækkende kommentarer til deres venners indlæg. Matematisk bliver tingene mere komplekse, når vi har brug for at optimere til flere mål, som alle bidrager til vores primære mål: at skabe den mest langsigtede værdi for mennesker ved at vise dem indhold, der er meningsfuldt og relevant for dem.
flere ML-modeller producerer flere forudsigelser for Juan: sandsynligheden for, at han vil engagere sig i viis foto, Saanvi ‘ s video, Mælkevejsartiklen eller surdejopskrifterne. Hver model forsøger at rangordne disse stykker indhold til Juan. Nogle gange er de uenige — der kan være en større sandsynlighed for, at Juan gerne vil have Saanvis kørende video end Mælkevejsartiklen, men han er måske mere tilbøjelig til at kommentere artiklen end på videoen. Så vi har brug for en måde at kombinere disse forskellige forudsigelser i en score, der er optimeret til vores primære mål om langsigtet værdi.
Hvordan kan vi måle, om noget skaber langsigtet værdi for en person? Vi spørger dem. For eksempel, vi undersøger folk for at spørge, hvor meningsfuldt de fandt en interaktion med deres venner, eller om et indlæg var deres tid værd, så vores system afspejler, hvad folk siger, at de nyder og finder meningsfulde. Derefter kan vi tage hver forudsigelse i betragtning for Juan baseret på de handlinger, som folk fortæller os (via undersøgelser) er mere meningsfulde og værd at deres tid.
skrælning af lagene
for at rangere mere end tusind indlæg pr. Vi håndterer dette i forskellige trin, strategisk arrangeret for at gøre det hurtigt og for at begrænse mængden af computerressourcer, der kræves.
først samler systemet alle de kandidatposter, vi muligvis kan rangere for Juan (cocker spaniel-billedet, den kørende video osv.). Denne kvalificerede opgørelse inkluderer ethvert indlæg, der deles med Juan af en ven, gruppe, eller side, han har forbindelse til, der blev oprettet siden hans sidste login og ikke er blevet slettet. Men hvordan skal vi håndtere indlæg oprettet før Juan ‘ s sidste login, som han ikke har set endnu?
for at sikre, at usete indlæg genovervejes, anvender vi en ulæst bumping-logik: friske indlæg, der blev rangeret for Juan (men ikke set af ham) i hans tidligere sessioner, føjes til den kvalificerede opgørelse til denne session. Vi anvender også en handlingsbumpende logik, så alle indlæg, Juan allerede har set, der siden har udløst en interessant samtale blandt hans venner, også føjes til den kvalificerede opgørelse.
Dernæst skal systemet score hvert indlæg for en række faktorer, såsom typen af indlæg, lighed med andre emner, og hvor meget indlægget matcher det, Juan har tendens til at interagere med. For at beregne dette for mere end 1.000 indlæg, for hver af de milliarder af brugere — alt i realtid — kører vi disse modeller for alle kandidathistorier parallelt på flere maskiner, kaldet forudsigere.
før vi kombinerer alle disse forudsigelser i en enkelt score, skal vi anvende nogle yderligere regler. Vi venter til efter at vi har disse første forudsigelser, så vi kan indsnævre puljen af stillinger, der skal rangeres — og vi anvender dem over flere passeringer for at spare computerkraft.
først anvendes visse integritetsprocesser på hvert indlæg. Disse er designet til at bestemme, hvilke integritetsdetekteringsforanstaltninger, hvis nogen, skal anvendes på de historier, der er valgt til placering. I det næste pas indsnævrer en letvægtsmodel puljen af kandidater til cirka 500 af de mest relevante stillinger for Juan. Rangering af færre historier giver os mulighed for at bruge mere kraftfulde neurale netværksmodeller til de næste pas.
næste er det vigtigste scoring pass, hvor det meste af personaliseringen sker. Her beregnes en score for hver historie uafhængigt, og derefter sættes alle 500 indlæg i rækkefølge efter score. For nogle kan scoren være højere for likes end for at kommentere, da nogle mennesker kan lide at udtrykke sig mere gennem smag end at kommentere. Enhver handling, som en person sjældent engagerer sig i (for eksempel en lignende forudsigelse, der er meget tæt på nul), får automatisk en minimal rolle i rangordningen, da den forudsagte værdi er meget lav.
endelig kører vi det kontekstuelle pas, hvor kontekstuelle funktioner som indholdstypediversitetsregler tilføjes for at sikre, at Juan ‘ s nyhedsfeed har en god blanding af indholdstyper, og han ser ikke flere videoindlæg, den ene efter den anden. Alle disse rangeringstrin sker i den tid, det tager for Juan at åbne Facebook-appen, og inden for få sekunder har han et scoret nyhedsfeed, der er klar til at gennemse og nyde.