Костин Евгений
Шрифт:
Гораздо острее ситуация в случае с региональностью запросов. В разных регионах
– различные алгоритмы (формулы) для геозависимых запросов. Отдельно для Москвы, отдельно для Санкт — Петербурга, отдельно для каждого из городов релиза «Арзамас+16», отдельно для всех остальных – так называемая общероссийская выдача с бонусом для сайтов из данного региона. А все геонезависимые запросы ранжируются общероссийским алгоритмом. Он очень сильно отличается от алгоритма для Москвы и от алгоритмов для городов релиза «Арзамас+16». Все это, естественно, вносит дополнительные сложности в продвижение. Ну а метод проб и ошибок всегда был на вооружении у оптимизаторов.
Формула для остальных регионов не учитывает множества факторов или их значимость очень мала, правильно? Это сделано скорее потому, что в регионах еще не настолько сильная конкуренция и сами сайты недостаточно хороши или же просто невозможно за всеми уследить?
С. Л.: Я не думаю, что формулы для регионов не учитывают каких — то факторов, которые, к примеру, есть в формуле для Москвы. Скорее всего, они строятся по другой обучающей выборке с преобладанием сайтов данного региона.
За несколько лет существования в MatrixNe добавилось множество новых факторов. А поменялся ли сам алгоритм? Если да, то как?
С. Л.: Суть текущего подхода «Яндекса» к построению алгоритма ранжирования – машинное обучение. MatrixNe был революционным в том смысле, что позволил без больших вычислительных затрат учитывать в ранжировании существенно больше факторов, чем предыдущий алгоритм машинного обучения. Вместе с тем факторы добавляются, но машинное обучение как таковое остается. Гораздо более значимая революция совершилась во времена релиза «Магадан» (или чуть раньше), когда произошел переход от аналитической формулы к машинному обучению.
Но, кроме построения формулы с помощью машинного обучения, есть куча предфильтров и постштрафов: создаются новые, модифицируются старые. Развитие алгоритма на текущий момент, с моей точки зрения, заключается преимущественно в создании «костылей» и «подпорок» к тому, что выдало машинное обучение. Дело в том, что в результате машинного обучения получается формула, не имеющая физического смысла. И трудно понять, что нужно подправить на входе, чтобы на выходе получались осмысленные результаты. Поэтому кое — что приходится править с помощью надстроек – фильтров и штрафов.
Оптимизаторы часто слышат о появлении новых факторов ранжирования сайтов. А какие факторы ушли в прошлое? На что «Яндекс» перестал обращать внимание?
С. Л.: Например, на содержимое метатега keywords, учет которого имел место в начале 2000 — х. А если серьезно, дело в том, что алгоритм машинного обучения может счесть часть факторов незначащими и присвоить им в конечной формуле нулевые веса. Сегодня набор незначащих факторов будет одним, завтра, после пересчета формулы по новой обучающей коллекции, другим. Наверняка разработчики отслеживают, какие факторы остаются незначащими на протяжении нескольких пересчетов, и впоследствии принимается решение об их физическом исключении из алгоритма. Но извне достоверно определить, с каким весом тот или иной фактор участвует в формуле, практически невозможно.
Предположим, наша задача – проверить влияние того или иного фактора. Как правильно поставить эксперимент, чтобы не принять совпадение за тенденцию? Каким должен быть объем выборки?
С. Л.: Многое зависит от того, какой именно фактор вы собираетесь исследовать. И есть ли вообще он в алгоритме. Увы, сейчас проверить влияние большинства факторов нельзя ввиду невозможности убрать шум, даже если вы наверняка знаете, что представляет собой тот или иной фактор. Дело в том, что для чистой проверки работы одного фактора необходимо зафиксировать все остальные, включая временные. Иначе говоря, создать достаточное количество одинаковых тестовых страниц, которые будут различаться между собой значением одного — единственного изучаемого фактора, практически полных копий. Но зачастую и этого мало, так как результат может зависеть от комбинации искомого фактора с каким — то другим, причем вам неизвестно каким. И при разных значениях второго фактора исследуемый будет вести себя по — разному. Также нужно понимать, что, изменяя значение проверяемого фактора, вы можете изменить значение других факторов, которые вы обязаны зафиксировать. Все это сильно зашумляет эксперимент, обычно приводя к недостоверности результатов. Те же факторы, которые поддаются проверке с достаточной степенью достоверности, должны быть настолько мощными, чтобы шум не мешал их анализу. Пример – кликовые факторы.
Значит, по вашим наблюдениям, кликовые факторы играют значительно большую роль, чем многие другие? А не преувеличивает ли «Яндекс» степень их влияния?
С. Л.: Да, они играют колоссальную роль по сравнению с прочими. По крайней мере, я не знаю другой группы факторов, которая в одиночку позволяла бы, несмотря на значения всех остальных, довольно быстро выводить сайты в топ из ниоткуда. И, на мой взгляд, здесь налицо явный дисбаланс, да еще эти факторы имеют положительную обратную связь. Происходит «консервация» топов, и это еще не худшее. Худшее – то, что кликовые факторы весьма уязвимы по отношению к внешнему искусственному влиянию.
Должен ли «Яндекс» использовать только действительно нужные факторы, или можно добавлять бесконечное количество даже, казалось бы, бесполезных метрик (условно говоря, «количество гласных букв в слове»). Может ли из — за этого алгоритм выйти из — под контроля?
С. Л.: Мне трудно судить, что «Яндекс» должен, а что не должен. Я не вижу их метрик, мне неизвестно, что с ними происходит при добавлении абсурдных факторов. Но мне представляется, что безграничная вера в машинное обучение, в то, что чем больше факторов, пусть самых нелепых, тем лучше, – это не совсем правильно. Как сказал сотрудник Google Владимир Офицеров, «если формулу понять нельзя, то ее нельзя и улучшить». Эта позиция мне больше импонирует. Получается, что сотрудники «Яндекса» пытаются улучшить свою формулу, жонглируя факторами, придумывая их новые комбинации, в надежде на то, что умный алгоритм обучения сам все разложит по полочкам. Но не всегда выходит так. Вообще, машинное обучение создает опасную иллюзию, что любую проблему можно решить легко и быстро, особо не вникая в физический смысл. Нужно только придумать побольше разнообразных факторов, собрать достаточно широкую обучающую выборку и засунуть все это в MatrixNet. Получили неважный результат? Надо поколдовать с факторами. Помножить количество латинских букв в тексте документа на количество запятых на сайте и засунуть внутрь. Ого, значение метрики увеличилось на две миллионные. Хороший фактор, оставляем. Пусть будет «фактор имени меня». Так, что бы нам еще эдакое придумать?