Wie lässt sich die Maximum Marginal Relevance (MMR) technisch nutzen, um die Diversität der zitierten Quellen in einer generativen Antwort zu steuern?

Die technische Implementierung von Maximum Marginal Relevance (MMR) erfolgt als Post-Processing-Schritt nach dem initialen Retrieval in einer RAG-Pipeline (Retrieval Augmented Generation). Während ein Standard-Vektorsuche-Algorithmus lediglich die Top-K-Dokumente basierend auf der Cosinus-Ähnlichkeit zum Query-Embedding ausgibt, führt dies oft zu redundanten Ergebnissen, da ähnliche Dokumente nah beieinander im Vektorraum liegen.

Wir setzen MMR ein, um diese Redundanz zu reduzieren. Der Algorithmus wählt iterativ Dokumente aus einem größeren Kandidatenpool aus. Das erste Dokument ist immer das mit der höchsten Ähnlichkeit zur Anfrage. Für jedes weitere Dokument wird ein Score berechnet, der die Relevanz zur Anfrage mit einer Strafe für die Ähnlichkeit zu den bereits ausgewählten Dokumenten kombiniert.

Die mathematische Steuerung erfolgt über den Parameter $\lambda$ (Lambda):

Lambda-Wert ($\lambda$)Effekt auf die AuswahlErgebnischarakteristik
$\lambda = 1.0$Reine RelevanzMaximale Ähnlichkeit, hohe Redundanz möglich.
$0.5 < \lambda < 1.0$AusgewogenHohe Relevanz mit moderater Diversifizierung.
$0.0 < \lambda < 0.5$Fokus auf DiversitätBreite Abdeckung verschiedener Aspekte, Relevanz sinkt.
$\lambda = 0.0$Reine DiversitätMaximale Distanz zwischen den Quellen.

Technisch bedeutet dies, dass wir die Distanzmatrix zwischen allen retrieved Dokumenten berechnen. In der Implementierung von KI-Lösungen & Integration nutzen wir diesen Mechanismus, um den Kontext-Window des LLM effizienter zu füllen. Statt drei Dokumente zu liefern, die fast identische Informationen enthalten, erzwingt MMR die Auswahl von Quellen, die unterschiedliche Informationscluster abdecken.

Der Prozess folgt diesem Ablauf:

  1. Retrieval von $N$ Kandidaten (z. B. Top 20).
  2. Auswahl des relevantesten Dokuments als Startpunkt.
  3. Berechnung des MMR-Scores für alle verbleibenden Kandidaten: $\text{MMR} = \text{arg max}_{D_i \in R \setminus S} [\lambda \cdot \text{sim}1(D_i, Q) - (1-\lambda) \cdot \max{D_j \in S} \text{sim}_2(D_i, D_j)]$.
  4. Hinzufügen des Gewinners zum Set $S$ und Wiederholung bis $K$ Dokumente erreicht sind.

Wir empfehlen für produktive RAG-Systeme einen $\lambda$-Wert zwischen 0.5 und 0.7. Ein zu niedriger Wert führt zu irrelevanten Quellen, während ein zu hoher Wert die generative Antwort durch redundante Informationen im Prompt unnötig aufbläht und die Halluzinationsrate durch widersprüchliche, aber ähnliche Formulierungen erhöhen kann.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt