2009-10-01 12 views
7

Я студент, проводя исследование, чтобы улучшить существующий алгоритм поисковой системы.Как оценить поисковую систему?

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

Как мне сравнить старый и новый алгоритмы?

Благодаря

+2

Хорошо, что у вас до сих пор? –

+12

Если вы не можете сравнить, как вы знаете, что вы его уже улучшили? O_o –

+3

Вы улучшили поисковую систему? Не позволяйте Google знать .... –

ответ

11

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

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

http://www.cs.uic.edu/~liub/searchEval/SearchEngineEvaluation.htm

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

Эвристика для релевантности также является полезной проверкой. Например, когда кто-то использует поисковые термины, которые, вероятно, связаны с программированием, вы обычно получаете больше результатов от stackoverflow.com? Будут ли ваши результаты поиска лучше, если вы это сделаете? Если вы предоставляете набор весов доверия для определенных сайтов или доменов (например, рейтинг .edu или .ac.uk доменов как более надежный для технических результатов), вам необходимо проверить эффективность этих весов.

2

Для того чтобы оценить что-то, вы должны определить, что вы ожидаете от него. Это поможет определить, как его измерить.
Затем вы сможете измерить улучшение.

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

Это интересная задача.

+0

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

0

Вы должны четко идентифицировать положительные и отрицательные качества, такие как, как быстро получается ответ, который они ищут, или сколько «неправильных» ответов они получают по пути туда. Это улучшение, если правильный ответ №5, но результаты возвращаются в 20 раз быстрее? Такие вещи будут отличаться для каждого приложения. Правильный ответ может быть более важным в поиске корпоративной базы знаний, но быстрый ответ может потребоваться для приложения поддержки по телефону.

Без параметров ни один тест не может считаться победой.

2

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

  • Для сравнения:
  • Что вы классифицируете как «улучшенный»?
  • Что вы считаете «успешным поиском»?
  • Насколько велика ваша тестовая группа?
  • Каковы ваши испытания?

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

Если ваша цель - повысить точность, то вам нужно определить, что является «неточным». Если вы ищете «Кубок», вы можете только сказать, что первый предоставленный сайт является «лучшим», если вы сами можете точно определить, что является лучшим ответом на «Кубок».

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

1

В комментариях, которые вы сказали «Я слышал о способе измерения качества поисковых систем, подсчитывая, сколько раз пользователю нужно нажать кнопку« Назад », прежде чем найти нужную ему ссылку, но я могу использовать этот метод, потому что вам нужны пользователи для проверки вашей поисковой системы, и это сама головная боль ». Хорошо, если вы поместите свой движок в Интернете бесплатно в течение нескольких дней и немного рекламируете, вы, вероятно, получите хотя бы пару десятков попыток. Предоставляйте этим пользователям старую или новую версию наугад и измерьте эти клики.

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

10

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

  1. Определить какую часть алгоритма вы пытаетесь улучшить?

Различные поисковые запросы выполняют разные алгоритмы.

Широкий поиск

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

  1. Ленту новостей
  2. Продуктов
  3. Изображений
  4. Блог Сообщения
  5. Локальных результатов (это базируется из поиска Geo IP).

Какое из этих типов результатов выбрасывается в микс, может варьироваться в зависимости от слова.

Пример:Кошка возвращает изображения кошек и новости, обуви возвращает местные магазины для обуви. (это основано на моем IP в Чикаго 6 октября)

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

Региональные Модификаторы

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

Результаты в «первой десятке местных», как правило, сильно отличаются от результатов в органическом списке ниже. Это связано с тем, что локальные результаты (с карт Google) полагаются на совершенно разные данные для ранжирования.

Пример: Наличие номера телефона на вашем веб-сайте с кодом города Чикаго поможет в местных результатах ... но НЕ в общих результатах. То же самое с адресом, списком желтой книги и т. Д.

Результаты Скорость

В настоящее время (по состоянию на 10.06.09) Google является бета-тестирование «кофеин» Основным моментом этого построения двигателя является то, что он возвращает результаты в почти половину времени. Хотя вы не можете считать Google медленным сейчас ... ускорение алгоритма важно, когда миллионы запросов происходят каждый час.

Уменьшение спама Перечни

Мы все нашли опытный поиск, который был пронизан со спамом. Хорошим примером является новый выпуск Google Caffeine http://www2.sandbox.google.com/. За последние 10+ одна из крупнейших битв в Интернете была между Поисковыми системами и поисковыми системами. Gaming google (и другие движки) очень выгоден и что Google проводит большую часть своего времени.

Хорошим примером является новый выпуск Google Caffeine. До сих пор мои исследования, а также несколько других в области SEO находили, что это первая сборка за последние 5 лет, чтобы придать больше веса элементам Onsite (таким как ключевые слова, внутреннее связывание сайтов и т. Д.), Чем предыдущие сборки. До этого каждый «релиз», похоже, все больше поддерживал входящие ссылки ... это первый шаг назад к «контенту».

