SEO Python 2 Нейрона
1.33K subscribers
56 photos
1 video
1 file
27 links
Простым языком про нейросети, python и про то, как это применять в SEO. Блог Владислава Папернюка
Download Telegram
Нашел своё Alter ego в буржнете 🤓

Знакомьтесь, Ваган Петросян – директор по технологиям Search Engines Journal

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

Introduction To LLMs Text Embeddings For SEO With Examples. Вводная информация по векторным представлениям текстов для SEO с примерами

Find Keyword Cannibalization Using OpenAI’s Text Embeddings With Examples. Как найти каннибализацию ключей используя эмбединги OpenAI

Чуть позже выложу перевод и свою интерпретацию 2-й статьи
😁4👍1
Ещё один клёвый способ использования ChatGpt для программинга

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

Но! Вчера меня осенило!

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

Короче, кидаю скрипт в ChatGpt и говорю, напиши мне подробные комментарии к коду, и он их пишет в лучшем виде!

Теперь мой код выглядит красивым и правильным, а волосы стали более густыми и шелковистыми 🤓
🤡43🤯2
Крутить или не крутить? Вот в чем вопрос! ПФ и YATI – или почему Яндекс так чувствителен к накрутке?

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

Что такое YATI? Очень грубо, это BERT (модель трансформер) плюс простая (feed-forward) нейросеть, задача которой предугадывать был ли клик по фразе.

Приведу цитату:
Как и BERT, модель сначала учится свойствам языка, решая задачу MLM (Masked Language Model), но делает это сразу на текстах, характерных для задачи ранжирования. Уже на этом этапе вход модели состоит из запроса и документа, и мы с самого начала обучаем модель предсказывать ещё и вероятность клика на документ по запросу. Удивительно, но тот же самый таргет «переформулировок», который был разработан ещё для feed-forward-сетей, отлично показывает себя и здесь. Обучение на клик существенно увеличивает качество при последующем решении семантических задач ранжирования.


Вот эту вторую нейросеть, Яндекс изначально обучил на исторических данных, которых у него масса, но модель нужно периодически переобучать, то есть добавлять новые пары «запрос» => «вероятность клика»

А, что будет, если начать искусственно крутить ПФ по некоторым фразам? Правильно модель может сломаться. И в этом, как мне кажется, и лежало то изначально агрессивное неприятие накрутки ПФ. Но времена меняются, за накрутку не банят, но тогда возникает вопрос, а, что же такого смог придумать Яндекс, что отфильтровать влияние накрутки?

Как бы я поступил, будучи разработчиком?

Во-первых я бы ввел как минимум 3-х ступенчатый алгоритм. На первом этапе всем подозрительным ботам я бы скармливал капчу, отсеивая таким образом львиную долю «тупого» трафика.
Во-вторых я бы ввел некий показатель «подходящести» посетителя (прошу не докапываться до фразы) конкретному запросу.
В третьих я бы ввел показатель «трастовости» и завязал бы его тупо на кол-во денег потраченных на Яндекс такси, музыке и прочих сервисах.

У Яндекса это всё давно уже есть, предлагаю посмотреть вот это занимательно видео. Каждого посетителя Яндекс видит как эмбеддинг, состоящий из исторических данных. При выборе сайтов, которые он показывает вам в персонифицированной выдаче, он берет одну часть из Yati, а другую из Трансформера отвечающего за персонализацию и сгружает это все в Catboost (финальная нейросеть сборка).

Делаем выводы?

Всё то, о чем говорят ПФщики, а именно, нагул профилей по долгосрочным интересам, разный «вес» кликов от живого человека и от бота – в некоторой степени подтверждается информацией публикуемой Яндексом.

ОК, тогда в чем проблема, спросите вы? Если Яндекс так здорово научился вычислять фейковых посетителей, почему он тогда не прикроет лавочку окончательно?

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

Таким образом у нас классический «меч против щита». И Яндекс и ПФщики ограниченны ресурсами. Рубануть сходу не получается видимо теряется качество, жестко фильтровать – экономически невыгодно, вот и приходится балансировать терпеть между фильтрами и финансами.
👍7🔥5💯1
А у тебя уже было это… конверсия? 😂

В кои-то веки напишу не про нейросети). Пришел в понедельник один проект на контекстную рекламу. Ниша дурная перегретая, лиды по 8000 - вообще трындец!

