Propagating embeddings in Neo4j GDS

Hi everyone,

I'm new to the Neo4j GDS community and seeking guidance for a graph data challenge.

I have a graph with nodes representing persons, projects, and descriptions. Persons are connected to the projects they worked on, while descriptions are connected to both a person and a project they describe. Each description has a 200-dimensional text embedding value.

My objective is to find the closest descriptions to a given new embedding. The current approach works well, but I also want to include close descriptions for person-project pairs that don't have existing descriptions yet.

Initially, I tried using GraphSAGE and fastRP to propagate embeddings across the graph. However, the new embeddings for existing descriptions appeared significantly different from the original text embeddings, almost as if they belong to separate vector spaces. Additionally, fastRP expects every node to have the embedding property, which doesn't align with my data structure.

I'm open to suggestions on how to efficiently propagate embeddings across the graph to achieve my goal. I want to consider relationships between persons, projects, and descriptions to find close embeddings, even for descriptions that haven't been written yet.

Looking forward to your valuable insights and suggestions.

Thank you!