УДК 004.424.4
DOI: 10.30987/article_5bf3cb4ebb39c5.27869616
В.К. Гулаков, К.В. Гулаков, А.В. Солдатенков
ОЦЕНКА ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ МАТРИЦ РАССТОЯНИЙ
В ПРИБЛИЖЁННОМ ПОИСКЕ
Рассмотрена проблема оценки эффективности осуществления быстрого нечеткого поиска на основе матричных алгоритмов (AESA, LAESA, PAESA, iAESA, TLAESA) в текстовых словарях. Приведены результаты практического анализа ко-
личества вычисляемых расстояний в момент осуществления поиска.
Ключевые слова: метрические структуры данных, методы поиска, большая размерность, эффективность алгоритмов, приближённый поиск, матрицы расстояний.
V.K. Gulakov, K.V. Gulakov, A.V. Soldatenkov
ASSESSMENT OF EFFECTIVENESS OF DISTANCE MATRICES USE IN APPROXIMATE SEARCH
A problem in the assessment of the rapid fuzzy search effectiveness on the basis of matrix algorithms (AESA, LAESA, PAESA, iAESA, TLAESA) in text dictionaries is considered. There are shown results of
При решении задач, относящихся к различным предметным областям, часто возникает необходимость поиска ближайших объектов. Особенно актуальной она становится в задачах распознавания образов, поиска мультимедийных данных, анализа временных рядов, интеллектуального анализа данных, информационного поиска. К примеру, при анализе временных рядов нужно найти похожие данные в заданных последовательностях. При поиске изображений в базе данных производится поиск по определённому критерию подобия, например по цвету или форме.
Данная задача известна как поиск ближайшего соседа. Одним из способов её решения является использование метрических структур данных для хранения и обработки информации, а также применение методов индексации метрических пространств для ускорения доступа к информации. Как правило, они базируются на метрических структурах данных. Все они последовательно делят множество данных на подмножества, близкие к опорным точкам. Существуют различные подходы: матричный подход, сферическое разбиение, гиперплоскостное разбиение [6].
the practical analysis of the number of distances under computation at the moment of search carrying out.
Key words: metric structure of data, methods of searches, large dimensionality, algorithm effectiveness, approximate search, distance matrices.
В метрическом пространстве M = (X, d), определённом для множества объектов X, функция расстояния (метрика) d : X х X ^ R вычисляет расстояния между двумя произвольными объектами из множества X и является мерой сходства объектов. Функция расстояния должна удовлетворять условию тождества (d(x,y)=0 О x=y), условию симметрии (d(x,y)= d(y,x)) и условию неравенства треугольника (d(x,z) < d(x,y)+ (d(y,z)) . Также функция расстояния является неотрицательной (V x,y Е X,d(x,y) >0).
Вычисление расстояний между объектами считается дорогостоящей операцией [5]. Информация в метрическом пространстве хранится в виде многомерных объектов, и стоимость вычисления расстояния возрастает с увеличением размерности. Основным критерием, по которому оценивают производительность методов поиска в метрических пространствах, является количество вычислений расстояний при выполнении поискового запроса. Существующие методы индексации метрических пространств разработаны таким образом, чтобы минимизировать количество вычислений расстояний.
В данной статье описываются методы индексации, которые используют матрицу расстояний между всеми или некоторыми объектами, принадлежащими к множеству объектов данных.
Введём некоторые обозначения. Пусть U £ X - множество объектов размера n, среди которых производится поиск объектов, похожих на q со степенью сходства r.
Будем осуществлять два типа поисковых запросов:
• диапазонный запрос: (<?,т*)й = {и Е
U\(d(u,q)<r};
• попек ближайших соседей: ANN: ; :■:, = A: V u G A, v G U — A,d(u,q) <
d(v,q), \A\=k.
AESA. Первым предложенным алгоритмом, использующим матрицы расстояний, является AESA (Approximating and Eliminating Search Algorithm) [9]. Этот алгоритм предварительно рассчитывает все n(n-1)/2 расстояний для каждой пары из n объектов множества U и сохраняет их в матрице. На стадии поиска похожих объектов матрица используется для исключения элементов U из множества кандидатов в ближайшие соседи.
Для поиска ближайшего соседа AE-SA на очередном шаге выбирает опорную точку u G U и с её помощью отфильтровывает объекты, которые находятся заведомо далеко от объекта запроса q. Процесс повторяется, пока не будет выполнено сравнение со всеми элементами U либо они не будут заранее отброшены без непосредственного вычисления расстояния от них
D(u)^D(u) +
5. Отсеивание. Элементы и G U — F — P, для которых Dmo;( > г, исключаются из кандидатов в ближайшие соседи и добавляются к множеству F. Алгоритм возвращается к шагу 2.
AESA является одним из самых быстрых алгоритмов поиска, использующих матрицу расстояний [9]. Однако квадратичная пространственная сложность делает применение AESA непрактичным, если число элементов велико. Например,
до q. Для выбора опорной точки на очередном шаге используется минимизирующий критерий
D(u)= Хр^р I d(u,p)-dfaq) | , (1)
где P - множество опорных точек, для которых в процессе поиска были вычислены расстояния до объекта q. Расстояния сЕ(ргд) вычисляются во время поиска, а расстояния d(u,p) рассчитаны заранее и помещены в матрицу. Критерий D(u) определяет сумму минимальных границ расстояний между u и q, используя неравенство треугольника.
Ниже представлен алгоритм поиска ближайшего соседа 1 NN(_q)d [4]:
1. Инициализация. Множество P и множество отфильтрованных элементов F изначально пустые: P^ 0,F^ 0.
D(u) - 0. <- 0, г< оо.
Шаги 2-5 повторяются, пока U не станет равным U и F, P ^ F.
2. Выбор опорной точки. Очередная опорная точка выбирается согласно условию минимизации критериев 1: Р <- arg min D(u).
3. Вычисление расстояния. Между выбранной опорной точкой р и объектом запроса q вычисляется расстояние d ( р., q}. Объект р добавляется к множеству Р.
4. Обновление кандидата - ближайшего соседа. Если d{prq) <г, то р становится текущим ближайшим соседом. Затем для каждого объекта в U — F — Р согласно формуле (1) обновляется критерий D(u):
d(-u,p) - d(p,q") |, г;-:-: у: - : | ).
если множество содержит 10000 объектов, а расстояние между объектами занимает 4 байта, то матрица расстояний занимает 400 MB. Можно сделать вывод, что метод эффективен только для малых объёмов данных (размер которых не превышает нескольких тысяч элементов). Тем не менее если вычисление расстояний обходится дорого, а высокая стоимость предварительной обработки позволительна, производительность поиска является гораздо
более высокой по сравнению с другими методами.
LAESA. Метод под названием LAESA (Linear AESA) [8] использует уменьшенную матрицу расстояний с целью снижения пространственной сложности. На стадии предварительной обработки формируется множество B^U, состоящее из m элементов - базовых прототипов. В LAESA матрица расстояний содержит расстояния между каждым базовым прототипом и всеми остальными элементами множества U. Пространственная сложность и время предварительной подготовки LAESA оценивается как 0(т ■ тг) .
Алгоритм LAESA практически идентичен AESA. Основное отличие - на шаге 2: выбор опорной точки происходит только среди базовых прототипов, т.е. среди элементов множества B. Отсеивание элементов на шаге 5 выполняется, только если они не принадлежат множеству B.
Количество вычислений расстояний во время поиска LAESA, как и в случае AESA, стремится к некоторому среднему значению, растущему с увеличением размерности данных и практически не зависящему от размера множества U.
Рекомендуемый способ выбора базовых прототипов состоит в том, чтобы формировать множество B из элементов, расположенных максимально далеко друг от друга. При этом эксперименты, проведённые авторами LAESA, показывают, что существует оптимальное значение m, определяемое опытным путём, при котором количество вычислений расстояний будет минимальным.
Преимущество LAESA перед AESA заключается в том, что LAESA, производя больше вычислений расстояний по время поиска, потребляет значительно меньше памяти для хранения матрицы расстояний. Время предварительной обработки данных при использовании LAESA также гораздо меньше, чем при использовании AESA.
PAESA. Алгоритм PAESA (the Projection-based AESA - проекция на основе AESA) [5] использует матрицу расстояний, d(q, u) > d^fjj/ulo/p)
хранящую O (N(N+1)72) расстояний между объектами, которая является очень практичным решением для больших наборов данных. Основным различием между PAESA и AESA является применение нового ограничения расстояния нижней границы для аппроксимации и исключения. В AESA для каждой точки p, выбранной из набора данных, неравенства
Лш(д,и\р) = IЛ(д,р) - а(и,р)I < и
при
меняются только один раз для обновления связанной нижней границы ¿). В
алгоритме PAESA, когда точка поворота будет добавлена в набор таких точек, могут быть вычислены различные нижние границы для
Таким образом, с выбранными M точками поворота нижние границы (¿ю^щ') или £^(¡7,10 для выби-
раются как максимум от N(N+1)72 приближений. Следовательно, нижняя граница, определенная с помощью алгоритма PAESA, как правило, будет гораздо более строгой, чем у AESA, а значит, может быть сохранено больше расчетов расстояний.
Дополнительная нижняя граница от расстояния между двумя объектами определяется тогда, когда известны их расстояния до двух опорных точек.
Если доступно положительное полуопределенное метрическое двухмерное пространство N = (Ф, ф), где о, р, и - неидентичные точки, принадлежащие Ф, о = р, то для любых принадлежащих Ф, справедливо неравенство
у :? у' = _ -V 1.
При использовании метрических пространств общего вида можно расширять их мерность. Принципиально алгоритм не меняется, однако, для вычислений расстояний изменяется подсчет расстояния между точками. Для трехмерного пространства уравнения для границы аналогичные, однако расстояние измеряется в соответствии с формулой вычисления расстояний между точками в трехмерном пространстве:
¡d2(u,q\o,p) + (d(q,q') - d(u,v'jf. d q и' il D:,d p и p' = -. d2 и q о p' - d q q" - dun'" 2.
Исходя из этого размерность не имеет значения, границы будут строиться на основе существующих с добавлением уровня мерности.
iAESA. Метод под названием iAESA (Improved AESA) [4] использует отличный от AESA способ выбора очередной опорной точки на шаге 2. Для этого вводятся следующие понятия:
• Отношение следования <и \ у, z G X. У <ъj z <=> d(yru) < d{z,u}.
• Перестановка: р1,р2,..., pw, где р< <pi+1. Иначе говоря, перестановка
FiiiJ=F(Uul Uq) = I П"1 (pe)- n^CPi) Ь
элемента г/ - это множество элементов р:, расположенных в порядке возрастания расстояния до и.
Идея, лежащая в основе iAESA, основывается на следующем утверждении: если два объекта расположены близко, то их перестановки отличаются ненамного. Если, к примеру, объект и расположен близко к то будет мало отличаться от
Для сравнения перестановок используется критерий Спирмана:
где П"1^} - индекс элемента pi в перестановке Пц
Основные отличия iAESA от AESA:
• На шаге 2 выбирается опорная точка, имеющая наименьшее значение F(u): Р arg min uEU_f_pF{u).
• На шаге 3 выбранная опорная точка р вставляется в П
• На шаге 5 опорная точка p вставляется в перестановки Пи элементов u,
оставшихся после отсеивания. Затем для них обновляются значения F(u). Временная сложность поиска iAESA в худшем случае оценивается как 0(| Р 12-п}, поскольку требуется ()(\ Р |) времени на обновление и F(u).
TLAESA. Tree-LAESA [7] - развитие метода LAESA. Основное отличие TLAESA от LAESA - сублинейная временная сложность поиска. Она достигается за счет использования бинарного дерева T, хранящего все объекты, среди которых производится поиск. Как и в LAESA, используется матрица расстояний M между опорными точками и остальными объектами. Во время выполнения поиска матрица M используется для исключения тех ветвей, объекты в которых находятся заведомо далеко от объекта запроса. Алгоритм состоит из двух стадий.
Стадия предварительной обработки:
• Формируется подмножество опорных точек В = [blrb2, ...,Ьт}. Первая
опорная точка выбирается случайным образом, а в качестве остальных выбираются точки, находящиеся на максимальном расстоянии друг от друга: Ь, = агдтах р е () Л (р, Ь^), где
• Формируется бинарное дерево Т. Каждый узел I Е Т соответствует подмножеству 5(с и Если t - листовой узел, то содержит один объект. В противном случае = 5». и где £г и Ьг - левый и
правый потомки t. В каждом узле хранится опорная точка т1. 6 5:(Г и радиус
листового узла
гг = гаах£^(р, тг). Для
Для корневого узла р подмножество 5р = У, а тр выбирается случайным образом. Для правого потомка ЬТ каждого узла t опорная точка совпадает с опорной точкой самого узла: т( = В качестве опорной
точки левого узла берется объект, находящийся на максимальном расстоянии от опорной точки узла:
тл%1 — аг§1пахсЕ(р,тп!г}.
В подмножество правого потомка 5Гт
входят те объекты, которые находятся
ближе к т, . Остальные объекты помещает-
ются в подмножество левого потомка
St-}StT = {Р Е St:d(p.,m ) < d(p,m }},S = St-St
• Формируется матрица М, в которой хранятся расстояния между каждой опорной точкой Ь; и всеми остальными элементами и.
Стадия поиска:
• Формируется Б - вектор расстояний от всех опорных точек до объекта запроса:
^ = : = _ При этом нахо-
дится наибольшая из нижних границ расстояний от корня дерева до объекта запроса, полученная с помощью опорных точек и неравенства треугольника:
др - тах(дрГ \ М[Ь,р] — О [Ь] |). Также
определяется ближайшая к объекту запроса опорная точка.
• Производится рекурсивный поиск в дереве. Если I - листовой узел и нижняя граница расстояния между ним и объектом запроса ц меньше, чем расстояние до текущего ближайшего соседа сЕт;„, то вычисляется расстояние с/( (,(/). Если оно меньше то 1 объявляется новым
ближайшим соседом.
Если I - узел с потомками, то производится рекурсивный поиск в левом и правом поддеревьях. Сравниваются нижние границы расстояний от опорной точки узла до объекта запроса, и первым производится поиск в том поддереве, в котором эта граница меньше.
Оценка эффективности рассмотренных методов
В таблице приведены оценки сложности Пространственная сложность и временная сложность предварительной обработки AESA оценивается как 0(тг2}, поскольку AESA хранит матрицу расстояний между всеми парами элементов U. Временная сложность поиска в худшем случае оценивается как 0(|Р| *п). Экспериментально показано, что в среднем количество вычислений расстояний во время поиска является постоянным и практически не зависит от n [1; 2]. С ростом размерности данных количество вычислений расстояний увеличивается. Таким образом, временную сложность поиска AESA можно оценить как 0(1).
ассматриваемых в статье алгоритмов.
Пространственная сложность и время предварительной подготовки ЬАЕБА оценивается как О(тп). Временная сложность поиска оценивается как т+О(1) [8].
Для ¡АЕБА требования к памяти не отличаются от АЕБА. Временная сложность поиска в худшем случае оценивается как 0(|Р|2 *п), поскольку требуется 0(\Р\) времени на обновление и /•(»).
Для ТЬАЕБА сложность поиска варьируется между O(log п) и О(тп).
Оценки пространственной сложности поиска РАЕБА и ЬРАЕБА совпадают с АЕБА и ЬАЕБА соответственно.
Таблица
Оценка сложности алгоритмов
Алгоритм Пространственная сложность Временная сложность выполнения поискового запроса
AESA с (У) 0(1)
LAESA 0 (тп ■ п) тп + 0(1)
iAESA о (У) 0(]Р\2 -п)
TLAESA 0 (тп ■ п) 0(п2}
PAESA С С"2} 0(1)
LPAESA 0 (тп ■ п) тп + 0(1)
В данной работе была изучена ситуация, когда ЬАЕБА быстрее и дешевле, чем AESA. В предыдущих работах было выявлено, что АЕБА -
наилучший алгоритм, потому что он вычисляет меньше расстояний. Тем не менее стоимость функции несхожести очень важна для конечного результата.
Также был предложен метод Reduced Overhead AESA (ROAESA), отли-
СПИСОК ЛИТЕРАТУРЫ
1. Гулаков, В.К. Анализ методов поиска в метрических пространствах на основе сферического разбиения множества объектов / В.К. Гулаков, В.Н. Матюшин // Информационные технологии, радиоэлектроника, телекоммуникации (IIRT-2014): IV междунар. заоч. науч.-техн. конф. -Тольятти, 2014. - С. 98-102.
2. Гулаков, В.К. Оценка эффективности использования метрических деревьев в приближенном поиске на основе обобщенного гиперплоскостного разбиения множества объектов / В.К. Гулаков, В.Н. Матюшин // Вестник Брянского государственного технического университета. -2013. - № 4. - С. 106-112.
3. Chavez, E. Proximity searching in metric spaces / E. Chavez, G. Navarro, R. Baeza-Yates, J.L. Mar-roquin // ACM Computing Surveys (CSUR). -2001. - Vol. 33. - Is. 3. - P. 273-321.
4. Figueroa, K. On the Least Cost for Proximity Searching in Metric Spaces / K. Figueroa, E. Chavez, G. Navarro, R. Paredes // 5th International Workshop, WEA 2006. - Cala Galdana, Menorca, Spain, 2006. - P. 279-290.
1. Gulakov, V.K. Analysis of methods for search in metric areas based on spherical division of objects multitude / V.K. Gulakov, V.N. Matyushin // Information Technologies, Radio-electronics, Telecommunications (IIRT-2014): The IV-th Inter. Remote Scientific.-Tech. Conf. - Togliatti, 2014. - pp. 98-102.
2. Gulakov, V.K. Effectiveness assessment of metric trees use in approximate search based on generalized hyper-flat division of objects multitude / V.K. Gulakov, V.N. Matyushin // Bulletin of Bryansk State Technical University. - 2013. - No.4. - pp. 106-112.
3. Chavez, E. Proximity searching in metric spaces / E. Chavez, G. Navarro, R. Baeza-Yates, J.L. Mar-roquin // ACM Computing Surveys (CSUR). -2001. - Vol. 33. - Is. 3. - P. 273-321.
4. Figueroa, K. On the Least Cost for Proximity Searching in Metric Spaces / K. Figueroa, E. Chavez, G. Navarro, R. Paredes // 5th International Workshop, WEA 2006. - Cala Galdana, Menorca, Spain, 2006. - P. 279-290.
чающийся от AESA и LAESA уменьшенным потреблением памяти.
5. Matthew, A.S. Aspects of Metric Spaces in Computation / A.S. Matthew. - Waterloo, Ontario, Canada, 2008. - P. 258.
6. Samet, H. Foundations of Multidimensional and Metric Data Structures / H. Samet. - Imprint: Morgan Kaufmann, 2006. - 1024 p.
7. Tokoro, K. Improvements of TLAESA Nearest Neighbor Search Algorithm and Extension to Approximation Search / K. Tokoro, K. Yamaguchi, S. Masuda // In Proc. Twenty-Ninth Australasian Computer Science Conference (ACSC 2006). -Australian Computer Society, Inc. Darlinghurst, Australia, 2006. - P. 77-83.
8. Vidal, E. An algorithm for finding nearest neighbors in (approximately) constant average time / E. Vidal // Pattern Recognition Letters. - 1986. - Vol. 4 (3). - P. 145-157.
9. Vidal, E. A new version of the nearest-neighbor approximating and eliminating search algorithm (AESA) with linear preprocessing-time and memory requirements / E. Vidal, L. Mico, J. On-cina // Pattern Recognition Letters. - 1994. - Vol. 15 (1).
5. Matthew, A.S. Aspects of Metric Spaces in Computation / A.S. Matthew. - Waterloo, Ontario, Canada, 2008. - P. 258.
6. Samet, H. Foundations of Multidimensional and Metric Data Structures / H. Samet. - Imprint: Morgan Kaufmann, 2006. - 1024 p.
7. Tokoro, K. Improvements of TLAESA Nearest Neighbor Search Algorithm and Extension to Approximation Search / K. Tokoro, K. Yamaguchi, S. Masuda // In Proc. Twenty-Ninth Australasian Computer Science Conference (ACSC 2006). -Australian Computer Society, Inc. Darlinghurst, Australia, 2006. - P. 77-83.
8. Vidal, E. An algorithm for finding nearest neighbors in (approximately) constant average time / E. Vidal // Pattern Recognition Letters. - 1986. - Vol. 4 (3). - P. 145-157.
9. Vidal, E. A new version of the nearest-neighbor approximating and eliminating search algorithm (AESA) with linear preprocessing-time and memory requirements / E. Vidal, L. Mico, J. On-cina // Pattern Recognition Letters. - 1994. - Vol. 15 (1).
Статья поступила в редакцию 12.07.18. ензент: к.т.н., доцент Брянского государственного технического университета
Подвесовский А.Г. Статья принята к публикации 10.10.18.
Сведения об авторах:
Гулаков Василий Константинович, к.т.н., профессор кафедры «Информатика и программное обеспечение» Брянского государственного технического университета, e-mail: gvk10@yandex.ru. Гулаков Константин Васильевич, к.т.н., доцент кафедры «Информатика и программное обеспече-
Gulakov Vasily Konstantinovich, Can. Sc. Tech., Prof. of the Dep. "Informatics and Software", Bryansk State Technical University, e-mail: gvk10@yandex.ru. Gulakov Konstantin Vasilievich, Can. Sc. Tech., Assistant Prof. of the Dep. "Informatics and Software",
ние» Брянского государственного технического университета, e-mail: gulakov32@vandex. ni. Солдатенков Алексей Владимирович, аспирант кафедры «Информатика и программное обеспечение» Брянского государственного технического университета, e-mail: avsoldatenkov@yandex. ru.
Bryansk State Technical University, e-mail: gula-kov32@yandex.ru.
Soldatenkov Alexey Vladimirovich, Post graduate student of the Dep. "Informatics and Software", Bryansk State Technical University, e-mail: avsoldaten-kov@yandex.ru.