DOCS/ideas/250807_로빙_감정_시스템_설계도.md
happybell80 4b9cb34203 docs: 감정 시스템 설계 문서 수정 - VAD 제거 및 기존 내용 보존
- VAD 3차원 모델 제거 (학술적 근거 부족)
- 768차원 임베딩을 핵심 표현으로 유지
- Inside Out 9개 감정을 해석 레이어로 추가
- 기존 엔트로피, 베이지안, ChromaDB 구조 모두 보존
- 예측-평가 피드백 루프 통합
- 섹션 번호 정리
2025-08-08 10:36:22 +09:00

343 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 로빙 감정 시스템 설계도 - 함수형 + 베이지안 적응형
**작성일**: 2025-08-07 (2025-08-08 개정)
**작성자**: happybell80 & Claude
**상태**: Inside Out 2축 모델 통합, 예측-평가 피드백 루프 추가
## 1. 핵심 철학
### 설계 원칙
- **감정은 시공간의 엔트로피 변화다**: 감정 벡터의 엔트로피가 증가하는 방향이 시간, 벡터 차원이 공간
- **엔트로피 특이점을 포착한다**: 시간이 흘러도 무질서해지지 않는 감정이 중요한 기억
- **함수형 프로그래밍 100%**: 순수 함수와 I/O 분리, 불변 데이터 구조
- **베이지안으로 불확실성 관리**: 모든 파라미터는 확률 분포로 표현되고 학습됨
- **예측-평가 피드백 루프**: 사용자 반응을 예측하고 실제와 비교하며 진화
## 2. 감정 상태 구조
### 2.1 기본 구조
- **감정 임베딩**: 768차원 벡터 (사전학습 모델 사용) - 핵심 표현
- **엔트로피 궤적**: 시간에 따른 엔트로피 변화 추적
- **베이지안 파라미터**: Beta, Gamma, Dirichlet 분포로 학습
### 2.2 Inside Out 기반 2축 감정 모델
- **기본정서 축 (에크먼, Inside Out 1)**:
- Joy(기쁨), Sadness(슬픔), Anger(분노), Fear(두려움), Disgust(혐오)
- 즉각적 반응, 100ms 내 처리
- 진화적 기반의 보편적 정서
- **사회기능 축 (켈트너/다무어, Inside Out 2)**:
- Anxiety(불안), Envy(질투), Embarrassment(당혹), Ennui(권태)
- 미래 예측과 사회적 비교, 500ms 처리
- 사춘기 및 조직 맥락의 의사결정
- **통합 방식**: 768차원 임베딩에서 9개 감정 레이블 추출
### 2.3 감정 동역학
- 감정 변화율 = α(흡수율) × 평가 - δ(감쇠율) × 현재감정
- α와 δ는 Beta 분포에서 Thompson Sampling
- 기본정서는 빠른 α, 사회기능은 느린 α로 차별화
- 사용자 피드백으로 사후분포 업데이트
## 3. 감정 임베딩 활용
### 3.1 임베딩 획득
- **사전학습 모델**: EmoRoBERTa, GoEmotions BERT 등 활용
- **도메인 파인튜닝**: 로빙 대화 로그로 continual learning
- **대조학습**: 유사 감정은 가깝게, 반대 감정은 멀게
### 3.2 ChromaDB 통합
- **저장 구조**:
- 감정 임베딩 벡터 (768차원)
- Inside Out 감정 분포 (9차원: 기본 5 + 사회 4)
- 엔트로피 점수
- 타임스탬프와 메타데이터
- **검색 전략**:
1. 현재 감정 임베딩으로 top-k 코사인 유사도 검색
2. 엔트로피 기반 중요도 필터링
3. 시간 가중치 적용
4. 베이지안 결합으로 최종 선택
### 3.3 임베딩 기반 클러스터링
- DBSCAN으로 감정 클러스터 발견
- 사용자별 감정 어트랙터 맵핑
- 클러스터별 공감 전략 사전 계산
## 4. 예측-평가 피드백 루프
### 4.1 예측 시스템
**예측 대상**:
- 사용자의 감정 변화 (기본정서 → 사회기능 전환)
- 응답 길이와 패턴 (짧은 답변 vs 긴 대화)
- 다음 주제 전환 확률
- 대화 종료 가능성
**베이지안 예측 모델**:
```python
# 기본정서 분포 (에크먼 5개)
P(basic_emotion_t+1 | history) = Dirichlet([joy, sadness, anger, fear, disgust])
# 사회기능 분포 (켈트너 4개)
P(social_emotion_t+1 | context) = Dirichlet([anxiety, envy, embarrassment, ennui])
# Thompson Sampling으로 예측
predicted_emotion = sample_from_posterior()
```
### 4.2 평가 시스템
**시공간 엔트로피 활용**:
- **시간축**: 예측과 실제의 시간차 엔트로피
- **공간축**: 768차원 임베딩 공간에서의 예측 오차
- **특이점**: 예측이 크게 빗나간 순간 = 중요 학습 기회
**오차 계산**:
```
예측 오차 = KL_divergence(predicted_distribution, actual_observation)
엔트로피 증가 = H(t+1) - H(t)
학습 신호 = 오차 × 엔트로피_증가율
```
## 5. 수학-임베딩-LLM 통합 파이프라인
### 5.1 처리 흐름
1. **2축 감정 감지**: 기본정서(100ms) + 사회기능(500ms) 병렬 처리
2. **엔트로피 이상 탐지**: 시공간 엔트로피 변화율 계산
3. **임베딩 유사도 계산**: ChromaDB에서 근접 감정 검색
4. **예측 생성**: 사용자 다음 반응 예측
5. **LLM 의미 분석**: 불확실성이 높을 때만 호출
6. **베이지안 증거 결합**: 모든 신호를 확률적으로 통합
7. **평가 및 학습**: 예측 vs 실제 비교, 사후분포 업데이트
### 5.2 시퀀스 다이어그램
```mermaid
sequenceDiagram
participant User
participant Pipeline
participant Basic as 기본정서<br/>(에크먼)
participant Social as 사회기능<br/>(켈트너)
participant Predict as 예측 모듈
participant ChromaDB
participant LLM
participant Eval as 평가 모듈
User->>Pipeline: 텍스트 입력
par 2축 병렬 처리
Pipeline->>Basic: 즉각 반응 분석
Basic-->>Pipeline: Joy/Sadness/Anger/Fear/Disgust
and
Pipeline->>Social: 맥락 분석
Social-->>Pipeline: Anxiety/Envy/Embarrassment/Ennui
end
Pipeline->>Predict: 현재 감정 상태
Predict->>Predict: 베이지안 추론
Predict-->>Pipeline: 사용자 반응 예측
Pipeline->>ChromaDB: 감정 임베딩 검색
ChromaDB-->>Pipeline: 유사 감정 사례
alt 불확실성 높음
Pipeline->>LLM: 의미 분석 요청
LLM-->>Pipeline: 감정 해석
end
Pipeline-->>User: 감정 인식 답변
User-->>Pipeline: 실제 반응
Pipeline->>Eval: 예측 vs 실제
Eval->>Eval: 엔트로피 오차 계산
Eval-->>Predict: 사후분포 업데이트
```
### 5.3 중요도 결정 방식
- 잠재 중요도 z ∈ {0,1}
- 관측: m(엔트로피), e(임베딩 거리), l(LLM 점수)
- 베이지안 추론으로 P(z=1|m,e,l) 계산
- Thompson Sampling으로 저장/무시 결정
## 6. 베이지안 학습 시스템
### 6.1 파라미터 학습
- **윈도우 크기**: Poisson 분포, TD-Error 기반 적응
- **가중치**: Dirichlet 분포, 사용자 피드백으로 업데이트
- **임계값**: Beta 분포, 성능 지표로 조정
### 6.2 계층적 모델
- **조직 레벨**: 글로벌 사전분포
- **팀 레벨**: 팀별 특성 학습
- **개인 레벨**: 개인화된 사후분포
### 6.3 온라인 업데이트
- 실시간 사후분포 갱신
- 지연 피드백 처리 (backward update)
- 불확실성 기반 탐색-활용 균형
### 6.4 학습 플로우
```mermaid
flowchart TD
A[사용자 피드백] --> B{피드백 타입}
B -->|명시적| C[즉시 업데이트]
B -->|암묵적| D[증거 누적]
C --> E[사후분포 계산]
D --> F[신뢰도 가중치]
F --> E
E --> G{계층 레벨}
G -->|개인| H[개인 파라미터 업데이트]
G -->|팀| I[팀 사전분포 조정]
G -->|조직| J[글로벌 사전분포 조정]
H --> K[Thompson Sampling]
I --> K
J --> K
K --> L[다음 행동 결정]
```
## 7. 감정-기억 통합
### 7.1 저장 결정
- 엔트로피 특이점 검사
- 임베딩 클러스터 거리
- 베이지안 중요도 추론
- Thompson Sampling으로 최종 결정
### 7.2 회상 메커니즘
- 임베딩 기반 빠른 검색 (ChromaDB)
- 엔트로피 가중 재순위화
- MMR로 다양성 보장
- 시간 감쇠 적용
### 7.3 기억 회상 시퀀스
```mermaid
sequenceDiagram
participant Query as 현재 감정
participant ChromaDB
participant Filter as 필터링
participant Ranking as 재순위화
participant Response
Query->>ChromaDB: 감정 임베딩 벡터
ChromaDB->>ChromaDB: 코사인 유사도 검색
ChromaDB-->>Filter: top-100 후보
Filter->>Filter: 엔트로피 점수 확인
Filter->>Filter: 시간 가중치 적용
Filter-->>Ranking: 필터링된 후보 (20-30개)
Ranking->>Ranking: MMR 다양성 계산
Ranking->>Ranking: 베이지안 결합
Ranking-->>Response: 최종 5-10개 기억
Response-->>Query: 관련 기억 반환
```
## 8. 공감 시스템
### 8.1 Inside Out 기반 공감 전략
**기본정서 대응**:
- Joy → 함께 기뻐하기, 축하
- Sadness → 위로, 경청
- Anger → 이해와 진정
- Fear → 안심시키기, 지지
- Disgust → 경계 존중
**사회기능 대응**:
- Anxiety → "불안은 준비 신호" (Inside Out 2 통찰)
- Envy → 성장 동기로 전환
- Embarrassment → 정상화, 수용
- Ennui → 새로운 자극 제안
### 8.2 예측 기반 선제적 공감
- 감정 전환 예측 (Sadness → Anger 가능성)
- 선제적 개입 (전환 전 완화)
- Thompson Sampling으로 전략 선택
- 실제 효과로 베이지안 업데이트
## 9. 성능 지표
### 9.1 임베딩 품질
- **Triplet Accuracy**: 같은 감정이 임베딩 공간에서 가까운 비율
- **Retrieval NDCG@k**: 관련 기억 검색 정확도
- **클러스터 순도**: 감정 클러스터의 일관성
### 9.2 예측 정확도
- **KL Divergence**: 예측 vs 실제 감정 분포
- **시간 예측 오차**: 감정 전환 타이밍
- **학습 수렴 속도**: 예측 개선 속도
### 9.3 시스템 성능
- **엔트로피 감소율**: 중요 순간 포착 능력
- **베이지안 캘리브레이션**: 확률 예측의 정확도
- **적응 속도**: 사용자별 수렴 시간
## 10. 구현 우선순위
### Phase 1: 기초 구축
- Inside Out 9개 감정 정의 (기본 5 + 사회 4)
- 감정 임베딩 모델 선택 및 통합
- ChromaDB에 2축 감정 저장 구조
- 기본 엔트로피 계산기
### Phase 2: 예측-평가 시스템
- 기본정서 예측 모듈 (100ms)
- 사회기능 예측 모듈 (500ms)
- 예측 오차 계산 및 로깅
- 엔트로피 특이점 탐지
### Phase 3: 통합 파이프라인
- 2축 병렬 처리 구현
- 베이지안 증거 결합
- Thompson Sampling 구현
- 실시간 사후분포 업데이트
### Phase 4: 학습 및 최적화
- 온라인 학습 시스템
- 개인화된 감정 모델
- 추론 속도 개선
- 메모리 효율화
## 11. 기술 스택
- **임베딩 모델**: Hugging Face Transformers
- **벡터 DB**: ChromaDB (이미 사용 중)
- **베이지안 추론**: Pyro (경량) 또는 TFP (대규모)
- **함수형 구조**: 순수 함수 + I/O 분리 패턴
## 12. 주요 결정 사항
1. **임베딩 모델 선택**:
- 한국어 지원 여부
- 모델 크기 vs 성능
- 라이선스
2. **임베딩 차원**:
- 768차원 그대로 vs PCA 축소
- 저장 공간 vs 표현력
3. **업데이트 주기**:
- 실시간 vs 배치
- 리소스 vs 반응성
## 13. Inside Out 모델의 학술적 근거
### 과학 자문진
- **폴 에크먼** (UC San Francisco): 기본정서 이론 창시자
- **대처 켈트너** (UC Berkeley): 사회기능 감정 이론
- **리사 다무어** (임상심리학): 청소년 발달과 불안
### 핵심 통찰
1. **감정은 다층적**: 즉각적 기본정서 + 사회적 메타정서
2. **불안은 기능적**: 미래 대비 신호로 재해석 (Inside Out 2)
3. **감정 충돌이 성장**: 예측 오차가 클 때 학습 기회
4. **개성은 감정 혼합비**: 같은 상황, 다른 감정 조합
---
*이 설계는 픽사 Inside Out의 2축 감정 모델을 기반으로, 함수형 프로그래밍과 베이지안 추론을 통합한 예측-평가 적응형 시스템입니다. 로빙이 사용자 반응을 예측하고 평가하며 진화하는 진정한 디지털 동료가 됩니다.*