티스토리 뷰
1. 벡터 임베딩이란?
- 텍스트, 이미지, 오디오 등 다양한 데이터를 고차원 공간의 연속적인 수치 데이터로 변환하는 과정
- 데이터의 특징이나 의미를 수치로 표현하여 기계가 이를 쉽게 처리할 수 있도록 만드는 것이 목적
1) 자연어 처리(NLP)에서 벡터 임베딩
- World2Vec, GloVe, BERT와 같은 모델을 사용해 벡터로 변환함으로써 문맥적 유사도 및 의미적 관계를 파악
- 자연어는 컴퓨터가 직접 이해할 수 없어서 단어, 문장, 문서를 벡터로 변환해야 한다.
- World2Vec(2013) : 단어 간의 문맥을 학습해 의미가 유사한 단어를 가까운 벡터로 매핑하는 방식
- 단어간 유사도를 벡터 연산으로 구할 수 있다.
- CBOW: 주변 단어를 보고 중심 단어를 예측하는 방식
- Skip-gram: 중심 단어를 보고 주변 단어를 예측하는 방식
- 예: 왕-남자, 여자-여왕
- GloVe(2014)
- 전체 말뭉치의 동시 발생 행렬을 사용해 단어 벡터를 학습
- 단어 간의 통계적 관계를 더 잘 반영
- 파리-프랑스, 독일-베를린
- FastText(2016, facebook)
- 단어를 작은 단위(subword, n-gram)로 나누어 벡터를 학습
- 예: 사랑합니다 → 사랑, 합니다, 랑합 등의 조합으로 임베딩
- BERT(2018)
- 트랜스포머 모델을 사용해 단어의 문맥을 양방향으로 학습
- 같은 단어라도 문맥에 따라 벡터 값이 달라지며, 문장 수준의 의미를 더 잘 반영한다
- 예: 은행에 가서 돈을 찾았다 (은행: 금융기관), 강가에 있는 은행나무(은행: 나무)
2) 이미지 처리
- 이미지의 특징을 CNN(합성곱 신경망)을 통해 벡터로 변환하여 이미지 검색이나 분류에 활용
- 이미지는 픽셀 값으로 이루어져 있으며, 일반적으로 딥러닝 모델을 사용해 벡터로 변환된다.
- CNN 기반
- 입력 이미지를 CNN에 통과 → 마지막 Fully Connected Layer 전에 있는 벡터를 추출 → 이미지의 임베딩 벡터로 사용
- 예: 동ㅇ딜한 강아지 사진은 유사한 벡터를 가짐
- ResNet, EfficientNet 등의 사전 학습 모델 사용
- ResNet-50, EfficientNet과 같은 모델을 사용해 벡터를 추출할 수 있음
- 이미지 검색 시스템에서는 데이터베이스 내의 이미지들을 벡터로 변환한 후, 사용자가 업로드한 이미지와 가장 유사한 벡터를 찾아내는 방식으로 동작
2. 벡터 DB란?
- 벡터 데이터를 저장하고 관리하며, 특히 벡터 간의 유사도(거리)를 기반으로 데이터를 빠르게 검색할 수 있도록 최적화된 데이터베이스
- 유사도 검색: 사용자가 특정 쿼리 벡터를 입력하면 DB 내에서 가장 유사한 벡터를 빠르게 찾아낼 수 있다
- 대용량 데이터처리: 고차원 벡터를 대규모로 저장하고, 실시간 또는 근실시간으로 검색할 수 있도록 설계
- 추천 시스템, 이미지 및 영상 검색, 자연어 처리 기반 검색 엔진, 이상 탐지 및 클러스터링 등에 사용된다.
- 주요 벡터 DB 엔진
벡터 DB | 특징 |
FAISS | Facebook에서 개발한 오픈소스, 빠른 검색 가능 |
Milvus | 대규모 데이터 처리 가능, 다양한 인덱싱 지원 |
Pinecone | 클라우드 기반 벡터 DB, 관리형 서비스 |
Weaviate | 스키마 없는 데이터 모델 지원, AI 검색 가능 |
3. 벡터 검색에서 유사도 측정
- 코사인 유사도 : 두 벡터 방향이 얼마나 유사한지 측정
- 유클리드 거리 : 두 벡터 간의 직선 거리 측정
- 내적: 벡터의 내적을 계산하여 유사도 측정
4. 활용 사례
1) 추천 시스템
- 사용자의 선호도를 기반으로 맞춤형 콘텐츠를 제공하는 시스템
- 사용자의 행동, 리뷰, 관심사 등을 벡터화 한 후 유사한 벡터를 찾아 추천을 수행
- 영화추천: 영화의 장르, 출연 배우, 줄거리 등을 벡터 임베딩하여 유사한 영화를 추천
- 이미지 검색: 이미지를 CNN모델로 벡터화 후 저장된 벡터와 비교
- 자연어 검색: 사과를 검색하면 애플은 검색되지 않음 → 단순한 키워드 매칭 방식을 벡터로 변환해 유사한 문장 검색
- 챗봇: 사용자 질문을 BERT로 벡터 변환 → 기존 질문 데이터와 가장 유사한 질문을 검색
- 보안 및 이상탐지: 일반적인 카드 사용 패턴을 벡터화
'AI > AI 서비스 개발' 카테고리의 다른 글
[AI 서비스 개발] AI 에이전트란? (0) | 2025.03.03 |
---|---|
[AI 서비스 개발] Intent와 Slot, 가드레일 (0) | 2025.03.03 |
[AI 서비스 개발] DB 엔진, DB 세션, Redis 클라이언트 (0) | 2025.02.26 |
[AI 서비스 개발] Docker 멀티스테이지 빌드 (0) | 2025.02.23 |
[AI 서비스 개발] vscode 에디터로 디버깅, callstack, 브레이크 포인트, logging (0) | 2025.02.21 |
- Total
- Today
- Yesterday
- 영어회화
- 오블완
- 아침운동
- 경제
- 30분
- Python
- opic
- 습관
- 스크랩
- 오픽
- 줄넘기
- 운동
- 프로그래머스
- C언어
- ChatGPT
- Ai
- 루틴
- 티스토리챌린지
- SQL
- 아침
- 빅데이터 분석기사
- 다이어트
- 갓생
- 미라클모닝
- 고득점 Kit
- 기초
- 뉴스
- 실기
- llm
- IH
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |