Гиперболические эмбеддинги в Qdrant: как сжать каталог в 5 измерений и почему на этом ломается HNSW
Привычные векторные модели загоняют данные в плоское пространство.
Для каталогов товаров это тупик, - ветви дерева множатся экспоненциально, а объем плоского диска растет лишь полиномиально, сбивая листья в кучу.
📐 Дерево в пяти измерениях:
В пространстве отрицательной кривизны площадь растет по экспоненте, давая место ветвям.
В тесте Google Product Taxonomy (5 595 категорий):
• 5D-вектор Пуанкаре показал точность 0.905 MAP.
• 50D евклидов вектор взял лишь 0.658 MAP, потратив в 10 раз больше памяти.
Радиус кодирует глубину: в центре общее («обувь»), у края поиск сужается до конкретики («черные челси»).
💥 Провал HNSW и решение с Qdrant:
Попытка скормить эти координаты в HNSW не увенчались успехом.
Из-за 600-кратного разброса норм топология графа развалилась, - Recall@10 рухнул с 0.986 до 0.020.
Инженеры Qdrant обошли проблему связкой:
• 5D-векторы хранятся как евклидовы координаты с индексом квадрата нормы в payload.
• HNSW быстро отбирает кандидатов через prefetch.
• Серверный расчет в базе досчитывает геодезическое расстояние через обратный косинус.
При prefetch в 1 000 точек Recall@10 подскакивает до 0.920 в одном запросе.
⚖️ Ограничения метода:
У подхода два компромисса:
• Чем точнее модель, тем ближе точки к краю диска, где евклидово приближение слабее: приходится раздувать prefetch, нагружая CPU.
• Вне обучающей выборки точность падает до 0.539 MAP. Метод рассчитан на жесткие деревья, а не на произвольный текст.
💼 А нам зачем?:
Для каталогов на миллионы позиций это сжатие индекса в 10–20 раз.
Вместо сотен гигабайт памяти под тяжелые векторы хватит 5D-координат.
Сходство по углам и глубина по радиусу дают фасетный поиск прямо в базе без внешних деревьев.
#Qdrant #векторныебазы #эмбеддинги
———
@tsingular | Max | YouTube | RuTube | VK | VK Video | Дзен
Post #8561
2.06K

- ✍ 11
- 🔥 4
- ❤ 3
- ⚡ 1