Vector Ontology
정의
**Vector Ontology (벡터 온톨로지)**는 개념과 관계를 벡터 임베딩 공간에서 표현하고, 벡터 간의 거리와 방향으로 의미론적 관계를 인코딩하는 온톨로지입니다.
전통적인 구조화된 온톨로지(클래스-관계-속성)와 달리, 벡터 공간에서 연속적으로 개념을 표현합니다.
특징
| 특징 | 설명 |
|---|---|
| 연속적 표현 | 이진 관계 대신 연속 벡터 공간에서의 거리로 유사도 표현 |
| 의미론적 보존 | 유사한 개념은 벡터 공간에서 가까운 위치에 배치 |
| 관계식 표현 | vec(A) - vec(B) + vec(C) ≈ vec(D)로 비유 관계 표현 |
| 확률적 추론 | 명확한 이진 판정 대신 확률적 유사도 기반 추론 |
| 자동 생성 | LLM 임베딩에서 자동 추출 가능 |
벡터 온톨로지의 구조
임베딩 공간 (예: 1536차원)
├─ 의료 도메인
│ ├─ 의사, 약사, 간호사 (클러스터 A: 의료 전문가)
│ ├─ 병원, 약국, 진료소 (클러스터 B: 의료 시설)
│ └─ 거리: vec(의사)와 vec(병원)의 코사인 거리 = 0.3 (가깝다)
│
└─ 법조 도메인
├─ 판사, 변호사, 검사 (클러스터 C: 법조인)
├─ 법원, 검찰청, 사무실 (클러스터 D: 법조 시설)
└─ 거리: vec(판사)와 vec(법원)의 거리 ≈ 0.3 (의료와 동일 패턴)
벡터 온톨로지 추출 방법
1. 클러스터링 기반
# Step 1: 개념들의 임베딩 수집
concepts = ["의사", "약사", "간호사", "병원", "약국", ...]
embeddings = [embedding(c) for c in concepts]
# Step 2: 클러스터링
clusters = kmeans(embeddings, k=3)
# 결과:
# 클러스터 1 = [의사, 약사, 간호사] (의료 전문가)
# 클러스터 2 = [병원, 약국, 진료소] (시설)
# 클러스터 3 = [질병, 증상, 진단] (의료 상태)
# Step 3: 온톨로지 생성
ontology = {
"classes": ["의료전문가", "의료시설", "의료상태"],
"relationships": [
{"from": "의료전문가", "to": "의료시설", "type": "WORKS_AT"},
{"from": "의료전문가", "to": "의료상태", "type": "DIAGNOSES"}
]
}2. 벡터 연산 기반
# 관계식 찾기
vec_의사 = embedding("의사")
vec_병원 = embedding("병원")
vec_약사 = embedding("약사")
# 의료 전문가-시설 관계 벡터
relation = vec_의사 - vec_병원 # 약 [0.2, -0.1, 0.3, ...]
# 유사한 관계 찾기
유사개념 = vec_약사 - relation # 약국과 유사한 벡터
# 결과: 약국, 진료소 등이 검색됨 (약사가 근무하는 곳들)벡터 온톨로지 vs. 구조화 온톨로지
| 측면 | 벡터 온톨로지 | 구조화 온톨로지 |
|---|---|---|
| 표현 | 임베딩 벡터 (연속) | 그래프 구조 (이산) |
| 유사도 | 코사인 거리 | 이진 연결 |
| 새 개념 추가 | 쉬움 (벡터만 생성) | 어려움 (수동 정의) |
| 추론 속도 | 매우 빠름 | 느림 (그래프 탐색) |
| 해석 가능성 | 낮음 (블랙박스) | 높음 (명시적) |
| 정확도 | 중상 (확률적) | 높음 (논리 기반) |
하이브리드 온톨로지
최상의 성능을 위해 벡터 온톨로지 + 구조화 온톨로지 결합:
사용자 쿼리
↓
[벡터 온톨로지] 빠른 유사 개념 검색 (후보 생성)
↓
[구조화 온톨로지] 논리 규칙 검증 (후보 필터)
↓
최종 답변: 정확하고 빠른 결과
관련 개념
- Embedding — 벡터 표현의 기초
- Knowledge Representation — 지식을 표현하는 방법론
- Semantic Similarity — 의미론적 유사도
- Ontology — 전통적 구조화 온톨로지
- Graph Ontology — 그래프 기반 온톨로지
관련 영상: Vector Ontologies as LLM World View Extraction Method (Video 3)