---
title: "Fact-Augmented Key Expansion"
created: 2026-06-25
updated: 2026-06-25
type: concept
tags: ["memory", "indexing", "optimization", "rag"]
sources:
  - "[[longmem-eval-2025]]"
---

# Fact-Augmented Key Expansion

Fact-Augmented Key Expansion 是 LongMemEval 实验验证的记忆索引优化策略：在存储记忆时，用 LLM 从对话中提取的结构化事实作为索引键（而非仅对话原文）。

## 动机

简单用对话原文作为 key 的问题：
- 原文含大量噪音（闲聊、过渡语）
- 一条对话可能包含多个独立事实，但只有一个 key
- BM25 词法匹配依赖精确 token，原文可能用不同的词表达同一事实

## 做法

```
对话历史
  ↓
LLM 事实提取 → [{"fact": "用户偏好 PostgreSQL", "confidence": 0.92},
                {"fact": "用户住在深圳", "confidence": 0.95}, ...]
  ↓
结构化为 key → 存入索引（与原文 value 关联）
```

## 效果（LongMemEval 实验数据）

| 指标 | 仅原文 Key | +Fact Key | 增益 |
|------|----------|-----------|------|
| Memory Recall@k | baseline | +9.4% | 显著 |
| QA Accuracy | baseline | +5.4% | 显著 |

## 为什么有效

1. **结构化事实消除歧义**："我只用 PostgreSQL" → "数据库偏好: PostgreSQL" 比原文本 BM25 匹配更可靠
2. **多事实拆分**：一条对话可能含 3 个独立事实 → 3 个 key，每个独立可召回
3. **confidence 字段**支持未来过滤：低置信度事实可降低召回权重

## 与 Atlas Consolidation 的关系

Atlas 的 consolidation 本质上是 Fact-Augmented Key Expansion 的一种实现：
- episodic → 原文 value
- consolidation → 从 episodic 提取结构化事实 → 存入 semantic 索引
- semantic 索引的 recall 就等价于 fact-augmented key expansion 的效果

## 参考
- [[longmem-eval-2025]]
- [[memory-indexing-retrieval-reading]]
- [[atlas-memory-system]]
- [[memory-consolidation]]
