Получи случайную криптовалюту за регистрацию!

Как взломать рекомендации в Твиттере? Или путь твита до вашей | Эфирный (Nikita3)

Как взломать рекомендации в Твиттере?
Или путь твита до вашей ленты.

Вчера птичка сделала публичными все свои алгоритмы рекомендаций. И я думаю что анализ опубликованных данных может быть ОЧЕНЬ интересным. Вот ссылка на статью с объяснением основных механизмов рекомендаций "статья". Я адаптировал и расписал базовые принципы формирования ленты, которые приводятся в блоге.

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

Базово механизм приготовления ленты выглядит так:

1. Отбор твитов
Вы открываете ленту и отправляете запрос на сервер, после получения запроса из пула в миллионы сырых твитов, отбираются 1500 самых сочных и вкусных для вашего аккаунта. Они отбираются среди людей, которых вы фолловите (In-Network) и тех которых не фолловите (Out-Network). Прямо сейчас их отбирают в соотношении 50/50.

2. Ранжирование
Дальше твиты распределяются по степени их интересности и на этом этапе они получают свое место в ленте.

In-Network
Для начала, на основе их релевантности, ранжируются твиты тех, на кого вы подписаны. Лучшие из этих твитов отправляются на следующий этап. Для этого ранжирования используется модель Real Graph, которая предсказывает вероятность того что вы провзаимодействуете с конкретным пользователем и соответственно чем больше вероятность тем больше она подсовывает вам его твиты.

Out-Network
С твитами тех на кого вы не подписаны механизм чуть сложнее, здесь есть два способа. Для начала используется т.н. Social Graph. Алгоритм пытается предсказать что вам интересно, анализируя взаимодействия тех на кого вы уже подписаны или тех у кого схожий круг интересов.

Для этого алгоритм как бы сначала "отвечает" на вопросы:
● С какими твитами недавно взаимодействовали люди на которых я подписан?
● Кто лайкает твиты, которые мне нравятся и что они ещё недавно лайкнули?

В соответствии с ответами на эти вопросы алгоритм подбирает твиты и сортирует их по той же модели логистической регрессии. (Твиты In-Network сортируются по той же модели)

Второй используемый способ это разделение пользователей на "комьюнити"/кластеры со схожими интересами. Твиттер использует SimClusters. Сейчас существует 145 тысяч комьюнити, которые обновляются еженедельно. Ну и соответсвенно вам время от времени подсовывают популярные в вашем комьюнити посты, если алгоритм решил что вы поклонник неконвенциональной любви, он будет подсовывать какие-нибудь анализы графиков на еженедельной основе.

3. Фильтрация
Когда пул твитов был отобран и они были распределены по степени релевантности для конкретно вашей ленты их просеивают через своеобразное сито.
Оно убеждается, что хотя бы кто-то из вашего круга взаимодействовал с твитом или подписан на автора.
Понижает скор определенных твитов если вы когда-то давали негативный фидбек на похожие.
Следит чтобы не попались твиты от аккаунтов, которые вы замутили или заблокировали.
Следит за контекстом и пытается не выдавать случайные твиты из середины треда, которые сами по себе не имеют никакого смысла,
Следит чтобы не было слишком много твитов от одного и того же автора.
Следит за балансом количества In и Out Network твитов.

4. Миксование
Когда все твиты уже отобраны, ранжированы по уровню интереса, прогнаны через базовые фильтры, остается только один ингридиент, чтобы можно было подать их к вашей ленте.
Твиты перемешиваются с другим контентом вроде рекламы, рекомендаций для подписки, системных сообщений и т.д. и подаются на ленту в готовом виде. Готово.

Как по мне это всё бесполезный визуальный шум, который только мешает воспринимать вкуснейший криптовый контент, состоящий на 50% из спама gm и на оставшиеся 50% из гайдов по абузу ZkSync. Поэтому я советую вот это расширение, которое убирает всю лишнюю херню из ленты.