Всё об алгоритмах кластеризации: проблемы, решения, анализ

Нет это не ещё одно описание для чего кластеризация или не реклама MindSerp (новую версию которого мы все очень ждем 🙂 ). Здесь рассмотрим все виды алгоритмов кластеризации, с которыми знаком, их преимущества, а так же проблема кластеризации как таковой.

Когда начинал разработку софта, проблема алгоритма кластеризации мне казалось тривиальной и однозначной, таким оказался только основной  принцип, применимый легко для 2 запросов: «Если количество совпадений результатов в выдаче поисковой системы больше n, то два запроса принадлежат к одному кластеру»

После добавления 3 запроса, мы уже можем получить 4 ситуации, как могут пересечься запросы (не считая ситуации, где пересечений нет). Тут уже легче представить в виде кругов Эйлера:

  1. Все запросы имеют n пересечений между собой, идеальная ситуация:

3p

2. 2 запроса имеют пересечение, третий имеет пересечение только с ними вместе:

3p1n

3. 1 запрос имеет достаточно пересечений с 2 другими запросами, но те между собой не пересекаются (или пересечений мало)

2p2n

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

3p3n

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

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

Прибавляем 4+ запросов и тут появляются ещё две ситуации, которые раскрывают проблематику:

5. Увеличение удаленности запросов друг от друга4pn

6. «Ветвистая» зависимость запросовmn

Для того, что бы убедиться в актуальности каждой ситуации, взял несколько готовых кластеров из метрики и группировал с алгоритмами, которые давали реализовываться ситуациями от строгой, до самой «мягкой». Так же были протестированы результаты с разными значениями n и с запросами в боевых условиях.

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

Проблема большого кластера

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

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

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

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

Проблема «плавающих» кластеров

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

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

Проблема баланса

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

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

Проблема спектральных запросов

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

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

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

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

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

Проблема «фиксации» запроса

Когда один основной запрос берется за основной, остальные же к нему присоединяются (такой алгоритм использует rush-analitycs,  но у них есть свои дополнительные наработки к алгоритму, которые нивелируют эту проблему). Этот алгоритм показывает высокую точность, хорошую экономию во времени обработки, но имеет ряд проблем с ситуациями:

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

Общий вывод

Автоматическая кластеризация сильно облегчает работу по структуризации сайта и контента, но имеет ряд проблем описанных в статье. Ручная кластеризация сильно трудозатратна и часто слишком субьективна, на сколько бы экспертным в теме вы бы не были. На данный момент я остановился на полуавтоматической вдумчивой кластеризации. Мой алгоритм выглядит так:

  1. В зависимости от конкурентности тематики выбираю жесткость кластеризации (чем сильнее конкуренция, тем строже фильтры).
  2. Провожу первичную кластеризацию.
  3. Выбираю большие кластеры и проверяю их на «совместимость», для этого выбираю два слишком разных ключа и проверяю выдачу, на сколько она отличается от основного смысла статьи, если отличается то ставлю такие группы на перекластеризацию с большей точностью.
  4. Работаю с итоговыми кластерами соединяя похожие (предварительно проверяя на смысловую совместимость по топу) и распределяя по группам непрокластеризованные фразы.
  5. Структурирую кластеры, используя существующий сайт или проектируя новый. Важный момент, «висящие» вне структуры кластеры надо все равно определить на текущем сайте, но не просто как отдельные страницы, а с помощью новых структурных сущностей. Я часто сталкиваюсь с ситуацией, когда просто лепят массово страницы под кластеры без какого-либо распределения и навигации.

А с какими проблемами кластеризации сталкивались вы?


Понравился пост? Отблагодари социальным откликом и поделись ссылкой с друзьями:

Всё об алгоритмах кластеризации: проблемы, решения, анализ: 8 комментариев

    1. Тут для примеров целый пост надо выделять отдельный, иногда бывают очень необычные ситуации, но они слишком субъективны и сложно выделить «чистые» примеры

  1. Хорошая статья. Мы с первых дней в наш сервис «Семён Ядрён» заложили и развиваем именно полуавтоматическую кластеризацию семантического ядра, так как она на сегодняшний день по нашему мнению, дает лучший результат. Единственное, что ручная доводка ядра у нас также максимально автоматизируется, через различные модули и постпроверки.

  2. А что за пример, когда товарному запросу на сайте были и обзор, и карточка товара? И в итоге трафик шел на обе странице по тому же запросу!
    можно пример такого запроса?

    1. Вероятно в топе выдачи были обе страницы.
      Обзор как информационная, а карточка товара как коммерческая. У нас в Гугле так бывает.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *