Алгоритмы ранжирования текстов

Максим Михайличенко
Максим Михайличенко
Руководитель компании
12.03.2013

Ранжирование текстов является одной из важнейших частей современного поиска.

Основанием считается формула TF-IDF, принадлежащая Солтону. Ее идея совершенно проста:

  1. Чем больше слов запроса в тексте, тем лучше;
  2. Чем весомее слово, тем лучше.

Но в ней есть существенные недостатки, например, не учтено, что если документ будет очень длинный и в нем будет очень много вхождений, то такой документ не обязательно должен быть более релевантен, чем его короткий аналог. Допустим, мы возьмем все страницы Википедии и соединим их в один текст, то у него будет очень высокий TF-IDF, т.к. вхождение всех слов в нем будет огромным. Поэтому в эту формулу было совершенно необходимо добавить нормирование на длину документа. Кроме того, есть еще один существенный недостаток формулы. Она не учитывает, что если слово в одном документе встретилось 50 раз, а в другом – 49 раз, то не факт, что первый документ релевантнее второго. Т.е. необходимо каждому последующему вхождению придавать все меньше и меньше веса.

Эти две эвристики были учтены в формуле, принадлежащей Робертсону, которая называется BM25 (Okapi).

формула алгоритма текстового ранжирования

k1 и b – это некие нормировочные коэффициенты.

Эта формула дает:

  • Пенальти документам, содержащим большое число слов;
  • Пенальти большому количеству вхождений термина.

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

Но это еще не все. Современные поисковые машины учитывают куда больше факторов:

Морфология. 

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

Тезаурусы (словари).

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

BM25F - Зоны. 

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

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