전체 프로젝트

멀티모달 감정 분석

상담 음성과 텍스트를 결합한 감정 분석

외주TebahSoft2023.03 – 2023.075개월

배경

상담 내용을 분석하는 제품에서 감정 분석 모듈 담당

텍스트만으로는 어조·억양에 담긴 정서 신호가 빠져 감정 분석 결과의 신뢰도 확보가 어려움

해결/진행 과정

  1. 어조·억양은 텍스트에 애초에 없는 정보여서 모델 규모로는 회복 불가
    • 텍스트 모델을 키우는 대신 빠진 신호를 되살리는 쪽으로 방향 설정
  2. KoBERT 텍스트 단일 모달로 베이스라인을 먼저 세우고, 같은 데이터에 음성을 얹어 그 차이만 측정할 수 있게 구성
  3. TEASEL(RoBERTa에 음성 prefix를 붙이는 방식)을 이식해 CMU-MOSI 벤치마크로 먼저 검증한 뒤 한국어로 옮김
  4. 직전 문장 부호 복원 연구에서 만든 구조를 그대로 재사용
    • Conv1dSubsampler로 음성 프레임을 텍스트 길이에 맞추고 Transformer cross-attention으로 융합, 음성이 없는 샘플에는 학습된 virtual embedding을 주입
  5. 멀티모달 전처리 파이프라인과 BentoML 기반 실시간 추론 서버 구축

결과

  • 텍스트만 쓰던 기존 모델 대비 F1-score 0.71 → 0.81
  • Ekman 기본 감정 6종에 중립을 더한 7종으로 분류
    • 기쁨·분노·혐오·공포·슬픔·놀람·중립
  • 음성·텍스트 약 10GB 규모 상담 데이터로 학습

사용 기술

PythonPyTorchKoBERTwav2vec2TransformersBentoMLStreamlit