Summary
Neo4j를 사용하여 그래프 데이터베이스를 구축하고, 영화 줄거리 텍스트를 OpenAI 임베딩 모델로 벡터화한 후, Vector Retriever를 통해 의미론적 검색 엔진을 구현하는 실무 튜토리얼. MovieRecommendation 데이터셋을 활용한 Graph RAG의 기초 구축 과정을 다룬다.
Key Claims
- Neo4j는 그래프 DBMS: Cypher 쿼리 언어를 통해 노드(Node)와 관계(Relationship)를 기반으로 한 데이터 조작
- Neo4j Sandbox 제공: 무료 클라우드 기반 인스턴스로 로컬 설치 없이 온라인에서 그래프 DB 실험 가능
- Vector Retriever의 필요성: 단순 텍스트 유사도가 아닌 의미론적(semantic) 검색을 통한 정보 검색
- RAG (Retrieval-Augmented Generation): LLM의 환각 현상을 방지하기 위해 데이터베이스 검색 결과를 기반으로 생성
- Graph RAG의 강점: 벡터 DB 기반 RAG보다 구조화되고 관계 기반의 세분화된 검색 가능
- 임베딩 프로세스: 텍스트 → Vector INDEX → 유사도 검색 (코사인 유사도 함수)
Key Concepts Introduced
- 노드(Node): 개체를 나타냄 (Movie, Genre, Director, Actor, User)
- 관계(Relationship): 노드 간 연결 및 속성 (RATED, DIRECTED_BY, ACTED_IN)
- Cypher 쿼리 언어: 그래프 DB 조회 언어 (SQL의 그래프 버전)
- 프로퍼티(Property): 노드와 관계의 속성값
- Vector INDEX: 검색 성능 최적화를 위한 인덱스
- 임베딩(Embedding): 텍스트를 고차원 벡터로 변환 (OpenAI text-embedding-ada-002)
Implementation Flow
1. Neo4j Sandbox 연결 → 드라이버 설정
2. MovieRecommendation 데이터 로드
3. 영화 줄거리(plot) 텍스트 추출
4. OpenAI 임베딩 모델로 벡터화 (100개 영화)
5. Vector 프로퍼티로 Neo4j에 저장
6. Vector INDEX 생성 (cosine similarity)
7. Vector Retriever 초기화
8. 검색 테스트 (유사도 점수 반환)
Key Quotes
“RAG라고 하는 거는 llm 잘 활용하기 위해서는 모델이 뱉어내는 텍스트를 그대로 사용하는 것이 아니라 데이터 베이스를 직접 구축하고 그 데이터를 기반으로 LM 답변 하도록 구현하는 기법”
“그래프 레그는 쉽게 그래프 디비를 기반으로 레그를 구현하는 것이에요 … 단순히 벡터 데이터베이스 기반의 리트리버 방식이 아니라 놀리지 그래프를 구축해서 검색 대상들 간의 관계를 파악해서 더 세분화된 지식 검색”
Connections
Entities
Concepts
- Graph Database — 그래프 기반 데이터베이스
- Vector Retriever — 벡터 기반 검색 엔진
- RAG — Retrieval-Augmented Generation
- Graph RAG — 그래프 기반 RAG
- Embedding — 텍스트 벡터화
- Cypher Query Language — 그래프 쿼리 언어
- — 검색 최적화 인덱스
Contradictions
없음 (새로운 소스, 기존 콘텐츠와의 충돌 없음)
Technical Details
MovieRecommendation Dataset
- 노드 타입: Movie, Genre, Director, Actor, User
- 관계:
- User -[RATED]-> Movie (rating, timestamp)
- Movie -[BELONGS_TO]-> Genre
- Movie -[DIRECTED_BY]-> Director
- Movie -[ACTED_IN]-> Actor
Vector Retriever Parameters
- driver: Neo4j 드라이버
- index_name: “movie_plot_embedding”
- embedder: OpenAI text-embedding-ada-002
- return_properties: [“title”, “plot”]
Similarity Scoring
- 함수: Cosine similarity
- 임베딩 차원: 1536
- 검색 예시: “Toy Story” 줄거리 검색 → 유사도 93점대 “City Hall” 반환
Project Relevance
✅ 온톨로지 방법론 프로젝트에 적용 가능:
- 그래프 기반 데이터 구조 설계
- 노드(클래스) 및 관계(속성) 정의
- Vector Retriever를 통한 지식 검색
- Graph RAG 구현 기초
인정: YouTube 공원나연 채널 | 녹화본 요약 및 개념 추출