Продолжение поста «Истинный пикабушник! Не 49.5, а все 50!!!»3
В прошлом посте мы поднимали проблему влияния "супер активных пользователей", тех у кого не 49.5 по меркам пикабу, а все 50, на формирование контента в ленте "горячее". Их оценка или бездействие может играть существенную роль в искажении общего восприятия популярности постов. Т.н. "тирания меньшинства", небольшой группы активных участников доминирующей над большинством, сводящаяся к проблемам алгоритмической фильтрации. В коментах спрашивали, как можно попытаться решить эту проблему, давайте разбираться и предложим конкретные шаги решения.
Заваривайте чайку, кофейку, устраивайтесь поудобнее — и поехали!
Проблема в цифрах и её суть
Согласно статистике, отраженной в посте Как формируется рейтинг постов на Пикабу и кто это делает и приведенной на рисунке 1.
62% пользователей ставят от 1–5 оценок в сутки (79% — если включить 5–10 оценок).
3,5% пользователей ставят более 50 оценок в сутки (включая супер активных пользователей, о которых шла речь в предыдущем посте и роль которых туманна, т.к. вроде бы их оценки не учитываются #comment_242894369, но при этом в их профиле все равно видно изменения кол-ва, поставленных ими + и - #comment_341650409 ) доминируют, обеспечивая более 43% всех оценок.
Т.о. средний пользователь ( с его ~5 оценками) почти не влияет на систему (6,5–15% веса), а супер активные пользователи доминируют.
Рисунок 1. (Слева) Суммарное число оценок(серым) и доля этих оценок (красным) в зависимости от типа активности аккаунта: от 1 до 4 оценок/сутки, от 5 до 10 оценок/сутки, от 11 до 20 оценок/сутки, от 21 до 50 оценок/сутки и свыше 50 оценок в сутки. (справа) распределение числа оценок и среднее число оценок (зеленым) в зависимости от типа активности аккаунта: от 1 до 4 оценок/сутки, от 5 до 10 оценок/сутки, от 11 до 20 оценок/сутки, от 21 до 50 оценок/сутки и свыше 50 оценок в сутки.
Критические моменты:
Первые 30–60 минут определяют судьбу поста. В этот период супер активные пользователи успевают "задать тон", пока обычные пользователи ещё не проявили активность.
Их оценки могут либо резко поднять пост в топ, либо похоронить его. Более того даже простое игнорирование нового поста этими пользователями теоретически может разительно сместить баланс голосов для свежих постов в пользу иных в рамках их интересов. Ведь игнорирование постов (отсутствие оценок) снижает шансы поста на ранний старт в горячее,
Супер активные пользователи продвигают контент, соответствующий их предпочтениям, что может не совпадать с интересами большинства.
Что же можно сделать?
Чтобы сделать ленту "горячее" более сбалансированной и отражающей интересы большинства, нужно снизить влияние супер активных пользователей, сохранив их вклад, и дать шанс менее активным пользователям влиять на систему. Вот несколько стратегий:
Первая идея заключается в том, чтобы ограничить влияние отдельных пользователей, нормализуя их вклад в зависимости от активности, например, введя весовой коэффициент для каждой оценки, обратно пропорциональный количеству оценок пользователя за сутки.
Например, если пользователь ставит 5 оценок, его вес ~1; если 100 оценок — вес падает до ~0.2–0.5.
При этом можно периодически пересчитывать веса динамически (например, раз в час). Таким образом суперпользователи сохранят влияние, но их "голос" станет менее доминирующим.
2. Сделать рейтинг поста менее зависимым от мгновенной активности пользователей и более устойчивым к долгосрочным трендам, Используя формулу активности с временным затуханием
В этом случае оценки супер активных пользователей в первые минуты теряют вес со временем, если пост не получает поддержки от других. Посты с постепенным ростом (от большинства) получают преимущество.Оценки от менее активных пользователей получают больший вес, что выравнивает баланс
3. Можно разделить влияние супер активных пользователей и большинства через разные подходы к ранжированию. Например, можно сделать несколько скрытных "слоев" в ленте "горячее". В случае двух слоев получится "Глобальный топ" — который учитывает оценки всех пользователей с нормализацией и слой "тренды большинства" — который учитывает только пользователей с низкой и средней активностью (например, до 10 оценок в сутки).
Далее, показываем пользователям смешанную ленту (например, 70% "тренды большинства", 30% "глобальный топ").
4. Можно стимулировать активность обычных пользователей. Идея заключается в том, чтобы мотивировать менее активных пользователей ставить больше оценок, чтобы их вклад вырос, путем награды за оценки, например, дополнительный временный буст видимости своих постов постов, дополнительные стартовые плюсы при публикации поста.
5. Также можно мониторить и учитывать "бездействие" супер активных пользователей на конкретных постах.Если супер активный пользователь просматривает пост (например, проводит >3 секунд в зоне видимости) и не ставит оценку, это снижает рейтинг поста лишь на небольшую величину (например, -0.1 с учётом веса). Таким образом игнорирование становится менее разрушительным для постов, а активное продвижение их конкурентов теряет силу.
6. Можно использовать вспомогательные сигналы (время просмотра, скроллинг, клики) как индикатор интереса и включать их в рейтинг поста, особенно для менее активных пользователей. Создать "виртуальный лайк". Например, собираем такие данные как:
Время просмотра: сколько секунд пользователь провёл на посте (например, >5 секунд = интерес).
Глубина скроллинга: дошёл ли до конца текста/изображения.
Действия: клики на ссылки, увеличение изображения, копирование текста.
Т.о. метрика "внимания":
Присваиваем "виртуальный лайк" за высокий уровень внимания (например, A>1.5 A > 1.5 A>1.5). Вес виртуального лайка можно сделать ниже явного (например, 0.3 вместо 1), чтобы не переоценивать пассивных пользователей.
Такая система позволит дать "голос" большинству (~62–79% аудитории), которое редко ставит лайки/дизлайки. Т.о. посты, интересные пассивным пользователям, также получают шанс выйти в горячее, даже если супер активные их игнорируют. Снижается влияние "тишины" супер активных пользователей, так как рейтинг начинает зависеть от поведения большинства. А лента должна стать более репрезентативной для всей аудитории, а не только для активного меньшинства.
7. Интеграция машинного обучения для предсказания "интересности" контента. Идея заключается в том, чтобы использовать исторические данные, для того, чтобы модель предсказывала потенциальную популярность поста и корректировала его вес в реальном времени, помогая новым постам "взлететь" или компенсируя перекос от супер активных пользователей.
Фух, мы закончили! Спасибо за внимание!
Ребята, оцените: @kgam.tyhf, @Vseslogno, @CryptoBomj, @Relictor, @zoom100, @spawn652, @Lebedun, @PandaMedved, @Shoewreck, @Tulumbaec, @Mandalorian1984, @lelikness, @ShadowyIrbis.
Подписывайтесь! Мы — супер авторский проект. Наши посты вызывают живой интерес, но порой балансируют на тонкой грани между плюсами и минусами. Нам действительно непросто конкурировать в горячем с вирусным, развлекательным контентом.
Просто почитайте или послушайте наши музыкальные повести! Всем добра!













