pokud jde o algoritmus News Feed, existuje mnoho teorií a mýtů. Většina lidí chápe, že existuje algoritmus v práci, a mnozí znají některé z faktorů, které tento algoritmus informují (ať už se vám líbí příspěvek nebo se s ním zabývají atd.). Ale pořád je toho dost nepochopených.
veřejně sdílíme mnoho detailů a funkcí News Feed. Ale pod kapotou je systém hodnocení strojového učení (ML), který napájí zpravodajství, neuvěřitelně složitý a má mnoho vrstev. Sdílíme nové podrobnosti o tom, jak náš systém hodnocení funguje, a výzvách budování systému pro přizpůsobení obsahu pro více než 2 miliardy lidí a ukázat každému z nich obsah, který je pro ně relevantní a smysluplný, pokaždé, když přijdou na Facebook.
co je na tom tak těžkého?
Za prvé, objem je obrovský. Více než 2 miliardy lidí po celém světě používá Facebook. Pro každého z těchto lidí existuje více než tisíc“ kandidátských “ příspěvků (nebo příspěvků, které by se mohly potenciálně objevit ve zdroji dané osoby). Nyní mluvíme o bilionech příspěvků napříč všemi lidmi na Facebook.
nyní se domníváme, že pro každou osobu na Facebook existují tisíce signálů, které musíme vyhodnotit, abychom zjistili, co by tato osoba mohla považovat za nejdůležitější. Máme tedy biliony příspěvků a tisíce signálů — a musíme předvídat, co každý z těchto lidí chce okamžitě vidět ve svém zdroji. Když otevřete Facebook, tento proces se děje na pozadí jen za sekundu nebo tak, jak je potřeba načíst váš zpravodajský kanál.
a jakmile to všechno funguje, věci se mění a musíme zohlednit nové problémy, které vznikají, jako je clickbait a šíření dezinformací. Když k tomu dojde, musíme najít nová řešení. V realitě, systém hodnocení není jen jeden jediný algoritmus; je to více vrstev modelů ML a hodnocení, které aplikujeme, abychom předpovídali obsah, který je pro každého uživatele nejrelevantnější a smysluplnější. Jak procházíme každou fází, systém hodnocení zužuje ty tisíce kandidátských míst na několik stovek, které se v daném okamžiku objevují v něčí novince.
jak to funguje?
jednoduše řečeno, systém určuje, které příspěvky se objeví ve vašem zpravodajském kanálu a v jakém pořadí, tím, že předpovídá, co vás s největší pravděpodobností zajímá nebo se s ním zabývá. Tyto předpovědi jsou založeny na různých faktorech, včetně toho, co a koho jste sledovali, měl rád, nebo se s nimi nedávno zabýval. Abychom pochopili, jak to funguje v praxi, Začněme tím, co se stane pro jednu osobu, která se přihlásí na Facebook: budeme mu říkat Juan.
od včerejšího Juanova přihlášení zveřejnil jeho přítel Wei fotografii svého kokršpaněla. Další kamarádka Saanvi zveřejnila video ze svého ranního běhu. Jeho oblíbená stránka zveřejnila zajímavý článek o nejlepším způsobu zobrazení Mléčné dráhy v noci, zatímco jeho oblíbená skupina vaření zveřejnila čtyři nové recepty na kvásek.
veškerý tento obsah bude pro Juana pravděpodobně relevantní nebo zajímavý, protože se rozhodl sledovat lidi nebo stránky, které je sdílejí. Abychom se rozhodli, která z těchto věcí by se měla v Juanově zpravodajském kanálu objevit výše, musíme předpovědět, na čem mu nejvíce záleží a který obsah má pro něj nejvyšší hodnotu. Z matematického hlediska musíme definovat objektivní funkci pro Juana a provést jednoobjektivní optimalizaci.
můžeme použít vlastnosti příspěvku, například kdo je označen na fotografii a kdy byl zveřejněn, abychom předpověděli, zda by se Juanovi mohl líbit. Například pokud má Juan tendenci komunikovat se saanviho příspěvky (např., sdílení nebo komentování) často a její běžící video je velmi nedávné, je vysoká pravděpodobnost, že se Juan bude líbit její příspěvek. Pokud se Juan v minulosti zabýval více videoobsahem než fotografiemi, podobná předpověď pro Weiovu fotografii jeho kokršpaněla může být poměrně nízká. V tomto případě by náš algoritmus hodnocení zařadil běžící Video Saanvi vyšší než Weiova Psí fotka, protože předpovídá vyšší pravděpodobnost, že by se Juanovi líbilo.
ale záliba není jediný způsob, jak lidé vyjádřit své preference na Facebook. Každý den lidé sdílejí články, které považují za zajímavé, sledují videa od lidí nebo celebrit, které sledují, nebo zanechávají promyšlené komentáře k příspěvkům svých přátel. Matematicky se věci stávají složitějšími, když potřebujeme optimalizovat pro více cílů, které všechny přispívají k našemu primárnímu cíli: vytvořit pro lidi co nejdéle dlouhodobou hodnotu tím, že jim ukážeme obsah, který je pro ně smysluplný a relevantní.
více modelů ML vytváří pro Juana několik předpovědí: pravděpodobnost, že se zapojí do Weiovy fotografie, saanviho videa, článku Mléčná dráha nebo receptů sourdough. Každý model se snaží zařadit tyto kusy obsahu pro Juana. Někdy nesouhlasí — může být vyšší pravděpodobnost, že by Juan chtěl saanviho běžící video než článek Mléčná dráha, ale může být pravděpodobnější, že se k článku vyjádří než k videu. Takže potřebujeme způsob, jak spojit tyto různé předpovědi do jednoho skóre, které je optimalizováno pro náš primární cíl dlouhodobé hodnoty.
jak můžeme měřit, zda něco vytváří dlouhodobou hodnotu pro člověka? Ptáme se jich. Například, zkoumáme lidi, abychom se zeptali, jak smysluplné našli interakci se svými přáteli nebo zda příspěvek stál za jejich čas, aby náš systém odrážel to, co lidé říkají, že je baví a považují za smysluplné. Pak můžeme vzít každou předpověď v úvahu pro Juana na základě akcí, které nám lidé říkají (prostřednictvím průzkumů), jsou smysluplnější a stojí za jejich čas.
odlupování vrstev
Chcete — li zařadit více než tisíc příspěvků na uživatele, za den, pro více než 2 miliardy lidí — v reálném čase-musíme tento proces zefektivnit. Řídíme to v různých krocích, strategicky uspořádaných tak, aby to bylo rychlé a omezilo množství potřebných výpočetních prostředků.
Za prvé, systém shromažďuje všechny kandidátské příspěvky, které můžeme případně zařadit pro Juana (fotografie kokršpaněla, běžící video atd.). Tento způsobilý inventář zahrnuje jakýkoli příspěvek sdílený s Juanem přítelem, skupina, nebo Stránka, ke které je připojen, byla vytvořena od jeho posledního přihlášení a nebyla odstraněna. Ale jak bychom měli zacházet s příspěvky vytvořenými před Juanovým posledním přihlášením,které ještě neviděl?
abychom se ujistili, že neviditelné příspěvky jsou přehodnoceny, použijeme nepřečtenou narážecí logiku: do způsobilého inventáře pro tuto relaci jsou přidány nové příspěvky, které byly hodnoceny pro Juana (ale nebyly jím viděny) v jeho předchozích relacích. Aplikujeme také logiku narážející na akce, takže do způsobilého inventáře jsou přidány také všechny příspěvky, které Juan již viděl, které od té doby vyvolaly zajímavý rozhovor mezi jeho přáteli.
dále musí systém skórovat každý příspěvek pro různé faktory, jako je typ příspěvku, podobnost s jinými položkami a kolik příspěvku odpovídá tomu, s čím má Juan tendenci komunikovat. Abychom to vypočítali pro více než 1 000 příspěvků, pro každou z miliard uživatelů — vše v reálném čase — spustíme tyto modely pro všechny příběhy kandidátů paralelně na více strojích, nazývaných prediktory.
než spojíme všechny tyto předpovědi do jediného skóre, musíme použít některá další pravidla. Počkáme, až budeme mít tyto první předpovědi, abychom mohli zúžit skupinu příspěvků, které mají být hodnoceny — a aplikujeme je na více průchodů, abychom ušetřili výpočetní výkon.
nejprve se na každý příspěvek použijí určité procesy integrity. Jsou navrženy tak, aby určily, která opatření pro detekci integrity, pokud existují, je třeba použít na příběhy vybrané pro hodnocení. V dalším průchodu lehký model zužuje skupinu kandidátů na přibližně 500 nejdůležitějších míst pro Juana. Pořadí méně příběhů nám umožňuje používat výkonnější modely neuronových sítí pro další průchody.
další je hlavní bodovací přihrávka, kde se většina Personalizace děje. Zde je skóre pro každý příběh vypočteno nezávisle a poté je všech 500 příspěvků uspořádáno podle skóre. Pro některé, skóre může být vyšší pro lajky než pro komentování, protože někteří lidé se rádi vyjadřují více prostřednictvím lajků než komentování. Jakákoli akce, do které se člověk zřídka zapojí (například podobná předpověď, která je velmi blízko nule), automaticky získá minimální roli v hodnocení, protože předpokládaná hodnota je velmi nízká.
nakonec spustíme contextual pass, ve kterém jsou přidány kontextové funkce, jako jsou pravidla rozmanitosti typu obsahu, aby se ujistil, že Juanův zpravodajský kanál má dobrou kombinaci typů obsahu a nevidí více video příspěvků, jeden po druhém. Všechny tyto kroky v žebříčku se dějí v době, kdy Juan otevře aplikaci Facebook, a během několika sekund, má bodovaný zpravodajský kanál, který je připraven pro něj procházet a užívat si.