Изменения

Перейти к: навигация, поиск
м
Нет описания правки
Одновременно с этим существует теория баз данных, в рамках которой в той или иной степени разрабатываются различные методы индексации многомерных данных. Все эти методы, разумеется, имеют базовые общие черты — все они являются методами построения деревьев поиска, все они на каждом шаге разделяют общее пространство на какие-то области и почти всегда они рассчитываются на дисковое хранение. Есть и ещё одна черта — почти ни один из этих методов не реализован в распространённых СУБД, что усложняет жизнь исследователям и разработчикам и заставлять создавать реализации снова и снова.
Возможно, частично поэтому авторы соответствующих алгоритмов распознавания часто не рассматривают возможность ускорения большого числа сравнений с помощью этих методов. В данном докладе предлагается использовать соответствующие Сами методы индексации для быстрого поиска, производится сравнение некоторых методов применительно к задаче анализа биологических данных по сути, разделяются на R-подобные деревья, хранящие в узлах гиперкубы (заканчивающееся R — от Region/Rectangle), и BSP-подобные деревья, разделяющие на каждом шаге пространство на 2 или большее число элементов гиперплоскостями (BSP — от Binary Space Partitioning). К первым из наиболее известных относятся собственно R-дерево, R*, R+, X, M и hB-деревья, ко вторым — в пользу первую очередь K-D-B деревьев)/ bKD-деревья, TV-деревья и предлагается использовать свободную СУБД PostgreSQL как «субъект» некоторые малоизвестные реализации, использующие гиперплоскости, построенными по причине наличия линейным комбинациям осей. Общая проблема — в ней реализации GiST[1] — обобщённого сложности перебалансировки при динамическом построении индекса, то есть при последовательной вставке элементов, проблема R-деревьев — ещё и в пересечении гиперкубов в узлах дерева поиска, позволяющего легко реализовывать собственные особенно сильно увеличивающимся с увеличением размерности пространства. Некоторые из методов поддерживают индексацию только точечных данных, некоторые — точечных и пространственных. Различные методы индексациитакже поддерживают различные методы поиска — точный поиск, поиск по области, не разбираясь глубоко во внутреннем устройстве СУБДпоиск ближайшего соседа.
Сами методы При этом, все стандартные используемые метрики могут быть ускорены с помощью методов индексациимногомерных данных. Самая простая метрика — максимум модуля разности — вообще в точности задаёт гиперкуб, по сути, разделяются на R-подобные деревья, хранящие которому нужно просто осуществить поиск. Сумма модулей разности может быть оптимизирована с помощью поиска по гиперкубу в узлах гиперкубы (R — от Region/Rectangle), и BSP-подобные деревья, разделяющие на каждом шаге пространство на 2 или большее число элементов гиперплоскостями (BSP — от Binary Space Partitioning)повёрнутой ортогональной системе координат. К первым из наиболее известных относятся собственно RЛинейная корреляция может быть оптимизирована опять-деревотаки с помощью поиска по гиперкубу в многомерной сферической системе координат, R*, R+, X, M и hB-деревья, ко вторым — так как линейная корреляция двух векторов в первую очередь K-D-B / bKD-деревьямногомерном пространстве — по сути, TV-деревья и некоторые малоизвестные реализациивсего лишь косинус угла между ними. Сумма квадратов разностей может быть либо оптимизирована «неточно», использующие гиперплоскостиесли гиперкуб описать вокруг искомой шаровидной окрестности; либо, построенными для ещё большей оптимизации возможно реализовать поиск по линейным комбинациям осейшаровидной окрестности точки. Общая проблема — Кроме этого, по любой из индексных структур с минимальными затратами реализуется возможность поиска ближайшего соседа — весь смысл в обходе дерева в сложности перебалансировки при динамическом построении индексапорядке, то есть при последовательной вставке элементовсоответствующем минимально возможному расстоянию от области, проблема R-деревьев — ещё и сохранённой в пересечении гиперкубов в узлах узле дерева, особенно сильно увеличивающимся с увеличением размерности пространства. Некоторые из методов поддерживают индексацию только точечных данных, некоторые — точечных и пространственныхдо искомого элемента.
Как ни странноС одной стороны, строгий расчёт реализация методов с исключительным расчётом на дисковое использование внешнюю память (жёсткий диск, SSD) в последнее время, в условиях дешёвой оперативной памяти, можно и ставить может ставиться под сомнение — напримерсомнение для задач, в которых весь индекс гарантированно всегда будет помещаться в оперативную память, а данные редко меняются. Например, обычное оптимально построенное K-D, не K-D-B дерево займёт всего лишь примерно 100 130 Мб для 8 миллионов индексируемых векторовлюбой размерности, в то время, как а средний персональный компьютер уже сейчас имеет на борту 2-4 Гб оперативной памяти, поэтому если 8 миллионов сгенерированных однажды векторов достаточно для решения задачи — можно использовать методы, работающие только с оперативной памятью. С переходом  Возможно, частично из-за отсутствия готовых решений авторы алгоритмов распознавания, которые можно было бы ускорять или масштабировать на большие объёмы оперативной памяти и 64-битные архитектурыданных, конечночасто не рассматривают использование этих методов. В данном докладе приводится описание равзличных методов, возрастает и разрядность указателей и то же дерево вырастает до 167 Мбпредлагается использовать соответствующие методы индексации для быстрого поиска, но и это не много; скорость же доступа производится сравнение некоторых методов применительно к оперативной памяти на порядки быстрее чтения с диска задаче анализа биологических данных (даже с набирающих популярность SSDзаканчивающееся в пользу K-D-B деревьев). Это не значит, что «дисковый» подход вовсе отмирает — но при разработке будущих и предлагается использовать свободную СУБД и индексов авторам имеет смысл обращать внимание на лучшую работу и с оперативной памятьюPostgreSQL как «субъект» реализации, и с дискомпо причине наличия в ней реализации GiST[1] — обобщённого дерева поиска, так как для многих задач это может оказаться вполне достаточнопозволяющего легко реализовывать собственные методы индексации, не разбираясь глубоко во внутреннем устройстве самой СУБД.
# GiST: A Generalized Search Tree for Database Systems, a talk given at Hebrew University in Jerusalem, Tel Aviv University, UC Berkeley, Brown University, IBM Almaden Research Center. An extended version of the talk given at VLDB95.

Навигация