- 감정 임베딩을 ChromaDB에 통합하는 방안 추가 - 함수형 프로그래밍 100% 원칙 유지 (베이지안은 도구로만) - 불필요한 코드 예시 대폭 제거 - 엔트로피 특이점 포착 개념 강화 - 수학-임베딩-LLM 3중 구조 명확화 Co-Authored-By: Claude <noreply@anthropic.com>
169 lines
5.6 KiB
Markdown
169 lines
5.6 KiB
Markdown
# 로빙 감정 시스템 설계도 - 함수형 + 베이지안 적응형
|
||
|
||
**작성일**: 2025-08-07 (2025-08-08 개정)
|
||
**작성자**: happybell80 & Claude
|
||
**상태**: 감정 임베딩 통합, 하드코딩 완전 제거
|
||
|
||
## 1. 핵심 철학
|
||
|
||
### 설계 원칙
|
||
- **감정은 시공간의 엔트로피 변화다**: 감정 벡터의 엔트로피가 증가하는 방향이 시간, 벡터 차원이 공간
|
||
- **엔트로피 특이점을 포착한다**: 시간이 흘러도 무질서해지지 않는 감정이 중요한 기억
|
||
- **함수형 프로그래밍 100%**: 순수 함수와 I/O 분리, 불변 데이터 구조
|
||
- **베이지안으로 불확실성 관리**: 모든 파라미터는 확률 분포로 표현되고 학습됨
|
||
|
||
## 2. 감정 상태 구조
|
||
|
||
### 2.1 기본 구조
|
||
- **VAD 3차원**: Valence(쾌-불쾌), Arousal(활성화), Dominance(통제감)
|
||
- **감정 임베딩**: 768차원 벡터 (사전학습 모델 사용)
|
||
- **엔트로피 궤적**: 시간에 따른 엔트로피 변화 추적
|
||
- **베이지안 파라미터**: Beta, Gamma, Dirichlet 분포로 학습
|
||
|
||
### 2.2 감정 동역학
|
||
- 감정 변화율 = α(흡수율) × 평가 - δ(감쇠율) × 현재감정
|
||
- α와 δ는 Beta 분포에서 Thompson Sampling
|
||
- 사용자 피드백으로 사후분포 업데이트
|
||
|
||
## 3. 감정 임베딩 활용
|
||
|
||
### 3.1 임베딩 획득
|
||
- **사전학습 모델**: EmoRoBERTa, GoEmotions BERT 등 활용
|
||
- **도메인 파인튜닝**: 로빙 대화 로그로 continual learning
|
||
- **대조학습**: 유사 감정은 가깝게, 반대 감정은 멀게
|
||
|
||
### 3.2 ChromaDB 통합
|
||
- **저장 구조**:
|
||
- 감정 임베딩 벡터 (768차원)
|
||
- VAD 값 (3차원)
|
||
- 엔트로피 점수
|
||
- 타임스탬프와 메타데이터
|
||
|
||
- **검색 전략**:
|
||
1. 현재 감정 임베딩으로 top-k 코사인 유사도 검색
|
||
2. 엔트로피 기반 중요도 필터링
|
||
3. 시간 가중치 적용
|
||
4. 베이지안 결합으로 최종 선택
|
||
|
||
### 3.3 임베딩 기반 클러스터링
|
||
- DBSCAN으로 감정 클러스터 발견
|
||
- 사용자별 감정 어트랙터 맵핑
|
||
- 클러스터별 공감 전략 사전 계산
|
||
|
||
## 4. 수학-임베딩-LLM 통합 파이프라인
|
||
|
||
### 4.1 처리 흐름
|
||
1. **엔트로피 이상 탐지**: 시공간 엔트로피 변화율 계산
|
||
2. **임베딩 유사도 계산**: ChromaDB에서 근접 감정 검색
|
||
3. **LLM 의미 분석**: 불확실성이 높을 때만 호출
|
||
4. **베이지안 증거 결합**: 세 가지 신호를 확률적으로 통합
|
||
|
||
### 4.2 중요도 결정 방식
|
||
- 잠재 중요도 z ∈ {0,1}
|
||
- 관측: m(엔트로피), e(임베딩 거리), l(LLM 점수)
|
||
- 베이지안 추론으로 P(z=1|m,e,l) 계산
|
||
- Thompson Sampling으로 저장/무시 결정
|
||
|
||
## 5. 베이지안 학습 시스템
|
||
|
||
### 5.1 파라미터 학습
|
||
- **윈도우 크기**: Poisson 분포, TD-Error 기반 적응
|
||
- **가중치**: Dirichlet 분포, 사용자 피드백으로 업데이트
|
||
- **임계값**: Beta 분포, 성능 지표로 조정
|
||
|
||
### 5.2 계층적 모델
|
||
- **조직 레벨**: 글로벌 사전분포
|
||
- **팀 레벨**: 팀별 특성 학습
|
||
- **개인 레벨**: 개인화된 사후분포
|
||
|
||
### 5.3 온라인 업데이트
|
||
- 실시간 사후분포 갱신
|
||
- 지연 피드백 처리 (backward update)
|
||
- 불확실성 기반 탐색-활용 균형
|
||
|
||
## 6. 감정-기억 통합
|
||
|
||
### 6.1 저장 결정
|
||
- 엔트로피 특이점 검사
|
||
- 임베딩 클러스터 거리
|
||
- 베이지안 중요도 추론
|
||
- Thompson Sampling으로 최종 결정
|
||
|
||
### 6.2 회상 메커니즘
|
||
- 임베딩 기반 빠른 검색 (ChromaDB)
|
||
- 엔트로피 가중 재순위화
|
||
- MMR로 다양성 보장
|
||
- 시간 감쇠 적용
|
||
|
||
## 7. 공감 시스템
|
||
|
||
### 7.1 전략 선택
|
||
- 감정 임베딩 거리 계산
|
||
- 전략별 효과성 (Beta 분포)
|
||
- Thompson Sampling으로 전략 선택
|
||
- 사용자 반응으로 업데이트
|
||
|
||
### 7.2 뉘앙스 감지
|
||
- 표면 텍스트 vs 행동 신호
|
||
- Hidden Markov Model로 잠재 감정 추론
|
||
- 신뢰도 기반 결정
|
||
|
||
## 8. 성능 지표
|
||
|
||
### 8.1 임베딩 품질
|
||
- **Triplet Accuracy**: 같은 감정이 임베딩 공간에서 가까운 비율
|
||
- **Retrieval NDCG@k**: 관련 기억 검색 정확도
|
||
- **클러스터 순도**: 감정 클러스터의 일관성
|
||
|
||
### 8.2 시스템 성능
|
||
- **엔트로피 감소율**: 중요 순간 포착 능력
|
||
- **베이지안 캘리브레이션**: 확률 예측의 정확도
|
||
- **적응 속도**: 사용자별 수렴 시간
|
||
|
||
## 9. 구현 우선순위
|
||
|
||
### Phase 1: 기초 구축
|
||
- 감정 임베딩 모델 선택 및 통합
|
||
- ChromaDB에 임베딩 저장 구조 구현
|
||
- 기본 엔트로피 계산기
|
||
|
||
### Phase 2: 통합 파이프라인
|
||
- 수학-임베딩-LLM 3중 구조
|
||
- 베이지안 증거 결합
|
||
- Thompson Sampling 구현
|
||
|
||
### Phase 3: 학습 시스템
|
||
- 온라인 사후분포 업데이트
|
||
- 계층적 베이지안 모델
|
||
- 사용자별 개인화
|
||
|
||
### Phase 4: 최적화
|
||
- 임베딩 차원 축소 (필요시)
|
||
- 추론 속도 개선
|
||
- 메모리 효율화
|
||
|
||
## 10. 기술 스택
|
||
|
||
- **임베딩 모델**: Hugging Face Transformers
|
||
- **벡터 DB**: ChromaDB (이미 사용 중)
|
||
- **베이지안 추론**: Pyro (경량) 또는 TFP (대규모)
|
||
- **함수형 구조**: 순수 함수 + I/O 분리 패턴
|
||
|
||
## 11. 주요 결정 사항
|
||
|
||
1. **임베딩 모델 선택**:
|
||
- 한국어 지원 여부
|
||
- 모델 크기 vs 성능
|
||
- 라이선스
|
||
|
||
2. **임베딩 차원**:
|
||
- 768차원 그대로 vs PCA 축소
|
||
- 저장 공간 vs 표현력
|
||
|
||
3. **업데이트 주기**:
|
||
- 실시간 vs 배치
|
||
- 리소스 vs 반응성
|
||
|
||
---
|
||
|
||
*이 설계는 함수형 프로그래밍 원칙을 지키면서 베이지안 추론과 감정 임베딩을 통합한 적응형 시스템입니다. 하드코딩 없이 데이터에서 학습하며, 엔트로피 특이점을 포착해 중요한 감정을 기억합니다.* |