Как Facebook решава какво да видите?

Алгоритъмът за новини (news feed) на Facebook е заобиколен от много митове и предположения. Доскоро малцина знаеха за особеностите на неговата работа. И сега компанията реши да покаже как работи персонализирането на съдържанието. За повече подробности прочетете статията ни.

Не са важни само „харесванията“ и „споделянията“

Алгоритъмът на Facebook е изключително сложна и обширна система за класиране, базирана на машинно обучение (Machine Learning). Тази система трябва да показва подходящо и полезно съдържание всеки път, когато потребител посети сайта или приложението на Facebook. Това означава да се анализира огромно количество съдържание.

Повече от 2 милиарда души имат страници във Facebook. И за всеки системата избира хиляди възможни публикации, които биха могли да се появят в "емисията" с новини.

Говорим за трилиони публикации и хиляди сигнали за класиране, въз основа на които трябва да стане ясно какво точно би искал да види даден потребител. Когато някой влезе във Facebook, целият този процес се случва във фонов режим и емисията с новини се зарежда за няколко секунди.

Oсвен харесвания, споделяния, добавени към Saved и други, трябва да се вземат предвид все повече и повече фактори, като кликбейт и фалшиви новини, за които Facebook трябва тепърва да намери други решения. 

Емисията за новини или т.н. News Feed не е един алгоритъм, а система на много нива.

Тя се основава на няколко модела за машинно обучение, за да се определи най-подходящото съдържание. Определяйки кое е най-вероятно да заинтересува потребителя, системата филтрира хиляди публикации, и в резултат наборът от възможни публикации се стеснява до няколкостотин. Те се появяват във feed-a с новините.

Как работи алгоритъмът на практика?

За да разберем как всичко това се случва на практика, нека разгледаме един конкретен пример.

Да кажем, че преди ден определен потребител, да го наречем Иван, влезе във Facebook. През това време:

  • Неговият приятел Георги публикува снимка на своя кокер шпаньол;
  • Неговата приятелка Гери публикува видео от нейното сутрешно бягане;
  • Една от страниците, за които Иван е абониран, публикува статия за това как най-добре да гледа Млечния път през нощта;
  • А в групата за фитнес има четири нови тренировки, които той може да изпробва.

Цялото това съдържание вероятно ще заинтересува Иван, защото той следва съответните страници и потребители.

За да се определи какво съдържание трябва да бъде по-високо в емисията новини на Иван, трябва да стане ясно кое е по-важно за него. От математическа гледна точка е необходимо да се дефинира критерият за подбор за Иван и да се извърши оптимизация на един критерий.

Facebook Algorithm

За да разбере дали определена публикация ще хареса Иван, системата анализира данните за публикациите: датата или потребителите, отбелязани на снимката, харесванията и т.н.

Например, ако Иван често коментира или споделя публикации на Гери, а тя наскоро е публикувала видеоклип на нейния джогинг, има големи шансове Иван да хареса и новия й пост. Ако Иван е взаимодействал повече с видео съдържание в миналото, едва ли ще хареса снимката на кокер шпаньол на Георги. В този случай алгоритъмът за класиране ще постави видеото на бягането по-високо от снимката на кучето.

Но харесванията не са единственият начин да изразите предпочитанията си. Хората споделят статии всеки ден, гледат видеоклипове на страници на знаменитости или оставят коментари в публикации на приятели. От гледна точка на математиката, задачата се усложнява от факта, че е необходима оптимизация по няколко критерия, всеки от които помага да се формира списък на съответното съдържание за емисията.

Много модели машинно обучение дават прогнози за Иван: вероятността за взаимодействие със снимката на Георги, видеото на Гери, статията за Млечния път или тренировките. Всеки един от моделите предлага свой собствен списък със съдържание за потребителя. Понякога има и несъответствия.

Например, може да има по-голяма вероятност Иван да хареса видеото за джогинг на Гери, а не статията за Млечния път. Но в същото време той е по-вероятно да коментира статията, а не видеото.

Следователно, трябва да се комбинират всички предположения в обща оценка, оптимизирана за крайната цел: да се покаже на потребителя смислено и подходящо съдържание.

