На связи Марков Вадим из marmelad.digital.

С поведенческими факторами в Яндексе есть одна проблема: вокруг них накопилось слишком много объяснений, которые звучат правдоподобно, но разваливаются при первом же вопросе чуть глубже обычного.

Одна версия говорит, что Яндекс смотрит на кликабельность, время визита, глубину просмотра и возврат в выдачу. Поэтому достаточно искусственно сделать эти показатели красивыми, после чего документ начнет расти.

Другая версия противоположная: Яндекс давно умеет распознавать любые манипуляции, поэтому накрутка либо вообще не работает, либо все наблюдаемые результаты являются совпадением.

Обе модели очень удобные.

Яндекс действительно использует взаимодействия пользователей с поисковой выдачей при оценке качества поиска. Более того, расхождение между предсказанной и фактической полезностью выдачи учитывается при последующем переобучении алгоритмов. И одновременно Яндекс отдельно относит искусственную имитацию поисковых переходов к поисковому спаму.

Получается довольно интересная система.

Поисковику нужны пользовательские данные, потому что без них невозможно нормально измерять, действительно ли человек решил свою задачу. Но как только поведение начинает влиять на оценку поиска, появляется экономический стимул это поведение подделывать.

Интереснее другое:

Почему синтетическое поведение вообще может оказаться достаточно полезным для алгоритма, чтобы повлиять на выдачу, и что именно должен распознать Яндекс, чтобы этого не произошло?

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

Поведенческие факторы как термин скорее мешают, чем помогают

В профессиональной среде под поведенческими факторами обычно понимают сразу десяток совершенно разных вещей.

Кликабельность результата, возврат в поиск, продолжительность визита, глубину просмотра, повторные посещения, переходы между страницами, прямые заходы, брендовый спрос.

Иногда сюда же добавляют действия из систем веб‑аналитики: заполнение формы, нажатие на телефон, достижение цели.

Получается одна большая корзина, хотя события в ней имеют разную природу.

Кликабельность возникает внутри поисковой выдачи, глубина просмотра появляется уже на сайте. Брендовый запрос формируется еще до выбора конкретного результата, возврат в поиск связывает несколько действий в одну поисковую последовательность. Показатель отказов вообще является расчетной метрикой конкретной системы аналитики.

И самое главное: один и тот же показатель может означать противоположные вещи.

Наблюдение

Удобная трактовка

Другая вполне реальная трактовка

Высокая кликабельность

Документ очень релевантен

Документ просто находится выше

Долгий визит

Пользователю интересно

Пользователь долго не может найти ответ

Короткий визит

Страница плохая

Ответ найден почти мгновенно

Большая глубина

Пользователю нравится сайт

Информация плохо организована

Возврата в поиск нет

Задача решена

Пользователь просто прекратил поиск

Пользователь вернулся в выдачу

Результат оказался плохим

Он сравнивает несколько вариантов

Повторный визит

Сильная привязанность к сайту

Задача регулярно повторяется

Допустим, человек ищет номер аварийной службы.

Он открывает страницу, за восемь секунд видит телефон, нажимает на него и закрывает сайт.

Если судить по продолжительности визита и глубине просмотра, пользователь ужасен.

Если судить по решению задачи, результат почти идеален.

Теперь другой сценарий. Человек хочет узнать стоимость услуги. Четыре минуты ходит по шести страницам, открывает описание, условия, вопросы и ответы, но цену так и не находит.

Формально глубина прекрасная.

С точки зрения пользователя сайт отнял четыре минуты жизни.

Поэтому поисковой системе недостаточно считать действия. Ей приходится по действиям восстанавливать ненаблюдаемое состояние: насколько успешно была решена задача.

И здесь начинается вся сложность.

Что Яндекс действительно говорит о пользовательском поведении

В этой теме особенно важно постоянно отделять опубликованную информацию от реконструкций специалистов по продвижению.

Яндекс публично описывает две метрики оценки качества поиска: Проксиму и Профицит.

Проксима связана прежде всего с качеством страниц. В ее оценке участвуют релевантность, вероятность решения задачи, качество содержимого, удобство восприятия информации и другие сигналы.

Профицит отвечает за полезность поисковой выдачи и рассчитывается на основании взаимодействий пользователей с результатами поиска.

