ЖЕНЩИНА: [Быт.1],[+11],[0],[+2],[+4],[+2],[+4],..
Дополнительно на разностный способ хранения адресов накладывают какой-нибудь способ упаковки: зачем отводить небольшому целому числу фиксированное «огромное» количество байт, ведь можно отвести ему почти столько байт, сколько оно заслуживает. Здесь уместно упомянуть коды Голомба или встроенную функцию популярного языка Perl: pack(“w”).
В литературе встречается и более тяжелая система упаковочных алгоритмов самого широкого спектра: арифметический, Хафман, LZW, и т.д. Прогресс в этой области идет непрерывно. На практике в поисковых системах они используются редко: выигрыш невелик, а мощности процессора расходуются неэффективно.
В результате всех описанных ухищрений размер инвертированного файла, как правило, составляет от 7 до 30 процентов от размера исходного текста, в зависимости от подробности адресации.
Неоднократно предлагались другие, отличные от инвертированного и прямого поиска алгоритмы и структуры данных. Это, прежде всего, суффиксные деревья, а также сигнатуры.
Первый из них функционировал и в интернете, будучи запатентованным алгоритмом поисковой ситемы OpenText.
Мне доводилось встречать суффиксные индексы в отечественных поисковых системах.
Второй - метод сигнатур - представляет собой преобразование документа к поблочным таблицам хеш-значений его слов - "сигнатуре" и последовательному просмотру "сигнатур" во время поиска.
Широкого распространения эти два метода не получили.
Приблизительно 3 из 5 поисковых систем и модулей функционируют безо всяких математических моделей. Их разработчики не ставят перед собой задачу реализовывать абстрактную модель. Принцип здесь: лишь бы программа хоть что-нибудь находила.
Как только речь заходит о повышении качества поиска, о большом объеме информации, о потоке пользовательских запросов, кроме эмпирически проставленных коэффициентов полезным оказывается оперировать каким-нибудь пусть и несложным теоретическим аппаратом. Модель поиска – это некоторое упрощение реальности, на основании которого получается формула (сама по себе никому не нужная), позволяющая программе принять решение: какой документ считать найденным и как его ранжировать. После принятия модели коэффициенты приобретают физический смысл и становятся понятней.
Все многообразие моделей традиционного информационного поиска (IR) принято делить на три вида: теоретико-множественные (булевская, нечетких множеств, расширенная булевская), алгебраические[1][1] (векторная, обобщенная векторная, латентно-семантическая, нейросетевая) и вероятностные.
Булевское семейство моделей самое известное, реализующие полнотекстовый поиск. Есть слово - документ считается найденным, нет – не найденным. Собственно, классическая булевская модель – это мостик, связывающий теорию информационного поиска с теорией поиска и манипулирования данными.
Критика булевской модели, вполне справедливая, состоит в ее крайней жесткости и непригодности для ранжирования. Поэтому еще в 1957 году Joyce и Needham (Джойс и Нидхэм) предложили учитывать частотные характеристики слов, чтобы «... операция сравнения была бы отношением расстояния между векторами...».
Векторная модель и была с успехом реализована в 1968 году отцом-основателем науки об информационном поиске Джерардом Солтоном (Gerard Salton)[2][2] в поисковой системе SMART (Salton's Magical Automatic Retriever of Text). Ранжирование в этой модели основано на естественном статистическом наблюдении, что чем больше локальная частота термина в документе (TF) и больше «редкость» (т.е. обратная встречаемость в документах) термина в коллекции (IDF), тем выше вес данного документа по отношению к термину. Обозначение IDF ввела Karen Sparck-Jones (Карен Спарк-Джоунз) в 1972 в статье про различительную силу (term specificity). С этого момента обозначение TF*IDF широко используется как синоним векторной модели.
Наконец, в 1977 году Robertson и Sparck-Jones (Робертсон и Спарк-Джоунз) обосновали и реализовали вероятностную модель (предложенную еще в 1960), также положившую начало целому семейству. Релевантность в этой модели рассматривается как вероятность того, что данный документ может оказаться интересным пользователю. При этом подразумевается наличие уже существующего первоначального набора релевантных документов, выбранных пользователем или полученных автоматически при каком-нибудь упрощенном предположении. Вероятность оказаться релевантным для каждого следующего документа рассчитывается на основании соотношения встречаемости терминов в релевантном наборе и в остальной, «нерелевантной» части коллекции. Хотя вероятностные модели обладают некоторым теоретическим преимуществом, ведь они располагают документы в порядке убывания "вероятности оказаться релевантным", на практике они так и не получили большого распространения.
Важно заметить, что в каждом из семейств простейшая модель исходит из предположения о взаимонезависимости слов и обладает условием фильтрации: документы, не содержащие слова запроса, никогда не бывают найденными. Продвинутые («альтернативные») модели каждого из семейств не считают слова запроса взаимонезависимыми, а, кроме того, позволяют находить документы, не содержащие ни одного слова из запроса.
Поиск «по смыслу»Способность находить и ранжировать документы, не содержащие слов из запроса, часто считают признаком искусственного интеллекта или поиска по смыслу и относят априори к преимуществам модели.
Для примера опишу лишь одну, самую популярную модель, работающую по смыслу. В теории информационного поиска данную модель принято называть латентно-семантически индексированием (иными словами, выявлением скрытых смыслов). Эта алгебраическая модель основана на сингулярном разложении прямоугольной матрицы, ассоциирующей слова с документами. Элементом матрицы является частотная характеристика, отражающая степень связи слова и документа, например, TF*IDF. Вместо исходной миллионно-размерной матрицы авторы метода, предложили использовать 50-150 «скрытых смыслов»[3][3], соответствующих первым главным компонентам ее сингулярного разложения.
Доказано, что если оставить в рассмотрении первые k сингулярных чисел (остальные приравнять нулю), мы получим ближайшую из всех возможных аппроксимацию исходной матрицы ранга k (в некотором смысле ее «ближайшую семантическую интерпретацию ранга k»). Уменьшая ранг, мы отфильтровываем нерелевантные детали; увеличивая, пытаемся отразить все нюансы структуры реальных данных.
Операции поиска или нахождения похожих документов резко упрощаются, так как каждому слову и каждому документу сопоставляется относительно короткий вектор из k смыслов (строки и столбцы соответствующих матриц). Однако по причине малой ли осмысленности «смыслов», или по какой иной[4][4], но использование LSI в лоб для поиска так и не получило распространения. Хотя во вспомогательных целях (автоматическая фильтрация, классификация, разделение коллекций, предварительное понижение размерности для других моделей) этот метод, по-видимому, находит применение.
Какова бы ни была модель, поисковая система нуждаетсяв «тюнинге» - оценке качества поиска и настройке параметров. Оценка качества – идея, фундаментальная для теории поиска. Ибо именно благодаря оценке качества можно говорить о применимости или не применимости той или иной модели и даже обсуждать их теоретичеcкие аспекты.В частности, одним из естественных ограничений качества поиска служит наблюдение, вынесенное в эпиграф: мнения двух «асессоров» (специалистов, выносящих вердикт о релевантности) в среднем не совпадают друг с другом в очень большой степени! Отсюда вытекает и естественная верхняя граница качества поиска, ведь качество измеряется по итогам сопоставления с мнением асессора.
Обычно[5][5] для оценки качества поиска меряют два параметра:
· точность (precision) – доля релевантного материала в ответе поисковой системы
· полнота (recall) – доля найденных релевантных документов в общем числе релевантных документов коллекции
Именно эти параметры использовались и используются на регулярной основе для выбора моделей и их параметров в рамках созданной Американским Интститутом Стандартов (NIST) конференции по оценке систем текстового поиска (TREC - text retrival evaluation conference)[6][6]. Начавшаяся в 1992 году консорциумом из 25 групп, к 12-му году своего существования конференция накопила значительный материал, на котором до сих пор оттачиваются поисковые системы. К каждой очередной конференции готовится новый материал (т.н. «дорожка») по каждому из интересующих направлений. «Дорожка» включает коллекцию документов и запросов. Приведу примеры:
· Дорожка произвольных запросов (ad hoc) – присутствует на всех конференциях
· Многоязычный поиск
· Маршрутизация и фильтрации
· Высокоточный поиск (с единственным ответом, выполняемый на время)
· Взаимодействие с пользователем
· Естестственно-языковая «дорожка»
· Ответы на «вопросы»
· Поиск в «грязных» (только что отсканированных) текстах
· Голосовой поиск
· Поиск в очень большом корпусе (20GB, 100GB и т.д.)
· WEB корпус (на последних конференциях он представлен выборкой по домену .gov)