Колдуем с Директологом который день, запустили сегодня кампанию на поиске. Звоню, говорю, Вероника, ну что была конверсия? Нет!

Я говорю, знаешь на кого мы с тобой похожи? Нет. На 2-х 15 летних подростков блин! А у тебя уже была конверсия? Нет, пока не было, а у тебя?

Ааааа!!!!! 🙈😂🤪
🤣9😁5😐4👀2
Режь длинный хвост!

Один интересный нюанс из видео про трансформеры YATI.

Коротко суть: Яндексоиды собрали большую модель (нейросеть), обучили её методом маскирования, а так же на вероятность клика, получили шикарный результат, попытались применить в рантайме (в боевом режиме) и офигели!

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

Как ускорить время получения результата? Ну, как минимум, уменьшить объем анализируемых данных, допустим, учитывать первые 40 слов, а остальные выкинуть на фиг!?)

Нет, все не так просто. Что сделали разрабы? Они взяли модель с отрезанным хвостом, натренировали её на результатах большой модели. Получили следующие цифры, большая модель – 95,6% точности и 1 сек отклика, YATI продакшн – 95,4% точности и 0,1 сек отклика.

Так, что, получается, чтобы оценить релевантность вашей страницы YATI достаточно прочитать первые, ну допустим, 40 слов? Ну так погнали запихивать все в первый абзац, иначе Яндекс не поймёт всей той чудо оптимизации по облакам, которую вы так старательно выравнивали по ширине и глубине? 😉

Мнение скромного владельца этого уютного канала: да, имеет смысл поработать над первым абзацем, но упарываться запихивая туда всё и вся я бы не стал, тем более, что Яндекс учитывает и другие зоны документа, например, <а> </а>, так называемые зоны релевантности (слова слева и справа от ключа) и так далее. Кроме того, не забывайте про контекст, который YATI добывает с помощью механизма attention по близким фразам, а вы с помощью моих бесплатных ботов.

Ок, это понятно, а, что делать, если на сайте громадное многоуровневое меню? Оно как-то учитывается или нет?

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

Поэтому логично предположить, что сквозное меню в начале страницы - отдельная зона документа. Но это всего лишь мои догадки, основанные впрочем на логике и на анализе.
🔥5🏆21
Первые результаты голосования за лучшую LLM модель!

Не так давно я запустил голосование среди SEOшников на тему: Какая языковая модель лучше находит LSI семантически близкие слова.

Кратко суть эксперимента
Подаём на вход ключевое слово и с помощью механизма описанного у меня в телеграм канале, ищем наиболее близкие по ключу фразы в базе слов всех 4-х нейросетей. На выходе Excel таблички в которых отобраны лучшие 100 слов для каждой из моделей.

И вот подъехали первые результаты и есть первая сенсация, итак по порядку!
1. Предварительная оценка показала, что, если взять выборку из 100 наиболее важных слов (вряд ли SEOшник внедрит больше), пересечение фраз со всеми 4-мя моделями колеблется в районе 15%. Максимальная схожесть по близким фразам которую я увидел между 2-мя моделями в районе 60%. Таким образом, можно сделать вывод, что важно выбрать именно правильную модель.
2. Модель от Google показала, крайне слабые результаты, просто удивительно!
3. Chat GPT на удивление не плох!

Ну и самая главная интрига, кто же на 1-м и 2-м месте? Ну, как вы догадались не Google ) Может ChatGPT?

Выводы делать рано, давайте ещё потестим!

SEOшник? Мне нужна твоя помощь, тапни тут и проголосуй за лучшую модель!
🔥3😁2👍1
ТО пройдено!

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

Анонс! В ближайшее время планируются следующие обновления

@vector_keywords_bot (поиск n-грамм по ключу) – переход на парсинг с эмуляцией браузера

@vector_text_bot (на вход ключ и текст, на выходе размеченный по сходству текст) – анализ не только по тексту но и по url, добавление рекомендаций по использованию слов
🔥13👎1😁1
Сегодня в гостях у Михаила Шакина, выступаю с докладом про текстовый анализ и текстовые анализаторы. Не пропусти! Будет мясо 🥩! 😉
👍2
🖨 Текстовый анализ в эпоху нейросетей