Причем взаимодействие рассматривается не просто как клик. Яндекс пишет, что оно может быть признано успешным или неуспешным. В качестве одного из успешных сценариев приводится переход на внешний сайт без скорого возвращения в поиск. Среди неуспешных сценариев упоминаются быстрый возврат и необходимость изменить запрос, чтобы все‑таки найти нужную информацию.

Есть еще более важная деталь.

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

На этом месте очень легко совершить логический прыжок.

Фактическая полезность влияет на переобучение → я искусственно улучшу поведение → мой сайт обязательно получит прибавку.

Из документации такой вывод не следует.

Мы не знаем:

Неизвестная часть

Почему она важна

За какой период агрегируются наблюдения

Одно действие и накопленная история могут иметь совершенно разный вес

На каком уровне объединяются данные

Запрос, документ, сайт, тема или несколько уровней сразу

Какие данные отбрасываются

Между сырыми событиями и обучением наверняка существует фильтрация

Как учитывается тип задачи

Коммерческий и информационный поиск имеют разную нормальную структуру поведения

Как учитывается место результата

Верхние позиции получают больше внимания уже из‑за своего положения

Какова роль истории пользователя

Одинаковое действие в разных контекстах может означать разные вещи

Через какие модели проходит сигнал

Нет оснований предполагать один отдельный коэффициент ПФ

С какой задержкой изменения попадают в модели

Наблюдаемый рост не позволяет восстановить внутреннюю последовательность

Клик не является голосом за сайт

Это, пожалуй, главный момент, без которого обсуждать накрутку ПФ бессмысленно.

Представим обычную выдачу.

Место

Кликабельность

1

32%

2

18%

3

11%

4

7%

5

4%

Самое простое объяснение: первый результат существенно лучше пятого.

Но у первого результата есть преимущество еще до оценки качества: он первый.

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

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

Условно процесс можно разделить на два события:

пользователь заметил результат → пользователь решил открыть результат

Если документ не получил клика, возможны две совершенно разные причины.

Пользователь его увидел и счел неподходящим.

Или пользователь вообще до него не дошел.

Для обучения это принципиальная разница.

Более того, на кликабельность влияют не только место и релевантность. Есть внешний вид сниппета, узнаваемость бренда, наличие цены, рейтинг, изображение, тип запроса, устройство, соседние результаты и предыдущие действия пользователя.

То есть условные 10 процентов кликов не являются самостоятельным свойством страницы.

Это результат взаимодействия страницы с конкретной выдачей.

И здесь появляется первая серьезная проблема для примитивной накрутки.

Если поисковая система способна оценивать, какое количество взаимодействий является нормальным для результата в данном положении и данном контексте, ее должна интересовать уже не абсолютная величина.

Интересно отклонение фактического поведения от ожидаемого.

Допустим, некоторый документ обычно получает мало внимания на шестом месте.

Внезапно пользователи начинают непропорционально часто выбирать именно его и после этого успешно завершать поиск.

Для системы ранжирования это потенциально интересное новое наблюдение.

Но ровно для той же системы выявления манипуляций это потенциально интересная аномалия.

Один и тот же всплеск оказывается одновременно полезным сигналом и поводом усомниться в достоверности этого сигнала.

Вот здесь начинается настоящая задача.

Что в действительности пытается подменить накрутка

Отсюда можно сделать довольно важный вывод.

При накрутке ПФ воздействуют не столько на сайт, сколько на данные о реакции пользователей на сайт.

Разница может показаться словесной, но на деле она меняет всю модель.

Примитивное представление выглядит примерно так:

много хороших визитов → высокий коэффициент ПФ → рост позиции

У нас нет подтверждений существования такой линейной схемы.

Более осторожная модель выглядит иначе:

поисковая выдача → взаимодействия пользователей → очистка данных → агрегированные признаки → оценка полезности → обучение моделей → будущая выдача

Если искусственно созданное действие отсеивается на этапе очистки, дальше оно не имеет значения.

Если действие остается в данных, но его вес крайне мал, эффект тоже будет близок к нулю.

Если определенная совокупность искусственных действий принимается системой как заслуживающее доверия наблюдение, теоретически она уже может изменить часть данных, на основании которых оценивается результат.

Именно в этом месте, на мой взгляд, и находится настоящая поверхность атаки.

Не заставить Яндекс поверить, что посетитель провел на странице 134 секунды.

А заставить систему принять синтетические наблюдения за реальные сведения о полезности документа.

Имитация действий пользователей искажает поведенческую статистику и не отражает реального интереса пользователей. Само определение нарушения довольно хорошо показывает, против чего направлена защита.

