Как эффективно индексировать векторы 2000 значений в PostgreSQL и находить ближайших соседей? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть векторы функций более 2000 значений. Например, скажем, у меня есть 10 000 векторов по 2000 десятичных значений каждый. Мне нужно проиндексировать их и найти ближайших соседей для вектора запроса. Могу ли я проиндексировать их, используя R деревьев в PostgreSql? Если так, как мы можем это сделать? Или есть какой-то другой способ или любая другая БД для эффективного выполнения этого?

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Проверьте это, если elasti c поиск является опцией. Вы можете выполнять распределенный поиск в векторном пространстве: https://blog.mimacom.com/elastic-cosine-similarity-word-embeddings/

0 голосов
/ 24 февраля 2020

R-дерево в 2000 измерениях, вероятно, будет намного хуже, чем последовательное сканирование. Лучше всего было бы сохранить данные таблицы в индексе в формате, предварительно организованном для скорости вычислений, а затем посвятить себя сканированию всего индекса. Это то, что индексы Блума делают (В принципе, при полном сканировании индекса. Организация и вычисление данных, конечно, разные.)

...