Add 51123 centroid initialization and performance analysis

- pgvector extension 설치 완료
- coldmail_embedding_clusters 테이블 생성 및 초기화
- 160개 샘플로 centroid 계산 (coldmail 80, normal 80)
- 임베딩 필터 성능 테스트: 75% 정확도
- 웹 검색 기반 개선 방안 조사 (2025 최신 기법)
- 결론: 하이브리드 접근(임베딩 1차 → LLM 2차) 적합

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
happybell80 2025-10-14 16:47:16 +09:00
parent 8cbf999ad5
commit 1ff7c14ce0

View File

@ -131,3 +131,92 @@
### 피드백 루프의 중요성
- 교훈: 실시간 학습 가능한 구조가 장기적으로 유리
---
## 51123 서버 Centroid 초기화 작업
### pgvector Extension 설치
```bash
# PostgreSQL 개발 헤더 설치
sudo apt install -y postgresql-server-dev-14
# pgvector 소스 빌드
cd /tmp
git clone --branch v0.7.0 https://github.com/pgvector/pgvector.git
cd pgvector
make && sudo make install
# DB에 extension 활성화
sudo -u postgres psql -d main_db -c "CREATE EXTENSION IF NOT EXISTS vector;"
```
### coldmail_embedding_clusters 테이블 생성
```sql
CREATE TABLE IF NOT EXISTS coldmail_embedding_clusters (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
embedding VECTOR(384) NOT NULL,
label TEXT NOT NULL UNIQUE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
-- robeings 사용자 권한 부여
GRANT SELECT ON coldmail_embedding_clusters TO robeings;
```
### Centroid 초기화 스크립트
**위치**: `/home/admin/scripts/init_coldmail_embeddings.py`
**샘플 데이터** (총 160개):
- Coldmail 80개: 투자/IR/VC 키워드 50개 + 파일명 형식 30개
- Normal 80개: 회의/공지/업무 키워드 50개 + 파일명 형식 30개
**실행 결과**:
```
coldmail centroid: 80개 샘플 평균, 차원=384
normal centroid: 80개 샘플 평균, 차원=384
✅ coldmail_embedding_clusters 테이블 centroid 업데이트 완료
```
### 임베딩 필터 성능 테스트
**테스트 결과** (고유명사 제외):
```
✅ 투자제안서 검토 요청: coldmail 0.736 > normal 0.441
✅ pitch deck 공유: coldmail 0.297 > normal 0.230
✅ 사업계획서 검토: coldmail 0.676 > normal 0.566
✅ 벤처캐피탈 투자 제안: coldmail 0.652 > normal 0.294
❌ 회사소개서 첨부: coldmail 0.534 < normal 0.661
❌ IR 행사 초대: coldmail 0.622 < normal 0.684
❌ 영수증 발급: coldmail 0.605 > normal 0.590 (오판)
정확도: 9/12 (75.0%)
```
**실패 원인 분석**:
- "회사소개서", "IR 행사" 같은 단어가 normal 패턴과도 겹침
- 고유명사("올굿즈컴퍼니", "빅웨이브")는 임베딩으로 처리 불가
- 단순 centroid + cosine similarity의 한계
### 개선 방안 조사 (Web Search 2025)
**1. Confidence-Driven Centroid**
- 잘못 분류된 샘플로 centroid 반복 업데이트
- 현재: 단순 평균 → 개선: 오분류 샘플 가중치 증가
**2. k-Nearest Centroid Neighbor (kNCN)**
- 단순 cosine similarity 대신 k개 이웃 고려
- Proximal Ratio로 노이즈 샘플 제거
**3. Random Forest > Centroid**
- 임베딩 기반 분류는 Random Forest가 centroid보다 정확도 높음
- 75% → 85%+ 개선 가능
**4. Domain-Specific Fine-tuning**
- 범용 임베딩 모델(multilingual-MiniLM)은 coldmail 도메인에 최적화 안 됨
- coldmail 특화 임베딩 모델 필요
**결론**:
- 단순 centroid 방식은 75% 정확도 한계
- 하이브리드 접근(임베딩 1차 → LLM 2차)이 더 효율적
- Phase 1 임베딩은 보조 역할, Phase 2 LLM이 최종 판단