Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on null in /var/www/tgoop/function.php on line 65
46 - Telegram Web
Telegram Web
Ну и классика жанра: 'пластиковые окна' и 'окна ПВХ' cs = 0.91
1
Да блин, это полный бред интерпретировать меру косинусной близости с помощью векторов в 2-мерном пространстве. Но, куда деваться, я же обещал на пальцах 😇
1
Стоп! Зачем изобретать велосипед, когда есть TF/IDF и целая россыпь текстовых анализаторов?

Давным давно в далекой галактике, когда работали ссылки в Яндексе, в каждом втором резюме SEO Джуна не упоминались курсы Антона Маркина, а Рома Морозов и Андрей Буйлов жили в РФ, в Яндексе и Google работали языковые модели основанные на алгоритмах обработки мешка слов. Существует множество вариаций этих моделей, некоторые из которых, судя по прошлогодним сливам из Яндекса успешно используются и сейчас для ряда задач. TF/IDF, BM-25, BM25F, LSI – все эти модели так или иначе основаны на частотных словарях, глобальных IDF и документных TF. Но, мир не стоит на месте летит в преисподнюю поэтому рано или поздно от мешка слов пришлось отказаться в пользу трансформеров

Недостатки TF-IDF и BM25 по сравнению с трансформерами:

1. Ограниченная модель языка
TF-IDF и BM25: Эти модели ранжирования опираются на простую статистику в оценке важности слов, игнорируя контекст. Слово "ключ" может использоваться в значении "ключ к машине" и "ключ от квартиры", но оба метода не способны различить их контекст.
Трансформеры: Трансформеры строят глубокие представления слов в контексте всего текста. Так, используя внимание, модель различит, что "ключ" в контексте "машины" относится к автомобилю, а "ключ от квартиры" — к жилому помещению.

2. Синонимы и формулировки
TF-IDF и BM25: Эти модели полагаются на точное совпадение слов. Если пользователь ищет "лекарство от боли", документ, содержащий "обезболивающее средство", может быть ранжирован ниже из-за разницы в формулировке.
Трансформеры: Модели с использованием эмбеддингов способны обнаруживать схожесть между синонимами и близкими понятиями, поэтому могут выдать релевантные результаты, даже если терминология в запросе и документе отличается.

3. Фиксированное ранжирование
TF-IDF и BM25: Оба метода устанавливают весовые коэффициенты для каждого слова независимо от запроса пользователя. Это приводит к фиксированному ранжированию, при котором одинаковый запрос всегда получает одни и те же результаты.
Трансформеры: Модели трансформеров могут динамически ранжировать результаты, обрабатывая контекст запроса и документов. Например, запрос "лучшие смартфоны" будет давать разные результаты для статей о "самых доступных смартфонах" и "смартфонах премиум-класса".

4. Нормализация и длина документа
TF-IDF и BM25: Эти модели могут неверно ранжировать длинные документы, если они содержат повторяющиеся ключевые слова, или недооценивать короткие, хотя и содержательные, статьи.
Трансформеры: Трансформеры учитывают весь текст, а не просто набор ключевых слов, поэтому они способны лучше учитывать контекст даже в длинных или коротких документах.
Трансформеры более эффективно ранжируют и анализируют тексты благодаря своему пониманию контекста и сложным отношениям между словами, что делает их предпочтительнее для обработки естественного языка в современных системах поиска.

5. Ну и самое главное, ради которого всё и задумывалось – учет порядка слов
TF-IDF и BM25: Игнорируют порядок слов, что может привести к одинаковому ранжированию запросов с различным интентом, например "авиабилеты Москва Сочи" и "авиабилеты Сочи Москва".
Трансформеры: Учитывают порядок слов в запросе, позволяя различать и корректно интерпретировать намерения пользователей для каждого направления полёта.

Подведем итоги! Модель TF-IDF и BM25 и её вариации живы до сих пор, более того тот же самый Magic и ГАР и векторный анализ дают похожие результаты, но собака, что называется зарыта в нюансах, а их поверьте мне масса!
👍4👏2
🤖🤖🤖 Акуальные боты на 23.05.2024 🤖🤖🤖

@vector_keywords_bot – поиск n-грамм по ключу
@words_comparison_bot - сравнение двух текстов по косинусному схоству
@vector_text_bot - на вход ключ и текст, на выходе размеченный по сходству текст
Пример работы бота @vector_text_bot
Результат. Близкие слова - жирным, стоп слова и далекие зачеркнуты, остальные обычным шрифтом
Лень – двигатель прогресса!

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

