← Back to Blog
AI · AX Article · 2026.09.14

RAG가 놓친 연결을 찾는 법: HippoRAG 2와 개인화 PageRank

HippoRAG 2가 문구와 원문 구간을 그래프로 연결하고 개인화 PageRank로 검색 순위를 바꾸는 원리를 살펴본다. 관계를 따라 찾은 자료와 검증된 근거를 구분해 업무 RAG에 적용하는 방법을 제안한다.

ai-axgraph-engineeringHippoRAGPageRankRAGknowledge-management

떨어진 빈 판들이 작은 구슬과 가느다란 연결선으로 이어지고 질문에서 출발한 빛이 먼 판을 밝히는 추상 개념 이미지

AI로 생성한 개념 이미지이며, 실제 제품 화면이나 검색 실행 기록이 아니다.

가상의 행사 운영팀이 “장비 공급사가 바뀌면 어떤 교육 자료를 다시 확인해야 하는가”라고 묻는다. 공급사 변경 공지에는 새 장비의 이름만 있고, 설치 기록에는 장비와 제어 방식의 관계가 적혀 있다. 강사 교재는 제어 방식의 이름을 쓰지만 공급사를 언급하지 않는다. 필요한 내용은 모두 보관돼 있어도, 질문과 문장이 비슷한 자료부터 찾으면 마지막 교재가 검색 결과에서 빠질 수 있다.

이때는 가까운 문단을 더 많이 읽는 것만으로 충분하지 않을 수 있다. 공급사에서 장비로, 장비에서 제어 방식으로 이어지는 관계가 먼 문서의 관련성을 드러낸다. 그렇다고 모든 RAG에 그래프가 필요한 것은 아니다. 한 문서에 답이 있는 질문과 여러 문서를 연결해야 하는 질문을 구별해야, 추가 구조를 만드는 비용을 판단할 수 있다.

2025년 논문 《From RAG to Memory: Non-Parametric Continual Learning for Large Language Models》는 이런 연상 검색을 HippoRAG 2로 다룬다. 여기서는 2025-06-19에 갱신된 논문의 설계를 기준으로 설명한다. 핵심은 문서들을 모두 요약해 새 지식을 만드는 데 있지 않다. 문구와 원문 구간을 같은 그래프에 놓고, 질문에 따라 그래프의 어느 부분에서 검색을 시작할지 바꾸는 방식이다.

개인화 PageRank는 질문마다 다른 출발점을 만든다

PageRank는 연결 구조를 이용해 노드의 순위를 계산하는 오래된 방법이다. 웹페이지 순위에서 출발했지만, 여기서는 현재 검색에 적용되는 원리만 살펴본다. 연결을 따라 이동하는 흐름이 어느 노드에 얼마나 모이는지 계산하되, 일정 확률로 이동을 멈추고 정해진 분포에서 다시 출발한다고 생각하면 이해하기 쉽다.

개인화 PageRank, 즉 PPR은 이 재출발 분포를 특정 노드들 쪽으로 조정한다. “개인화”가 반드시 사용자의 행동 이력이나 개인정보를 뜻하지는 않는다. 질문과 관련된 노드에 더 큰 재출발 확률을 주면 같은 그래프에서도 질문마다 다른 순위가 나온다. NetworkX의 공식 pagerank 문서는 이 분포를 personalization으로, 연결을 따라가는 정도를 alpha로 구분한다. 구현에서는 간선 가중치와 나가는 연결이 없는 노드의 처리도 결과에 영향을 준다.

일반적인 벡터 검색이 질문과 각 구간의 의미적 유사도를 계산한다면, PPR을 붙인 검색은 질문에서 시작된 관련성이 연결을 따라 퍼지는 과정까지 반영한다. 질문에 직접 등장하지 않은 장비나 교재도 중간 관계를 거쳐 높은 순위에 오를 수 있다. 다만 그래프에 그 관계가 빠져 있거나 엉뚱한 노드에서 출발하면 기대한 자료에 도달하지 못한다.

이 순위는 증명 경로와 다르다. PPR 점수는 여러 연결을 따라 분산된 흐름이 모인 결과이므로, 점수가 높다는 사실만으로 “이 관계 때문에 이 결론이 참이다”라고 말할 수 없다. 연결이 많은 노드가 중요하게 보일 수도 있고, 잘못 붙은 관계가 관련 없는 자료의 순위를 끌어올릴 수도 있다. 그래프 검색의 결과는 먼저 읽어 볼 원문 후보이지, 사실 판정의 결과가 아니다.

