Векторные вложения: почему вам стоит пересмотреть свою работу с семантикой

Традиционная работа с семантикой
Традиционная работа с семантикой

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

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

Да, мы все слышали что-то про машинное обучение, нейросети, дистрибутивную семантику, но всё это казалось чем-то абстрактным, а работа с семантикой всегда упиралась в фактически лексические средства и статистику употребления ключевых слов в документах из эталонного корпуса – топа поисковой выдачи. Но эра «наивного» поиска уже закончилась.

И вот сейчас у нас появилась возможность полноценной работы с большими языковыми моделями (LLM) на естественном языке. Откройте первую попавшуюся статью об использовании чат-ботов в SEO: там будет в лучшем случае заявление, как ChatGPT помогает нам с аналитикой (ага, ага), но чаще – как мы сгенерировали миллион статей, пустив по миру копирайтеров с бирж.

И это всё?

Рассмотрим, как действительно стоит использовать ChatGPT и другие LLM для поисковой оптимизации.

О разрыве между теорией, поисковыми алгоритмами и практикой SEO

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

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

Когда в 2013 году Google внедрил Hummingbird на базе word2vec (сейчас уместнее говорить о ScaNN), Яндекс – «Палех» на базе DSSM, и позже – «Королев», ключевые слова технически перестали быть реальной необходимостью для того, чтобы поисковые системы смогли разобраться с контекстом. Но это вовсе не значит, что ключевые слова утратили смысл: как было уже сказано, текстовые алгоритмы, используемые для работы с контекстом, затратны и требуют больших ресурсов, поэтому для SEO мало что изменилось, тем более – в коммерческом сегменте. Считаем ключевики, потом накачиваем URL ссылками и поведенческими ботами – и вот он результат.

Создаём контекст по топам классическими средствами. Это работает до сих пор
Создаём контекст по топам классическими средствами. Это работает до сих пор

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

  • Более весомые факторы ранжирования в сравнении с текстовой релевантностью

  • Ограничения самих алгоритмов и их затратность

  • Отсутствие полноценного инструментария для работы оптимизаторов и непонимание принципов работы нейронных сетей и машинного обучения.

По последнему пункту: откройте любую статью о SEO того времени на эту тему и увидите стандартный набор чепухи: «оптимизируйте тайтлы», «обновите семантику», «форматируйте текст», «заполните alt у картинок», бла-бла-бла. Всё те же архаические подходы, основанные на синтаксисе и лексике, но не имеющие отношения к семантике как работе со смыслом и контекстом.

Примерно та же история произошла с оптимизацией под голосовой поиск, избранные фрагменты, и теперь повторяется с оптимизацией под AI на выдаче (термин “SGE”, похоже, так и не прижился).

А была ли альтернатива? – Фактически – нет. Незачем усложнять, если всё решается ботами и ссылками, и банальным текстовым спамом. Разумеется, поисковые системы многое делали, чтобы это побороть, но по итогам раскачанный хост с возрастом, лояльной аудиторией, цитируемостью и высоким трафиком остаётся приоритетным для ранжирования.

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

Проблематика

  • Засилье маркетплейсов и медиа-платформ. Это сайты, где есть всё: контент на любой запрос, аудитория, доверие поисковиков, понятные принципы монетизации для обеих сторон. Как и зачем оценивать пару хороших страниц, которые ещё нужно обнаружить в ворохе поискового мусора десятилетней давности? Намного проще своевременно индексировать какой-нибудь «Дзен» с его аудиторией.

  • Смена логики. Ещё недавно можно было уверенно сказать, коммерческий это запрос или информационный (пусть и в процентах). Инфо-контент для интернет-магазина был вспомогательным, «раскачивать» который брались только после того, как получили уверенную видимость по коммерческим запросам. Сейчас спектральная выдача – норма по любым частотным запросам, а те же маркетплейсы и гипермаркеты штурмуют выдачу по запросам типа «Как пожарить картошку».

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

Можно «настукать» высокие позиции по отдельным частотным ключевым словам, но это не обеспечит ни трафик на сайт, ни продажи. Просто потому, что накрутки не увеличивают видимость сайта по большинству конверсионных запросов, а получив топы по частотным «ботным» запросам вы получите и соответствующий трафик – преимущественно чужих поведенческих ботов.

Для поисковых систем вполне очевидно, что сайт, имеющий высокую видимость по частотному запросу, но не имеющий видимости по микро-частотным – нонсенс. Такое простительно дорвеям уровня «Озон» или «Авито», но не прощается менее авторитетным хостам.

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

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

ML в поисковых системах: от BM25 до трансформеров

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

Векторные вложения: почему вам стоит пересмотреть свою работу с семантикой

