Алгоритм матрикснет – Генерация всех позможных вариантов заполнения квадратной матрицы N-м числом графов. Алгоритм..?

Содержание

Алгоритм Matrixnet Yandex — машинное обучение поисковых систем

Привет, Друзья! Matrixnet это — разработанный «Яндексом» алгоритм, с помощью которого выполняется машинное обучение поисковых систем. Его внедрение позволило поисковым машинам этой системы принимать во внимание в процессе поиска гораздо больше критериев ранжирования, чем раньше. Остальные поисковики используют для аналогичных целей собственные алгоритмы.

Машинное обучение поисковых систем Matrixnet

Алгоритм Matrixnet Yandex

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

Количество всех веб-страниц в мире исчисляется миллионами и миллиардами. На их обзор может уйти очень много времени. По этой причине поисковый робот, получив запрос, обращается к заранее созданной специальной базе данных, которая называется «поисковым индексом». Здесь хранится информация о страницах, наиболее соответствующих, или, как выражаются специалисты поисковой среды, релевантных конкретным поисковым запросам. Именно эти страницы, найденные в поисковом индексе, предлагаются пользователю. Поисковый индекс не является чем-то неизменным, а постоянно подвергается незаметным для пользователей обновлениям, которые в поисковой среде зовутся «апдейтами» (название произошло от английского слова “update”). Таким образом, результаты поиска формируются всегда на основе самого актуального индекса.

Как проводится обучение поисковых машин Matrixnet Yandex

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

Алгоритм обучения у «Яндекса» до внедрения алгоритма MatrixNet выглядел примерно, таким образом: в ходе процедуры обновления поиск соответствующих конкретным запросам страниц производится роботом. А затем они проверяются на релевантность с точки зрения человека специальным лицом – асессором. Если страницы окажутся достаточно релевантными, то они заносятся в поисковый индекс. Присваиваемый в ходе проверки странице ранг соответствия прямо пропорционален самой релевантности.

Когда возможность создания сайтов появилась и у обычных пользователей интернета, количество страниц на просторах сети интернет стало настолько большим, что уже существующих асессоров стало не хватать для объективной оценки релевантности ресурсов, отысканных роботом. Было принято решение о том, чтобы научить компьютер частично учитывать критерии ранжирования в динамике, возложив на него обязанности поисковых асессоров. Именно так появился обновленный алгоритм обучения поисковых машин — «Алгоритм Matrixnet Yandex».

Описание алгоритма Matrixnet  от поисковика Yandex

Первые сообщения об алгоритме MatrixNet появились вместе с введением нового алгоритма поиска в «Яндексе» — «Снежинск». Разработчики алгоритма Матрикснет стремились к увеличению числа используемых факторов ранжирования, чтобы, таким образом, сделать качество поиска в интернете более высоким. Например, расчёты по специальным математическим формулам помогли сократить ошибочно оценённые важности различных факторов.

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

Ещё одна ключевая особенность алгоритма MatrixNet – это возможность точной подстройки методов ранжирования сайтов под различные категории поисковых запросов. Качество поиска по запросам, которые не вошли в упомянутые выше категории, при этом не ухудшается.

Формула ранжирования, специально создаваемая алгоритмом MatrixNet для обучения поисковых машин, включает в себя более 10000 коэффициентов.

Благодаря возможности тонкого регулирования процесса ранжирования, поисковые машины «Яндекса» способны теперь исключать из проверки те страницы, которые хоть и содержат ключевые слова по какой-либо теме, но не имеют в целом отношения к ней. Это становится причиной возрастания точности поиска.

Внедрение «Яндексом» нового алгоритма машинного обучения под названием “MatrixNet” сделало выдачу этой поисковой системы ещё более релевантной, хоть и число страниц, анализируемых поисковым роботом, увеличилось в несколько тысяч раз.

Если хотя бы немного разбираться в принципах ранжирования и понимать как «думают» поисковые системы, то можно вывести в ТОП 10 Яндекса практически любой сайт. Ну а попадание в первые места поисковика Yandex даст новый виток Вашему бизнесу!

Обучение продвижению сайтов

Более подробно о том, как выводить сайты в ТОП 10 поисковых систем Яндекс и Google, я рассказываю на своих онлайн-уроках по SEO-оптимизации (смотри видео ниже). Все свои интернет-проекты я вывел на посещаемость более 1000 человек в сутки и могу научить этому Вас. Кому интересно обращайтесь!

На этом сегодня всё, всем удачи и до новых встреч!

 

Матрикснет

Матрикснет – это алгоритм машинного обучения, разработанный в Яндексе и внедренный в 2009 году. Представляет собой градиентный бустинг на симметричных (oblivious) деревьях решений. Он используется не только для построения формулы, ранжирующей поисковую выдачу, но и для множества других задач: предсказание кликов на рекламу, обнаружение ботов, разрешение омонимии и даже определения размера вознаграждений сотрудникам. Алгоритм устойчив к переобучению, позволяет гранулированно настраивать полученную формулу (так, чтобы изменения в оценке одного класса объектов не оказывали влияние на оценку другого класса объектов). Летом 2017 года ему на смену пришел алгоритм CatBoost, поддерживающий обработку категориальных признаков.

 

В чем заключается принцип работы матрикснет

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

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

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

«На самом деле Матрикснет – это целая совокупность различных методов машинного обучения, но все они так или иначе используют алгоритм под названием Gradient Boosted Regression Trees (GBRT)».

 

Кроме того, про Матрикснет хорошо и подробно было рассказано в феврале 2017 года.

Матрикснет – это «целая совокупность разных методов машинного обучения, но все они так или иначе используют алгоритм под названием Gradient Boosted Regression Trees (GBRT)», по официальной информации Яндекса на август 2016 года. Матрикснет был выпущен в 2009 году. «Что это такое? Это множество решающих деревьев, которые подобраны таким образом, чтобы суммируя значения в листьях этих деревьев, мы бы получили хорошее предсказание оценки релевантности, которую поставил ассесор. В узлах дерева расположены разделяющие условия, которые представляют собой приблизительно такое: фактор №50 больше, чем 0,5 или меньше? Если больше, то мы идем налево, а если меньше, то направо. И строим такие вот деревья глубиной чуть больше, чем на рисунке, и в листьях такие числа подбираем, что если множество таких деревьев просуммировать, мы бы получили хорошее предсказание ассесорской релевантности».

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

 

 

Еще раз про то, как выглядит суммирование деревьев решений

 

В Матрикснете используются не обычные, а так называемые oblivious-деревья решений. «Oblivious-дерево – это такое дерево, где на каждом уровне находятся разбиения по одному и тому же признаку и и одному и тому же числу». Почему используются именно такие деревья?

  • Модель на таких деревьях оказывается устойчивой к переобучению: очень много таких деревьев можно сложить.
  • Для вычисления листового значения нужно вычислить значения всех разбиений («сплитов»), значит не важно в каком порядке мы будем это делать. Это используется для оптимизации применения и обучения.
  • «Oblivious-дерево эквивалетно табличке просто».

 

 

Рассмотрим, как велика формула ранжирования Яндекса: сколько в ней деревьев решений и сколько байт она занимает. Как видим, в настоящий момент в формуле суммируется более 70 000 деревьев решений, «весит» формула 840 мегабайт.

 

 

Что дает введение Яндексом матрикснета для пользователя

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

Вот иллюстрация возможности тонкой настройки матрикснета:

 

Матрикснет и seo. Какие можно сделать выводы для оптимизаторов

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

В сущности, это означает, что пора переходить к максимально честным и рекомендованным способам продвижения сайтов. Даже если Вы не знаете всего, что приведет к высоким местам в рейтинге, то главное помнить, что любой сайт – это площадка для того, чтобы доносить какую-то информацию до пользователя, а это значит, что сайт должен быть удобен пользователю и нести ему полезную информацию. Если Вы руководствуетесь этим принципом, то вероятность того, что Ваш сайт забанят приближается к нулю. Если же сайт сделан ради того, чтобы повесить кучу рекламы, содержит мало информации по теме, а вся информация – слегка переделанная копипаста из Википедиии или любых каких-нибудь других источников, то такой сайт очень быстро вылетит из индексации, его тИЦ обнулится и так далее и тому подобное.  Сейчас одноходовки с раскручиванием сайта левым методом прокатывают все хуже и хуже, а через несколько лет вообще перестанут прокатывать.

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

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

