- Inside Out 기반 9개 감정 체계 (기본 5 + 사회 4) - 에크먼 기본정서 축과 켈트너 사회기능 축 병렬 처리 - 예측-평가 피드백 루프 추가 (베이지안 + 엔트로피) - 불안을 기능적 정서로 재해석 (Inside Out 2 통찰) - 학술적 근거 및 과학 자문진 명시
11 KiB
11 KiB
로빙 감정 시스템 설계도 - 함수형 + 베이지안 적응형
작성일: 2025-08-07 (2025-08-08 개정)
작성자: happybell80 & Claude
상태: Inside Out 2축 모델 통합, 예측-평가 피드백 루프 추가
1. 핵심 철학
설계 원칙
- 감정은 시공간의 엔트로피 변화다: 감정 벡터의 엔트로피가 증가하는 방향이 시간, 벡터 차원이 공간
- 엔트로피 특이점을 포착한다: 시간이 흘러도 무질서해지지 않는 감정이 중요한 기억
- 함수형 프로그래밍 100%: 순수 함수와 I/O 분리, 불변 데이터 구조
- 베이지안으로 불확실성 관리: 모든 파라미터는 확률 분포로 표현되고 학습됨
- 예측-평가 피드백 루프: 사용자 반응을 예측하고 실제와 비교하며 진화
2. 감정 상태 구조
2.1 Inside Out 기반 2축 감정 모델
-
기본정서 축 (에크먼, Inside Out 1):
- Joy(기쁨), Sadness(슬픔), Anger(분노), Fear(두려움), Disgust(혐오)
- 즉각적 반응, 100ms 내 처리
- 진화적 기반의 보편적 정서
-
사회기능 축 (켈트너/다무어, Inside Out 2):
- Anxiety(불안), Envy(질투), Embarrassment(당혹), Ennui(권태)
- 미래 예측과 사회적 비교, 500ms 처리
- 사춘기 및 조직 맥락의 의사결정
-
감정 임베딩: 768차원 벡터 (기본정서 + 사회기능 통합 표현)
-
엔트로피 궤적: 시간에 따른 엔트로피 변화 추적
-
베이지안 파라미터: Dirichlet 분포로 감정 혼합 모델링
2.2 감정 동역학
- 감정 변화율 = α(흡수율) × 평가 - δ(감쇠율) × 현재감정
- α와 δ는 Beta 분포에서 Thompson Sampling
- 기본정서는 빠른 α, 사회기능은 느린 α로 차별화
3. 감정 임베딩 활용
3.1 임베딩 획득
- 사전학습 모델: EmoRoBERTa, GoEmotions BERT 등 활용
- 도메인 파인튜닝: 로빙 대화 로그로 continual learning
- 대조학습: 유사 감정은 가깝게, 반대 감정은 멀게
3.2 ChromaDB 통합
-
저장 구조:
- 감정 임베딩 벡터 (768차원)
- VAD 값 (3차원)
- 엔트로피 점수
- 타임스탬프와 메타데이터
-
검색 전략:
- 현재 감정 임베딩으로 top-k 코사인 유사도 검색
- 엔트로피 기반 중요도 필터링
- 시간 가중치 적용
- 베이지안 결합으로 최종 선택
3.3 임베딩 기반 클러스터링
- DBSCAN으로 감정 클러스터 발견
- 사용자별 감정 어트랙터 맵핑
- 클러스터별 공감 전략 사전 계산
4. 예측-평가 피드백 루프
4.1 예측 시스템
예측 대상:
- 사용자의 감정 변화 (기본정서 → 사회기능 전환)
- 응답 길이와 패턴 (짧은 답변 vs 긴 대화)
- 다음 주제 전환 확률
- 대화 종료 가능성
베이지안 예측 모델:
# 기본정서 분포 (에크먼 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 처리 흐름
- 2축 감정 감지: 기본정서(100ms) + 사회기능(500ms) 병렬 처리
- 엔트로피 이상 탐지: 시공간 엔트로피 변화율 계산
- 임베딩 유사도 계산: ChromaDB에서 근접 감정 검색
- 예측 생성: 사용자 다음 반응 예측
- LLM 의미 분석: 불확실성이 높을 때만 호출
- 베이지안 증거 결합: 모든 신호를 확률적으로 통합
- 평가 및 학습: 예측 vs 실제 비교, 사후분포 업데이트
5.2 시퀀스 다이어그램
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: 사후분포 업데이트
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)
- 불확실성 기반 탐색-활용 균형
5.4 학습 플로우
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[다음 행동 결정]
6. 감정-기억 통합
6.1 저장 결정
- 엔트로피 특이점 검사
- 임베딩 클러스터 거리
- 베이지안 중요도 추론
- Thompson Sampling으로 최종 결정
6.2 회상 메커니즘
- 임베딩 기반 빠른 검색 (ChromaDB)
- 엔트로피 가중 재순위화
- MMR로 다양성 보장
- 시간 감쇠 적용
6.3 기억 회상 시퀀스
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: 관련 기억 반환
7. 공감 시스템
7.1 Inside Out 기반 공감 전략
기본정서 대응:
- Joy → 함께 기뻐하기, 축하
- Sadness → 위로, 경청
- Anger → 이해와 진정
- Fear → 안심시키기, 지지
- Disgust → 경계 존중
사회기능 대응:
- Anxiety → "불안은 준비 신호" (Inside Out 2 통찰)
- Envy → 성장 동기로 전환
- Embarrassment → 정상화, 수용
- Ennui → 새로운 자극 제안
7.2 예측 기반 선제적 공감
- 감정 전환 예측 (Sadness → Anger 가능성)
- 선제적 개입 (전환 전 완화)
- Thompson Sampling으로 전략 선택
- 실제 효과로 베이지안 업데이트
8. 성능 지표
8.1 임베딩 품질
- Triplet Accuracy: 같은 감정이 임베딩 공간에서 가까운 비율
- Retrieval NDCG@k: 관련 기억 검색 정확도
- 클러스터 순도: 감정 클러스터의 일관성
8.2 시스템 성능
- 엔트로피 감소율: 중요 순간 포착 능력
- 베이지안 캘리브레이션: 확률 예측의 정확도
- 적응 속도: 사용자별 수렴 시간
9. 구현 우선순위
Phase 1: 기초 구축
- Inside Out 9개 감정 정의 (기본 5 + 사회 4)
- 감정 임베딩 모델 선택 및 통합
- ChromaDB에 2축 감정 저장 구조
- 기본 엔트로피 계산기
Phase 2: 예측-평가 시스템
- 기본정서 예측 모듈 (100ms)
- 사회기능 예측 모듈 (500ms)
- 예측 오차 계산 및 로깅
- 엔트로피 특이점 탐지
Phase 3: 통합 파이프라인
- 2축 병렬 처리 구현
- 베이지안 증거 결합
- Thompson Sampling 구현
- 실시간 사후분포 업데이트
Phase 4: 학습 및 최적화
- 온라인 학습 시스템
- 개인화된 감정 모델
- 추론 속도 개선
- 메모리 효율화
10. 기술 스택
- 임베딩 모델: Hugging Face Transformers
- 벡터 DB: ChromaDB (이미 사용 중)
- 베이지안 추론: Pyro (경량) 또는 TFP (대규모)
- 함수형 구조: 순수 함수 + I/O 분리 패턴
11. 주요 결정 사항
-
임베딩 모델 선택:
- 한국어 지원 여부
- 모델 크기 vs 성능
- 라이선스
-
임베딩 차원:
- 768차원 그대로 vs PCA 축소
- 저장 공간 vs 표현력
-
업데이트 주기:
- 실시간 vs 배치
- 리소스 vs 반응성
12. Inside Out 모델의 학술적 근거
과학 자문진
- 폴 에크먼 (UC San Francisco): 기본정서 이론 창시자
- 대처 켈트너 (UC Berkeley): 사회기능 감정 이론
- 리사 다무어 (임상심리학): 청소년 발달과 불안
핵심 통찰
- 감정은 다층적: 즉각적 기본정서 + 사회적 메타정서
- 불안은 기능적: 미래 대비 신호로 재해석 (Inside Out 2)
- 감정 충돌이 성장: 예측 오차가 클 때 학습 기회
- 개성은 감정 혼합비: 같은 상황, 다른 감정 조합
이 설계는 픽사 Inside Out의 2축 감정 모델을 기반으로, 함수형 프로그래밍과 베이지안 추론을 통합한 예측-평가 적응형 시스템입니다. 로빙이 사용자 반응을 예측하고 평가하며 진화하는 진정한 디지털 동료가 됩니다.