Наверняка каждый из вас хоть раз заходил на Дзен (бывший Яндекс.Дзен, ныне принадлежащий VK) - и задавался вопросом: Господи, за что мне это в ленте?
Вы можете яростно тыкать кнопки Пожаловаться, Не интересно и отправлять каналы в вечный бан. Но стоит вам один раз случайно задержать взгляд на заголовке в духе Шок! Теща застукала зятя за поеданием..., как вся ваша лента превращается в парад ментального апокалипсиса.
Если залезть под капот клиентского кода Дзена, становится предельно понятно, почему так происходит. Спойлер: алгоритм считает вас гораздо более простым существом, чем вы есть на самом деле, а ваши дизлайки для него - пустой звук.
Вот как эта система дрессирует вас на самом деле.
Великий обман с кнопкой "Не интересно"
Вы думаете, что когда нажимаете Дизлайк или Меньше такого, алгоритм раскаивается и убирает этот мусор?
На уровне кода все ваши страдания - это просто пакеты данных, которые пачками летят на сервер через эндпоинт /api/v4/launcher/stats/bulk. Ваши клики по кнопкам размечаются как:
feedback:less (лайк/дизлайк)
feedback:not_interesting (не интересно)
feedback:block (блокировка)
Знаете, как на это реагирует бэкенд? Он не убирает эту тему. Он просто думает: Ага, юзеру не понравился конкретно этот автор. Но сама тема про тайны советских актеров его явно зацепила! Срочно подсуньте ему еще пять абсолютно таких же каналов-копипастеров!
По сути, кнопка Не интересно работает как кнопка закрытия дверей в лифте - она создана просто для того, чтобы дать вам иллюзию контроля, пока сервер размечает на вас очередной датасет.
Почему нельзя замирать
Для рекомендательной модели время, проведенное за просмотром контента (timespent) - часто важнее, чем просто клик. В коде реализована отправка фоновых сердцебиений (heartbeats), которые фиксируют реальный интерес к публикации.
В коде буквально зашиты триггеры на удержание вашего внимания:
HEARTBEATS_17_SHORT_GIF
HEARTBEATS_61_LONG_GIF
Залипли на дурацкую гифку с котиком или забавным фейлом на 17 секунд? Поздравляю, система фиксирует сердцебиение короткого формата. Засмотрелись на 61 секунду, пытаясь понять, в чем вообще суть видео? Бам! Алгоритм радостно потирает виртуальные лапки, вешает на вас ярлык любителя длинных видеороликов и начинает заливать вашу ленту подобным контентом. Вы можете ненавидеть эти видео всей душой, но если вы тратите на них секунды своей жизни - для алгоритма вы фанат.
Ловушка скролла
Вы открыли статью с дичайшим кликбейтом. Читаете этот бред, у вас кровь течет из глаз, вы скроллите до самого низа исключительно для того, чтобы написать в комментариях: Автор, ты в своем уме вообще? Что за чушь?
В этот момент фронтенд Дзена отправляет на базу радостный отчет:
Для алгоритма ранжирования абсолютно неважно, что в комментариях вы предали автора анафеме. Цифры говорят сами за себя: глубина просмотра максимальная, время удержания - огромное. Алгоритм делает вывод: О, отличный, качественный контент! Пользователь прочитал взахлеб. Срочно выдать ему еще ведро таких же публикаций!
Два дерева ваших грехов
Внутри системы на каждого пользователя заведено два досье (в коде они называются деревьями интересов):
metachannelShortTree (краткосрочные интересы - за 1 день)
metachannelLongTree (долгосрочные интересы - за 3 месяца)
Если вы с утра с больной головой решили почитать про плоскую Землю или гороскопы - это попадет в ваше короткое дерево. Лента мгновенно пожелтеет. Но если вы продолжите кликать на это в течение недели, тема пустит корни в длинное дерево интересов. И вот оттуда выкорчевать её уже практически невозможно - алгоритм будет помнить ваши слабости еще три месяца, регулярно подсовывая старый добрый трэш на всякий случай.
Вывод
Пытаться переучить алгоритм Дзена с помощью кнопок дизлайк - это как пытаться объяснить гопнику в подворотне прелесть поэзии Серебряного века. Он вас выслушает, но сделает по-своему.
Единственный рабочий способ держать ленту в узде - это жесточайший информационный карантин:
Не кликать на кликбейт вообще (даже просто посмотреть, что за бред).
Не дочитывать плохие статьи (закрывать сразу, как только поняли, что это мусор, ломая показатель scroll_percent).
Не задерживать взгляд на сомнительных гифках и видео.