Алгоритъм за препоръки: https://github.com/twitter/the-algorithm

ML модели: https://github.com/twitter/the-algorithm-ml

Официален блог: https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm

TL;DR

Системата за препоръки на Twitter следва процес, подобен на този в масовата индустрия, с извличане на кандидати, класиране и смесване. Twitter обаче се отличава от другите RecSys, като набляга на използването на мрежови данни, включително функции на графики и алгоритми на графики.

1. Процесът на системата за препоръки на Twitter

  • Вход: Голяма разнородна графика се състои от туитове, потребители и ангажираност с туитове
  • Резултат: Вероятност за ангажиране, както и препоръки за туитове или потребители.

Системата за препоръки има три основни етапа:

  1. Кандидат източник: Извлечете най-добрите туитове от различни източници на препоръки
  2. Силен ранг: Класирайте всеки туит с помощта на модел на машинно обучение
  3. Евристика и филтриране: Прилагайте евристики и филтри, като филтриране на туитове от потребители, които сте блокирали, NSFW съдържание и туитове, които вече сте виждали.

Услугата, която отговаря за изграждането и обслужването на времевата линия За вас, се нарича Домашен миксер.

Home Mixer е изграден върху Product Mixer, който е персонализирана рамка на Scala, която улеснява изграждането на емисии със съдържание.

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

2. Източник на кандидата

Twitter извлича подходящи туитове за даден потребител от множество кандидат-източници.

Вход: Стотици милиони налични туитове

Изход: Топ 1500 туитове от два вида канали за извличане — туитове в мрежата (от хора, следвани от потребителя) и туитове извън мрежата (от хора, които не са последвани). Съотношението е 1:1, но може да варира за всеки потребител.

2.1 Източник в мрежата

  • Източникът в мрежата е най-големият кандидат-източник за подходящи, скорошни туитове от потребители, които следвате.
  • Той използва Earlybird (машина за извличане в реално време на Twitter), за да извлича туитове от хора, които следвате. По същество това е обърнат индекс, който картографира термините от речника към списъците за публикуване.
  • След това използва Earlybird Light Ranker, който е модел на логистична регресия за бързо класиране на туитове въз основа на уместността и изпраща най-добрите туитове на следващия етап.
  • След това се използва Real Graph за подобряване на качеството на класирането. Real Graph прогнозира вероятността за ангажиране между двама потребители. На туитове от автори с по-високи резултати на Real Graph се придава по-голяма тежест.

2.2 Източници извън мрежата

Как може Twitter да разбере дали даден туит ще бъде подходящ за вас, ако не следвате автора? Те използват два подхода, за да се справят с това.

Подход 1: Потребителска графика на туитове

Чрез анализиране на ангажираността на хората, които следвате, или тези с подобни интереси, той предвижда подходящи туитове, които може да ви интересуват. По-конкретно,

  • Първо използва Earlybird Light Ranker, за да направи предварителен преглед на кандидат туитове.
  • За постигане на ефективна обработка на графики, те разработиха GraphJet[VLDB’ 16], машина за обработка на графики, която поддържа графика на взаимодействие в реално време между потребителите и Tweets, за да изпълни обхождането на графиката. Той може ефективно да търси ангажираност в Twitter и да следва мрежи и да генерира препоръки за съдържание.
  • Той обслужва ~15% от туитовете на Home Timeline, а подходите за вграждане на пространството (подход 2) се превърнаха в по-големия източник на туитове извън мрежата.

Подход 2: Вграждане на пространства

Подходите за вграждане на пространство имат за цел да отговорят на въпроса за сходството на съдържанието: Какви туитове и потребители са подобни на моите интереси?

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

Едно от най-полезните пространства за вграждане в Twitter е SimClusters [KDD’20], което открива общности, закотвени от клъстер от влиятелни потребители, използвайки алгоритъм за персонализирана матрица на множители. SimClusters включва 145k общности, актуализирани на всеки три седмици, където потребителите и туитовете могат да принадлежат към множество общности.

Общностите варират от няколко хиляди потребители за отделни групи приятели до стотици милиони за новини или поп култура.

3. Класиране

  • Целта на хронологията за вас е да ви предоставя подходящи туитове. На този етап в процес на подготовка има ~1500 кандидати, които може да са подходящи.
  • Оценяването директно предсказва уместността на всеки кандидат Tweet и е основният сигнал за класиране на Tweets във вашата времева линия.
  • Всички кандидати се третират еднакво, независимо от източника.
  • Класирането се постига с невронна мрежа с ~48 милиона параметъра, която непрекъснато се обучава на взаимодействия с туитове за оптимизиране за положителна ангажираност (напр. харесвания, ретуитове и отговори).
  • Този механизъм за класиране взема предвид хиляди функции и извежда десет етикета, за да даде резултат на всеки туит, където всеки етикет представлява вероятността за ангажиране. Туитовете се класират въз основа на резултата.

4. Евристика, филтри и характеристики на продукта

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

  • Филтриране на видимостта: Филтрирайте туитове въз основа на тяхното съдържание и вашите предпочитания, напр. премахване на туитове от акаунти, които блокирате или заглушавате.
  • Разнообразие от автори: Избягвайте твърде много последователни туитове от един автор.
  • Баланс на съдържание: Осигурете доставка на справедлив баланс от туитове в мрежата и извън нея.
  • Умора, базирана на обратна връзка: Намалете резултата на определени туитове, ако зрителят е предоставил отрицателна обратна връзка около тях.
  • Социално доказателство: Изключете туитове извън мрежата без връзка от втора степен към туита като гаранция за качество. С други думи, уверете се, че някой, когото следвате, е ангажиран с Tweet или следва автора на Tweet.
  • Разговори: Осигурете повече контекст на отговор, като го свържете заедно с оригиналния туит.
  • Редактирани туитове: Определете дали туитовете в момента на дадено устройство са остарели и изпратете инструкции за замяната им с редактираните версии.

5. Смесване и сервиране

  • В този момент Home Mixer разполага с набор от туитове, готови за изпращане до вашето устройство, които са смесени със съдържание, което не е туит като реклами, следване на препоръки и подкани за присъединяване, преди да бъдат показани.
  • Тръбопроводът работи около 5 милиарда пъти на ден и отнема средно по-малко от 1,5 секунди, за да завърши.
  • Едно изпълнение на конвейер изисква 220 секунди процесорно време.
  • Времето на процесора е почти 150 пъти латентността, която възприемате в приложението.