Зарубежные коллеги выкатили отличную статью с разбором утечки...
Зарубежные коллеги выкатили отличную статью с разбором утечки кода Яндекса. Спасибо Алаичу за наводку. Если вам лень читать все полностью, то вот мое саммари по статье. Возможно кому то будет полезно.
Основные тезисы, часть 1:
• Яндекс в настоящее время использует двух краулеров для индексации. Основной краулер и “Orange crawler” который работает в режиме реального времени. (В Гугле при этом используется деление индекса на три краулера - в режиме реального времени, регулярного и редкого).
• У Яндекса нет рендеринга JavaScript. Несмотря на то, что возможность имеется, они ограничиваются краулингом текста.
• Существует два варианта отдачи пользователю результатов поисковой выдачи. Первая - поиск результатов в “Метапоиске” (“Метапоиск” - кэш популярных запросов). Если результат не найден в данном слое, то запрос отправляется на обработку в базовый поиск, откуда переходит в Матрикснет для формирования выдачи.
• Изучив файлы более подробно, было обнаружено, что в общей сложности существует 17 854 фактора ранжирования.
• Дополнительно есть серия записей из 2000 факторов не входящих в основной код и предположительно являющихся тестовыми.
• В документации сказано что у Яндекса есть три основные три класса факторов ранжирования:
- Статические - TG_STATIC (например, относящиеся к странице - количество ссылок на страницу, в момент совершения поиска);
- Динамические - TG_DYNAMIC (относящиеся и к запросу и к странице: слова, соответствующие поисковому запросу, их количество и местоположение на странице);
- Запросные/Особые - TG_QUERY_ONLY, TG_QUERY, TG_USER_SEARCH и TG_USER_SEARCH_ONLY. (характерные только для поисковых запросов, например геолокация).
• Главная особенность MatrixNet - возможность настройки формулы ранжирования для определенного класса поисковых запросов.
• Несмотря на количество доступных факторов, в слитом коде присутствует много файлов, ссылки на которые отсутствуют в архиве.
• В файле nav_linear.h в каталоге /search/relevance/ находятся начальные коэффициенты (или веса), связанные с факторами ранжирования. Этот раздел кода выделяет 257 из 17 000+ факторов ранжирования.
• Учитывая, что коэффициенты в файлах имеют статические значение, высказывается гипотеза о том, что это не единственное место, где происходит ранжирование. Скорее всего данная функция служит для первоначальной оценки релевантности, после чего данные передаются в MatrixNet.
• Что известно о MatrixNet?
- Матрикснет применяется ко всем факторам;
- Существует несколько уровней ранжирования (L1, L2, L3);
- На каждом уровне есть ассортимент моделей ранжирования;
• Файл select_rankings_model.cpp предполагает различные модели ранжирования для каждого уровня. Это пример того, как функционируют нейронные сети. Каждый слой - это компонент, который выполняет операции, а объединенные результаты этих операций создают ранжированный список документов, который затем представляется в виде поисковой выдачи.
Ссылки из поста:– https://searchengineland.com/yandex-leak-learnings...
– https://t.me/alaevseo/489
Источник новости https://t.me/seo4robots/231...