Новости
Модели
Продукты
keyboard_arrow_down
Читатель
Читайте URL-адреса и ищите информацию в Интернете для получения более подходящей подготовки для получения степени магистра права.
Вложения
Мультимодальные многоязычные вложения мирового класса.
Реранкер
Нейронный ретривер мирового класса для максимального повышения релевантности поиска.
Глубокий поиск
Ищите, читайте и рассуждайте, пока не найдете лучший ответ.
Более
keyboard_arrow_down
Классификатор
Классификация изображений и текста по нулевому и небольшому количеству кадров.
Сегментатор
Разрежьте длинный текст на куски и выполните токенизацию.

API-документы
Автоматическая генерация кода для вашего второго пилота IDE или LLM
open_in_new


Компания
keyboard_arrow_down
О нас
Связаться с отделом продаж
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия использования


Авторизоваться
login
Мотивация
Экспериментальная установка
Методология
Реализация
Результаты
Выводы
Заключительные мысли
Технический блог
июль 18, 2024

Нет. Вы не можете использовать Reranker для улучшения SEO

Но если вы работаете в SEO, было бы интересно взглянуть на вещи с другой стороны стола; понять, какую роль embeddings и rerankers играют в современных поисковых системах.
Abstract background with dynamic green particles and lines on a black backdrop, emitting a sense of motion and energy.
Han Xiao
Han Xiao • 11 минуты чтения

После недавнего релиза jina-reranker-v2-multilingual, у меня появилось свободное время перед поездкой на ICML, поэтому я решил написать статью о нашей модели ранжирования. Во время поиска идей в интернете я наткнулся на статью, которая появилась в топе результатов поиска, утверждающую, что ранжировщики могут улучшить SEO. Звучит супер интересно, верно? Я тоже так подумал, потому что в Jina AI мы занимаемся ранжировщиками, а как веб-мастер нашего корпоративного сайта, я всегда заинтересован в улучшении нашего SEO.

Screenshot of Google search results for "reranker seo" showing articles on enhancing search with reranking models.
Сгенерированная ChatGPT статья, утверждающая, что Reranker может улучшить SEO. Фразы вроде "в области" сразу выдали её происхождение.

Однако после прочтения всей статьи я обнаружил, что она была полностью сгенерирована ChatGPT. Вся статья просто многократно перефразирует идею о том, что "Ранжирование важно для вашего бизнеса/сайта", не объясняя как, какая математика стоит за этим или как это реализовать. Это была пустая трата времени.

Невозможно соединить Reranker и SEO вместе. Разработчик поисковой системы (или в целом потребитель контента) заботится о ранжировщиках, в то время как создатель контента заботится о SEO и о том, насколько высоко их контент ранжируется в этой системе. По сути, они сидят по разные стороны стола и редко обмениваются идеями. Просить ранжировщик улучшить SEO — это как просить кузнеца улучшить ваше заклинание огненного шара или заказывать суши в китайском ресторане. Они не полностью не связаны, но это очевидно неправильная цель.

Представьте, если бы Google пригласил меня в свой офис, чтобы спросить мое мнение о том, достаточно ли высоко их ранжировщик ставит jina.ai. Или если бы я имел полный контроль над алгоритмом ранжирования Google и закодировал jina.ai на верхнюю позицию каждый раз, когда кто-то ищет "information retrieval". Ни один из сценариев не имеет смысла. Так почему же у нас вообще появляются такие статьи? Что ж, если спросить ChatGPT, становится очевидным, откуда изначально взялась эта идея.

Informational content on improving SEO using reranker, highlighting content optimization, keyword relevance, and content qual

tagМотивация

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

Нет, вы не можете использовать ранжировщик для улучшения SEO. Однако, если вы работаете в SEO, может быть интересно взглянуть на вещи с другой стороны и понять, какую роль играют модели поиска, такие как embeddings и rerankers, в современных поисковых системах. Эти знания могут помочь вам оптимизировать контент более стратегически.

В частности, в этой статье мы рассмотрим реальные поисковые запросы, экспортированные из Google Search Console, и посмотрим, предполагает ли их семантическая связь со статьей что-либо об их показах и кликах в Google Search. Мы исследуем три разных способа оценки семантической связи: частота терминов, модель эмбеддингов (jina-embeddings-v2-base-en) и модель ранжирования (jina-reranker-v2-multilingual). Как в любом академическом исследовании, давайте сначала обозначим вопросы, которые мы хотим изучить:

  1. Связана ли семантическая оценка (запрос, документ) с показами или кликами статьи?
  2. Является ли более глубокая модель лучшим предиктором такой связи? Или частоты терминов достаточно?

tagЭкспериментальная установка