В такие моменты мгновенно приходит в голову мысль: “Блин, а можно это как-то автоматизировать?” И вот на этом месте я открываю любимый pycharm и сажусь писать автоматизацию на python. Да, иногда быстрее все сделать руками и забыть, но! Неприятных ощущений то никто не отменял, а когда я погружен в процесс кодинга на python – приятное тепло разливается по всему телу, кислотно-щелочной баланс нормализуется, а волосы становятся густыми и шелковистыми 🥸!

К чему эта лирика?
Выкладываю наш внутренний инструмент, родившийся как раз в процессе автоматизации рутины.

Встречайте новый бот 🤖 - @clean_param_bot 🤖

Для чего?
Позволяет составлять инструкцию для Clean-param в несколько кликов.
Экономит ппц как много времени!

Как юзать?
Выкачиваете из вебмастера эксель файл, кидаете его в бот и буквально через пару секунд получаете инструкцию

Мануал тут https://sait-activator.ru/clean_param
👍62🐳1
Как обучаются нейросети, или почему GPT-4 такая умная. Лёгкое субботнее чтиво )🍹

Первые попытки генерации контента с помощью нейросетей я пробовал еще в 2021 году. Это были seq-to-seq модели с механизмом attention. Результат был мягко говоря не очень. Поэтому, когда появилась модель GPT-3, я, помня свой прошлый опыт изначально отнесся скептически, но когда я увидел GPT-4 я просто охренел!

Да именно в GPT-4 произошел квантовый скачок, переход от количества в качество!

Почему GPT-4 такая умная и как происходит обучение модели?
В процессе обучения на вход по очереди подаются тексты с масками, например:

(Маска) дядя самых честных правил
Мой (маска) самых честных правил
Мой дядя (маска) честных правил


Нейросеть пытается угадать какое слово должно быть вместо маски, результат оценивается с помощью метода back propagation (говоря простым языком - поощряется или штрафуется)

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

Вопрос, какой текст будет если подать на вход:
Бобр (маска)?
Ответ тут 😆

Мем старый но очень смешной ). ОК а теперь вопросы. А на каком текстовом корпусе обучались всем известные GPT модели? На книгах Толстого и Достоевского? На Википедии? На школьных чатах или может быть на всем сразу?

Какой корпус русского языка они использовали? И использовали ли они вообще корпус русского языка, или как все модели Open AI сначала думают на английском а потом переводят на все остальные языки мира?

В процессе написания @vector_keywords_bot я перепробовал разные модели и в итоге остановился на одной, которая мне показалась наиболее адекватной. Какой именно? Сохраним интригу для следующих постов 😉.
👍11🐳2
Ваш текстовый анализатор 💩!

Ну, что, клюнули на кликбейтный заголовок? 😉 А теперь ближе к телу! Великий и Ужасный был прав – порядок слов важен! Насколько, спросите вы?

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

1 пара:
Ключ: пластиковые окна
Текст: Покупайте пластиковые окна в компании Оконика со скидкой в Москве недорого с установкой и бесплатной гарантией.
cs = 0.8

2 пара:
Ключ: пластиковые окна
Текст: В компании Оконика покупайте недорого со скидкой и установкой с бесплатной гарантией пластиковые окна в Москве.
cs = 0.73


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

Порядок слов в предложении зашит на уровне архитектуры нейросети с помощью метода positional encoding (позиционное кодирование.)

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


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

Для чего это было сделано? Классический пример: «авиабилеты Москва Сочи» и «авиабилеты Сочи Москва».

Как SEOшники обходили эту проблему раньше? Использовали n-граммы, а не только униграммы.

Ок, скажете вы, пришел, поумничал, а нам простым SEOшникам как с этим жить дальше?

Не претендуя на роль SEO гуру могу сделать несколько простых выводов:
1. Все старые методики текстового анализа и большинство текстовых анализаторов основанных, на модели «мешок слов», что-то считают… Как это юзать – вопрос уже больше не технический а религиозный.
2. Ищите копирайтеров и SEOшников с бэкграундом в определенных нишах.
3. Используйте биграммы, чтобы хоть как-то подстроиться под порядок слов
4. Юзайте моих ботов, ну и тут тоже без религии никуда )))