Итак, вот небольшой список того, на что следует обратить внимание:

  • Качественные статьи
  • Перелинковка
  • Соотношение статей по ширине запроса. Это раскрывается более подробно здесь.

В качестве вывода можно посоветовать стараться делать честные нужные и интересные людям сайты.

Машинное обучение в поиске Яндекса или Как устроен Матрикснет

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

Матрикснет – это градиентный бустинг на деревьях решений, который поддерживает все основные режимы: классификации, мультиклассификации, регрессии, ранжирования и др. Есть еще более сложные режимы – комбинации вышеперечисленных. Наш отдел разрабатывает новые режимы для нужд смежных отделов, а также внутренние пользователи Яндекса сейчас тоже могут добавлять свои собственные режимы.

Матрикснет умеет работать с пропущенными значениями – если значение какого-то фактора не указано, это не будет проблемой. Кроме того, обучение Матрикснета может быть запущено на кластере — это распределенный алгоритм. Это важно потому, что в поиске обучающие выборки сейчас такого размера, что в оперативную память одного сервера они просто не помещаются, вот почему нужно делать распределенное обучение.

Применения Матрикснета в Яндексе

Матрикснет в Яндексе применяется повсеместно. Во-первых, в поиске. Матрикснет изначально писался именно для поиска. Во-вторых, он используется в рекламе для того, чтобы показывать пользователям самые интересные для них объявления, предсказывая количество кликов по рекламе. В-третьих, прогноз погоды в Яндексе строится по формуле Матрикснета. Также алгоритм применяется во внешних проектах Яндекса – YDF, в системе рекомендаций Яндекс.Дзен, в обнаружении ботов, разрешении омонимии, сегментации пользователей и многих других.

Особенности Матрикснета

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

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

У Матрикснета сильно оптимизированное обучение. Это важно для всех задач Яндекса, но в большей степени для поиска. Хотя у нас и большие обучающие выборки, мы не можем себе позволить, чтобы формула обучалась месяц, потому что от этого будет страдать качество. Поэтому применяются всякие оптимизации, как алгоритмические, так и низкоуровневые, а также оптимизация нагрузки на сеть. Применение формулы Матрикснета тоже сильно заоптимизировано (за 1 сек. в одном потоке формула может быть применена к 100000 документов).

Градиентный бустинг на деревьях решений

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

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

Матрикснет – это не произвольные деревья решений, а так называемые «oblivious деревья решений», где на каждом уровне находится разбиение по одному и тому же признаку и одному и тому же числу. У такого способа построения дерева есть набор особенностей:

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

Обучение на кластере

Есть несколько способов, как градиентные бустинги на деревьях решений п

Матрикснет — новое слово в поиске или тупик?

Сейчас Яндекс — ведущая поисковая система рунета. Коллектив Яндекса достиг немалого за время существования компании. Сначала Яндекс оставил далеко позади остальные русские поисковики, затем отстоял и укрепил свой статус ведущего поисковика на фоне попыток Гугла осуществить экспансию в рунете. Долгое время яндексоиды планомерно улучшали поисковик, поисковая выдача Яндекса становилась всё более чистой и релевантной. Но это было до недавнего времени.

Возможно, разработчики Яндекса чересчур уверовали в свою гениальность или произошло ещё что-то, однако прошлой осенью вектор развития Яндекса сменился. Разработчики Яндекса решили одним махом разрубить гордиев узел и, вместо планомерного совершенствования алгоритмов и улучшения выдачи, внедрить новый супералгоритм, который сразу решит все задачи. Это изменение стратегии не замедлило сказаться — сейчас, просматривая выдачу Яндекса по многим запросам, можно увидеть удивительные вещи, которые год назад назад были бы невозможны. По конкурентным запросам на первом месте сайты почти без внешних ссылок на бесплатном хостинге или ещё хуже — в ТОП попадают страницы, содержащие введённый запрос лишь в саповских ссылках. Складывается впечатление, что на место хоть сколько-нибудь логичному ранжированию пришёл полный хаос.

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

