Skip to content

Reranker: PPRReranker (Personalized PageRank) over graph-retrieval hits #153

Description

@se-jo-ma

Context. MemGraphRAG's core retrieval contribution is Personalized PageRank over a heterogeneous graph with structure-aware seeding (v^(k+1) = (1-λ)Wv^(k) + λv^(0), λ=0.5). The Reranker Protocol + stargraph.rerankers entry point is the clean drop-in seat. This issue adds the PPRReranker; activating the graph-retrieval branch itself is tracked in #116 (promote GraphStore.expand() into RetrievalNode) — this depends on #116, it does not re-file it.

Proposal. New PPRReranker implementing the Reranker Protocol.

  • fuse(): treat per-store hits as the personalization vector v^(0); pull neighbourhoods via GraphStore.expand(seed, hops) (hops≤10 cap at ryugraph.py:230); build a sparse adjacency W from returned GraphPath edges; run ~10 power iterations at λ=0.5; return top-k.
  • Fall back to RRF when no graph candidates resolve (mirrors the paper's RAG fallback).
  • Implement PPR in Python — portable Cypher can't express graph algorithms (cypher.py rejects CALL{} :235-252).

Where.

Acceptance criteria.

  • PPRReranker runs power iteration over an adjacency built from expand() paths; returns top-k.
  • Falls back to RRF with no graph candidates.
  • Docs note it does NOT share RRFReranker's permutation-invariance guarantee (rerankers.py:92-103).

Perf caveat. Building W in Python from repeated expand() is O(seeds × neighbourhood) — opposite of the paper's 0.061s claim (which assumes a pre-built in-memory adjacency). May need a RyuGraph provider-extension to export a CSR adjacency once (cf. bulk_copy). Most faithful once the tri-view schema (linked issue) exists.


Source: arXiv:2606.00610v1 — "MemGraphRAG: Memory-based Multi-Agent System for Graph Retrieval-Augmented Generation". Distilled from arXiv-research/2606.00610v1/analysis.md; file refs verified against current main by the analysis pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority: roadmap gap or DX/toolingarea/storesVector/graph/fact/memory storesenhancementNew feature or requestsize/L<1 week: cross-cutting feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions