Når Det gjelder Nyhetsstrømalgoritmen, er det mange teorier og myter. De fleste forstår at det er en algoritme på jobb ,og mange vet noen av faktorene som informerer den algoritmen (enten du liker et innlegg eller engasjerer seg med det, etc.). Men det er fortsatt ganske mye som er misforstått.
vi deler offentlig mange av detaljene og funksjonene I Nyhetsfeeden. Men under hetten er maskinlæring (ML) rangeringssystem som driver Nyhetsfeed, utrolig komplekst, med mange lag. Vi deler nye detaljer om hvordan vårt rangeringssystem fungerer og utfordringene med å bygge et system for å tilpasse innholdet til mer enn 2 milliarder mennesker og vise hver av dem innhold som er relevant og meningsfylt for Dem, hver Gang De kommer Til Facebook.
Hva er Så Vanskelig med Dette?
for Det første er volumet enormt. Mer enn 2 milliarder mennesker over Hele Verden bruker Facebook. For hver av disse personene er det mer enn tusen» kandidat » innlegg (eller innlegg som potensielt kan vises i personens feed). Vi snakker nå om billioner av innlegg på Tvers Av alle mennesker På Facebook.
tenk nå på at for Hver Person På Facebook er det tusenvis av signaler som vi må evaluere for å finne ut hva den personen kan finne mest relevant. Så vi har billioner av innlegg og tusenvis av signaler-og vi må forutsi hva hver av disse menneskene ønsker å se i deres feed umiddelbart. Når Du åpner Facebook, skjer denne prosessen i bakgrunnen i bare det andre eller så det tar å laste Inn Nyhetsfeeden din.
og når vi har alt dette arbeidet, endres ting, og vi må faktor i nye problemer som oppstår, for eksempel clickbait og spredning av feilinformasjon. Når dette skjer, må vi finne nye løsninger. I virkeligheten er rangeringssystemet ikke bare en enkelt algoritme; det er flere lag MED ML-modeller og rangeringer som vi bruker for å forutsi innholdet som er mest relevant og meningsfylt for hver bruker. Når vi beveger oss gjennom hvert trinn, begrenser rangeringssystemet de tusenvis av kandidatposter til de få hundre som vises i noens Nyhetsfeed til enhver tid.
Hvordan Fungerer det?
enkelt sagt bestemmer systemet hvilke innlegg som vises i Nyhetsfeeden din, og i hvilken rekkefølge, ved å forutsi hva du mest sannsynlig vil være interessert i eller engasjere seg med. Disse spådommene er basert på en rekke faktorer, inkludert hva og hvem du har fulgt, likt eller engasjert med nylig. For å forstå hvordan dette fungerer i praksis, la oss starte med hva som skjer for En person som logger Inn På Facebook: Vi kaller Ham Juan.
Siden Juans innlogging i går, la hans venn Wei et bilde av hans cocker spaniel. En annen venn, Saanvi, postet en video fra hennes morgen løp. Hans favorittside publiserte en interessant artikkel om Den beste måten Å se Melkeveien om natten, mens hans favorittkokkegruppe postet fire nye surdeigoppskrifter.
Alt dette innholdet er sannsynligvis relevant eller interessant For Juan fordi Han har valgt å følge personene eller Sidene som deler Det. For å avgjøre hvilken av Disse tingene som skal vises høyere I Juans Nyhetsfeed, må vi forutsi hva som betyr mest for Ham og hvilket innhold som har den høyeste verdien for Ham. I matematiske termer må vi definere en objektiv funksjon For Juan og utføre en enkelt objektiv optimalisering.
vi kan bruke egenskapene til et innlegg, for eksempel hvem som er merket i et bilde og når det ble lagt ut, for å forutsi Om Juan kanskje liker Det. For Eksempel, Hvis Juan har en tendens til å samhandle Med saanvis innlegg (f. eks. ofte og hennes løpende video er veldig nylig, det er stor sannsynlighet for At Juan vil like hennes innlegg. Hvis Juan har engasjert seg med mer videoinnhold enn bilder i det siste, kan lignende prediksjon For Weis bilde av hans cocker spaniel være ganske lav. I dette tilfellet vil vår rangeringsalgoritme rangere saanvis løpende video høyere Enn Weis hundebilde fordi Det forutsier en høyere sannsynlighet for At Juan vil like Det.
men å like er ikke den eneste måten folk uttrykker sine preferanser på Facebook. Hver dag deler folk artikler de finner interessante, ser på videoer fra folk eller kjendiser de følger, eller legger gjennomtenkte kommentarer på vennens innlegg. Matematisk blir ting mer komplekse når vi trenger å optimalisere for flere mål som alle legger opp til vårt primære mål: å skape den mest langsiktige verdien for folk ved å vise dem innhold som er meningsfylt og relevant for dem.
Flere ML-modeller produserer flere spådommer for Juan: sannsynligheten for At Han vil engasjere Seg Med Weis bilde, saanvis video, Milky Way-artikkelen eller surdeigoppskrifter. Hver modell prøver å rangere disse delene av innholdet For Juan. Noen ganger er de uenige — Det kan være en høyere sannsynlighet for At Juan vil ha Saanvis løpende video enn Milky Way-artikkelen, men han kan være mer sannsynlig å kommentere artikkelen enn på videoen. Så vi trenger en måte å kombinere disse varierende spådommene til en poengsum som er optimalisert for vårt primære mål om langsiktig verdi.
hvordan kan vi måle om noe skaper langsiktig verdi for en person? Vi spør dem. Vi undersøker for eksempel folk for å spørre hvor meningsfylt de fant en interaksjon med vennene sine, eller om et innlegg var verdt tiden deres, slik at systemet vårt gjenspeiler hva folk sier de liker og finner meningsfylt. Da kan Vi ta Hver prediksjon i betraktning For Juan basert på handlingene som folk forteller oss (via undersøkelser) er mer meningsfulle og verdt tiden deres.
Peeling Tilbake Lagene
for å rangere mer enn tusen innlegg per bruker, per dag, for mer enn 2 milliarder mennesker — i sanntid — må vi gjøre prosessen effektiv. Vi håndterer dette i ulike trinn, strategisk ordnet for å gjøre det raskt og for å begrense mengden databehandlingsressurser som kreves.
først samler systemet alle kandidatpostene vi muligens kan rangere For Juan(cocker spaniel-bildet, den løpende videoen, etc.). Denne kvalifiserte beholdningen inkluderer alle innlegg som Er delt Med Juan av en venn, Gruppe eller Side Han er koblet til som ble gjort siden hans siste innlogging og ikke har blitt slettet. Men hvordan skal vi håndtere innlegg opprettet før Juan siste innlogging som han ikke har sett ennå?
For å sikre at usette innlegg blir revurdert, bruker vi en ulest bumping logikk: Nye innlegg som ble rangert For Juan (men ikke sett av Ham) i hans tidligere økter, legges til den kvalifiserte beholdningen for denne økten. Vi bruker også en handling-bumping logikk slik at alle innlegg Juan har allerede sett som siden har utløst en interessant samtale blant hans venner legges til kvalifisert inventar samt.
deretter må systemet score hvert innlegg for en rekke faktorer, for eksempel type innlegg, likhet med andre elementer, og hvor mye innlegget samsvarer Med Hva Juan har en tendens til å samhandle med. For å beregne dette for mer enn 1000 innlegg, for hver av milliarder av brukere — alt i sanntid — kjører vi disse modellene for alle kandidathistorier parallelt på flere maskiner, kalt prediktorer.
Før vi kombinerer alle disse spådommene til en enkelt poengsum, må vi bruke noen ekstra regler. Vi venter til etter at vi har disse første spådommene, slik at vi kan begrense antall innlegg som skal rangeres — og vi bruker dem over flere pass for å spare beregningskraft.
først brukes visse integritetsprosesser på hvert innlegg. Disse er utformet for å bestemme hvilke integritetsdeteksjonsmål, hvis noen, må brukes på historiene som er valgt for rangering. I neste pass, en lett modell begrenser pool av kandidater til ca 500 av de mest relevante innlegg For Juan. Rangering færre historier tillater oss å bruke kraftigere nevrale nettverksmodeller for de neste passene.
Neste er den viktigste scoring pass, der det meste av tilpassing skjer. Her beregnes en poengsum for hver historie uavhengig, og deretter blir alle 500 innlegg satt i orden etter poengsum. For noen, poengsummen kan være høyere for liker enn for kommenterer, som noen mennesker liker å uttrykke seg mer gjennom smak enn kommenterer. Enhver handling en person sjelden engasjerer seg i (for eksempel en lignende prediksjon som er svært nær null) får automatisk en minimal rolle i rangering, da den forventede verdien er svært lav.
Til Slutt kjører Vi det kontekstuelle passet, der kontekstuelle funksjoner som innholdstypediversitetsregler legges til for å sikre At Juan ‘ S Nyhetsfeed har en god blanding av innholdstyper, og han ser ikke flere videoinnlegg, en etter en. Alle disse rangeringstrinnene skjer i tiden Det tar For Juan å åpne Facebook-appen, og i løpet av sekunder har Han en scoret Nyhetsfeed som er klar for ham å bla gjennom og nyte.