Анонс! В ближайшие день/два выкачу новый функционал у одного из ботов, отвечаю, будет бомба!💥
👍181
Йу-ху! Держите @vector_keywords_bot версия 2.0!

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

Как это работает?
1. /start – стартуете бота
2. подаете ключ в первом сообщении
3. url – во втором сообщении, либо цифру «0» если url не нужен
4. наслаждаетесь результатом

Всем продуктивных трудовыебудней! 👷
👍8🔥3🏆1
Как читать результаты для @vector_keywords_bot?

Здесь cs – косинусная близость
Вхождений в url – вхождения лемматизированной n-граммы в тело страницы

PS Сloudflare и антиботов пока не проходит, это следующая задача.
👍6
Легкое субботнее чтиво🍹, или как я пытался прогнозировать крипту с помощью нейросетей 🤑

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

На данный момент существует масса методик прогнозирования числовых рядов. Это деревья решений со всевозможными вариациями, xgboost, catboost и так далее, есть экзотические разработки от команды Тинькофф банка, я же как то заморочавшись и не поспав две ночи родил архитектуру нейросети на основе LSTM. Кстати LSTM (нейросеть с эффектом памяти) использовал поиск до революции трансформеров.

И каковы же результаты твоих исследований спросите вы ?

Спойлер: Ламбу не купил, в Дубай 🏙️ не переехал, дальше продолжать? 😆

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

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

В вложении – схема моей LSTM модельки и результат
👍3
Легкое субботнее чтиво – продолжение!

Ну так вот жеж, путь в Дубай 🏙️ открыт!
Как бы не так. Дело в том, что все модели получились крайне консервативными, это видно на графиках, тендицию они плюс минус ловят но вот на пиках очень сильно не добирают.

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

Ты упоминал Тинькофф, скажет вы. Да я раскатал модель от них, результат примерно тот же.

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

Но! В процессе создания я обратил внимание на один любопытный факт. Почему то в Ютубе нет ни одного видоса где автор делает нечто подобное. Причем про прогнозирование временных рядов с помощью LSTM видео снял чуть ли не каждый второй индус.

Как вы думаете почему? Да потому, что результат получился самым провальным! 🙈🤣Именно по этому никто так не делает!

К чему это я?
Ребят, хотите торговать криптой? Купите себе несколько ботов, которые торгуют с разными стратегиями и верьте в чудо ))

PS Ну и графиков вам вдогонку, оно там красивое местами ))
😁4👍2
Что общего между теорией большого взрыва 🎆 и нейросетями?

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

Нейроны или, говоря научно, функции активации, неким образом объединенные в сеть (архитектура) передают друг другу сигнал (цифру) с определенным весовым коэффициентом. Говоря проще, получили на вход 5, умножили на (-0,567), получили на выходе -2.835 и передали сигнал другому нейрону.

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

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

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

К чему весь этот разговор? Дело в том, что в любой нейросети заложена случайность, если бы ее не было, мы бы ушли в переобучение, но тогда мы с вами не могли бы ничему научиться, поскольку обучение - по факту цепь проб ошибок и получение обратной связи (механизм back propagation). Добавьте сюда многорукого бандита, регулярный пересчет эмбеддингов большими языковыми моделями и теперь расскажите мне про повторяемость результатов в seo, а я послушаю 😅
👏1
Ты совсем не уделяешь мне внимания!!!

Начинаю серию публикаций объясняющую суть краеугольного камня архитектуры трансформеров - механизма внимания (attention).

Коротко суть идеи

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

Причем тут SEO?

Если объяснять на пальцах - слова в предложении сами находят степень взаимосвязи друг с другом. Как они это делают? С помощью наших любимых эмбеддингов!

Пример на уровне слов в предложении

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

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

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? Видите, как всего два слова напрочь сломали весь контекст? О чем он теперь, про машину или про политику?

Заключение

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

Мои бесплатные боты вам в помощь!
@vector_keywords_bot – поиск n-грамм по ключу.
@vector_text_bot – на вход ключ и текст, на выходе размеченный по сходству текст.
👍5🔥3
Что лучше для SEO? Chat GPT, GigaChat или может Google Gemini?

Запускаю исследование 4-х, ну очень популярных языковых моделей на предмет того, насколько они SEO френдли.

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

SEOшник? Мне нужна твоя помощь, тапни тут и проголосуй за лучшую модель!

PS для любителей подробностей ссылка на файл с которого делались сриншоты
2025/10/31 08:27:00
Back to Top
HTML Embed Code: