[논문 리뷰] REMem: 언어 에이전트를 위한 일화 기억 기반 추론
TL;DR
현대 언어 에이전트는 주로 '파리는 프랑스의 수도'와 같은 일반 지식, 즉 **의미 기억(semantic memory)**에 의존합니다. 이 때문에 '지난 월요일에 누구와 점심을 먹었나?'와 같은 구체적인 경험, 즉 **일화 기억(episodic memory)**을 회상하고 추론하는 데 한계가 있습니다. REMem은 이러한 한계를 극복하기 위해 일화 기억을 활용하는 2단계 프레임워크를 제안합니다.
- 오프라인 인덱싱: 대화나 경험 기록을 '요지(gist)'와 '사실(fact)'로 구성된 하이브리드 메모리 그래프로 구조화합니다.
- 온라인 추론: ReAct 스타일 에이전트가 이 메모리 그래프를 탐색하며 복잡한 질문에 대한 답을 찾아냅니다.
실험 결과, REMem은 4개의 벤치마크에서 기존 시스템을 능가했으며, 특히 여러 사건에 걸친 복잡한 추론과 정보가 없을 때 '모른다'고 답하는 견고한 거절 능력에서 뛰어난 성능을 보였습니다.
연구 배경 및 동기
인간의 기억은 두 가지 핵심 요소로 나뉩니다.
- 의미 기억 (Semantic Memory): 세상에 대한 일반적인 사실 (예: "하늘은 파랗다", "물은 100도에서 끓는다")
- 일화 기억 (Episodic Memory): 개인적인 경험과 그 경험을 둘러싼 시공간적 맥락 (예: "작년 여름 파리 여행에서 해질녘에 에펠탑을 봤다")
현재 대부분의 언어 에이전트는 RAG(Retrieval-Augmented Generation) 등을 통해 방대한 의미 기억을 활용하는 데는 능숙하지만, 사용자와의 상호작용 같은 구체적인 경험을 기억하고 활용하는 일화 기억 능력은 부족합니다. 이로 인해 "지난주 회의에서 A가 제안한 아이디어는 뭐였지?" 또는 "B와 마지막으로 이야기한 주제가 뭐였어?"와 같은 맥락적 질문에 제대로 답하지 못합니다.
REMem은 이러한 한계를 극복하기 위해 언어 에이전트에 인간의 일화 기억 메커니즘을 도입하고자 합니다. 경험을 시간과 공간의 맥락 속에서 구조화함으로써, 사건 간의 인과 관계, 순서, 기간 등을 추론하고, 더욱 지능적인 상호작용을 가능하게 하는 것을 목표로 합니다.
관련 연구
기존 언어 에이전트의 메모리 연구는 주로 의미 기억 강화에 초점을 맞췄습니다.
| 연구 | 주요 특징 | REMem과의 차이점 |
|---|---|---|
| RAG | 대규모 외부 데이터베이스에서 관련 문서를 검색하여 LLM의 답변 생성에 활용 | 검색된 정보가 파편적이며, 여러 문서에 걸친 복잡한 추론이 어려움 |
| Mem0 | 대화 기록을 구조화된 메모리로 저장하고 계층적으로 관리 | 의미 기억에 치중되어 있으며, 사건의 시간적, 인과적 관계 모델링이 부족 |
| HippoRAG 2 | 의미 기억 기반의 추론을 수행하지만, 단일 정보 검색에 의존 | 여러 사건을 연결하는 복잡한 추론 능력에 한계 |
| Full-Context | 모든 과거 대화 기록을 LLM의 컨텍스트 창에 직접 입력 | 컨텍스트 길이 제한과 막대한 계산 비용으로 인해 확장성이 떨어짐 |
REMem은 경험을 하이브리드 메모리 그래프로 변환하여 사건의 시공간적 맥락을 명시적으로 모델링한다는 점에서 기존 연구들과 차별화됩니다. 이는 단순 정보 검색을 넘어, 여러 사건을 종합하는 복잡한 논리적 추론을 가능하게 합니다.
핵심 기여
- 언어 에이전트를 위한 일화 기억 프레임워크: 인간의 일화 기억을 모델링하여, 사건의 시공간적 맥락을 포함한 기억을 처리하는 새로운 프레임워크를 제안했습니다.
- 하이브리드 메모리 그래프: 경험을 요지(gist)와 사실(fact)로 나누어 그래프 형태로 구조화함으로써, 시간 정보와 사건의 맥락을 효과적으로 표현하고 추론의 기반을 마련했습니다.
- 반복적 추론 에이전트: 메모리 그래프를 탐색하며 점진적으로 정보를 수집하고 추론하는 ReAct 스타일 에이전트를 개발하여, 복잡한 다단계(multi-hop) 질문 해결 능력을 확보했습니다.
- SOTA 성능 달성: 4개의 벤치마크에서 기존 시스템을 큰 차이로 능가하며, 특히 복잡한 추론과 답변 거절 능력에서 그 효과를 입증했습니다.
제안 방법론
REMem은 **인덱싱(Indexing)**과 **에이전트 기반 추론(Agent-based Reasoning)**의 두 단계로 구성됩니다.
1. 인덱싱 단계: 경험을 그래프로 변환
오프라인으로 진행되는 이 단계에서는 사용자와의 상호작용 기록(예: 대화 로그)을 하이브리드 메모리 그래프 로 변환합니다.
예시
입력 텍스트: "On Monday at 3 PM, I met with Alex at the cafe to discuss the project budget."
-
요지(Gist) 추출: 각 사건을 타임스탬프가 포함된 간결한 요약문으로 변환합니다. 이는 사건의 핵심 맥락을 담은 **요지 노드()**가 됩니다.
- 추출된 요지:
[Monday 3 PM] Met with Alex at the cafe about the project budget.
- 추출된 요지:
-
사실(Fact) 추출: 텍스트에서
(주어, 술어, 목적어)형태의 구조화된 사실을 추출하고, 각 사실에 시간 정보를 연결합니다. 사실을 구성하는 각 요소는 **구문 노드()**가 됩니다.- 추출된 사실:
(I, met with, Alex),(I, discussed, project budget)
- 추출된 사실:
-
그래프 구성:
- 노드(): 요지 노드(
[Monday 3 PM]...)와 구문 노드(I,met with,Alex,discussed,project budget)로 구성됩니다. - 엣지(): 노드들을 다음과 같은 관계로 연결합니다.
- 관계 엣지(): 사실 트리플을 구성하는 구문 노드들을 연결합니다. (예:
I→met with→Alex) - 문맥 엣지(): 요지 노드와 해당 요지에 포함된 구문 노드들을 연결합니다. (예:
[Monday 3 PM]...↔Alex) - 동의어 엣지(): 의미적으로 유사한 요지 노드들을 연결하여 개념적 연관성을 강화합니다. (예: '프로젝트 예산 논의' ↔ '비용 계획 회의')
- 관계 엣지(): 사실 트리플을 구성하는 구문 노드들을 연결합니다. (예:
- 노드(): 요지 노드(
이렇게 구성된 그래프는 사건의 핵심 내용과 세부 사실, 그리고 시간적 맥락을 유기적으로 연결합니다.
2. 에이전트 기반 추론 단계: 그래프 탐색을 통한 답변 생성
온라인으로 진행되는 이 단계에서는 에이전트가 사용자의 질문에 답하기 위해 메모리 그래프를 탐색합니다. 이 과정은 사고(Thought) → 행동(Action) → 관찰(Observation) 사이클을 반복하는 ReAct 프레임워크를 따릅니다.
에이전트는 다음과 같은 도구를 사용합니다.
- 검색 도구:
semantic_retrieve(query): 질문과 의미적으로 유사한 요지 노드를 찾습니다.lexical_retrieve(query): 질문에 포함된 키워드와 일치하는 구문 노드를 찾습니다.
- 그래프 탐색 도구:
find_gist_contexts(gist_id, time_range): 특정 요지 노드와 연결된 세부 정보(사실, 관련 인물 등)를 탐색합니다. 시간 범위를 지정하여 필터링할 수 있습니다.find_entity_contexts(entity_name, time_range): 특정 개체(예: 'Alex')와 관련된 모든 요지와 사실을 탐색합니다.
- 흐름 제어 도구:
output_answer(answer): 충분한 정보가 수집되었다고 판단되면 최종 답변을 생성하고 추론을 종료합니다.
예시 추론 과정
질문: "Who did I discuss the budget with, and when?"
- Thought: 질문은 '예산 논의'에 관한 것이다. 먼저 의미 기반 검색으로 관련 사건을 찾아야겠다.
- Action:
semantic_retrieve("discussion about budget")
- Action:
- Observation: 검색 결과로 요지 노드
G1: [Monday 3 PM] Met with Alex at the cafe about the project budget.가 반환되었다. - Thought: 요지
G1에 내가 찾던 정보가 모두 포함되어 있다. 'Alex'와 'Monday 3 PM'이라는 정보를 조합하면 답변을 만들 수 있다.- Action:
output_answer("You discussed the budget with Alex on Monday at 3 PM.")
- Action:
이처럼 에이전트는 그래프를 탐색하며 단서를 모으고, 필요에 따라 여러 노드를 오가며 복잡한 질문에 대한 답을 구성합니다.
실험 설정
REMem의 성능은 장기 기억, 대화 이해, 시간적 추론 등 다양한 능력을 요구하는 4개의 벤치마크에서 평가되었습니다.
- 데이터셋:
- LoCoMo: 긴 대화에서 특정 정보를 기억하고 회상하는 능력 평가
- REALTALK: 실제 대화 로그 기반의 질문-답변 능력 평가
- Complex-TR: 여러 사건의 시간적 순서나 관계를 추론하는 능력 평가
- Test of Time: 정보의 유효 기간을 고려하여 최신 정보를 바탕으로 답변하는 능력 평가
- 평가 지표: 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-Score
- 비교 모델: Mem0, HippoRAG 2, NV-Embed-v2, Full-Context 등
하이퍼파라미터
| 파라미터 | 값 | 설명 |
|---|---|---|
| 최대 반복 횟수 () | 10 | 에이전트의 최대 추론 스텝 수 |
| 임베딩 유사도 임계값 | 0.8 | 동의어 엣지() 연결을 위한 기준 |
| 검색 인덱스 유형 | 하이브리드 | 의미 검색(vector)과 어휘 검색(keyword) 동시 사용 |
실험 결과 분석
REMem은 모든 벤치마크에서 기존 최신(SOTA) 시스템을 능가하는 성능을 보였습니다.
주요 결과 (정확도 기준)
| 벤치마크 | 기존 SOTA 성능 | REMem 성능 | 성능 향상률 |
|---|---|---|---|
| LoCoMo | 85.6% | 89.0% | +3.4%p |
| REALTALK | 78.2% | 82.4% | +4.2%p |
| Complex-TR | 72.0% | 85.4% | +13.4%p |
| Test of Time | 88.0% | 90.5% | +2.5%p |
특히 여러 사건의 시간적 관계를 추론해야 하는 Complex-TR 벤치마크에서 13.4%p라는 압도적인 성능 향상을 보였습니다. 이는 시간 정보를 명시적으로 모델링하고 그래프를 통해 사건 간의 관계를 탐색하는 REMem의 접근 방식이 매우 효과적임을 시사합니다.
Ablation Study (구성 요소 제거 실험)
REMem의 핵심 구성 요소인 '요지(Gist)'와 '사실(Fact)'의 중요성을 확인하기 위해 각각을 제거하고 성능을 측정했습니다.
- 요지(Gist) 제거 시: 성능이 10% 이상 크게 감소했습니다. 이는 사건의 핵심 맥락을 요약하는 '요지'가 추론의 시작점이자 전체적인 맥락을 이해하는 데 필수적임을 보여줍니다.
- 사실(Fact) 제거 시: 성능이 소폭 감소했습니다. 이는 세부 정보를 제공하는 '사실'이 답변의 정확성을 높이는 데 기여함을 의미합니다.
결론적으로, 요지를 통해 전체적인 맥락을 파악하고 사실을 통해 세부 정보를 확인하는 상호 보완적인 구조가 REMem의 높은 성능을 이끌어냈습니다.
비판적 평가
강점
- 탁월한 추론 능력: 그래프 구조와 반복적 추론을 통해 여러 사건에 걸친 복잡한 관계(시간, 인과 등)를 효과적으로 추론합니다.
- 정보의 출처 명확성: 답변의 근거가 되는 메모리 그래프 내의 노드와 엣지를 추적할 수 있어, 에이전트의 추론 과정을 해석하고 디버깅하기 용이합니다.
- 견고한 답변 거절: 그래프 내에 관련 정보가 없으면 '모른다'고 답변하는 능력이 뛰어나, 환각(Hallucination) 현상을 억제합니다.
한계점과 개선 방향
- 인덱싱 품질 의존성: 요지와 사실을 추출하는 초기 LLM의 성능에 전체 시스템의 성능이 크게 좌우됩니다. 부정확한 정보가 그래프에 포함되면 추론 과정 전체에 오류를 유발할 수 있습니다.
- 처리 시간 및 비용: 반복적인 추론 과정은 여러 번의 LLM 호출을 필요로 하므로, 실시간 응답성이 중요한 애플리케이션에서는 지연 시간이 문제가 될 수 있습니다. 그래프 탐색 알고리즘 최적화나 추론 과정 경량화 연구가 필요합니다.
- 확장성 문제: 수많은 경험이 누적될수록 메모리 그래프의 크기가 방대해져 검색 및 탐색 효율이 저하될 수 있습니다. 그래프 요약(summarization)이나 계층적 관리 기법 도입을 고려해야 합니다.
실무 적용 가이드
REMem을 실무에 적용할 때는 다음 사항을 고려해야 합니다.
- 데이터 전처리: 대화 로그나 문서 등 비정형 데이터를 정제하여 시간 정보와 같은 메타데이터를 명확히 하는 과정이 중요합니다.
- 추출 모델 선정: 요지와 사실을 정확하게 추출할 수 있는 고성능 LLM(e.g., GPT-4, Claude 3)을 사용하는 것이 결과의 품질을 좌우합니다.
- 도메인 특화 튜닝: 특정 도메인(예: 법률, 의료)에 적용할 경우, 해당 도메인의 용어와 관계를 잘 이해하도록 사실 추출 프롬프트를 정교하게 설계해야 합니다.
- 효율성 최적화: 실시간 상호작용이 필요하다면, 추론 스텝 수를 제한하거나, 자주 사용되는 추론 경로를 캐싱하는 등의 최적화 전략이 필요합니다.
결론
REMem은 기존 언어 에이전트의 한계였던 '경험 기반 기억' 문제를 해결하기 위해 일화 기억이라는 개념을 성공적으로 도입한 중요한 연구입니다. 경험을 하이브리드 메모리 그래프로 구조화하고, 에이전트가 이를 탐색하며 추론하는 방식은 복잡한 질문에 대한 답변 능력을 획기적으로 향상시켰습니다. 처리 비용과 인덱싱 품질이라는 과제가 남아있지만, REMem은 더욱 인간과 유사한 기억과 추론 능력을 갖춘 차세대 언어 에이전트 개발의 중요한 이정표를 제시했습니다.

![[논문 리뷰] REMem: Reasoning with Episodic Memory in Language Agent](/assets/images/blog/20260228-paper-2602-13530-remem-reasoning-with-episodic-.jpg)