В этом эксперименте мы используем реальные данные с сайта jina.ai/news, экспортированные из Google Search Console (GSC). GSC — это инструмент для вебмастеров, который позволяет анализировать органический поисковый трафик от пользователей Google, например, сколько людей открывают ваш блог-пост через Google Search и какие поисковые запросы они используют. Из GSC можно извлечь много метрик, но для этого эксперимента мы сосредоточимся на трёх: запросы, показы и клики. Запросы — это то, что пользователи вводят в поисковую строку Google. Показы измеряют, сколько раз Google показывает вашу ссылку в результатах поиска, давая пользователям возможность её увидеть. Клики измеряют, сколько раз пользователи фактически открывают её. Заметьте, что вы можете получить много показов, если "модель поиска" Google присваивает вашей статье высокий балл релевантности относительно пользовательского запроса. Однако если пользователи находят другие элементы в этом списке результатов более интересными, ваша страница всё равно может получить ноль кликов.

Google Search Console dashboard interface displaying performance graphs and various analytics overviews, such as queries and
Интерфейс GSC и данные о запросах, кликах, показах для нашего поста о ColBERT. Обратите внимание на кнопку "Export" в правом верхнем углу, нажав на неё, вы получите zip-файл. Этот файл нам нужен для эксперимента. Поскольку нас интересуют топ-7 постов блога, нам нужно повторить этот экспорт 7 раз.

Я экспортировал метрики GSC за последние 4 месяца для 7 наиболее часто запрашиваемых блог-постов с jina.ai/news. У каждой статьи около 1 000-5 000 кликов и 10 000-90 000 показов. Поскольку мы хотим рассмотреть семантику запрос-статья для каждого поискового запроса относительно соответствующих статей, вам нужно кликнуть на каждую статью в GSC и экспортировать данные, нажав кнопку Export в правом верхнем углу. Это даст вам zip-файл, и когда вы его распакуете, вы найдете файл Queries.csv. Это тот файл, который нам нужен.

Например, экспортированный Queries.csv выглядит следующим образом для нашего блог-поста о ColBERT.

Analytical table displaying website query metrics sorted by position with columns for clicks, impressions, and CTR.
Некоторые топовые поисковые запросы Google по кликам для нашего блог-поста о ColBERT. Всего за последние 4 месяца было 481 запрос, связанный с этим блог-постом, согласно GSC.

tagМетодология

Итак, данные готовы, что же мы хотим сделать ещё раз?

Мы хотим проверить, коррелирует ли семантическая связь между запросом и статьей (обозначим как Q(q,d)Q(q,d)Q(q,d)) с их показами и кликами. Показы можно рассматривать как секретную модель поиска Google, G(q,d)G(q,d)G(q,d). Другими словами, мы хотим использовать публичные методы, такие как частота терминов, модели эмбеддингов и модели ранжирования, чтобы смоделировать Q(q,d)Q(q,d)Q(q,d) и посмотреть, приближает ли она эту частную G(q,d)G(q,d)G(q,d).

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

В любом случае, нашей целью является согласование Q(q,d)Q(q,d)Q(q,d) с G(q,d)G(q,d)G(q,d). Это означает, что наш Q(q,d)Q(q,d)Q(q,d) должен давать высокие оценки, когда G(q,d)G(q,d)G(q,d) высок, и низкие, когда G(q,d)G(q,d)G(q,d) низок. Это можно лучше визуализировать с помощью диаграммы рассеяния, разместив Q(q,d)Q(q,d)Q(q,d) по оси X и G(q,d)G(q,d)G(q,d) по оси Y. Отображая значения QQQ и GGG для каждого запроса, мы можем интуитивно увидеть, насколько хорошо наша модель поиска согласуется с моделью поиска Google. Наложение линии тренда может помочь выявить надежные закономерности.

Итак, позвольте мне обобщить метод перед тем, как показать результаты:

  • Мы хотим проверить, коррелирует ли семантическая связь между запросом и статьей с показами и кликами в Google Search.
  • Алгоритм, который Google использует для определения релевантности документа запросу, неизвестен (G(q,d)G(q,d)G(q,d)), как и факторы, влияющие на клики. Однако мы можем наблюдать эти значения GGG из GSC, то есть показы и клики для каждого запроса.
  • Мы стремимся понять, являются ли общедоступные методы поиска (Q(q,d)Q(q,d)Q(q,d)), такие как частота терминов, модели эмбеддингов и модели ранжирования, которые предоставляют уникальные способы оценки релевантности запроса к документу, хорошими аппроксимациями G(q,d)G(q,d)G(q,d). В какой-то степени мы уже знаем, что они не являются хорошими аппроксимациями; иначе каждый мог бы быть Google. Но мы хотим понять, насколько они далеки от этого.
  • Мы визуализируем результаты на диаграмме рассеяния для качественного анализа.

tagРеализация

Полную реализацию можно найти в Google Colab ниже.

Google Colab

Сначала мы извлекаем содержимое блог-поста с помощью Jina Reader API. Частота терминов в запросах определяется простым подсчетом без учета регистра. Для модели эмбеддингов мы упаковываем содержимое блога и все поисковые запросы в один большой запрос, например так: [[blog1_content], [q1], [q2], [q3], ..., [q481]], и отправляем его в Embedding API. После получения ответа мы вычисляем косинусное сходство между первым эмбеддингом и всеми остальными эмбеддингами, чтобы получить семантическую оценку для каждого запроса.

Для модели ранжирования мы формируем запрос немного хитрым способом: {query: [blog1_content], documents: [[q1], [q2], [q3], ..., [q481]]} и отправляем этот большой запрос в Reranker API. Возвращаемая оценка может быть напрямую использована как семантическая релевантность. Я называю эту конструкцию хитрой, потому что обычно ранжировщики используются для ранжирования документов по заданному запросу. В данном случае мы инвертируем роли документа и запроса и используем ранжировщик для ранжирования запросов по заданному документу.

Заметьте, что в обоих API Embedding и Reranker вам не нужно беспокоиться о длине статьи (запросы всегда короткие, поэтому с ними проблем нет), поскольку оба API поддерживают входную длину до 8K (фактически, наш Reranker API поддерживает "бесконечную" длину). Всё можно сделать быстро всего за несколько секунд, и вы можете получить бесплатный API-ключ на 1M токенов с нашего сайта для этого эксперимента.

tagРезультаты

Наконец, результаты. Но прежде чем я их покажу, я хотел бы сначала продемонстрировать, как выглядят базовые графики. Из-за диаграммы рассеяния и логарифмической шкалы по оси Y, которую мы собираемся использовать, может быть трудно представить, как выглядели бы идеально хороший и ужасно плохой Q(q,d)Q(q,d)Q(q,d). Я создал две наивные базовые линии: одну, где Q(q,d)Q(q,d)Q(q,d) — это G(q,d)G(q,d)G(q,d) (эталон), и другую, где Q(q,d)∼Uniform(0,1)Q(q,d) \sim \mathrm{Uniform}(0,1)Q(q,d)∼Uniform(0,1) (случайная). Давайте посмотрим на их визуализации.

tagБазовые линии

Blue curve graph on black background, plotting "Impressions (Log Scale)" vs "Groundtruth" from 0.0 to 1.0.
Эталонная базовая линия, где семантическая оценка Q(q,d)Q(q,d)Q(q,d) является мин-макс нормализацией на основе значения показов. Это считается идеально хорошим предиктором G(q,d)G(q,d)G(q,d).
Black scatter plot with purple dots, logarithmic axes labeled "Impressions (Log Scale)" and "10º," and a horizontal line labe
Случайная базовая линия, где семантическая оценка Q(q,d)Q(q,d)Q(q,d) — это случайное число из равномерного распределения (0,1). При многократном запуске будут получаться слегка разные результаты. Это считается ужасно плохим предиктором G(q,d)G(q,d)G(q,d).

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

  • Диаграмма рассеяния хорошего предиктора должна следовать логарифмической линии тренда от нижнего левого до верхнего правого угла.
  • Линия тренда хорошего предиктора должна полностью охватывать ось X и ось Y (мы увидим позже, что некоторые предикторы не реагируют таким образом).
  • Область дисперсии хорошего предиктора должна быть небольшой (изображена как непрозрачная область вокруг линии тренда).

Далее я покажу все графики вместе, для каждого предиктора по два графика: один показывает, насколько хорошо он предсказывает показы, а другой — насколько хорошо он предсказывает клики. Обратите внимание, что я агрегировал данные из всех 7 блог-постов, так что всего есть 3620 запросов, то есть 3620 точек данных на каждой диаграмме рассеяния.

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

tagЧастота терминов как предиктор

Graph showing relationship between 'Term Frequency' and 'Impressions' on a log scale, with values and a visible trend curve o
Black background graph with a curved line, plotting Term Frequency on x-axis and Clicks on a logarithmic y-axis.

tagМодель эмбеддингов как предиктор

Scatterplot with logarithmic Impressions vs. Embedding Score, points in shades of purple, and a labeled axis.
Scatter plot graph with an x-axis labeled 'Embedding Score' and a y-axis as 'Clicks (Log Scale)', displaying a power-law dist

tagМодель ранжирования как предиктор

Scatterplot with a black background, labeled axes 'Reranker Score' and 'Impressions (Log Scale)', and lines of best fit among
Graph with black background, 'Reranker Score' on x-axis, 'Clicks (log scale)' on y-axis, and scattered data points.

tagВыводы

Давайте соберем все графики в одном месте для удобства сравнения. Вот некоторые наблюдения и объяснения:

Различные предикторы для показов. Каждая точка представляет запрос, ось X представляет семантическую оценку запроса к статье; ось Y — количество показов, экспортированное из GSC.

Различные предикторы для кликов. Каждая точка представляет запрос, ось X представляет семантическую оценку запрос-статья; ось Y — количество кликов из GSC.

  • В целом, все диаграммы рассеяния кликов более разрежены, чем их графики показов, хотя оба основаны на одних и тех же данных. Это происходит потому что, как упоминалось ранее, высокие показы не гарантируют клики.
  • Графики частотности терминов более разрежены, чем остальные. Это потому, что большинство реальных поисковых запросов из Google не появляются точно в статье, поэтому их значение X равно нулю. Тем не менее, у них все равно есть показы и клики. Вот почему начальная точка линии тренда частотности терминов не начинается с нулевого Y. Можно было бы ожидать, что когда определенные запросы появляются в статье несколько раз, показы и клики, вероятно, будут расти. Линия тренда подтверждает это, но дисперсия линии тренда также растет, что указывает на недостаток подтверждающих данных. В целом, частотность терминов не является хорошим предиктором.
  • Сравнивая предиктор частотности терминов с диаграммами рассеяния модели эмбеддингов и модели переранжирования, последние выглядят намного лучше: точки данных лучше распределены, и дисперсия линии тренда выглядит разумной. Однако, если сравнить их с линией тренда истинных данных, как показано выше, можно заметить одно существенное различие — ни одна линия тренда не начинается с X-нуля. Это означает, что даже если вы получаете очень высокое семантическое сходство от модели, Google с большой вероятностью присвоит вам нулевые показы/клики. Это становится более очевидным на диаграмме рассеяния кликов, где начальная точка смещена еще правее, чем у соответствующих показов. Короче говоря, Google не использует нашу модель эмбеддингов и модель переранжирования — большой сюрприз!
  • Наконец, если бы мне пришлось выбрать лучший предиктор среди этих трех, я бы отдал предпочтение модели переранжирования. По двум причинам:
    • Линия тренда модели переранжирования как для показов, так и для кликов лучше распределена по оси X по сравнению с линией тренда модели эмбеддингов, что дает ей больший "динамический диапазон", делая ее ближе к линии тренда истинных данных.
    • Оценка хорошо распределена между 0 и 1. Заметьте, что это в основном потому, что наша последняя модель Reranker v2 калибрована, тогда как наша ранняя модель jina-embeddings-v2-base-en, выпущенная в октябре 2023 года, не была, поэтому вы можете видеть, что ее значения распределены от 0.60 до 0.90. Впрочем, эта вторая причина не имеет ничего общего с ее аппроксимацией к G(q,d)G(q,d)G(q,d); просто хорошо калиброванная семантическая оценка между 0 и 1 более интуитивно понятна для понимания и сравнения.

tagЗаключительные мысли

Итак, какой вывод для SEO здесь? Как это влияет на вашу SEO-стратегию? Честно говоря, не сильно.

Красивые графики выше подсказывают базовый принцип SEO, который вы, вероятно, уже знаете: пишите контент, который ищут пользователи, и убедитесь, что он связан с популярными запросами. Если у вас есть хороший предиктор, как Reranker V2, возможно, вы можете использовать его как своего рода "SEO-копилот" для руководства вашим написанием.

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

Категории:
Технический блог
rss_feed
Офисы
location_on
Саннивейл, Калифорния
710 Lakeway Dr, Ste 200, Саннивейл, Калифорния 94085, США
location_on
Берлин, Германия (штаб-квартира)
Prinzessinnenstraße 19-20, 10969 Берлин, Германия
location_on
Пекин, Китай
Уровень 5, здание 6, ул. Хайдянь Вест, д. 48, Пекин, Китай
location_on
Шэньчжэнь, Китай
402, этаж 4, здание Fu'an Technology, Шэньчжэнь, Китай
Поиск Фонда
Читатель
Вложения
Реранкер
Глубокий поиск
Классификатор
Сегментатор
API-документация
Получить API-ключ Jina
Ограничение скорости
Статус API
Компания
О нас
Связаться с отделом продаж
отдел новостей
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия
Безопасность
Условия использования
Конфиденциальность
Управление файлами cookie
email
Jina AI © 2020-2025.