그래프 구조와 텍스트 정보를 결합해 리랭킹에 적용하는 방식

Structure & Text meta for reranking and new metric for multi-document retrieval system
정이태's avatar
Nov 27, 2024
그래프 구조와 텍스트 정보를 결합해 리랭킹에 적용하는 방식

트렌드

적용하는 부분좋은 파싱 도구 , 좋은 리랭킹 도구가 있다한들 부족한 틈새가 있기마련인데요. 바로, 문서들간 관계가 틈새 중 하나가 되지 않을까 싶네요.최근 진행된 ifkakao24 에서도 이 틈새에 대해 이야기합니다. 문서 Chunking 시 발생하는 맥락 유실 보완방식 중 하나로 지식그래프가 언급되었습니다.
 
공공데이터를 활용한 RAG 기술 구현 및 프레임워크 소개 / if(kakaoAI)2024 , kakao tech youtube , https://www.youtube.com/watch?v=jCEgRK7GgXs&t=1400s
공공데이터를 활용한 RAG 기술 구현 및 프레임워크 소개 / if(kakaoAI)2024 , kakao tech youtube , https://www.youtube.com/watch?v=jCEgRK7GgXs&t=1400s
 
유저 질의에 기반해 답변에 도움이 될만한 메타(문서)들을 가져온다한들 그 문서들간 중복되는 메타들이 있기 마련입니다. 이는 곧 답변 생성에 노이즈로 작용할 가능성이 있기에, 문서들간 공통 개념들을 추출해 직접적으로 관련이 없는 문서라 할지라도 간접적으로 연결한 뒤 만들어진 문서 그래프를 리랭킹 과정에 활용한다는게 본 논문의 핵심입니다.
* 문서들간 관계를 만드는 방식을 본 포스팅에서 다루기엔 양이 방대하여, 이를 다룬 글을 첨부합니다. (https://inblog.ai/graphwoody/graphrag-with-document)
 

Don’t Forget to Connect! Improving RAG with Graph-based Reranking

 
문서를 구문 , 객체로 분리해 지식베이스를 구축한 뒤, RAG 기술을 적용하려는 분들에게 도움이 될 논문입니다. 현업에서 차용할만한 부분이 많아보여서 가져왔습니다. 시간이 없으신 분들은 문제 정의(ODQA task) , 그래프 모델링 그리고 Reranker파이프라인만 한 번 가볍게 살펴보셔도 좋을거 같아요.
 
그래프 구조를 리랭킹에 활용하는지를 다룬 논문과 함께 사례를 살펴보겠습니다.
Even though it is successful in fetching relevant documents, RAG is not able to utilize connections between documents. In the ODQA setting, this leads to the model disregarding documents containing answers, a.k.a. positive documents, with less apparent connections to the question context. We can identify these documents if we connect them with positive documents whose context is strongly relevant to the question context.
질의와 관련된 문서들을 가져왔을때, 메타를 자세히 살펴보면 중복되어 있는 문장 그리고 단어들의 비율이 높다면 이를 어떻게 하면 좋을까요? 직관적으로 떠오르는건 해당 메타(문서)의 타이틀을 확인해서 질의와 얼마나 관련있는지 등 추가적인 검증부터 고려하실텐데요. 여러 검증 수단 중 하나로 본 논문은 그래프를 활용합니다. '어떻게?' 라는 호기심을 유지한채 조금 더 읽어볼게요.
notion image
Figure 1이 이 논문의 핵심입니다. G-retrieval(https://arxiv.org/abs/2402.07630) 논문 읽으신 분들은 다른 부분 몇몇을 볼 수 있으실텐데요. 1.Data flow의 처음이 Q&P 라는 점 2. AMRs 를 활용해 그래프를 만들었다는 점 3. Reranker 가 추가되었다는 점입니다. 동일하게 Graph 관점을 활용해 GNN retrieval 한다는 공통점이 있지만, 그래프 모델링과 Reranker라는 관점이 다른데요. 이 차이점을 잘 기억해두시면 좋을거 같습니다.
To address these challenges and limitations, we propose a method based on document graphs, where each node represents a document, and each edge represents that there are common concepts between two documents. We incorporate the connection information between different documents into the edge features and update the edge features through the message-passing mechanism. For node features, even though we aim to add AMR information to compose a richer understanding of complex semantics, we won’t overwhelmingly add all AMR-related tokens as node-level features. Instead, we investigate the determining factor that facilitates the reranker to identify more relevant documents and encode this key factor to node features
그렇다면 결국 그래프 생성이 중요할텐데, 여기에선 AMR (Abstract Meaning Representation) 방식을 활용해 그래프를 만듭니다. 간단하게 말해보자면, 문서 내 구문 분석을 한 뒤 분석 결과인 의미들을 활용해 그래프를 만듭니다.
저희가 흔히 아닌 문장 내 개체를 추출해서 그래프를 만드는 NER(Named entity recognition) 과 유사한데요. 큰 차이는 "NER extracts entities, while AMR models the deeper meaning and relationships within the entire sentence." 라고 할 수 있습니다. 객체를 추출하고 객체들간 연결을 만드는 것이 아닌, 구문 분석을 통해 계층을 만드는 게 핵심입니다.
To improve RAG for ODQA, we propose a document-graph-based reranker that leverages connections between different documents.
When the documents share similar information with their neighbor nodes, it helps the reranker to successfully identify the documents containing answer context that is only weakly connected to the question.
위 원문에도 볼드체로 표시를 해놓았지만, 중요한 문장이기에 한 번 더 짚고 넘어갈게요. 문서들간 유사한 정보들을 가지고 있다면 당연히 연결이 되어있을것이고, 이 연결을 기반으로 reranker 가 답변 생성에 도움이 될 만한 문서인지를 판별합니다. reranker 를 활용하기 위해선 정량화가 되어야할텐데, 이때 GNN을 활용하는거죠.
1) Path Identification: Firstly, the shortest single source paths (SSSPs) are determined starting from the node labeled "question" in the AMR graph Gqpi . Each path identified should not be a subset of another. For instance, consider the following paths composed of node concepts: [‘question’, ‘cross’, ‘world-region’, ‘crucifix’, ‘number’, ‘belocated-at’, ‘country’, ‘Spain’], [‘question’, ‘cross’, ‘religion’, ‘Catholicism’, ‘belief’, ‘worship’]; 2) Node Concept Extraction: Subsequently, the node concepts along these identified paths are extracted to construct ai . In the example provided, ai is formed as follows: "question cross world-region crucifix number be-located-at country Spain religion Catholicism belief worship". X ∈ R n×d (2) will be the initial node representation of graph neural networks.
GNN는 다들 잘 아시다시피 노드들간 정보 교류를 통해 그래프 내 노드의 고유성이 숫자로 표현되는 기법인데요. 이때 정보 교류에 크게 영향을 주는 요소들은 node feature , edge feature 입니다. 정보 교류마다 어떤 노드로 부터 왔고 이 노드와 정보 교류가 발생하는 노드는 어떤 관계인가가 중요하기 때문이고, 이 정보를 node , edge feature 라고 보시면 됩니다.
1차적으로 AMR이 총체적인 구조를 디자인해서 정보 교류를 위한 다리를 놓았다면, 2차는 다리에 어떤 자동차들이 무슨 짐을 실으면서 운반하는지를 디자인하는 단계입니다. 본 논문에서는 Question 정보와 Document text를 가공해서 “question:<question text><document text>” 형태로 만들어주고 이를 node feature로 활용합니다. 그렇다면 GNN 정보 교류 단계에서는 자연스레 question 정보와 document 정보를 모두 반영됨을 짐작할 수 있겠네요.
notion image
이렇게 완성된 GNN 임베딩 값을 이제 학습합니다. question <-> document GNN 결과물 방식을 cross entropy loss 방식으로 학습하면 좋겠으나, 아쉽게도 어느 곳에서나 발견할 수 있듯이 ground truth (labeled) 데이터가 불균형 분포를 띄고 있기에 pair-wise ranking loss 를 활용합니다.
이렇게 잘 학습된 모델을 활용해 문서들을 retrieval 하게된다면, 이제 문서들간 필터링 하는 작업(리랭킹)을 해야합니다.
notion image
notion image
서두에서 언급한 새로운 reranker 는 tied ranker 를 개선하기 위해 Optimistic {r_p^(t)} 와 Pessimistic {r_p ^(t) +t-1} 가 반영된 버전입니다. 여러 문서들을 가져온 뒤 LLM을 활용해 관련성 점수를 측정할텐데, 이때 tie ranking이 문제가 된다는거죠.

여기까지 정리 한 번 해보겠습니다.
notion image
유저의 질의와 문서를 파싱하여 AMR 그래프를 생성한 뒤, 문서 내 연관된 객체들을 탐지하고 문서 간 그래프를 연결합니다. 이 과정에서 <question, question-related document>를 노드 특성(node feature)으로 활용합니다.
또한, GNN 학습을 위해 pair-wise loss 함수를 손실 함수로 사용하여 질의와 문서 간의 연관성이 임베딩에 반영되도록 학습합니다. 마지막으로, 학습된 tied reranking을 위해 개선된 reranker 함수를 사용하여 최종 결과를 도출합니다.
notion image
예를 들어 위 Question과 같이 Ol' Blue Eyes is the nickname of?라는 유저 질의가 들어온다면, Number of Positive documents 의 숫자와 같이 관련있는 문서들이 도출될 것이고, 이때 각 문서들간 관련성을 엄밀하게 확인하기 위해 개선된 reranker를 활용할 겁니다.
notion image
가장 상위로 등장하는 문서를 살펴보면 question에 있는 내역들과 관련있는 문서가 어느 문단에 존재하며 구체적으로 AMR graph 에서는 어떤 노드 , 엣지로부터 발생했는지 확인할 수 있습니다.
 
오늘은 문서 데이터를 RAG에 적용할 때 발생하는 문제 중 하나인 Chunk 정보 유실에 대한 대안으로 GraphRAG 방법론을 살펴보았습니다. 이 방법론은 AMR을 활용해 문서 내 구문을 그래프로 1차 표현한 뒤, 문서 간 공통되거나 유사한 요소들을 발견해 연결하고, GNN을 활용해 임베딩하는 방식입니다.
특히, question과 document text를 결합해 이를 경로(path)로 간주하고, text encoder를 사용해 정량화한 뒤 노드 특성(node feature)으로 활용한다는 점이 인상적이었습니다. 또한, LLM을 reranker로 활용할 때 여러 문서 간 발생하는 tie ranking 문제를 개선한 새로운 metric도 참신한 접근이었습니다.
 
본 글은 Open UP(오픈소스 소프트웨어 통합지원센터)로부터 지원받아 작성하였습니다.
 
 
Share article

Graphwoody