Основа машинного обучения – это векторные вложения, эмбеддинги, «встраивания», «вставки». Система ранжирования оперирует с векторным представлением всего контента, от текста до видео. Векторное вложение – это одномерный массив, или многомерный вектор, с помощью которого LLM фиксирует семантическое значение слов, предложений и целых текстов. Благодаря преобразованию текстовых данных в векторные вложения языковые модели могут генерировать тексты, отвечать на вопросы, анализировать тональность текста и т.п.

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

И вот в чём разница между машинным подходом и нашими попытками воспроизвести логику алгоритма.

  • Мы: сканируем сайт, извлекаем контент, выявляем основные и связанные с ними ключевые слова. Выявляем входящие ссылки, оцениваем домены-доноры по каким-то синтетическим метрикам (куда входит возраст домена, объём входящих и исходящих ссылок и т.п.), составляем анкор-листы, переписываем типы контента. Пытаемся воспроизвести нечто подобное у себя.

  • Машины: объединяют средства лексического поиска (всё тот же BM25) с семантическим, работающим с векторными вложениями. Точно таким же образом оценивается не только контент, но и ссылки.

Как это работает

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

Что это значит на практике? И чем отличается, к примеру, от тех же LSA, word2vec, или просто тех самых народных «облаков»? Можно ли просто собрать все ключи по сайтам из заданной тематики и составить некоторый словарь, максимально релевантный запросам?

Можно. Только это не обеспечит внятной проработки контекста – если, конечно, текст не будет написан реальным экспертом в тематике. Но ему и списки ключевиков не нужны.

Хороший пример весомого ключевого слова, используемого вне контекста
Хороший пример весомого ключевого слова, используемого вне контекста

Для BM25 нет никакой разницы, что значит слово «лук»: важно, сколько раз оно используется в тексте. Методы дистрибутивной семантики способны понять: если в тексте кроме слова «лук» есть «огород», «грядка», «бабушка» – это не тот «лук», который в ряду «Робин Гуд» «Шервудский лес», «стрела», и совсем не тот, где «модное кисо», «гламур» и «фэшн». Однако трансформер и тут покажет большую эффективность в сравнении с тем же word2vec.

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

Можно увешаться перьями, но летать вы от этого не научитесь.
Можно увешаться перьями, но летать вы от этого не научитесь.

И вот тут мы сталкиваемся с глобальной проблемой: поисковые системы работают с гигантскими корпусами, сопоставимыми разве что с теми корпусами, на которых обучаются модели уровня ChatGPT. У вас нет таких технологических возможностей и ресурсов. Совершенно недостаточно спарсить десяток, сотню, тысячу текстов в заданной тематике и получить внятный результат. Хотя, безусловно, лучше хоть что-то, чем ничего, стоит обратиться к тем данным, что предоставляет либо сам BERT, либо современные LLM уровня ChatGPT.

Примечание. Разумеется, есть ещё одна альтернатива: дообучение BERT, то есть работа с самыми верхними его слоями. Это не так дорого и сложно, как обучение модели с нуля, но также требует навыков и ресурсов.

Работа со структурой, макро- и микросемантикой

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

  • Семантическая структура сайта – сеть контента, объединяющая различные документы, посвященные одной общей тематике (домену знаний), и охватывающая максимум пользовательских интентов с максимальной релевантностью.

  • Макросемантика — это оценка характеристик всей сети контента (семантической структуры сайта): как устроен контент, какой тематике он посвящен, насколько полно он её отображает. В счёт идут не отдельные термины и слова, а идеи, концепции и их связи.

  • Микросемантика — это детальный анализ отдельных элементов (слов и словосочетаний) и определение связи между ними в рамках отдельной страницы. Это качественная характеристика, позволяющая понять смысл документа, не зависящая от количества вхождений каких-то слов.

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

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

На базовом уровне идея проста:

  • Вы создаёте модель собственного сайта на базе эмбеддингов.

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

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

Основное отличие от подходов, основанных на лексических методах – это опора на контекст, возможность охватить максимум пользовательских намерений, которые могут быть неочевидными – и чаще всего именно неочевидны. Вы формируете структуру, соответствующую домену знаний – так, как это представляет поисковый алгоритм, граф знаний или шаблон разметки. Формировать структуру помогает работа с макросемантикой, отображающей темы в соответствии с пользовательскими намерениями (интентами). Микросемантика определяет релевантность отдельных документов.

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

Эмбеддинги для проработки ссылочного профиля

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

Если у вас есть сопоставление списка ключевых слов с целевыми страницами, у вас есть лучшее понимание, что и с чем связывается на уровне семантического графа. Особенно это полезно для хорошо масштабированных ресурсов: вы физически не сможете установить реальные связи, когда у вас по каждому субкластеру – сотни страниц. Как проверить, что с чем должно быть перелинковано, а от каких ссылок лучше отказаться?

Напомню, как это делалось вручную:

  • Иерархически, на базе субкластеров

  • Через оценку релевантности с точки зрения поиска: просто задаёте интересующий ключ с поиском в рамках сайта, и получаете выдачу, состоящую из страниц по мере убывания релевантности

  • С использованием анкор-листа, где всё определяло наличие какого-то слова на странице. Классика жанра: чтобы поставить ссылку с явно нетематичного сайта, оптимизатор обращался к простому трюку. В статье про разработку автомата Калашникова вставлялся абзац типа «Вы прочитали про разработку автомата, а если вам нужно разработать сайт – пожалуйте на сайт нашей веб-студии». И это худо-бедно работало – пока учитывались только ключевики и окружающий ссылку текст.

  • Из того, что есть и доступно по бюджетам с надеждой на «авось сработает». Иногда ведь срабатывает?

Объём ссылочного профиля уступает важности его релевантности. Ссылки с нерелевантных источников исключаются из расчётов PageRank, хотя, теоретически, могут учитываться в статистике – просто там быть.

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

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

Кластеризация

Одна из наиболее интересных возможностей использования LLM – это кластеризация на базе эмбеддингов.

Векторные вложения: почему вам стоит пересмотреть свою работу с семантикой

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

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

  • В рамках отчаянной оптимизации владельцы сайта часто начинают размещать контент, который, как им кажется, соответствует тематике и интересен аудитории. (Сам удалял с сайта продавца букетов статьи о радостях жизни: вкусная еда, возможность путешествовать, бесплатная доставка цветов... Нет, серьёзно). Диаграмма дисперсии на базе вложений покажет аномалии такого рода.

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


Для чего ещё можно использовать векторные вложения

В зависимости от типа вашего сайта и бизнес-задач, эмбеддинги можно использовать для следующих задач:

  • Подготовка рекомендаций. Тут можно обойтись здравой логикой: если у вас покупают принтер, разумно, если купят ещё и чернила вместе с принтерной бумагой. А если случай менее очевиден? – Тут стоит посмотреть на ближайших соседей в векторном пространстве.

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

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

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


Что нужно для работы

Это – самый печальный блок этого текста. Чтобы внедрить всё это в работу, вам понадобится:

  • Освоить навыки работы с Python и его библиотеками: NumPy, Pandas, Matplotlib, библиотеками для работы с NLP. Это, в общем-то, в любом случае надо осваивать, но работать с ML без таких навыков в принципе нельзя.

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

  • Инструментарий. Собственно, Screaming Frog начиная с версии 20 + хороший эмбеддер (их много) решают вопрос полностью. Но нюанс: SF не хочет продавать свой продукт в Россию. А для работы с векторными вложениями вам понадобится и API того же ChatGPT, например, или моделей от Google, которые тоже оплатить без фокусов не получится. Собственно, можно обойтись и собственным инструментарием: вы можете развернуть бесплатную модель локально, на своем сервере, и настроить её для обработки контента. Но для этого вам понадобится некоторая подготовка в сфере ML и достаточно мощная машина.

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


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

Но самое главное: масштабирование семантической структуры сайта привычными средствами уже неэффективно. Мало вручную или автоматически оценить контент конкурентов по топам, создать табличку, где методом «научного тыка» распределяется важность гипотетических метрик. Особенно – если есть реальная возможность обратиться к внутренним ресурсам самих поисковых систем (прежде всего – Google), и понять, что даст эффект, а что будет частью карго-культа оптимизации. Если можно устранить разрыв между поисковыми алгоритмами и практикой оптимизации – это надо делать.

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

Уверен, такие кейсы скоро появятся.

2020
76 комментариев

На самом деле вдумчивый семантист примерно так и работает, только с большим (и очень большим) объемом работы руками и головой.
*
Даже при появлении сервисов под это дело я не смогу им доверять задачу полностью :)
Но на рынке, конечно, тут же появятся массовые "специалисты". Заранее сочувствую клиентам.
*
Вижу в статье сильные аргументы в пользу полной семантики (отсылка к спору сеошников, нужна ли полная семантика).

2
Ответить

Вот меня тут привлекает идея сильно порезать ресурсы на проработку всего ядра. Мы двигаемся от слова (маркера), масштабируя таблички. ПС идут от концепции, углубляя их внутрь.
Это, кмк, более продуктивный подход.
А что касается полноты - так она работает, как минимум сейчас. Добавляешь на сайт пяток инфо-материалов - и получаешь буйный рост по коммерческим запросам коммерческой же категории - даже без перелинковки. ПС и так видит, что с чем связано на уровне хоста.

1
Ответить

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

2
Ответить

Вам спасибо за наводку. Claude Opus – как по мне, лучшее, что есть сейчас среди доступных LLM, возможность с ним работать очень облегчает многие процессы.

1
Ответить

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

1
Ответить

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

1
Ответить

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

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

1
Ответить