Need idea about Cypher query writing

I have a NEO4J database with 10M+ Nodes and 40M+ relationships. There is a system where I am getting data about 2/3M new rows per hour.
What I am doing now is merging the new nodes and calculating the new relationships for incoming rows.
The relationships are the similarity between the users between them. To calculate the similarity I am using graph data science(GDS) modules cosine similarity functions. But it is taking a lot of time.
What should I do to calculate the new relationships at a nearly new real-time frame or a small delay?

Thanks in advance for help.

link to related question