AI 모델 개발: 검색/추천
ㅁ 검색/추천
1. Dense Embedding
ㅇ 정의:
– 고차원 연속 벡터 공간에 데이터를 임베딩하여 의미적 유사성을 기반으로 검색하는 방식.
ㅇ 특징:
– 단어, 문장, 이미지 등의 의미를 벡터로 표현.
– 코사인 유사도, 유클리드 거리 등을 활용.
– 의미 기반 검색에 강점.
ㅇ 적합한 경우:
– 동의어나 문맥이 중요한 검색.
– 추천 시스템에서 유사 취향 사용자/아이템 매칭.
ㅇ 시험 함정:
– 키워드 정확 일치 기반 검색과 혼동.
– 차원 축소 시 정보 손실 가능성 간과.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “의미적 유사성을 반영하는 검색에 적합하다.”
– X: “정확한 키워드 일치만을 기반으로 한다.”
1.1 BERT Embedding
ㅇ 정의:
– BERT 모델을 사용하여 문장/단어의 문맥 기반 임베딩을 생성.
ㅇ 특징:
– 사전학습된 언어모델 활용.
– 문맥에 따라 단어 의미 변화 반영.
ㅇ 적합한 경우:
– 자연어 질의-문서 매칭.
ㅇ 시험 함정:
– Word2Vec과 같은 정적 임베딩과 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “문맥에 따라 단어 벡터가 변한다.”
– X: “단어당 하나의 고정 벡터만 가진다.”
================
2. Sparse Embedding
ㅇ 정의:
– 대부분의 차원이 0인 희소 벡터로 표현하는 방식.
ㅇ 특징:
– 전통적 TF-IDF, BM25 등이 대표적.
– 키워드 기반 검색에 강점.
ㅇ 적합한 경우:
– 정확 키워드 매칭 필요.
– 법률 문서, 기술 문서 검색.
ㅇ 시험 함정:
– 의미 유사성 검색과 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “단어 출현 빈도 기반 가중치를 사용한다.”
– X: “문맥 의미를 반영하여 벡터를 생성한다.”
2.1 BM25
ㅇ 정의:
– 단어 빈도와 문서 길이를 고려한 검색 가중치 알고리즘.
ㅇ 특징:
– TF-IDF 개선 버전.
ㅇ 적합한 경우:
– 키워드 중심 검색.
ㅇ 시험 함정:
– 벡터 간 거리 계산 방식과 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “문서 길이에 따라 가중치를 조정한다.”
– X: “코사인 유사도를 사용한다.”
================
3. Hybrid VectorDB
ㅇ 정의:
– Dense와 Sparse 임베딩을 결합하여 검색 성능을 높이는 벡터 데이터베이스.
ㅇ 특징:
– 의미 검색과 키워드 검색 동시 활용.
– 다양한 쿼리 유형에 유연.
ㅇ 적합한 경우:
– 정확성과 재현율 모두 중요한 검색.
ㅇ 시험 함정:
– 단일 방식보다 항상 빠르다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “의미와 키워드 기반 검색을 함께 수행한다.”
– X: “희소 벡터만을 사용한다.”
3.1 Multi-Vector Retrieval
ㅇ 정의:
– 하나의 문서나 쿼리를 여러 벡터로 표현하여 검색.
ㅇ 특징:
– 다양한 의미 측면 반영.
ㅇ 적합한 경우:
– 복합 의미를 가진 질의.
ㅇ 시험 함정:
– 단일 벡터 표현과 동일하게 취급.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “하나의 문서를 여러 벡터로 인덱싱한다.”
– X: “문서당 하나의 벡터만 사용한다.”
================
4. Approximate Nearest Neighbor
ㅇ 정의:
– 최근접 이웃 검색을 근사적으로 수행하여 속도를 높이는 기법.
ㅇ 특징:
– 대규모 데이터셋에서 실시간 검색 가능.
– 정확도와 속도 간 트레이드오프.
ㅇ 적합한 경우:
– 대량 데이터 실시간 추천.
ㅇ 시험 함정:
– 항상 정확한 최근접 이웃을 찾는다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “속도를 위해 일부 정확도를 희생한다.”
– X: “정확한 최근접 이웃만 반환한다.”
4.1 HNSW (Hierarchical Navigable Small World)
ㅇ 정의:
– ANN을 위한 그래프 기반 탐색 알고리즘.
ㅇ 특징:
– 계층적 그래프를 이용해 빠른 탐색.
ㅇ 적합한 경우:
– 고차원 대규모 벡터 검색.
ㅇ 시험 함정:
– 트리 기반 탐색과 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “계층적 그래프 구조를 사용한다.”
– X: “이진 탐색 트리를 사용한다.”
ㅁ 추가 학습 내용
학습 정리
1. Dense Embedding vs Sparse Embedding
– 검색 속도: Dense는 벡터 연산 기반으로 ANN(Approximate Nearest Neighbor)에서 빠른 검색 가능. Sparse는 역색인 기반으로 특정 키워드 매칭 시 빠름.
– 메모리 사용량: Dense는 고차원 실수 벡터로 메모리 사용량이 큼. Sparse는 대부분 0인 희소 구조로 효율적 저장 가능.
– 확장성: Dense는 대규모 데이터셋에서 ANN 기법 활용 시 확장성 좋으나, 차원 수 증가 시 속도 저하. Sparse는 텍스트 기반에서 확장 용이하나 의미 기반 검색에는 한계.
2. Hybrid VectorDB
– 쿼리 라우팅 전략: 의미 검색 우선 후 키워드 검색으로 보완, 또는 반대 방식 선택 가능.
– 랭킹 통합 방식: BM25 점수(키워드 매칭)와 코사인 유사도(의미 유사도) 결합. 가중치 조정으로 검색 품질 최적화.
3. Approximate Nearest Neighbor(ANN) 알고리즘 비교
– HNSW: 그래프 기반, 높은 정확도, 빌드 시간 길고 메모리 사용량 큼.
– Annoy: 트리 기반, 빌드 속도 빠르고 메모리 효율적이나 정확도 낮을 수 있음.
– FAISS: Facebook 개발, GPU 지원, 대규모 데이터 처리에 강점. 인덱스 유형에 따라 속도·정확도 조절 가능.
– 인덱스 빌드 시간: 알고리즘별로 상이, HNSW가 상대적으로 오래 걸림.
– 업데이트 비용: 동적 업데이트 지원 여부와 효율 차이 존재.
– 검색 정확도: HNSW > FAISS(고정밀 모드) > Annoy(속도 우선 모드).
4. 응용형 문제 대비 포인트
– 벡터 차원 수 증가 시 검색 속도: 차원 수가 커질수록 연산량 증가로 속도 저하. ANN에서도 영향 있음.
– 희소 벡터 vs 밀집 벡터 저장 효율성: 희소 벡터는 인덱스+값 형태로 저장, 밀집 벡터는 모든 차원 값 저장 필요. 같은 차원 수에서 희소 벡터가 메모리 효율적.
시험 대비 체크리스트
– Dense와 Sparse의 검색 속도, 메모리 사용량, 확장성 차이를 설명할 수 있는가?
– Hybrid VectorDB의 쿼리 라우팅 전략과 랭킹 통합 방식을 구체적으로 예시와 함께 설명할 수 있는가?
– HNSW, Annoy, FAISS의 특징, 장단점, 빌드 시간, 업데이트 비용, 검색 정확도를 비교할 수 있는가?
– 벡터 차원 수 증가가 검색 속도에 미치는 영향을 설명할 수 있는가?
– 희소 벡터와 밀집 벡터의 저장 효율성 차이를 수치 예시로 제시할 수 있는가?