메타정보와 지식 그래프를 활용한 대화형 매칭 에이전트의 RAG 성능 개선

윤이지, 이수영, 심민준, 안은정, 정백, 이경전, 메타정보와 지식 그래프를 활용한 대화형 매칭 에이전트의 RAG 성능 개선. 2024 지능정보시스템학회 추계 학술대회, 2024.

Abstract

대화형 매칭 에이전트란, 텍스트 형태의 메시지 입력만으로 원하는 거래상대를 매칭해 주는 거래 매칭 AI 에이전트이다. 이 시스템은 사용자가 입력한 메시지를 기반으로 RAG(Retrieval Augmented Generation) 기술을 사용하여 데이터베이스(DB)에서 해당 메시지와 매칭될 가능성이 있는 다른 사용자의 메시지 후보들을 검색한다. 검색된 후보들 중에서 가장 적절한 매칭 상대를 선택하여 출력하는 과정을 LLM(Large Language Model)을 활용해 수행한다.

메시지 데이터의 양이 증가함에 따라 RAG 단계에서 병목 현상이 발생하는 문제가 있다. 특히, 메시지 DB 내 특정 품목(예: 오징어 매매) 관련 메시지의 수가 적을 때는 효율적으로 매칭 후보를 검색할 수 있지만, 이러한 메시지 수가 증가하면 검색된 결과가 구매자의 의도와 덜 일치하게 되는 경향이 있다. 예를 들어, “오징어 구매하고 싶어.”라는 메시지에 대해 RAG가 판매 메시지보다 구매 메시지를 더 많이 검색해내는 문제가 있다. 이는 RAG가 벡터 유사도를 기준으로 문장을 검색하기 때문에 발생하는 문제로, 판매 의사를 가진 메시지와 구매 의사를 가진 메시지 사이의 매칭이 합리적이지만 실제로는 그렇게 일어나지 않는 경우가 많다. 따라서, 검색 결과에서 판매 관련 메시지가 더 우선적으로 나타날 수 있도록 개선할 필요가 있다. 본 연구는 매칭 에이전트 내 RAG 개선 방안을 2가지 제안한다. 첫째, 메시지의 메타정보를 기반으로 RAG 입력 쿼리를 변경하고, 매칭 메시지 후보 검색 과정을 개선하는 것이다. 둘째, 개체 간의 관계를 파악함으로써, 검색 시 쿼리의 맥락이 반영될 수 있도록 하는 지식 기반 그래프 RAG 방식을 사용하는 것이다.

먼저, 메타정보 기반 RAG 입력 쿼리 최적화이다. 최적화는 입력된 메시지로부터 메타정보들을 추출한 뒤, 이를 적절한 매칭 메시지 후보가 검색될만한 쿼리로서 재구성하는 과정으로 이루어진다. 메시지의 요구사항들을 바탕으로 이루어지는 매칭을 일종의 ‘거래’로 볼 경우, 각 메시지들에 대해 ‘거래주체’, ‘거래상대’, ‘거래대상’, ‘거래행동’, ‘거래조건’ 5가지의 메타정보를 추출할 수 있다. 이러한 메타정보를 바탕으로 사용자의 메시지에 매칭될만한 메시지를 임의로 재구성할 수 있다. 본래 메시지의 거래상대는, 매칭 메시지의 거래주체가 되어야 한다. 또한 ‘팔다’와 ‘사다’라는 단어의 관계와 같이, 본래 메시지의 거래행동은 매칭 메시지에서 상호 보완적이면서도 대칭되는 서술어로 변경될 필요가 있다. 매칭 메시지의 거래대상 및 거래조건은 본래 메시지와 같아야 한다. 아래는 이러한 재구성 과정의 예시이다.

가령, “축구화 팝니다. 저한테 좀 작아서 팔아요.”라는 예시 입력 메시지가 있다. 거래주체는 명시되어 있지 않으므로 제외하고, 나머지 메타정보인 거래상대, 거래대상, 거래행동, 거래조건은 각각 ‘축구화 구매자’, ‘축구화’, ‘판매 중’, ‘판매자에게 작아서 판매’가 된다. 여기서 상술한 재구성 과정에 따라 거래행동인 ‘판매 중’은 ‘구매 중’으로 변경된다. 메타정보는 총 5개로 구분하였으나, 우선순위는 각각 주어, 목적어, 서술어에 해당하는 거래상대, 거래대상, 변경된 거래행동 3가지로 보았으므로 쿼리에는 ‘축구화 구매자, 축구화, 구매 중’ 이라는 나열된 단어들이 입력된다. DB 내에 5개의 축구화 판매 메시지, 5개의 축구화 구매 메시지를 넣고 5개의 메시지가 RAG 결과로 검색되도록 설정한 후 실험을 진행한 결과, 축구화를 판매하고 싶다는 본래 메시지의 경우 축구화 구매 메시지가 2개 검색되었으며 메타정보 조합의 경우 축구화 구매 메시지가 4개 검색되었다. 이 결과는 메타정보를 활용하여 RAG 쿼리를 최적화하면 매칭 정확도를 향상시킬 수 있음을 보여준다.

두 번째는 지식 그래프 기반 RAG의 구현이다. 기존의 벡터 유사도 기반 RAG는, 질문의 맥락을 충분히 고려하지 못해 검색 결과의 정확도가 떨어질 수 있다. 이를 해결하기 위해, Microsoft의 GraphRAG 모델을 참고하여, 이를 상거래에 특화된 매칭 에이전트를 위한 프롬프트로 재해석하였다. 지식 그래프 기반 RAG 방식은 사용자가 입력한 텍스트에서 개체와 관계 정보를 추출하여, 이를 데이터베이스에 지식 그래프 형태로 저장한다. 예를 들어 “굴비명가진수에서 신선하고 고품질의 명품 굴비를 만나보세요! 구매를 원하시면 중부시장으로 오시면 됩니다.”라는 문장이 있을 때, 개체와 관계를 다음과 같은 형태로 추출한다. (“entity”, 굴비명가진수, STORE, 굴비명가진수는 신선하고 고품질의 명품 굴비를 제공하는 곳입니다.), (“entity”, 굴비, PRODUCT, 굴비명가진수에서 판매하는 제품입니다.), (“entity”, 중부시장, LOCATION, 구매를 원하는 고객이 방문해야 하는 장소입니다.), (“relationship”, SELL, 굴비명가진수, 굴비) 이러한 형태로 텍스트로부터 개체와 관계를 추출하여 레코드를 생성한다. 이 과정은 LLM의 프롬프트 엔지니어링을 통해 만들어지며, 이렇게 생성된 레코드를 python의 NetworkX 라이브러리를 사용하여 지식 그래프 형태로 변환한다. 이러한 지식그래프 기반 RAG는 개체 간의 관계를 명확하게 파악해, 모델이 검색된 정보의 맥락을 더 잘 이해하고 이를 답변에 반영할 수 있도록 돕는다.

데이터를 지식 그래프 구조로 저장하게 되면 여러 단계의 정보를 거쳐 연결되는 Multi-hop 추론이 가능하게 되며, 단순히 직접적으로 연결된 정보를 검색하는 것을 넘어 연관된 여러 개체와 관계를 통해 깊이 있는 정보를 얻을 수 있다는 특징이 있다. 예를 들어, 지식 그래프에 ‘굴비명가진수는 명절 선물로 인기 있는 고품질 굴비를 판매한다’, ‘굴비명가진수의 고품질 명품 굴비! 중부시장에서 만나보세요’와 같은 정보가 저장되어 있다면, “명절 선물 뭐가 좋을까?”라는 질문에 대해 굴비명가진수가 위치한 중부시장을 제안할 수 있다. 지식 그래프 기반 RAG에서는 서로 밀접하게 연관된 노드들을 그룹화하는 계층적 클러스터링을 수행한다. 이를 통해 텍스트의 주요 주제와 하위 주제를 효과적으로 파악하고, 각 클러스터에 대한 요약을 생성함으로써 개체 간 관계 이해를 더욱 용이하게 만들며, LLM 입력 토큰에 따른 비용 역시 절감할 수 있다는 장점이 있다. 이러한 접근 방식은 더 정확하고 비용 효율적인 검색 결과를 제공하여 사용자에게 유용한 정보를 제공할 수 있다.

본 연구에서는 대화형 매칭 에이전트의 성능 개선을 위해 두 가지 RAG 개선 방안을 제시하였다. 메타정보 기반 쿼리 최적화는 메시지의 구체적 요구 사항을 반영하여 보다 정확한 매칭 결과를 도출할 수 있도록 돕고, 지식 그래프 기반 RAG는 관련 정보의 맥락적 이해를 극대화하여 검색 결과의 정확도를 높였다. 이러한 기술적 진보는 사용자의 의도와 더 일치하는 매칭 후보를 효과적으로 제시함으로써, 대화형 매칭 에이전트의 실용성을 크게 증진시킬 뿐만 아니라, 데이터를 지식 그래프 구조로 구조화하여 저장함으로써 Multi-hop 추론을 가능하게 하고, 이를 통해 단순한 연결을 넘어서 보다 깊이 있는 정보 접근을 제공한다. 결과적으로, 이 연구는 AI 기반 매칭 시스템의 발전에 중요한 기여를 하며, 최종 사용자에게 보다 만족스러운 경험을 제공할 수 있을 것이다.