Это намного интереснее традиционного разговора про время визита.

Поисковая система сама создает данные, на которых потом учится

Теперь становится еще интереснее.

Представим два одинаково хороших документа.

Документ А находится на третьем месте.

Документ Б находится на тринадцатом.

А получает существенно больше видимых показов, кликов и последующих взаимодействий просто благодаря своему текущему положению.

Через какое‑то время система получает больше данных о документе А и меньше данных о документе Б.

Если без какой‑либо поправки обучаться на этих данных, возникает петля самоподкрепления:

высокое место → больше внимания → больше взаимодействий → больше данных → еще больше уверенности → высокое место

Поисковик начал бы постепенно подтверждать собственные прошлые решения.

Это не специфическая проблема Яндекса. Это общая проблема обучения ранжированию на пользовательских данных. Исследования показывают, что клики содержат систематические смещения и непосредственное обучение на них без коррекции способно приводить к ошибочным выводам.

Поэтому поисковой системе приходится делать несколько противоречивых вещей одновременно.

И при этом ей нужно отбрасывать данные, созданные специально для манипуляции.

Последний пункт особенно неприятный.

Если система будет слишком подозрительной, она рискует считать накруткой вполне реальное изменение спроса.

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

Поведение аудитории действительно изменится резко.

Поэтому правило резкий рост интереса равен манипуляции работать не может.

Система обязана оставлять возможность для реального мира удивлять модель.

Именно эта необходимость неизбежно создает пространство неопределенности.

Почему накрутка тогда вообще способна давать эффект

Вот здесь начинается самая спорная часть.

И поэтому дальше важно не выдавать гипотезы за документацию Яндекса.

Есть установленный факт: пользовательские взаимодействия участвуют в оценке поисковой выдачи и последующем переобучении.

Есть второй установленный факт: Яндекс считает искусственную имитацию таких взаимодействий поисковым спамом и применяет ограничения при обнаружении нарушения.

А дальше можно строить инженерное объяснение.

Если часть искусственных событий проходит проверку и остается статистически неотличимой от допустимых наблюдений, для последующих систем обработки это уже просто данные.

Причина первая. Система обнаружения не может быть идеальной

Любая система классификации работает с ошибками.

Есть пропущенные нарушения.

Имеются нормальные события, ошибочно признанные подозрительными.

Если поднять чувствительность слишком высоко, начнут страдать реальные пользователи и сайты с необычной динамикой.

Если снизить — часть искусственного поведения пройдет дальше.

Это обычный компромисс статистической системы, а не недостаток конкретно Яндекса.

Причина вторая. Разные участки системы могут работать с разной скоростью

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

Я не утверждаю, что Яндекс устроен именно так. Публичного описания внутренней временной схемы нет.

Но в сложных системах вполне нормально, когда сбор признаков, переобучение и поиск аномалий имеют разные временные горизонты.

Так теоретически может возникнуть временное окно, в котором эффект уже наблюдается, а окончательная оценка достоверности данных еще не сформирована.

Причина третья. Накопленных данных бывает мало

Для очень частотного запроса поисковик получает огромный объем естественных наблюдений.

Для редкого запроса данных значительно меньше.

Сто дополнительных событий на фоне миллиона естественных взаимодействий и те же сто событий на фоне нескольких сотен — статистически разные ситуации.

Отсюда логично предположить, что влияние одного и того же объема дополнительных наблюдений может существенно зависеть от естественного объема данных.

Это общая статистическая логика, не подтвержденная схема ранжирования Яндекса.

Причина четвертая. Часть наблюдаемого эффекта вообще может быть ошибочно приписана накрутке

И эту версию рынок почему‑то любит меньше всего.

Позиция выросла после начала воздействия.

Из этого следует только последовательность событий.

Причинность еще нужно доказать.

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

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

Для выявления накрутки необязательно определять каждого бота

Это еще одна вещь, которую часто понимают слишком буквально.

Разговор обычно сводится к поведению отдельного посетителя.

Двигает ли он мышью естественно.

Как долго находится на странице.

Пользуется ли настоящим браузером.

Какой у него адрес сети.

Но системе выявления манипуляций вообще не обязательно отвечать на вопрос настоящий ли конкретно этот человек.

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

Представим десять тысяч отдельных визитов, каждый из которых выглядит совершенно нормально.

