Как оценить поисковую систему?

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

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

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

спасибо

10 ответов


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

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

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

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

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


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

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

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

Запросы

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

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

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

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

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

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

Как правило, в любое время региональный термин прилагается к поиску, он значительно изменит результаты. Если вы ищете "Chicago web design", потому что слово Chicago прилагается, результаты начнутся с топ-10 региональных результатов. (это один лайнеры справа от карты), после того, как 10 списков будут отображаться в общем "результат моды".

результаты в "top ten local", как правило, резко отличаются от результатов в органическом листинге под. Это связано с тем, что локальные результаты (из Google maps) полагаются на совершенно разные данные для ранжирования.

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

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

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

Сокращение Списков Спама

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

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

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

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

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

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

  1. Как уже упоминалось в предыдущем ответе, сравните, сколько" кликов " требуется пользователям для поиска результата. Вы должны знать, что в настоящее время никакие крупные двигатели не используют "показатели отказов" в качестве индикаторов точности сайтов. Вероятно, это связано с тем, что было бы легко сделать так, чтобы ваш результат имел скорость отскока в диапазоне 4-8%, не имея такого низкого... другими словами, в нее было бы легко играть.

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

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

Ура


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

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

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


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

  • какова ваша базовая линия для сравнения?
  • что вы классифицируете как "улучшилось"?
  • что вы считаете "успешным поиском"?
  • насколько велика ваша тестовая группа?
  • какие тесты?

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

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

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


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

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

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

на статья Википедии о точности и отзыве довольно хорошо (и определяет F-меры который учитывает оба).


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

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


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

без параметров ни один тест не может претендовать на победу.


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


http://www.bingandgoogle.com/

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


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

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

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

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

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

Итак, резюмируем:

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