Автор работы: Пользователь скрыл имя, 13 Июня 2013 в 10:06, курсовая работа
Причина такого положения проста и кроется в технологии получения и представления результатов поисковыми системами. При этом надо понимать, что главная проблема заключается в отсутствии четких правил, доступных и открытых для всех желающих. Чем больше неопределенности в алгоритмах формирования поисковых индексов (некий черный ящик), тем меньше поисковые системы отражают процесс формирования реальной информации. И соответственно, тем меньше будет уровень доверия к результатам поиска поисковых систем.
Введение 2
Происхождение слова «Яндекс» 4
Индексирование интернета 6
Подготовка к ответам 6
Архитектура ответа на вопрос 10
Обработка запроса 12
Определение языка запроса 12
Морфологический разбор и снятие омонимии 13
Расширение запроса 13
Работа над ошибками 15
Машинное обучение 16
Матрикснет 17
Формирование результатов поиска 23
Оформление результатов поиска 25
Дополнительная информация в сниппете 25
Заключение 27
Список литературы 28
Чтобы выбрать для поиска наиболее вероятный список форм, система обращается к статистике совместной встречаемости слов и грамматических признаков. Например, в морфологическом разборе по запросу [стали для ножей] система выберет для поиска слово «сталь». Во-первых, потому что по статистике слово «сталь» чаще встречается со словом «нож», чем «стать». А во-вторых, потому что существительное в именительном падеже (в данном случае, «сталь») часто сочетается с существительным в родительном падеже («ножей»).
Для сбора статистики Яндекс использует Национальный корпус русского языка и свои собственные корпуса, где собрано огромное количество текстов в электронном виде.
После снятия омонимии поисковая система уже не будет искать слова, которые пользователь точно не имел в виду. В то же время, если ограничить поиск только словами из запроса, в поле зрения поисковой системы не попадут многие нужные документы. Ведь для одного и того же понятия в разных текстах могут использоваться разные слова, например на одном сайте может стоять аббревиатура, а на другом — полное наименование.
Для того чтобы учесть все возможные варианты, Яндекс расширяет запрос, добавляя другие формулировки с тем же смыслом. Например, вместе со сложносокращенным «физтех» Яндекс будет искать и официальное «Московский физико-технический институт », а по запросу «установка скайп» — еще и английское «skype». Точно так же Яндекс добавляет в запрос разные написания чисел («Петр I» и «Петр Первый»), близкие по смыслу однокоренные слова, варианты написания и синонимы. Так, если в запросе есть «воронежский», система может добавить к нему однокоренное «воронеж», к [Авто-сервис мицубиши] — «автосервис мицубиси», а к «ветерок» — похожее «бриз». Выбирая, какое слово добавить, а какое нет, Яндекс смотрит, как часто это слово встречается с другими словами запроса — и в вопросах пользователей, и вообще в текстах. Однокоренные слова и синонимы система берет из соответствующих справочников и словарей, часть из которых Яндекс сам составляет специально для таких случаев.
Выделение объектов
Анализируя запрос, поисковая система выделяет в нём различные объекты — географические названия, имена людей, названия организаций и т.д. Например, если поисковая система поймет, что «Сергей Зубов» — это человек, она не будет расширять фамилию «зубов» «зубным» или искать стоматологические клиники. А если в запросе [аптеки на парке культуры] система обнаружит, что «Парк культуры» — это место, она учтет это при ранжировании: в результатах поиска первые строчки займут документы, в которых слова «парк» и «культуры» идут подряд. Для выделения устойчивых фраз и объектов Яндекс тоже составляет различные справочники – например, словарь топонимов (географических названий), словарь имен и фамилий, справочник организаций, словарь устойчивых словосочетаний. Получив запрос, система каждый раз проверяет по справочникам, есть ли в нём устойчивые словосочетания.
Анализируя запрос, поисковая система всегда проверяет его на грамотность. По статистике Яндекса, около 12% запросов содержат ошибки. Это могут быть опечатки, орфографические ошибки или абракадабра, которая получается при неправильной раскладке клавиатуры. Если искать ровно то, что указано в поисковой строке, человек так и не получит нужный ему ответ — ведь на большинстве сайтов слова все-таки написаны грамотно. Поэтому те слова, в которых часто допускают ошибки («агентство», «винегрет») или по которым нет хорошего ответа на вопрос, Яндекс сразу же исправляет и показывает ответ уже на исправленный запрос. Разумеется, предупреждая пользователя, что запрос был исправлен.
В некоторых случаях сложно определить, ошибся пользователь или нет. Например, ресторан «фуджияма» очень похож на вулкан «фудзияма», а фамилия футболиста «Массад» на «Моссад» (а также на «массаж» и крепость «Массада»). В таких случаях, показывая ответ на исходный вопрос, Яндекс спрашивает, не ошибся ли человек и не хочет ли он увидеть ответ на исправленный запрос. Есть ещё один вариант — когда система не уверена, опечатался человек или нет, она покажет на одной странице результатов поиска ответы сразу на два вопроса — на заданный, в котором предположительно есть опечатка, и на исправленный.
На работу с ошибками и весь лингвистический анализ уходят доли секунды. За это время система успевает определить язык запроса, разобрать каждое слово, найти синонимы и устойчивые сочетания и в конечном счете решить, документы с какими словами нужно искать.
Сейчас уже сложно придумать такой запрос, по которому находится меньше десятка страниц. А по многим запросам результатов поиска — миллионы. И со временем их становится все больше — интернет очень быстро растет. Поэтому поисковой системе уже недостаточно просто показать все страницы со словами из запроса — чтобы найти подходящий ответ, человеку придется листать десятки страниц с результатами поиска. Поисковая система должна расположить найденные страницы в нужном порядке — так, чтобы сверху оказались наиболее подходящие пользователю (наиболее релевантные). Этот процесс — упорядочивание результатов поиска в соответствии с запросом пользователя — называется ранжированием. Именно ранжирование определяет качество поиска — то есть качество ответа на вопрос, заданный в поисковой строке.
При нынешнем развитии интернета невозможно предугадать все запросы к поиску и найти один вечно лучший ответ. Поэтому поисковик должен уметь самостоятельно определять, какой ответ хороший, а какой — нет.
Каждый день Яндекс отвечает на десятки миллионов запросов. Около четверти из них — неповторяющиеся. Поэтому невозможно написать для поисковой системы такую программу, в которой предусмотрен каждый запрос, и для каждого запроса известен лучший ответ. Поисковая система должна уметь принимать решения самостоятельно, то есть — сама выбирать из миллионов документов тот, который лучше всего отвечает пользователю. Для этого нужно научить ее обучаться.
Задача научить машину
обучаться существует не только в
поисковых технологиях. Без машинного
обучения невозможно, например, распознавать
рукописный текст или речь. Термин
«машинное обучение» появился еще
в 50-х годах. Этот термин обозначает
попытку научить компьютер
Поисковая система должна научиться строить правило, которое определяет для каждого запроса, какая страница является хорошим ответом на него, а какая — нет. Для этого поисковая машина анализирует свойства веб-страниц и поисковых запросов. У всех страниц есть какие-то признаки. Некоторые из них — статические — связаны с самой страницей, например, количество ссылок на эту страницу в интернете. Некоторые признаки — динамические — связаны одновременно с запросом и страницей — например, присутствие в тексте страницы слов запроса, их количество и расположение.
У поискового запроса тоже есть свойства, например, геозависимость — это означает, что для хорошего ответа на этот запрос нужно учитывать регион, из которого он был задан. Свойства запроса и страницы, которые важны для ранжирования и которые можно измерить числами, называются факторами ранжирования. Для точного поиска важно учитывать очень много разных факторов.
В 2009 году Яндекс внедрил новый метод машинного обучения — Матрикснет. Важная особенность этого метода — в том, что он устойчив к переобучению. Это позволяет учитывать очень много факторов ранжирования — и при этом не увеличивать количество оценок асессоров и не опасаться, что машина найдет несуществующие закономерности.
С помощью Матрикснета можно построить очень длинную и сложную формулу ранжирования, которая учитывает множество различных факторов и их комбинаций. Другие методы машинного обучения позволяют либо строить более простые формулы с меньшим количеством факторов, либо нуждаются в большей обучающей выборке. Матрикснет строит формулу с десятками тысяч коэффициентов. Это позволяет сделать существенно более точный поиск.
Матрикснет — это метод машинного обучения, с помощью которого строится формула ранжирования Яндекса.
Ещё одна важная особенность Матрикснета — в том, что формулу ранжирования можно настраивать отдельно для достаточно узких классов запросов. Например, улучшить качество поиска только по запросам про музыку. При этом ранжирование по остальным классам запросов не ухудшится. Для примера можно представить себе формулу ранжирования в виде сложного механизма с большим количеством ручек. На механизмах, построенных по другим технологиям, каждая ручка влияет на все запросы. Матрикснет даёт возможность настроить каждую ручку отдельно для своего класса запросов.
Кроме того, Матрикснет автоматически выбирает разную чувствительность для разных диапазонов значений факторов ранжирования. Это в чем-то похоже на работу на аэродроме — когда среди постоянного шума взлетающих самолётов нужно слышать и голоса людей. Если заткнуть уши, то самолёты будут слышны, а голоса — нет. Сотрудники аэропорта работают в специальных наушниках, слабо чувствительных к громкому шуму — так можно услышать и самолёты, и голоса людей.
Как устроено ранжирование
Поскольку поисковая система работает с очень большими объёмами информации, по каждому запросу ей нужно проверить признаки миллионов страниц, определить их релевантность и соответственно упорядочить. Так, чтобы сверху оказались более подходящие страницы. Чтобы проверить свойства всех страниц по очереди, нужно либо очень много серверов, которые могут быстро обработать информацию обо всех страницах, либо очень много времени — а поиск должен работать быстро, иначе пользователи не дождутся результатов. Матрикснет позволяет проверить очень много факторов за короткое время и без существенного увеличения вычислительных мощностей.
Поиск ведётся одновременно
на тысячах серверов. Каждый сервер
ищет по своей части индекса и
формирует список самых лучших результатов.
В него гарантированно попадают все
самые релевантные запросу
Дальше из этих списков составляется один общий, и страницы, попавшие туда, упорядочиваются по формуле ранжирования — той самой длинной и сложной формуле, построенной с помощью Матрикснета, с учётом всех факторов и их комбинаций. Таким образом, наверху поисковой выдачи оказываются все самые релевантные сайты — и пользователь почти мгновенно получает ответ на свой вопрос.
Спектр
Когда пользователи задают запросы к Яндексу, примерно в 20% случаев они формулируют запрос неоднозначно. Например, по запросу [наполеон] кто-то хочет найти полководца, а кто-то — рецепт торта. А задавая запрос [суши], человек может искать и ресторан с доставкой на дом, и рецепт блюда. Спектр возможных целей может быть очень широк — так же, как и спектр возможных ответов. И если пользователь не указал в поисковом запросе, что он ищет, то понять это крайне трудно. Технология Спектр умеет учитывать множество неявных целей пользователей и показывать соответствующие ответы.
Спектр — это технология, которая позволяет Яндексу учитывать при ответе разные потребности пользователей.
В основе работы Спектра лежит статистика поисковых запросов. Система исследует запросы всех пользователей Яндекса и выделяет в них различные объекты — это могут быть имена людей, названия фильмов и книг, модели автомобилей и тому подобное. Каждый объект относится к одной или нескольким категориям.
Например, в запросе [колдрекс инструкция] название лекарства «Колдрекс» — объект, который попадает в категорию «лекарства». А объект «Пушкин» относится к двум категориям — «поэты» и «города».
На данный момент Спектр выделяет около 60 категорий, и это количество будет еще расти. Знание категорий позволяет поисковой системе понимать разные значения слов в поисковых запросах.
Кроме того, Спектр умеет учитывать при поиске различные потребности пользователей. У каждой категории есть список возможных потребностей — тех намерений, с которыми пользователи ищут тот или иной объект. Например, когда люди ищут какой-нибудь товар, они, как правило, хотят купить его или почитать отзывы и обзоры. То есть для категории «товары» среди потребностей будут «купить», «отзывы» и «обзоры». Всего у категории может быть от двух-трех до нескольких десятков потребностей.
С учетом того, в какие категории попал объект, что люди обычно про него спрашивают, что пишут в интернете и т.д. Спектр оценивает процент людей, которые ищут этот объект с каждой из возможных целей. Эти данные используются при ранжировании результатов поиска по многозначным запросам. Используя их, Спектр вычисляет пропорции, в которых ответы на ту или иную тему должны быть представлены в результатах поиска. Найденные сайты упорядочиваются таким образом, чтобы спектр ответов соответствовал спектру вопросов. Таким образом, поиск Яндекса максимизирует вероятность того, что человек найдет именно то, что искал. Даже если он не указал это явно в своем запросе, а просто подумал.
Спектр анализирует поисковые
запросы полностью
Кроме статистики запросов, Спектр умеет использовать данные из справочников и энциклопедий — в том числе из Википедии. Это помогает распознавать недавно появившиеся объекты, узнавать, какие значения объектов не укладываются ни в одну из существующих категорий, и добавлять новые.