Но почти все они неожиданно возникают вокруг одной небольшой группы запросов. В каждом случае пользователи сначала выбирают разные результаты, а затем почему‑то стабильно заканчивают путь на одном и том же документе. Динамика появляется в короткий период после месяцев совершенно другого поведения.

Отдельная точка выглядит естественно.

Совокупность уже может выглядеть крайне необычно.

Это универсальный принцип обнаружения аномалий:

Правдоподобность отдельного события еще не означает правдоподобность распределения событий.

Какие именно признаки использует Яндекс, нам неизвестно.

И придумывать конкретный список IP, отпечатков браузера, скоростей движения мыши и каких‑нибудь тайных коэффициентов здесь было бы просто несерьезно.

Но уровни, на которых в принципе можно искать аномалии, понятны.

Уровень наблюдения

Что меняется

Отдельное действие

Структура одной поисковой последовательности

Пользователь

Поведение во времени

Запрос

Распределение выбора результатов

Документ

Динамика интереса к конкретной странице

Сайт

Соотношение активности между разделами

Группа пользователей

Сходство действий разных участников

Время

Скорость возникновения новых закономерностей

Сеть взаимосвязей

Совместное появление одних и тех же объектов

Еще раз: это не перечень алгоритмов Яндекса.

Это способ показать, почему спор о реалистичной мышке довольно поверхностный.

Чем масштабнее манипуляция, тем труднее подделать не отдельного пользователя, а правдоподобную популяцию пользователей.

Почему время на сайте стало почти религиозной метрикой

Во многих рекомендациях по ПФ до сих пор встречается удивительно механистическая картина.

Человек должен провести на сайте достаточно долго.

Должен открыть несколько страниц, проскроллить материал.

И желательно не возвращаться в поиск.

Но если поисковой системе действительно важна успешность решения задачи, универсальная продолжительность просто не имеет смысла.

Возьмем четыре запроса.

Задача

Поведение

Качество результата

Найти телефон организации

9 секунд, одна страница

Отличное

Прочитать технический разбор

14 минут, одна страница

Возможно отличное

Узнать цену услуги

5 минут, семь страниц

Возможно плохое

Сравнить пять поставщиков

Несколько возвратов в выдачу

Нормальное

Поэтому отсутствие возврата в поиск действительно может быть полезным признаком, но не универсальным правилом.

Яндекс именно так и описывает подобные события: длительное отсутствие возврата приводится как пример успешного взаимодействия, а быстрый возврат — как пример неудачного. Это не заданный порог в секундах и не инструкция вебмастеру задерживать человека любой ценой.

Есть еще один момент.

С точки зрения поисковика действительно хорошая страница иногда должна сократить время пользователя.

Если раньше человек тратил четыре минуты на поиск ответа, а после переделки интерфейса стал получать его за сорок секунд, продукт стал лучше.

Если оптимизатор слепо максимизирует длительность визита, он фактически начинает оптимизировать сайт против интересов человека.

Получается забавный парадокс.

Попытка улучшить условные ПФ способна ухудшить реальное пользовательское поведение, из которого эти ПФ вообще должны возникать.

Сто одинаковых действий могут иметь совершенно разный вес

Есть еще одна причина, по которой попытки вывести универсальную дозировку ПФ выглядят сомнительно.

Система уже что‑то знает о документе до новых взаимодействий.

Представим известный сайт, который годами получает большой объем поискового трафика. У него накоплена огромная история.

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

Допустим, обе получают по сто новых успешных взаимодействий.

Для первого документа сто событий могут почти не изменить общую картину.

Для второго — это заметная доля всей известной истории.

В статистике влияние новых наблюдений обычно зависит не только от их количества, но и от того, насколько уверенной была предыдущая оценка.

Не нужно считать, что Яндекс обязательно реализует это в какой‑то конкретной математической форме. Мы не знаем устройство внутренних моделей.

Но общая идея принципиальна:

Новые данные ценны относительно того, сколько достоверных данных уже существует.

Отсюда следует, что одинаковое воздействие теоретически может иметь разный эффект:

  • для частотного и редкого запроса;

  • для нового и старого документа;

  • для крупного и небольшого сайта;

  • в стабильной и быстро меняющейся теме;

  • при большом и маленьком естественном потоке пользователей.

Поэтому фраза для роста нужно столько‑то переходов в сутки мне всегда казалась подозрительно похожей на продажу услуги, а не на описание поисковой системы.

Есть еще одна проблема: современный поиск давно не состоит из десяти ссылок