HippoRAG 2는 짧은 문구와 원문 맥락을 함께 검색한다

초기 HippoRAG는 원문에서 추출한 관계와 질문 속 개체를 연결해 PPR의 출발점을 정했다. HippoRAG 2 논문은 이런 개체 중심 접근이 맥락을 잃을 수 있다고 지적한다. 같은 장비 이름이 등장하더라도 구매 기록과 장애 대응 교재는 서로 다른 질문에 답한다. 이름만 잘 맞는다고 필요한 설명까지 찾아지는 것은 아니다.

HippoRAG 2의 인덱싱은 LLM으로 원문 구간에서 주어·관계·목적어 형태의 트리플을 추출하는 것으로 시작한다. 논문은 미리 정한 개체·관계 스키마에 묶지 않는 OpenIE 방식을 사용한다. 주어와 목적어가 문구 노드가 되고, 관계가 간선을 이룬다. 임베딩 유사도가 정해진 기준을 넘는 문구 쌍에는 동의어 연결도 추가한다. 이는 유사도를 활용한 연결 규칙이지, 두 표기가 언제나 같은 실체라는 보증은 아니다.[1]

여기에 원문 구간 자체를 나타내는 노드가 들어간다. 각 구간은 그 구간에서 추출한 문구와 contains 관계로 연결된다. 짧은 문구가 문서 사이의 접점을 만들고, 원문 구간이 그 문구의 맥락을 남기는 구조다. 원문을 그래프 밖에 보관한 뒤 마지막에 점수만 합치는 방식과 달리, 구간 노드도 그래프 검색에 참여한다.

검색할 때는 질문 전체를 트리플과 대조한다. 논문의 기본 방식은 질문에서 이름만 뽑아 노드에 연결하는 것이 아니라, 질문을 관계가 포함된 트리플에 연결하는 query-to-triple이다. 이어 LLM이 검색된 트리플 가운데 질문과 관련된 것을 골라낸다. 연구진은 이 필터를 recognition memory라고 부른다. 새로운 관계를 무제한으로 생성하는 단계가 아니라, 이미 찾은 후보를 거르는 단계로 이해해야 한다.[1]

남은 트리플의 문구 노드는 PPR의 출발점 후보가 된다. 동시에 모든 구간 노드도 출발점에 포함되며, 질문과 구간의 임베딩 유사도에 비례한 점수를 받는다. 구간 쪽 점수에는 별도 가중치를 적용해 문구와 구간의 영향을 조절한다. 이후 PPR 점수로 원문 구간의 순위를 정하고, 상위 구간을 최종 답변 모델에 제공한다. 필터 뒤에 사용할 트리플이 없으면 임베딩 기반 구간 검색으로 돌아간다. 따라서 이 설계는 벡터 검색을 버리는 방식이 아니라, 벡터가 찾은 출발점과 그래프의 연결 구조를 함께 쓰는 방식이다.

논문의 신경과학적 용어는 설계에 영감을 준 설명이다. 구간 노드를 추가하고 LLM 필터를 쓴다는 사실이 인간의 기억을 그대로 재현했음을 뜻하지는 않는다. 또한 여기서 비모수적 지속 학습은 새 자료를 외부 검색 구조에 반영하는 접근이다. 이 검색 절차가 답변 모델의 가중치를 다시 학습시키는 것은 아니다.

AKM에 적용한다면 연결이 필요한 질문부터 모은다

이 원리를 AKM 같은 지식 관리에 적용할 때 출발점은 그래프 데이터베이스 선정이 아니다. 기존 검색이 놓치는 업무 질문을 찾는 일이다. 다음은 논문의 실험 절차나 특정 조직의 운영 실적이 아니라 DEXA의 적용 제안이다. 공개되지 않은 구현을 설명하는 것도 아니다.

도입 예시의 행사 운영팀이라면 공급사·장비·제어 방식·교재가 서로 다른 문서에 흩어진 질문을 모을 수 있다. 한 구간만으로 답할 수 있는 질문도 함께 남긴다. 그래프를 붙인 뒤 연결 질문의 회수율은 좋아졌지만 간단한 사실 질문의 성능은 낮아질 수 있기 때문이다. 처음부터 복잡한 질문만 시험하면 그 손실을 보지 못한다.

비교할 때는 원문 묶음과 문서 버전, 답변 모델, 전달할 원문 분량을 가능한 한 맞춘다. 기존 키워드·벡터 검색과 그래프 검색이 각각 어떤 근거 구간을 가져왔는지 확인하고, 같은 근거를 받은 답변 모델이 무엇을 틀렸는지도 나눠 본다. 필요한 자료를 찾지 못한 오류와 자료는 있었지만 잘못 읽은 오류는 수리할 위치가 다르다.

검색 기록에는 질문에서 선택된 트리플, 필터가 남긴 후보, 그래프 버전과 상위 원문 구간을 연결해 남길 수 있다. 이것은 검색 순위의 형성 과정을 검토하기 위한 기록이지, 모델의 내부 추론을 완전히 설명하는 기록은 아니다. 특히 PPR의 높은 점수를 근거의 신뢰도 점수로 복사하지 않아야 한다. 중요한 검색 후보인지와 그 자료가 주장을 지지하는지는 별도로 판단한다.

앞선 행사 예시에서 제어 방식이 같다는 이유만으로 교재를 자동 수정해서는 안 된다. 그래프는 다시 확인할 교재 후보를 찾는 데 쓸 수 있다. 실제 수정은 원문을 읽고 장비의 적용 범위와 버전 차이를 확인한 뒤 결정해야 한다. 관계가 이어졌다는 것과 변경 영향이 확정됐다는 것은 다른 결과다.

접근 권한도 답변 직전에만 검사할 문제가 아니다. 비공개 문서에서 추출한 노드와 연결이 공개 자료의 검색 순위나 설명에 영향을 줄 수 있다. 지식 운영에서는 접근 가능한 원문뿐 아니라 그 원문에서 파생된 그래프의 사용 범위도 정해야 한다. 원문이 수정되거나 폐기되면 해당 구간 노드와 추출 관계를 어느 버전에서 다시 만들었는지 추적할 수 있어야 한다. 이 권한·수명 정책은 PPR이 대신 제공하지 않는다.

더 잘 연결된 그래프가 언제나 더 나은 RAG는 아니다

HippoRAG 2 논문은 단순 사실 질문, 여러 구간을 연결하는 질문, 긴 이야기의 이해를 구분해 평가했다. NaturalQuestions와 PopQA, MuSiQue와 HotpotQA 같은 데이터셋이 사용됐다. 검색에는 원문 구간의 회수율을, 답변에는 토큰 기반 F1을 적용했다. 연구진은 자신들이 비교한 조건에서 개선을 보고했지만, 이 결과를 한국어 조직 문서나 모든 검색 과제의 우위로 옮길 수는 없다. 논문의 데이터셋과 모델 조합에서 얻은 결과이며, 이 글에서 별도의 성능 실험을 수행한 것은 아니다.[1]

유지비도 달라진다. 원문을 나누고 트리플을 추출하며 문구 사이의 연결을 만들어야 한다. 질문을 받을 때도 트리플 필터를 위한 LLM 호출과 그래프 계산이 추가된다. 자료가 자주 바뀌는 조직은 처음 색인할 때의 비용뿐 아니라 수정 후 갱신 시간도 계산해야 한다. 문서 하나의 정확한 구절을 찾는 일이 대부분이라면 이 부담을 감수할 이유가 약하다.

오류는 연결을 따라 퍼질 수 있다. 서로 다른 장비의 이름을 동의어로 연결하면 엉뚱한 교재가 가까워진다. 관계 추출에서 부정이나 조건이 빠지면 잘못된 연결이 생긴다. LLM 필터가 필요한 트리플을 버리면 좋은 출발점이 사라지고, 반대로 관계없는 트리플을 남기면 검색 범위가 흐려진다. 이 문제를 “그래프가 더 똑똑해지면 해결된다”라고 묶으면 어느 단계의 오류인지 알기 어렵다.

처음 도입할 때는 연결 질문에서 추가로 찾은 유효 근거가 무엇인지, 단순 질문에서 놓친 근거가 없는지, 그 차이에 드는 비용이 얼마인지를 함께 기록하면 된다. 그래프가 도움이 되는 질문에만 별도 검색 경로를 두는 선택도 가능하다. 모든 업무를 한 검색기로 통일할 필요는 없다.

검색 순위는 무엇을 먼저 읽을지 정한다. HippoRAG 2는 그 순위를 개별 문장의 유사도에서 문서 사이의 연결로 넓혀 보는 구체적인 설계다. 업무에 가져올 때 지켜야 할 구분도 분명하다. 연결은 원문을 발견하는 수단으로 쓰고, 결론은 발견한 원문을 확인한 뒤에 내린다.

참고 자료