Какая языковая модель лучше всего находит LSI слова, ChatGPT, Сбер или Google? Почему текстовые анализаторы, основанные на старых принципах не работают? Какие анализаторы текста есть на рынке? Обзор платных и бесплатных сервисов. Почему порядок слов важен? Как одно слово может испортить всю оптимизацию?

19 сентября в 15 по Москве смотрите вебинар Владислава Папернюка @seo_python_2neuron.

📺 Трансляция на YouTube:
https://www.youtube.com/watch?v=I79BgjkFWFI

🎞 Смотрите плейлист "Нейросети и SEO" на моем YouTube канале:
https://www.youtube.com/playlist?list=PLS7oN4pFU92vhof9bMIQBEuM_BD4mo3Yf

🎥 Трансляция в моем профиле ВК. Все записи вебинаров доступны здесь https://vk.com/video/@globator):
https://vk.com/globator

🚛 Мои каналы в ВК Видео:
https://vk.com/video/@shakinseo - видео по продвижению сайтов в рунете
https://vk.com/video/@burzhunetseo - видео по продвижению англоязычных сайтов

📼 Кроме этого, запись вебинара будет размещена в моем канале на Дзене:
https://dzen.ru/shakin

📹 В моем Rutube канале:
https://rutube.ru/channel/24777621/

🎦 И на Платформе:
https://plvideo.ru/channel/6pja9nQOHAy8

Михаил Шакин, @shakinweb #аналитика #контент #seotools #точкироста #оптимизация #техническоеseo
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥7🏆3
Где лучше расположить ключ в предложении?

Пишу этот пост по мотивам выступления у Михаила Шакина https://www.youtube.com/watch?v=I79BgjkFWFI.

Как я уже неоднократно писал и приводил примеры, нейросети трансформеры учитывают порядок слов. А, что если провести ряд экспериментов и выяснить как влияет, к примеру, расположение ключа в предложении?

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

1) Будем считать, что нейросети читают текст по предложениям, на самом деле это может быть не так, но следует отметить, что при обучении трансформеров, подаются тексты ограниченные специальными токенами ([CLS] в начале и, как правило [SEP] в конце) https://huggingface.co/learn/nlp-course/ru/chapter7/2 .
2) Для чистоты эксперимента, возьмем предложения состоящие из максимально нерелевантного слова, например английского слова “and”
3) Прицепим слева и справа ещё по предложению: prev_sent = 'Это самое обычное предложение состоящее из десяти слов русского языка.'
4) На вход буде подавать пары: ключ/текст
5) Длина предложения – 10 слов (средняя длина в русском языке 10.38 слов)
6) Результаты будем оценивать по механизму косинусной близости векторов пар, ключ/текст.
7) Векторы для пар ключ/текст будем брать из модели textEmbedding от Яндекса

Пример пар:
[ПВХ] / [ПВХ and and .. and]
[ПВХ] / [and ПВХ and .. and]
[ПВХ] / [and and ПВХ.. and]
………. / …………………………………
[ПВХ] / [and and and .. ПВХ]


Однословники. Подаем на вход, например пару: Ипотека / Это самое обычное предложение состоящее из десяти слов русского языка. Ипотека and and and and and and and and and. Это самое обычное предложение состоящее из десяти слов русского языка.
Результат: наблюдаем U-образные кривые с локальным максимумами если ключ стоит в начале либо в конце предложения

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

Триграммы с разным интентом – результат схожий

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

PS Ждите пост про то, как расставлять LSI слова, будет интересно! Пошел пилить статью на habr.com. 😉
👍28🏆4🤔2
На каком расстояний должно быть SRW (LSI) слово от ключа? Или как я облажался у Шакина 🙈

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

ЗЫ: В этом посте и далее я буду употреблять термин SRW (семантически релевантное слово), LSI или то, как его понимают SEOшники, это устоявшееся выражение, примерно как «ксерокопия», но в LSI другая мат. модель, не имеющая ничего общего с моими экспериментами.

Условия и допущения:
1) Методология и подкапотная часть идентична исследованию порядка слов.
2) Ключ поместим в начале предложения и будем к нему цеплять SRW слово на определённом расстоянии.
3) SRW слова берем тут @vector_keywords_bot
4) В качестве нейтрального слова заполнителя используем ‘‘and’’