Что такое матрикснет? Это самообучающийся алгоритм, в котором формула ранжирования подбирается автоматически на основе оценок асессоров. Асессоры оценивают результаты выдачи, определяя, какие документы хорошо соответствуют запросу, а какие — не очень, и алгоритм подстраивает формулу ранжирования таким образом, чтобы «хорошие» документы были выше в выдаче под данным запросам, а плохие — ниже. Конечно, здесь можно сразу поднять много тем о том, насколько оценки асессоров объективны, насколько репрезентативна выборка, насколько подробна шкала оценок и т. п. Однако у матрикснета есть куда более фундаментальная проблема.

Матрикснет в корне противоречит эффективной и единственно работоспособной схеме решения задач, которой человечество успешно следует тысячи лет. Условно эту схему можно представить так: цель — метод — решение. Т. е. сначала мы определяем, чего мы хотим достичь, затем разрабатываем метод (или, если хотите, алгоритм), и затем используем этот метод на практике. Например, цель — защитить тело от холода, метод — использование одежды из шкур животных, а поимка конкретных животных и изготовление конкретной одежды — это уже конкретное решение. Конкретное решение менее фундаментально, чем метод, а метод — менее фундаментален, чем цель. Что есть цель, метод и решение для Яндекса? Цель — релевантность, т. е. пользователь должен найти то, что ищет. Метод — различные алгоритмы, формирующие выдачу, предлагающие подсказки, дополняющие выдачу картинками и новостями и т. п. Решение — конкретная выдача, то, что пользователь, вводящий запрос, видит перед собой на экране. Что делает Яндекс, вводя матрикснет? Он переворачивает всё с ног на голову. Он ставит решение впереди метода, который пытается к этому решению подогнать.

Почему матрикснет не работает и никогда не будет работать так, как нужно? Потому, что сформировать выдачу, даже имея миллиард асессоров, куда сложнее, чем разработать алгоритм. Критериев для оценки качества выдачи огромная масса, причём эти критерии могут лежать далеко за пределами возможностей настройки параметров, доступных для матрикснета. Например, асессор укажет, что запросу «фараоны египта» список этих самых фараонов релевантен, а страница о чае «египетский фараон» — нет, или, что известный ресурс для фрилансеров более релевантен запросу «удалённая работа», чем сайт, призывающий школьников заработать на сёрфинге (кстати, сейчас в топ10 Яндекса по этому запросу гениальный алгоритм Яндекса вывел страницу про оперу, посвящённую житию Серафима Саровского). Но как алгоритм сможет подстроиться под оценку асессора? Ни возраст сайта, ни число страниц, ни хостинг, ни прочие факторы, доступные алгоритму, не имеют никакой связи с этой оценкой. Поэтому алгоритм будет подстраиваться, используя какие-то случайные корреляции, и не улучшать выдачу, а лишь портить её. Что мы и наблюдаем на практике. Вместо, возможно, недостаточных для формирования идеально отточенной выдачи, но логичных и универсальных принципов, алгоритм будет использовать непредсказуемую хаотичную формулу, подогнанную под текущие оценки асессоров. Рассказывая о нововведениях Яндекса, Волож в одном из интервью хвастался тем, что новый алгоритм учитывает тысячи факторов. Но разработчикам Яндекса почему-то не пришло в голову, что любые факторы хороши только тогда, когда понятно, для чего они введены и какое оказывают влияние. Если же факторы таковы, что сами разработчики не понимают, каким образом они учитываются в алгоритме, то все эти факторы не плюс, а минус, поскольку они лишь хаотично искажают выдачу.

Интересно, хватит ли здравого смысла у яндексоидов отказаться от матрикснета, с которым развитие поисковых технологий буксует уже более полугода, или, упорствуя в его внедрении, Яндекс загонит себя в тупик?

Алгоритмы поисковых систем: Матрикснет Яндекса

Яндекс с 2009 года использует при ранжировании сайтов систему машинного обучения, которая называется Матрикснет. Это позволяет поисковой системе учитывать очень много факторов при ранжировании сайтов.

Общий принцип работы Матрикснета

Специально обученные люди (асессоры) готовят для Матрикснета выборку вручную оцененных сайтов, а Матрикснет при помощи алгоритмов машинного обучения ищет в предоставленной выборке различные закономерности и применяет выявленные критерии оценки для формирования «мнения» обо всех остальных сайтах.

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

