Knowledge Representation (지식 표현)

정의

**Knowledge Representation (지식 표현)**은 현실 세계의 사실, 개념, 관계를 컴퓨터가 이해하고 처리할 수 있는 형태로 변환하는 방법론입니다.

핵심 질문: “컴퓨터에게 지식을 어떻게 알려줄 것인가?”

지식 표현의 3가지 차원

1. 표현 형식 (Representation Format)

자연언어 (가장 표현력 높음)
  ↓
반정형 (구조화 텍스트)
  ↓
완전 구조화
  ↓
수치 표현 (가장 효율적)
형식예시장점단점
자연언어”의사는 병원에서 근무한다”표현력, 인간 이해도컴퓨터 처리 어려움
반정형XML, JSON읽기 쉬움구조 정의 필요
그래프온톨로지, RDF, LPG관계 표현력확장성 낮음
벡터임베딩, 벡터 공간빠른 검색, 확장성해석 어려움

2. 추상화 수준 (Abstraction Level)

실제 사물 (현실)
  ↓
개념 (Concept) — "의료전문가" (의사, 약사 포함)
  ↓
관계 (Relationship) — "WORKS_AT"
  ↓
속성 (Property) — 이름, 경험 등

3. 추론 메커니즘 (Inference Mechanism)

방식메커니즘예시
논리 기반규칙 적용IF 의사 THEN 의료전문가
확률 기반통계 활용P(의료전문가 | 의료면허) = 0.95
벡터 기반임베딩 거리vec(의사)와 vec(병원)의 거리

지식 표현의 4가지 주요 방식

1. 온톨로지 (Ontology)

Classes:
  - 의료전문가
    - 의사
    - 약사
  - 의료시설
    - 병원
    - 약국
 
Properties:
  의료전문가:
    - 면허번호
    - 경험연수
 
Relationships:
  - WORKS_AT: 의료전문가 → 의료시설
  - SUPERVISES: 의료전문가 → 의료전문가

2. 시맨틱 웹 (Semantic Web, RDF)

:의사_김철수 rdf:type :의료전문가 ;
          :면허번호 "MD-2023-001" ;
          :근무지 :서울대학교병원 .
 
:서울대학교병원 rdf:type :의료시설 ;
               :위치 :서울 .

3. 프레임/슬롯 (Frames/Slots)

Frame: 의료전문가
  Slots:
    - 이름: [문자열]
    - 면허번호: [문자열]
    - 근무지: [의료시설]
    - 경험연수: [정수]

4. 벡터 표현 (Vector/Embedding)

vec_의사 = [0.123, -0.456, 0.789, ...]  # 1536차원
vec_병원 = [0.234, -0.567, 0.890, ...]
 
# 유사도 계산
유사도(의사, 약사) = cosine_distance(vec_의사, vec_약사) = 0.92

좋은 지식 표현의 조건

1. 표현력 (Expressiveness)

  • 현실의 모든 관계를 표현 가능해야 함
  • 예: “의사는 약사의 권고사항을 무시할 수 있다”도 표현 가능?

2. 계산 효율 (Computational Efficiency)

  • 추론 속도가 빨라야 함
  • 벡터 연산 > 그래프 탐색 > 논리 추론

3. 유지보수성 (Maintainability)

  • 새로운 개념 추가 용이
  • 모순 감지 가능

4. 해석 가능성 (Interpretability)

  • 인간이 이해할 수 있는 형태
  • 시스템 결정의 근거 설명 가능

지식 표현의 선택

언제 어떤 표현을 쓸까?

상황추천 표현이유
추론이 중요온톨로지 + 논리정확성, 해석 가능성
검색이 중요벡터 표현속도, 확장성
둘 다 중요하이브리드벡터(빠른 검색) + 그래프(검증)
프로토타입벡터 표현빠른 구현

관련 개념


관련 영상: Vector Ontologies as LLM World View Extraction Method (Video 3)