Ваш SEO текстовый анализатор 💩! Часть 2

<br />

Первая часть тут

Порядок слов важен!

Перейдем сразу к делу без лирики. Как я писал ранее, Яндекс, Google и большие языковые модели, такие как, Chat GPT, получают текст на вход и далее оцифровывают его в виде матриц, которые в зарубежной литературе называют векторами или эмбеддингами. Так, например, слово «окно» модель Gecko от Google преобразует в матрицу размерностью [1, 768] или в вектор начало которого лежит в нулевой точке, а конец лежит в точке с координатами указанными в матрице [1, 768].

В чем суть? В том, что процессе обучения векторы некоторых слов удивительным образом оказываются направленны в одно и то же место в 768 мерном пространстве. Условно говоря, лодка, рыбак и рыба смотрят в одну сторону, а бампер, фара, радиатор и руль в другую область пространства. Подробнее тут, тут и тут , а семантические эмбеддинги Яндекс применил ещё в 2016 году . Меру схожести векторов считают с помощью косинусного сходства .

Ваш SEO текстовый анализатор 💩! Часть 2

Причем тут SEO?

Первое и самое простое решение, о котором все SEOшники знают давным давно – это найти вспомогательные слова, или как их называют LSI фразы. Казалось бы, куда проще, прогони корпус русского языка через модель, надергай близких по смыслу слов и ТОПы обеспечены. Вот, кстати, бесплатный бот, который поможет в этой задаче. Но есть одна проблема и вот её суть:

Авиабилеты Москва - Дубай и Авиабилеты Дубай – Москва. Набор слов один и тот же, смысл разный. Эту задачу решают нейросети трансформеры, которые как раз научились учитывать порядок слов, сошлюсь на фундаментальный труд от Яндекса.

Проведем эксперимент, посмотрим меру cs (косинусного сходства) между ключом и предложением с помощью @words_comparison_bot.

1 пара:

Ключ: пластиковые окна

Текст: Покупайте пластиковые окна в компании Оконика со скидкой в Москве недорого с установкой и бесплатной гарантией.

cs = 0.8

2 пара:

Ключ: пластиковые окна

Текст: В компании Оконика покупайте недорого со скидкой и установкой с бесплатной гарантией пластиковые окна в Москве.

cs = 0.73

Если учесть, что минимальное значение, которое я видел 0.3, проведем вычисления (0.8-0.73)/(1-0.3)*100% = 10%. Разница не столь значительна, но ощутима. Скажите, вам знакомо, чувство, когда вы вылизали посадочную по вхождениям, чуть проспамили, употребили весь LSI арсенал, а она, сволочь такая, даже не шелохнулась? В чем же дело? Порядок слов в предложении зашит на уровне архитектуры нейросети с помощью метода positional encoding (позиционное кодирование.) Позиция каждого слова кодируется с помощью позиционного эмбеддинга* (вектора), а итоговый эмбеддинг – сумма из эмбеддинга слова и эмбеддинга его позиции.

Ещё раз! Итоговый вектор = вектор слова + вектор позиции слова

Что это значит для SEO?

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

Подведем итог первой части, порядок слов – важен!

Главное – отнощение “М. Гребенюк” :-)

Краеугольным камнем архитектуры трансформеров (BERT, GPT, YATI, LLAMA и тому подобное) является механизм внимания.

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

Представьте, что у нас есть предложение:

“Машина быстро едет по дороге”.

Мы хотим понять, какое слово в предложении наиболее важно для слова “едет”.

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

1. Вычисление значимости (Attention Scores): Для каждого слова в предложении мы вычисляем оценку значимости по отношению к текущему слову (например, “едет”). Это делается через умножение векторов, представляющих слова, и применение некоторых функций (например, softmax). Допустим , оценка значимости для слова

“Машина” по отношению к “едет” может быть 0.2, для “быстро” - 0.7, для “по” - 0.05, и для “дороге” - 0.05.

2. Взвешивание слов: Эти оценки значимости используются для взвешивания всех слов. То есть мы умножаем каждое слово на его оценку значимости.

“Машина” * 0.2 • “быстро” * 0.7 • “по” * 0.05 • “дороге” * 0.05

3. Создание нового представления (Context Vector): Все взвешенные слова суммируются, чтобы создать новый вектор представления для текущего слова (“едет”). Это новое представление лучше учитывает контекст, так как включает информацию о том, какие слова были наиболее значимыми.

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

А теперь давайте посмотрим, пусть будет: Эммануэль Макрон в машине быстро едет по дороге.

Какой теперь должен быть context vector? Видите, как всего два слова напрочь сломали весь контекст? О чем он теперь, про машину или про политику?

Что делать? Или итоговые выводы

1) Времена простых решений уходят, SEO текстовые анализаторы, которые сейчас есть на рынке… как-то работают и, что-то показывают.

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

4) Небезызвестный Андрей Буйлов порекомендовал один буржуйский ресурс, который дал ему реальный буст на ряде проектов, работающий как раз на нейросетях, https://neuronwriter.com/

PS Мой канал Python SEO 2 Нейрона в котором я, доступным языком, на примерах объясняю как работают нейросети и как это использовать в SEO.

8
12 комментариев