Работа над ошибками



Анализируя запрос, поисковая система всегда проверяет его на грамотность. По статистике Яндекса, около 12% запросов содержат ошибки. Это могут быть опечатки, орфографические ошибки или абракадабра, которая получается при неправильной раскладке клавиатуры. Если искать ровно то, что указано в поисковой строке, человек так и не получит нужный ему ответ — ведь на большинстве сайтов слова все-таки написаны грамотно. Поэтому те слова, в которых часто допускают ошибки («агентство», «винегрет») или по которым нет хорошего ответа на вопрос, Яндекс сразу же исправляет и показывает ответ уже на исправленный запрос. Разумеется, предупреждая пользователя, что запрос был исправлен.

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

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

Машинное обучение

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

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

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

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

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

Асессоры

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

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

Переобучение

В поисковых технологиях машинное обучение применяется с начала 2000-х годов. Разные поисковые системы используют разные модели. Одна из проблем, которые возникают при машинном обучении — переобучение. Переобучившаяся машина похожа на студента, который перезанимался — например, прочитал очень много книжек перед экзаменом по психологии. Он мало общается с живыми людьми и пытается объяснить простые поступки слишком сложными моделями поведения. И из-за этого поведение друзей для него всегда неожиданно.

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

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

Матрикснет

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

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

Ещё одна важная особенность Матрикснета — в том, что формулу ранжирования можно настраивать отдельно для достаточно узких классов запросов. Например, улучшить качество поиска только по запросам про музыку. При этом ранжирование по остальным классам запросов не ухудшится. Для примера можно представить себе формулу ранжирования в виде сложного механизма с большим количеством ручек. На механизмах, построенных по другим технологиям, каждая ручка влияет на все запросы. Матрикснет даёт возможность настроить каждую ручку отдельно для своего класса запросов.

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

Спектр

Спектр — это технология, которая позволяет Яндексу учитывать при ответе разные потребности пользователей. Когда пользователи задают запросы к Яндексу, примерно в 20% случаев они формулируют запрос неоднозначно. Например, по запросу [наполеон] кто-то хочет найти полководца, а кто-то — рецепт торта. А задавая запрос [ суши ], человек может искать и ресторан с доставкой на дом, и рецепт блюда. Спектр возможных целей может быть очень широк — так же, как и спектр возможных ответов. И если пользователь не указал в поисковом запросе, что он ищет, то понять это крайне трудно. Технология Спектр умеет учитывать множество неявных целей пользователей и показывать соответствующие ответы.

В основе работы Спектра лежит статистика поисковых запросов. Система исследует запросы всех пользователей Яндекса и выделяет в них различные объекты — это могут быть имена людей, названия фильмов и книг, модели автомобилей и тому подобное. Каждый объект относится к одной или нескольким категориям.

Например, в запросе [ колдрекс инструкция ] название лекарства «Колдрекс» — объект, который попадает в категорию «лекарства». А объект «Пушкин» относится к двум категориям — «поэты» и «города».

На данный момент Спектр выделяет около 60 категорий, и это количество будет еще расти. Знание категорий позволяет поисковой системе понимать разные значения слов в поисковых запросах.

Кроме того, Спектр умеет учитывать при поиске различные потребности пользователей. У каждой категории есть список возможных потребностей — тех намерений, с которыми пользователи ищут тот или иной объект. Например, когда люди ищут какой-нибудь товар, они, как правило, хотят купить его или почитать отзывы и обзоры. То есть для категории «товары» среди потребностей будут «купить», «отзывы» и «обзоры». Всего у категории может быть от двух-трех до нескольких десятков потребностей.

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

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

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

На базе технологии «Спектр» в поиске Яндекса реализованы диалоговые подсказки. Они появляются под строкой поиска в ответ на неоднозначные запросы. Диалоговые подсказки описывают наиболее популярные категории, в которые попал запрос, и позволяют в один клик перейти к ответам только из выбранной категории. Например, по запросу [голубика] Яндекс предлагает «полезные свойства», «википедия», «калорийность» и «рецепты». За каждой из этих ссылок пользователя ждет соответствующая страница результатов поиска.

Результаты поиска

Страница результатов поиска — это ответ Яндекса на вопрос, который пользователь задал в поисковой строке. Яндекс находит и показывает все подходящие ответы: колдунщики своих сервисов, контекстные объявления Яндекс.Директа, и, конечно, сами результаты поиска по интернету.

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

Страница результатов поиска (SERP) — одна из основных веб-страниц Яндекса. Каждый день она формируется десятки миллионов раз.


Дата добавления: 2015-12-17; просмотров: 16; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!