При формирането на емисия от новини се взема предвид мнението на публиката - Facebook редовно провежда анкети. Потребителите са запитвани колко ценно според тях е взаимодействието със съдържанието на приятелите им и дали публикациите си заслужават времето, което прекарват взаимодействайки с тях.

Необходим ли е алгоритъмът за класиране?

Това е ефективен механизъм за сортиране на безброй публикации дневно в реално време за всеки от милиардите потребители. Тази задача се изпълнява на няколко етапа, стратегически проектирани да направят всичко бързо и да намалят количеството на необходимите изчислителни ресурси.

Първо, системата събира всички възможни публикации за лентата на Иван: снимка на кокер шпаньол, видео на бягане и т.н. Списъкът с потенциалното съдържание включва всички публикации, които приятели, групи и страници са споделяли с Иван от последния път, когато той е отворил приложението или сайта на Facebook.

Facebook Algorithm

Но какво да кажем за постовете, публикувани преди предишното посещение в социалната мрежа, и които Иван не е виждал? Такива публикации, ако са в съответствие с интересите на Иван, могат да се появят в текущата емисия новини. Логиката на формиране на емисията отчита и действията на приятели. Тоест, публикациите, които Иван вече е виждал, но могат да предизвикат активна дискусия в бъдеще, също могат да се появят във фийда.

След това системата оценява всяка публикация въз основа на редица критерии:

  • тип съдържание;
  • сходство с други постове;
  • съвпадащи с това, с което Иван обикновено си взаимодейства.

За да се изчисли всичко това за два милиарда души в реално време, ML-моделите се изпълняват паралелно на няколко предсказващи машини.

Но преди да се комбинират всички прогнози в един рейтинг, се прилагат допълнителни правила. Системата изчаква първите прогнози и след това стеснява списъка с възможни публикации. Това се прави в няколко подхода за спестяване на изчислителни ресурси.

1. Първоначално социалната мрежа прилага определени интегрални процеси за всяка публикация, за да определи дали и кои методи за търсене на последователност са необходими.

2. В следващата стъпка опростеният модел стеснява списъка до около 500 от най-подходящите публикации за Иван. Класирането на по-малко публикации позволява задействането на по-мощни модели на невронни мрежи, които да се използват по-късно.

3. След това идва основният етап на изчисляване на рейтинга, в който се извършва по-голямата част от персонализацията. За всеки пост се изчислява индивидуален рейтинг.

И всеки от 500 публикации получава своето място в този списък.

Някои публикации може да имат по-висока оценка поради харесвания, а не коментари, тъй като много потребители ги предпочитат. Действията, които потребителите рядко изпълняват (рядко оставят едни и същи харесвания), играят минимална роля в оценката.

4. Контекстният етап завършва всички изчисления, при които системата взема предвид такива характеристики като разнообразието от типове съдържание.

Следователно, в условната лента на Иван видеоклиповете не следват един след друг.

Всички тези сложни изчисления се извършват по времето, когато отворите приложението Facebook. Тоест, след няколко секунди потребителите получават завършена емисия новини, която може да се гледа с интерес.

Заключение

Facebook Algorithm е многостепенна и разклонена система за класиране, базирана на машинно обучение.

Системата работи на няколко етапа:

  1. Събира всички възможни публикации за емисията на потребителя (отчитайки действията на неговите приятели и абонаменти).
  2. Въз основа на собствените си прогнози, той стеснява списъка до около 500 от най-подходящите публикации.
  3. След това той персонализира този списък, доколкото е възможно. Тоест, поставя 500 публикации в емисията според рейтинга, като присвоява „точки от интерес“ за всяка от публикациите, въз основа на предишния опит на потребителя (какво харесва, какви публикации споделя и т.н.).
  4. Добавя елемент на разнообразие, така че публикациите от същия тип да не се показват една след друга.

Всичко това се случва за броени секунди докато се зарежда новинарската емисия на Facebook. Социалната мрежа се използва от 2 милиарда души по света, тоест говорим за класирането на трилиони публикации всеки ден.

104
12
28
Открихте грешка? Маркирайте я и натиснете Ctrl + Enter.