GraphRAG 검색에서 어려운 부분은 그래프를 얼마나 깊이 탐색하느냐가 아니다. 각 홉에서 어떤 경로를 일찍 버리느냐가 실제 문제다.
이 글은 Cypher, 제약, 쿼리 계획으로 검색 안정화하기와 벡터·전문·그래프 탐색을 결합한 하이브리드 검색이 다루지 않는 부분인 경로 수 제한과 경로 점수화를 정리한다. 토스증권 ML 엔지니어가 쓴 토스증권 추천과 검색은 어떻게 진화하고 있을까?(황호익, 토스 기술 블로그, 2026-08-26)의 그래프 RAG 부분이 사례다. 발표 영상은 테크톡톡 2026 | ML Engineer - 토스증권 추천과 검색은 어떻게 진화하고 있을까?다. 수치와 파라미터 이름은 글 판본에서 확인한 값이다.
원문의 그래프 검색기는 두 단계로 나뉜다.
모든 관계를 따라갈 수는 없으므로 어떤 규칙으로 탐색할지가 검색 알고리즘의 핵심이 된다. 이 글의 범위는 사용자 질문과 관련된 서브그래프를 찾아 반환하는 검색 모듈이다. 엔티티 추출과 연결은 다루지 않는다.
원문의 지식 그래프에서는 의미 있는 서브그래프를 만들려면 3홉 이상 탐색해야 했다. 아무 제한 없이 하나의 노드에서 출발하면 후보 경로 수는 다음과 같았다.
| 홉 | 후보 경로 수 |
|---|---|
| 1홉 | 1,105건 |
| 2홉 | 134,520건 |
| 3홉 | 49,241,786건 |
이 후보를 모두 메모리에 올려 점수화하고 정렬하는 작업은 그래프 DB의 트랜잭션 메모리로 감당하기 어려웠다고 한다. 이 수치는 해당 그래프의 실측 사례이므로 다른 그래프에 그대로 대입하지 않는다. 홉이 늘 때 분기 수가 곱해지기 때문에 자릿수가 바뀌는 구조는 일반적이다.
원문은 Beam search에서 착안한 단계별 후보 제한을 적용했다.
이렇게 중간 후보 수를 통제하면 3홉 탐색을 안정적으로 수행할 수 있다. 대가도 있다. 일찍 버린 경로는 다시 살아나지 않는다. 제한을 도입하고 나면 다음 과제는 항상 "어떤 경로에 높은 점수를 줄 것인가"로 넘어간다.
점수는 질문과의 관련도가 중심이다. 원문은 금융 도메인에서 중요한 신호를 보조로 얹었다.
시가총액과 최신성은 검색 결과를 결정하는 값이 아니다. 질문과의 관련성이 비슷한 후보들 사이에서 순서를 정하는 보조 신호다. 이 경계가 흐려지면 질문과 무관한 대형 종목이 상단을 차지한다.
시작 노드가 틀리면 이후 탐색 전체가 흔들린다. 따라서 시작점 검색은 경로 탐색과 따로 평가해야 한다. 이 판단은 원문이 직접 말한 것이 아니라 두 단계 구조에서 이끌어 낸 것이다.
질문과의 관련도가 같아도 제품마다 중요하게 보는 관계의 흐름은 다르다. 예를 들어 어떤 제품은 기업과 기업 사이의 관계를 먼저 보여 주고 싶을 수 있다.
원문은 특정 노드 유형의 순서와 일치하는 경로에 가산점을 주는 파라미터를 만들었고, 내부에서 path_preference라고 불렀다.
관련 없는 경로를 완전히 제외하지 않고 선호 경로가 탐색 과정에서 더 오래 살아남게 하는 방식이다.
이 덕분에 검색기를 제품별로 따로 만들지 않고, 같은 그래프 위에서 서로 다른 탐색 의도를 반영할 수 있었다.
최종 결과에는 엔티티뿐 아니라 탐색한 관계 경로도 담았다. 결과가 어떤 연결을 통해 발견됐는지 추적할 수 있고, 제품이 이를 근거로 쓸 수 있다. 이 시리즈가 말하는 "원문 근거까지 돌아가는 경로"와 같은 방향이다.
원문은 같은 탐색 로직도 Cypher 실행 형태에 따라 비용이 크게 달랐다고 말한다.
시작점을 인덱스로 찾고, 방향과 타입 필터를 확장 초기에 적용하고, WITH로 필요한 값만 넘기고, EXPLAIN과 PROFILE로 확인하는 절차다.
이 내용은 03번 글이 이미 같은 방향으로 설명하므로 여기서 반복하지 않는다.
원문에서 추가로 확인한 점은 PROFILE에서 인덱스 사용 여부뿐 아니라 예상 행 수와 실제 행 수의 차이, 관계 확장 지점의 DB Hits, 연산자별 메모리 사용량을 봤다는 것이다.