Skip to content

Add MMR re-ranking to hybrid recall #744

@bug-ops

Description

@bug-ops

Parent: #740 (P1)

Problem

Hybrid search top-N results may contain semantically redundant entries, reducing effective recall diversity.

Solution

Add optional Maximal Marginal Relevance (MMR) post-processing in SemanticMemory::recall():

  • score_mmr = λ * relevance - (1-λ) * max_similarity_to_selected
  • Default λ = 0.7
  • Config: memory.semantic.mmr_enabled (bool), memory.semantic.mmr_lambda (f32)

Affected crates

  • zeph-memory

Acceptance criteria

  • MMR re-ranking implemented and configurable
  • Results are more diverse when enabled (test with near-duplicate embeddings)
  • No performance regression when disabled

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions