Как хранить векторные индексированные данные в свойствах узла в Neo4j? - PullRequest
0 голосов
/ 27 июня 2019

У меня большая база данных со многими узлами (:Node).Эти узлы создаются в данном (:Year), и эта информация сохраняется через (n:Node)-[:CREATED_IN]->(y:Year).

Для любого года y Я рассчитываю для всех лет y..2020 несколько скалярных баллов (аналогично PageRank).Я также вычисляю вложения графов, которые являются векторами.

Я хочу сохранить эти скаляры и эти векторы для будущих вычислений.

Я испробовал два подхода, ни один из которых не является удовлетворительным:

(1) Создать другойсвойство для каждого счета за каждый год для каждого узла (например, 2018_PageRank и 2018_Word2Vec).Это не идеально, потому что я получаю сотни и сотни свойств, и это сложнее для запроса.

(2) Создайте вектор для каждого скаляра размера 2020, а затем подсчитайте скалярную оценку в соответствующую позицию этого вектора.Например, оценка PageRank s для 2018 года будет в n.PageRank[2018-1].Но это тратит пространство и не может быть использовано для векторизованных вложений.

Любая помощь / предложения будут оценены.

1 Ответ

1 голос
/ 27 июня 2019

Если я правильно понимаю модель, я сохраню все вложения и оценки PageRank в качестве атрибутов нового отношения: EMBEDDINGS

Итак, ваша окончательная модель будет:

(:Node)-[:EMBEDDINGS{pagerank:1,embeddings...}]->(:Year{value:'2018'})

Редактировать из-за комментария

...