Десятки тысяч факторов ранжирования

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

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

Ранжирование по тематике поисковых запросов

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

По сути, Яндекс определяет тематику поисковых запросов и на основании сделанных выводов применяет те или иные факторы ранжирования. Например, в конце 2013 года Яндекс заявил, что перестанет учитывать ссылочное ранжирование в коммерческих темах, а в марте 2014 уже фактически перестал учитывать внешние ссылки при ранжировании результатов поиска по коммерческим запросам. Именно Матрикснет дал Яндексу возможность отделить коммерческие запросы от некоммерческих и использовать для них различные формулы ранжирования.

Матрикснет — Блог GetGoodRank

Автор: Игорь Быстров

«Ведущий рубрики «Справочник оптимизатора» блога GetGoodRank, копирайтер, блоггер.
Матрикснет — обучаемая система Яндекса, позволяющая более точно ранжировать сайты в поиске»

Матрикснет (MatrixNet) – уникальный в своем роде алгоритм, который используется поисковой машиной Яндекса для совершенствования своих навыков.  После его внедрения количество критериев, по которым происходит ранжирование, возросло в несколько раз. MatrixNet разработан специалистами Яндекса и использует в вычислениях методологию нейронных сетей. В других поисковых системах применяются  схожие алгоритмы, но работающие по другим принципам.

Краткая теория работы поисковых машин

Большинство пользователей Интернета считают, что принцип работы поисковой машины по поиску ресурса под конкретный запрос основан на том, что машина каждый раз просматривает все сайты. Но это не так. Если бы поисковый алгоритм работал в таком режиме, то для отображения результатов требовалось бы не менее получаса. Вместо того чтобы всякий раз просматривать каждый ресурс интернета, система обращается к специальному индексу – хранилищу информации, созданному заранее. Индекс регулярно обновляется и хранит адреса страниц, заблаговременно подобранных для того или иного поискового запроса.

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

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

Асессор – специально обученный человек, пользователь интернета, который занимается определением правильности работы поисковой системы по конкретному запросу.

По этим запросам и создается выборка, которая используется для совершенствования работы машин. Сравнивая запросы и страницы, которым отдали предпочтение асессоры, алгоритм самостоятельно рассчитывает закономерность, по которой работает в дальнейшем. Формула ранжирования также определяется в автоматическом режиме, она позволяет выдавать поисковой системе наиболее релевантные результаты.

Стремительное развитие Интернета требует огромных усилий от асессора, и для оперативной индексации страниц потребовалось  бы привлечение большой команды специалистов. Для ускорения работы поисковой машины и был создан, так называемый, встроенный асессор, способный самостоятельно совершенствоваться — Матрикснет. Анализируя свойства каждой страницы, поисковая система учитывает количество внешних ссылок на страницу, а также ее содержимое.

После внедрения в 2009 году нового алгоритма «Снежинск» появилась информация о Яндекс Матрикснет.  Качество поиска значительно улучшилось, и поисковая машина уменьшила количество ошибок в оценке важности страниц. Алгоритм предусматривает отсеивание нетематических страниц, содержащих тематические запросы, делая поиск максимально релевантным.

Справочник оптимизатора

PR (PageRank)

PageRank (PR) – показатель авторитетности страниц, используемый в поисковой системе Goo…

29.04.2015

Нет комментариев.

Справочник оптимизатора

СЕО (SEO)

SEO – англоязычная аббревиатура, которая дословно расшифровывается как «search engines …

30.04.2015

Нет комментариев.

Как создается Data Matrix? / Habr

Data Matrix является двумерным матричным штрих кодом, состоящим из светлых и темных участков. С помощью такого штрих кода можно закодировать достаточно большой объем информации (2-3Кб). Часто Data Matrix применяется при маркировке небольших предметов, например микросхем, а также в пищевой, оборонной промышленности, рекламе и других сферах.

Существует множество сайтов для создания таких кодов, но мне всегда было интересно, каким же образом текст превращается в набор черных и белых квадратиков? Должен же быть какой-то алгоритм?

При создании Data Matrix нам понадобится обратиться к арифметике полей Галуа и кодам Рида-Соломона. Рассмотрим этот процесс на простом примере.

Прежде всего, посмотрим на структуру матрицы:

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