Пример пар:
[окна] / [окна стекло and and .. and]
[окна] / [окна and стекло and .. and]
[окна] / [окна and and стекло .. and]
………. / ………………………………’…..…
[окна] / [окна and and and .. стекло]

Как думаете, оправдались мои ожидания?
Результаты получились интересными и довольно неожиданными.
Итак, первое, SRW слова влияют на косинусную релевантность пар слово/текст. Как раз об этом я говорил у Михаила. Добавление SRW слов в предложение с ключом, как правило, увеличивает косинусную релевантность.

Второе, как бы не хотелось притянуть за уши теорию, о некоем «окне релевантности» в котором необходимо использовать SRW слова но это не так. Близость SRW слова к ключу не влияет на косинусную релевантность текста, ну или мне не удалось это заметить. Каюсь, поторопился с выводами на эфире у Шакина.

Третье, SRW слова влияют по разному, какие-то больше, какие-то меньше, причем степень влияния не всегда коррелирует если сравнивать в лоб cs(ключ, srw слово). Так например, стеклопакет – самое релевантное слово, оказало меньшее влияние чем уплотнитель, но, скорее всего это погрешность эксперимента.

Ну и совсем неожиданный результат!
Случайным образом выяснилось, что слова явно определяющие интент, например (купить, цена, стоимость, как, что, если, почему) в начале предложения, увеличивают косинусную релевантность пары слово/текст!

В данном эксперименте была использована модель textEmbedding от Яндекса. Хмм, а, что если взять и сделать то же самое для Google? Интересно 🤔 ?
🔥37👍4💯2
Рейтинг текстовых анализаторов (ТА)

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

Эксперимент: возьмем ключ «окна пвх» и сравним, 50 первых SRW(LSI) слов, которых они нам порекомендовали к использованию. Если ТА не предоставляет информацию по ключу, подадим на вход урлы по которым делался анализ ТОПов.

В качестве языковой модели возьмем textEmbedding от Yandex.

Критерии оценки:

1. Косинусная близость (CS) для корпуса из 50 SRW слов и ключа
2. Среднее значение CS для первых 50 SRW слов и ключа
3. Полнота результата (количество найденных слов)
4. Платный / бесплатный
5. Возможность посчитать SRW вхождения в документе
6. Юзабилити
7. Вера в инструмент 😇
8. Справочно: принцип действия

Цифры в табличке: чтобы не усложнять восприятие, переведены в проценты. За нулевую точку взят текст про Большой Театр, а за 100% наиболее релевантный корпус текста.

Результаты:
1. Оценка по CS, и здесь нас ждет сюрприз! ChatGPT 4o по довольно простому промпту выдал один из лучших результатов! Не факт что чат GPT будет показывать стабильно высокий результат в дальнейшем, но само по себе это довольно любопытно. Ещё один лидер @vector_keywords_bot и здесь в стабильности результата сомневаться не стоит, она заложена в алгоритме.
2. Бесплатных анализаторов у нас всего три это @vector_keywords_bot, miratext.ru и ChatGPT 4o1-mini. Второй значительно проигрывает по юзабилити, а получение доступ для чата GPT связано с определёнными трудностями. Кстати Megaindex можно тоже считать условно бесплатным.
3. GAR (Relevantus) разработчик Артур Корсаков, если не ошибаюсь, абсолютный лидер по юзабилити. Графики, таблицы, облака тегов, ТЗ на копирайтинг, подсчет вхождений по зонам документов, ни один из ТА не представляет настолько полный функционал
4. Полнота результатов, здесь проще выделить аутсайдеров, это Pixel Tools, Arsenkin и Megaindex
5. Подсчет вхождения по зонам документа, здесь 50х50
6. Ну и за веру в инструмент добавим баллы GAR (Relevantus) и just magic, поскольку в SEO два культа: один Антона Маркина, второй Алексея Чекушина, адептом которого является ваш покорный слуга))

Результаты исследования сведены в табличку.

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

PS: как разработчик @vector_keywords_bot, я мог бы хвалить себя и бить пяткой в грудь, но я прекрасно понимаю, что мне ещё нужно докрутить. Но мой бот выигрывает по 5 критериям из 7 (я пока еще не обзавелся адептами 😂). А это согласитесь неплохо!
🔥16👍6👎2👏21
Channel name was changed to «SEO Python 2 Нейрона»