ЖЖ » Новини » Інтернет і Технології » 2023 Январь 31 » 18:42:50 |
В четверг, 26 января, стало известно, что в интернете появились исходные коды и сопутствующие им данные множества сервисов и программ «Яндекса».
SEO сообщество с небывалым энтузиазмом начало скачивать и изучать архив. Среди бесчисленного числа папок и файлов исходного кода внутреннего репозитория, общий размер данных составляет около 45 ГБ в сжатом виде, был обнаружен Search Engine and Indexing Bot, используемый поисковыми системами для ранжирования сайтов в результатах поиска.
В папке kernel.tar\web_factors_info\ был обнаружен файл с 1923 факторами ранжирования Яндекса. SEO-специалисты уже начали анализировать код, в том числе PageRank и некоторые другие факторы, связанные со ссылками.
Своими выводами при раннем анализе факторов ранжирования поделились пользователи Twitter:
Постараемся проанализировать данные и составить собственное резюме на данную тему.
Чтобы понять исходный код необходимо научиться успешно его компилировать и запускать.
Как правило, новый сотрудник получает документацию и пошаговые инструкции, чтобы адаптироваться к проекту. В данном случае пресловутый архив содержит код, который везде ссылается на внутренние вики, доступа к которым нет, а комментарии в коде довольно скудны.
Сперва рассмотрим архитектуру систем ранжирования, которую предоставляет сам Яндекс в общедоступной документации.
Справочник описывает двух распределенную систему краулеров
Стоит отметить, что у Яндекса нет отдельной системы рендеринга для JavaScript. Они ограничиваются текстовым сканированием, хотя у них есть система визуального регрессионного тестирования на основе Webdriver.
Документация также описывает сегментированную структуру базы данных, которая разбивает страницы на инвертированный индекс и сервер документов.
Как и в большинстве других поисковых систем, процесс индексации:
Однако система Яндекса также использует BERT в своем пайплайне, поэтому в какой-то момент документы и запросы конвертируются во вложения, а для ранжирования используются методы поиска ближайших соседей.
Рассмотрим непосредственно процесс ранжирования:
Таким образом определение правил публикации — это первое место, на которое нам обратить внимание при изучении архива и поиска факторов ранжирования.
При изучении кода большинство специалистов анализировали файл web_factors_info/factors_gen.in. из архива Kernel. Он и содержит 1922 фактора ранжирования.
При более глубоком изучении архива можно заметить, что существует множество файлов с факторами ранжирования для различных систем обработки запросов.
Более того Яндекс уточняет, что у них есть три класса факторов ранжирования:
В архиве они указаны в файлах с тегами TG_STATIC и TG_DYNAMIC. Факторы, связанные с поиском, имеют несколько тегов, таких как TG_QUERY_ONLY, TG_QUERY, TG_USER_SEARCH и TG_USER_SEARCH_ONLY.
Подводя итоги мы выявили более 18 000 потенциальных факторов ранжирования. Вы можете посмотреть данный список по ссылке
Файл nav_linear.h в каталоге /search/relevance/ содержит веса, связанные с факторами ранжирования. Коэффициенты показывают, насколько важен каждый фактор, а результирующая сумма будет использоваться для оценки релевантности страниц.
Конечно, это не единственное место, где происходит ранжирование. Данная функция, скорее всего, используется для создания списков, которые впоследствие передаются в MatrixNet для сравнения.
В опубликованном архиве есть множество ссылок на MatrixNet и «mxnet», а также на DSSM.
В описании одного из факторов ранжирования FI_MATRIXNET указано, что MatrixNet применяется ко всем факторам.
Также есть куча бинарных файлов, которые сами могут быть предварительно обученными моделями.
Однако сразу становится ясно, так это то, что существует несколько уровней ранжирования (L1, L2, L3) и существует набор моделей ранжирования, которые можно выбрать на каждом уровне.
В файле selection_rankings_model.cpp предполагается, что на каждом уровне процесса можно рассматривать разные модели ранжирования.
Примерно так работают нейронные сети. Каждый уровень — это аспект, который дает переранжированный список документов. Именно он в конечном итоге отображается в виде поисковой выдачи.
Список факторов ранжирования содержит тег TG_DEPRECATED, который вероятно классифицирует его как неиспользуемый. Сменим фокус от этого предположения, и отсортируем факторы по степени влияния
Яндекс отдает предпочтение более старому контенту.
Похоже, что яндекс понижает наиболее частый URL, тем самым увеличивает разнообразие результатов.
Фактор ремапится на [0,1] если доля таких ссылок > 50%, иначе 0
Таким образом, для наилучшего результата вы должны:
Пример: Челябинская лотерея – chelloto. Переводим запрос в транслит, находим трехбуквия которые покрываются (che, hel, lot, olo), смотрим какую долю от всех трехбуквиев покрыли
Предполагаем, что это означает ключевое слово, которое чаще всего ищут при помощи Yandex Toolbar.
Другими словами:
315 факторов ранжирования имеют пороговые значения. Если анализируемый URL его превышает, система считает страницу чрезмерно оптимизированной
В общем механизме могут присутствовать искусственные улучшения определенных документов, чтобы обеспечить более высокие позиции.
Например, в переменных упоминается NEWS_AGENCY_RATING, что говорит о намеренном завышении score в пользу новостных сайтов.
Многие факторы ранжирования связаны с поведением пользователей, такие как высокий CTR, last-click, время на сайте и показатель отказов.
Согласно опубликованной базе эти факторы оказывают гораздо большее влияние на ранжирование в Яндексе, чем можно подумать. Важно следить за поведением пользователей на вашем сайте и при необходимости вносить улучшения.
Калькулятор ссылочного спама Яндекса учитывает 89 факторов. Все, что помечено как SF_RESERVED, устарело (Общий список размещен ссылке)
У Яндекс есть host-рейтинг, который хранит спам-сайты в течение длительного времени.
Система также анализирует дубликаты страниц, а также ссылки с одинаковым анкорным текстом с одного и того же сайта.
Это говорит нам о том, нужно учитывать сколько ссылок размещено из одного и того же источника. Важно ориентироваться на уникальные ссылки из большего количества источников.