Возьмем какое-нибудь короткое слово, например, “Habr” (без кавычек) и создадим для него Data Matrix. Процесс состоит из двух этапов: на этапе высокоуровневого кодирования нужно получить последовательность кодов данных и кодов коррекции ошибок, а на этапе низкоуровневого кодирования – изобразить в матрице двоичное представление этих кодов.

Высокоуровневое кодирование


В Data Matrix, как и в QR-коде, используются коды Рида-Соломона над полем Галуа (число 8 выбрано, поскольку каждое кодовое слово занимает в матрице 8 бит). Существует несколько неприводимых многочленов, позволяющих сгенерировать такое поле. Среди них (в десятичном представлении 285, используется для QR-кодов) и (301, используется в Data Matrix).

Для расчетов нам понадобится таблица степеней двойки для каждого элемента поля. Создается эта таблица довольно просто: если показатель степени , то возведение в степень выполняется как обычно. В противном случае , после чего производится побитовое сложение по модулю 2 с десятичным представлением взятого неприводимого многочлена, если . Например, , и т. д.

Необходимо получить кодовое слово

,

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

Создадим для начала информационный многочлен. Для этого нам понадобится знать, какого размера должна быть матрица, чтобы можно было разместить все информационные коды:

Из таблицы видно, что для кодирования строки из 4х элементов нужно взять матрицу размером 12×12 («полезная» область – 10×10), в которую помещаются 5 кодов данных и 7 кодов коррекции.

Для символов таблицы ASCII код получается следующим образом: C=ASCII value+1. Например, для символа ‘H’ C=72+1=73.

Подряд идущие цифры объединяются в пары, и для них C=N+130, где N – число, полученное в результате группировки. Например, если рядом стоят цифры 2 и 5, то C=25+130=155.

Поскольку элементов у нас меньше, чем должно быть (вместо пяти только четыре), необходимо добавить специальные коды отступа. Первым таким кодом всегда является 129. Последующие коды отступа, до первого кода коррекции ошибок, вычисляются так:

, где
– псевдослучайное число, – номер элемента.

Для слова “Habr” получаем следующую последовательность кодов: 73, 98, 99, 115, 129.

Теперь мы можем записать информационный многочлен:

и домножить его на ( – число кодов коррекции):

Перейдем к созданию порождающего многочлена. Вычисляется он по следующей формуле:

Начинаем перемножать скобки:

Сложение в нашем поле определено как побитовое сложение по модулю 2. Сначала выполняется возведение в степень с помощью таблицы, затем их сложение и нахождение «логарифма» полученного числа для возврата к степеням двойки. В случае если после сложения степеней получается число, большее 254, берем его остаток от деления на .

После перемножения всех скобок и возведения в степень получим:

Последняя операция, завершающая высокоуровневое кодирование, и, пожалуй, самая сложная – нахождение остатка от деления на :

Выполняется деление многочленов в столбик, но с учетом того, что вычитание, определенное точно так же, как и сложение, и умножение выполняются в поле Галуа.

Теперь мы можем записать кодовое слово полностью:

Низкоуровневое кодирование


Каждый из полученных выше кодов представляется в Data Matrix в виде квадрата размером 3х3 ячейки без правого верхнего уголка. 1 здесь соответствует старшему биту, 8 – младшему. Нужно заполнить такими элементами всю матрицу.

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

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

Если , где a – сторона квадрата, то перед нами самый простой случай, когда после размещения всех элементов непоместившиеся участки просто переносятся на противоположную сторону.

Если , то в правом нижнем углу остается «лишний» квадратик размером 2х2, который заполняется так:

Если или , то следует обратить внимание на левый нижний и правый верхний угол, особенно на нумерацию битов:


Есть еще два случая, которые возникают только при построении прямоугольных матриц, поэтому мы их опустим.

Вернемся к нашей матрице и добавим все остальные элементы, а также укажем, какому кодовому слову соответствует каждый элемент. Стрелками показано, каким образом производится нумерация:

После переноса непоместившихся элементов получаем:

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

Аккуратно заполняем матрицу. Начнем с шаблона поиска и нижнего квадрата, а затем по очереди добавляем каждый код:


Итак, наш код Data Matrix готов:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *