Вычисление и хранение косинусного сходства (точечного произведения) векторов в postgresql - PullRequest
0 голосов
/ 09 января 2020

У меня есть таблица, которая выглядит следующим образом -

  • ID ,
  • Другой идентификатор таблицы ( внешний ключ (соединение один к одному)),
  • Вектор ( JSONB массив, содержащий 5000 числовых элементов)

Есть ли способ вычисления точечного произведения между векторами ко всей матрице? (В этом случае матрица представляет собой всю таблицу, когда каждая строка представляет собой вектор из этой таблицы), а затем сохраняет ее в другой таблице?

Таким образом, все сходство косинусов будет предварительно вычислено и сохранено для более эффективного использования.

Я думал о том, что, возможно, перебираю таблицу партиями и использую numpy для ее хранения в виде матрицы и вычисления точечного произведения каждый раз, но я не уверен, что это решение правильный, потому что он не так эффективен.

Если вы думаете, что есть лучшее решение, я буду рад это услышать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...