Способы испытания алгоритма.

  1. Сравните две сборки того же двигателя. В настоящее время это возможно путем сравнения Caffeine (см. Ссылку выше или google, google caffeine) и текущего Google.

  2. Сравнить местные результаты в разных регионах.Попробуйте найти условия поиска, такие как веб-дизайн, которые возвращают локальные результаты без локального ключевого словаря. Затем используйте прокси (найденный через google) для поиска из разных мест. Вы захотите убедиться, что знаете местоположение прокси (найдите сайт в Google, который сообщит ваш IP-адрес или город вашего IP-адреса geo IP). Затем вы можете увидеть, как разные регионы возвращают разные результаты.

Внимание ... DONT выбрать термин слесаря ​​... и опасайтесь любых условиях, что при возврате результата, есть МНОГО спам списки .. Google местного довольно легко спам, особенно на конкурентных рынках.

  1. Как уже упоминалось в предыдущем ответе, сравните количество пользователей «щелчков», необходимых для поиска результата. Вы должны знать, что в настоящее время ни один из основных двигателей не использует «показатели отказов» в качестве индикаторов точности сайтов. Это ПРОБЛЕМНО, потому что было бы легко, чтобы он выглядел так, как будто ваш результат имеет показатель отказов в диапазоне 4-8%, не имея при этом такого низкого уровня ... другими словами, было бы легко играть в игру.

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

** Отказ от ответственности. Эти взгляды основаны на моем опыте работы с 6 октября 2009 года. Одна вещь о SEO и двигателях - это изменение КАЖДОГО ДНЯ. Google может выпускать кофеин завтра, и это сильно изменилось бы ... это сказало, это удовольствие от исследования SEO!

Приветствия

+0

+1! и лучший ответ на эту награду недели ... –

+0

Спасибо! Я всегда рад рассказать о SEO, даже если я не являюсь высокопоставленным блоггером SEO = P –

2

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

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

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

Wikipedia article on precision and recall неплохо (и определяет F-measure, который учитывает оба).

+2

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

+0

[ndcg] (http://en.wikipedia.org/wiki/Discounted_cumulative_gain) означает нормализованный дисконтированный кумулятивный выигрыш. DCG и связанные с ним меры оценивают полезность или _gain_ документа, основанного на его позиции в списке результатов. – Vladtn

0

Обнаружить тот факт, что качество результатов поиска в конечном счете является субъективным. Для сравнения вы должны иметь несколько алгоритмов подсчета: старый, новый и несколько контрольных групп (например, подсчет по длине URI или размер страницы или некоторая аналогично намеренно нарушенная концепция). Теперь выберите кучу запросов, которые реализуют ваши алгоритмы, скажем, около сотни. Допустим, вы закончили с 4 алгоритмами. Создайте таблицу 4x5, отобразив первые 5 результатов запроса по каждому алгоритму. (Вы можете сделать первую десятку, но первые пять являются более важными.) Не забудьте рандомизировать, какой алгоритм появляется в каждом столбце. Затем сверните человека перед этой штукой и попросите выбрать тот из 4 наборов результатов, которые им больше нравятся. Повторитесь по всему набору запросов. Повторите для большего количества людей, как вы можете стоять. Это должно дать вам справедливое сравнение, основанное на общих выигрышах для каждого алгоритма.

0

http://www.bingandgoogle.com/

Создать приложение, как это, сравнивающий и извлекает данные. Затем запустите тест с 50 различными вещами, которые вам нужно искать, а затем сравните с результатами, которые вы хотите.

0

Мне пришлось профессионально протестировать поисковую систему. Это то, что я сделал.

Поиск включал нечеткую логику. Пользователь вводит веб-страницу «Kari Trigger», и поисковая система будет извлекать такие записи, как «Gary Trager», «Trager, C», «Corey Trager» и т. Д., Каждый со счетом от 0 до> 100, так что Я мог бы оценивать их с вероятностью до наименее вероятных.

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

С тех пор, каждый раз, когда я менял логику поиска, я снова запускал партию, а затем различал новые результаты по сравнению с базовыми. Я также написал инструменты, чтобы упростить просмотр интересных частей diff. Например, меня не волновала, вернула ли старая логика «Corey Trager» как 82, а новая логика вернула ее как 83, поэтому мои инструменты отфильтровали бы их.

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

Таким образом, чтобы резюмировать:

1) Создать механизм, который позволяет дифф результаты выполнения новой логики по сравнению с результатами предварительного логики. 2) Испытайте множество реалистичных данных.
3) Создайте инструменты, которые помогут вам работать с diff, отфильтровывая шум, усиливая сигнал.

Смежные вопросы