데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      RAGident팀: MLLMs-RAG를 활용한 Zero/Few-Shot Medical Question Answering 시스템 연구 - 연구과정(2)

      7기_최민지 25.09.20
      302 4 0
      DEVOTEE 요약
      팀 RAGident은 의료 현장의 대기 시간 병목 문제를 해결하기 위해 RAG 기반 스마트 사전 문진 시스템을 개발하고 있으며, Knowledge Graph(DB)를 활용해 환자의 증상과 질병 관계를 구조적으로 학습했습니다. 이 과정에서 ddxplus 데이터셋 기반으로 구축한 지식을 RAG와 GNN-RAG 기술에 적용해 정확하고 효율적인 질병 예측과 소견서 생성을 목표로 하고 있습니다. 향후에는 GNN 모델 고도화, 정규화된 상위 개념 생성, 다중 턴 챗봇 시스템 개발 등을 통해 의료 AI 시스템의 정확성과 활용성을 더욱 강화할 계획입니다.
      DEVOTEE 추천 블로그

      안녕하세요,

      DEVOCEAN AI Fellowship 7기 9번 과제 MLLMs-RAG를 활용한 Zero/Few-Shot Medical Question Answering 시스템 연구를 진행 중인 팀 RAGident의 김상욱, 김윤재, 최민지입니다.


      저희 팀은 지난 연구 계획에서 병원 진료 과정에서 자주 발생하는 "대기 시간 병목 문제"를 해결하기 위해, RAG 기반 스마트 사전 문진 시스템을 제안했습니다.

      해당 시스템은 환자와의 멀티턴 대화를 통해 환자가 호소하는 증상을 추출하고, 그 정보를 토대로 관련 증상과 질병을 검색합니다.

      이후 검색된 결과를 활용해 후속 질문을 이어가며, 마지막에는 의사의 진단 시간을 단축할 수 있는 사전 소견서를 자동으로 생성하는 것을 목표로 합니다.


      이를 위해 저희는 크게 두 가지 작업을 진행했습니다.

      1. 환자 기록과 의료 정보를 담은 DB 구축

      2. 이 데이터를 기반으로 한 RAG 시스템 개발

      이번 포스트에서는 이 두 가지 핵심 작업을 저희가 어떻게 고도화했는지 소개드리고자 합니다!


      1) DB 구축 : Knowledge Graph 활용

      환자가 호소하는 증상과 이에 연관된 질병이 매핑되어있는 DB를 구축하고자 Knowledge Graph DB를 활용했습니다.

      의료 도메인은 다양한 증상, 질병, 치료, 약물 등 수많은 개념이 복잡하게 얽혀 있는 고도로 상호 연결된 지식 체계를 가지고 있으며, 모델이 직관적으로 이해하기 어려운 전문 용어와 표현을 포함하고 있습니다.

      Vector DB 와 달리, Knowledge Graph는 구조화된 형태로 정보를 저장하여 저장된 노드 간의 복잡한 관계를 표현할 수 있는 정교한 DB입니다.

      따라서 의료 용어 간의 복잡한 상호작용을 표현하여, 다양한 환자 케이스에도 강건하기에 Knowledge Graph DB 를 사용합니다.

      image.png

      감별 진단 합성 데이터인 ddxplus 데이터 셋 활용하여 knowledge graph를 구축했습니다.

      이는 대규모 합성 환장 데이터 셋으로 약 130만 명의 가상 환자 기록을 포함합니다.

      각 기록 요소는 진단명, 세부 증상, 생활 습관, 유사 질병 후보와 확률이 존재하여 증상과 질병의 관계를 구조적으로 학습하는데 유용합니다

      물론 합성 데이터라 실제 환자의 복잡성을 그대로 반영하지는 못한다는 점은 한계로 남습니다.

      그럼에도 불구하고, 공개적으로 활용 가능한 데이터 중에서는 질병–증상 지식 그래프를 구축하기에 가장 적합한 대안이라고 볼 수 있습니다.


      증상 그리고 질병 노드를 연결하기 위한 관계는 의사가 환자를 문진하기 위해 사용하는 현병력 (History of Present Illness; HPI) 구성 요소를 활용하여 아래와 같이 구축했습니다.

      image.png

      ⇒ 질병과 관련된 기타 정보 및 증상

      image.png

      [실제 Knowledge Graph를 구축한 과정]

      1. L3 → L2 연결 과정

        먼저 ICD-10 코드에 대한 WHO 공식 홈페이지 자료를 크롤링하여 관련 정보를 수집했습니다.

        이후 해당 정보를 LLM에게 제공하고, ddxplus에 포함된 정보와 그 상위 범주를 카테고리화하여 구조를 정리했습니다.

        참고: WHO ICD-10 공식 사이트

      2. L4 → L3 연결 과정

        프롬프트를 통해 각 진단명에 대한 HPI 관련 정보와 근거를 제공하고,

        LLM이 전체 데이터셋의 QA를 기반으로 해당 진단명에 연결된 HPI와 그 관계를 추출하도록 하였습니다.

        추출된 정보의 누락이나 관련성 부족 문제를 최소화하기 위해

        1. Q-A 텍스트 전체를 한 번에 입력하는 방식

        2. Q-A 텍스트를 한 줄씩 분리하여 입력하는 방식

        두 가지를 모두 수행한 뒤, 결과를 cross-check했습니다. 이를 통해 KG에 가능한 한 많은 정보가 포함되도록 하였습니다.


      2) KGQA RAG를 위한 방법론 적용

      앞서 구축한 지식 그래프(KG)는 환자의 증상, 질병, 검사, 치료 간의 관계를 구조화하여 표현한 그래프입니다.

      그래프 탐색 과정은 단순 검색을 넘어 RAG(Retrieval-Augmented Generation) 단계로 활용되어, LLM이 환자 상황을 근거 기반으로 이해하도록 도와줍니다.

      결국 최종 출력은 LLM에서 생성되는 소견서(report) 형태이며, 여기에는 예측된 질병과 함께 근거, 설명, 추가 문진 포인트가 담기게 됩니다.

      LLM이 신뢰할 수 있는 출력을 내기 위해서는, RAG 단계에서 정확하고 풍부한 정보를 검색하는 것이 필수적입니다.

      그래프 탐색이 정밀할수록 할루시네이션을 줄이고, 의사에게 실제로 도움이 되는 보고서를 제공하기 때문입니다.

      그래프를 탐색하여 정보를 검색하는 접근 방식은 크게 세 가지로 나눌 수 있습니다.

      image.png

      관련 연구로는, MedRAG가 (1) Non-parametric 방식에 기반한 탐색을 실험적으로 검증했으며, GNN-RAG는 (2) LM 기반과 (3) GNN 기반 접근을 모두 실험했습니다.

      특히 GNN-RAG는 단순 거리 기반 검색을 넘어, 관계 타입별 가중치와 의미적 연결성 학습을 통해 모델에게 지식을 이해하도록 만드는 방식이라는 점에서 차별화됩니다.

      따라서 의료 지식처럼 복잡한 관계망을 반영해야 하는 질병 예측 task에서는, 단순 검색보다 노드 간 관계를 심층적으로 이해하는 GNN-RAG 방식이 가장 적합하다고 가정하고 실험을 진행했습니다.


      성능 평가

      (1) MedRAG

      image.png

      MedRAG는 환자 정보가 입력으로 들어왔을 때,

      유사 환자 케이스(관련 EHR) & 규칙 기반(Non-parametric) 그래프 탐색 알고리즘을 통한 Sub Graph를 각각 검색한 뒤 LLM에 전달하는 구조를 갖습니다.

      이 과정에서 알고리즘은 상위 질병 노드를 하나 선택하고, 그 노드와 연결된 하위 Sub graph 전체를 반환합니다.

      별도의 학습 없이 빠르게 정보를 가져올 수 있다는 장점이 있지만, 복잡한 질의나 맥락을 깊이 이해하는 데에는 한계가 있습니다.


      (2) MedRAG + GNNRAG

      image.png

      GNN-RAG는 Query를 입력받아 관련된 Initial Graph를 생성한 뒤 이를 GNN에 입력하는 구조를 가집니다.

      이 과정에서 (2) LM-based와 (3) GNN-based 방식을 동시에 활용하여 그래프를 탐색합니다.

      간략히 말해, GNN은 Initial Graph에서 Query와 관련된 정답 노드를 추론하는 역할을 합니다.

      이 과정에서 LM 모델은 이웃 노드의 메시지를 임베딩하여 GNN에 추가 정보를 제공합니다.

      이를 통해 GNN은 Initial Graph 내에서 정답 노드를 추론하고, 그 노드를 중심으로 한 이웃 Sub graph를 반환합니다.

      해당 프레임워크는 MedRAG의 규칙 기반(Non-parametric) 알고리즘 대신 GNNRAG를 이용하여 Sub Graph를 탐색하여 반환합니다.


      (3) MedRAG + GCN

      GNN-RAG에 사용할 GNN 모델을 GCN으로 설정한 실험을 진행합니다.

      GCN은 그래프 데이터에서 그래프 속 노드를 표현할 때 인접행렬 정규화를 사용하여 연결된 엣지들을 고려함으로써, 이웃 노드 정보를 함께 고려하는 단순한 GNN 모델입니다.

      • 인접행렬: 그래프에서 노드 간 연결 관계를 0과 1로 표현한 행렬

      해당 프레임워크는 MedRAG의 규칙 기반(Non-parametric) 알고리즘 대신 GCN를 이용하여 Sub Graph를 탐색하여 반환합니다.

      GNN-RAG의 수식을 보면 아래와 같이 관계 가중치를 직접 LM embedding을 통해 부여합니다.

      image.png

      즉, Query 및 릴레이션 정보는 ω(q,r)로 주입되는 것입니다.

      이에 저희는 GNN-RAG의 차별점이 ω(q,r)이지, ψ() 자체가 복잡할 필요가 없다고 판단하여,

      ψ()는 단순한 GCN으로 두어도 query-relation weighting만 잘 설계하면 충분하지 않을까라는 가설을 세우게 되었습니다.


      각 모델이 정답 질병을 잘 맞추는지, 그리고 그에 맞는 그래프를 정확히 탐색하는지, 나아가 모델의 예측에 얼마나 영향을 주는지를 확인하기 위해 실험을 진행했습니다.

      이를 위해 구축된 KG와 DDXPlus 데이터 셋을 적용하여, EHR과 Sub Graph를 각각 분리해 검증하고 있습니다.

      • EHR은 전체 모델의 성능을 보완하기 위해 추가적으로 활용할 수 있는 지를 확인하는 목적에서 실험을 진행했습니다.

      • Sub Graph는 각 모델의 그래프 탐색 방법론 자체의 성능을 검증하기 위해 별도로 실험했습니다.

        즉, 위에서 설명한 각 (1), (2), (3) 기법으로만 실제 정답 질병의 Sub Graph를 올바르게 검색할 수 있는 지를 확인하고자 한 것입니다.


      이에 따라, 아래와 같이 5개의 평가 지표를 통해 확인했습니다.

      1. Query문을 통해 가져온 EHR 안에 실제 정답 질병(True Diagnosis)이 들어있는가?

      2. LLM이 진단한 질병이 실제 DDXPlus (Ground Truth) 안에 있는 49개의 질병인가?

      3. Voting Algorithm을 통해 가져온 L2 Sub Graph는 실제 정답 질병의 L2인가?

      4. LLM이 진단한 질병이 가져온 EHR에 있는 질병인가? 즉, 가져온 EHR을 기준으로 진단했는가?

      5. LLM이 정답 질병을 맞췄는가?


      해당 5개의 평가 지표를 통해 아래와 같이 4개의 유형으로 결과를 해석할 수 있습니다.

      1. EHR과 L2 Sub Graph를 둘 다 잘 Retrieve 한 경우

      2. EHR은 Retrieve에 실패했지만, L2 Sub Graph는 잘 가져온 경우

      3. EHR은 잘 가져왔지만, L2 Sub Graph는 Retrieve에 실패한 경우

      4. EHR, L2 Sub Graph 둘 다 Retrieve에 실패한 경우


      실험 결과

      image.png

      실험 결과를 보면서 가장 눈에 띈 부분은, 가져온 “EHR의 정답을 실제 정답으로 진단했는가”에 대한 지표였습니다.

      이전 baseline에서는 L2 매칭률이 워낙 낮아, LLM이 EHR 컨텍스트에 더 의존해 답변을 생성하는 경향을 보입니다.

      재구축 이후, L2 매칭률이 올라가면서, KG를 통해 제공된 컨텍스트가 이전보다는 더 활용되고 있습니다.

      GNN-BASE와 GCN-BASE는 실험이 진행 중이며, 특히 GNN은 검색 성능 고도화가 일정 수준 도달한 이후 본격적인 성능 평가를 진행할 예정입니다.


      향후 계획

      남은 한 달간 저희는 아래와 같은 개선 및 고도화를 진행할 예정입니다.

      1. 개선 방향 및 전체적인 framework 방향

        • 단순 그래프 구조를 넘어, 릴레이션 타입(예: 증상–질병, 위치–증상, 강도–증상 등)을 구분하여 반영할 수 있는 GNN 모델을 도입합니다.

          • 질의와 관계 간의 중요도를 더 정교하게 반영할 수 있는 방안 탐색

          • R-GCN, GAT, HGT등의 Graph relation-aware 모델을 추가 적용해보기

        • KG 확장 (GNN 측면 개선)

          (GNN의 성능 향상을 위해 KG도 어느정도 변경이 필요할 것으로 판단됩니다.)

          image.png

        • L4_upper ⇒ SNOMED CT 등 공식 표준 용어체계로 정규화한 상위 개념 생성 및 relation 구축

        • L4 (naive symptom): 환자 발화 그대로 (자연언어, 구어체)를 한층 더 상위 개념으로 만들어 줌


      2. Lang Graph 기반 Multi-turn 챗봇 구축 / framework 방향

        1. 초기 n번의 질문을 통해 HPI와 관련된 정보를 추출

        2. 해당 정보들을 토대로 GNN 모델을 거쳐 후보 질병을 예측 (subgraph 내에서 확률적으로 높은 질병)

        3. 해당 subgraph 내에 증상들에 대해서 몇가지 질문을 통해 최종 질병 감별

        4. 위의 각 과정들을 통해서 필요한 정보들을 종합하여 마지막 소견서 생성

          ⇒ 어떻게 평가할 것인가? 기존의 평가 지표를 적용할 예정


      레퍼런스

      • Xuejiao Zhao, Siyan Liu, Su-Yin Yang, Chunyan Miao (2025), MedRAG: Enhancing Retrieval-augmented Generation with Knowledge Graph-Elicited Reasoning for Healthcare Copilot, arXiv:2502.04413

      • Costas Mavromatis & George Karypis (2024), GNN-RAG: Graph Neural Retrieval for Large Language Model Reasoning, arXiv:2405.20139

      • Costas Mavromatis & George Karypis (2022), ReaRev: Adaptive Reasoning for Question Answering over Knowledge Graphs, arXiv:2210.13650

      • Peng, B. et al. (2024), Graph Retrieval-Augmented Generation: A Survey, arXiv:2408.08921

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      7기_최민지 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기