Старая модель ПФ предполагает очень простой сценарий:

запрос → список сайтов → клик → посещение сайта → возврат или отсутствие возврата

Но современная выдача устроена иначе.

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

Пользователь вообще не обязан переходить на сайт, чтобы успешно решить задачу.

И это не мое предположение.

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

Это очень важная вещь.

Для владельца сайта отсутствие клика обычно выглядит плохо.

Для поисковой системы отсутствие клика может означать идеальный результат.

Человек запросил курс валюты, увидел значение и ушел.

Или нашел телефон организации прямо в карточке, или получил короткий фактический ответ.

Поэтому качество поиска и объем переходов на сайты — разные величины.

Чем больше поисковая система решает задач внутри собственной выдачи, тем менее полноценным становится представление о ПФ как о чисто сайтовой статистике.

Пользовательское поведение начинается раньше сайта и может закончиться вообще без сайта.

Почему рынок накрутки не исчезает, хотя Яндекс борется с ней много лет

Мне кажется, здесь есть довольно простой экономический ответ.

Пока существует хотя бы вероятность того, что искусственно созданные наблюдения:

  1. не будут отброшены системой;

  2. изменят оценку результата;

  3. приведут к росту коммерчески важного запроса;

у такого воздействия есть денежная ценность.

Особенно в выдаче, где разница между четвертым и первым местом может означать существенную разницу в заявках.

Поэтому противостояние вряд ли когда‑нибудь закончится окончательно.

Поисковая система совершенствует методы очистки данных.

Манипуляторы пытаются уменьшить отличия искусственного поведения от естественного.

Система начинает смотреть не на отдельные действия, а на более широкую структуру.

Стоимость создания правдоподобной синтетической аудитории растет.

После очередного изменения часть методов перестает давать эффект, часть сохраняется, часть результатов вообще оказывается неверно приписана ПФ.

Это не борьба конкретного алгоритма с конкретной программой.

Это гораздо более общая задача: можно ли доверять наблюдению, если у кого‑то существует экономический стимул это наблюдение подделать.

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

Поиск просто является особенно дорогой версией той же задачи.

И все‑таки почему сайты двигаются

После всего разбора можно вернуться к названию.

Почему накрутка поведенческих факторов до сих пор двигает сайты в Яндексе?

Самый аккуратный ответ, который я могу дать, выглядит так.

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

Раз пользовательские наблюдения обладают информационной ценностью, их искусственная подмена потенциально создает поверхность для манипуляции.

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

Поэтому наблюдаемый рост после воздействия еще не раскрывает механизм роста.

И уж тем более он не доказывает существование простого показателя ПФ внутри алгоритма.

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

Вывод

Чтобы не заканчивать очередным универсальным советом улучшать сайт для людей, сведу весь разбор к нескольким утверждениям.

Тезис

Насколько он обоснован

Яндекс анализирует взаимодействия пользователей с поисковой выдачей

Подтверждено самим Яндексом

Пользовательские взаимодействия используются для оценки полезности поиска

Подтверждено

Фактическое отклонение полезности от предсказанной учитывается при переобучении

Подтверждено

Искусственная имитация поисковых переходов считается нарушением

Подтверждено

Клик нельзя считать чистой оценкой релевантности

Хорошо подтверждено исследованиями поисковых систем

Положение результата влияет на вероятность клика

Хорошо подтверждено исследованиями

Яндекс использует фиксированный коэффициент ПФ для каждого сайта

Подтверждений нет

Существует универсальная хорошая продолжительность визита

Подтверждений нет

Большая глубина просмотра сама по себе улучшает ранжирование

Подтверждений нет

Любой рост после накрутки вызван именно накруткой

Экспериментально не следует

Искусственные данные, прошедшие фильтрацию, теоретически могут менять статистическое представление о результате

Разумное инженерное следствие, но внутренняя реализация Яндекса неизвестна

Мне как раз кажется, что последняя строка лучше всего объясняет ситуацию на рынке.

Не существует противоречия между тем, что Яндекс умеет бороться с накруткой, и тем, что отдельные воздействия продолжают давать результат.

Для противоречия пришлось бы предположить, что система обнаружения должна быть абсолютно безошибочной.

А безошибочных классификаторов на живом человеческом поведении не существует.

Вопрос поэтому давно уже не в том, видит ли Яндекс искусственные действия.

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

Вот там, скорее всего, и находится самое интересное место всей истории.