[INTERSPEECH 2024]SELM: Enhancing Speech Emotion Recognition for Out-of-Domain Scenarios

Introduction

Speech Emotion Recognition은 사람의 음성이 나타내는 감정을 인식하는 task입니다. 사람은 일반적으로 음성 대화 과정에서 다양한 감정을 표현하고 있기 때문에, 대화의 맥락을 이해하고 적절히 반응하기 위해서는 이러한 감정을 정확히 파악하는 것이 중요합니다. SER은 이를 기계적으로 구현하려는 것으로, HCI 관점에서 사용자의 의도를 파악하기 위한 핵심 기술로써 활용되며, 음성 비서나 고객 서비스 분석, 건강 관리, 교육, 엔터테인먼트 등 여러 분야에서 활용되고 있다고 합니다.

이전까지 많은 SER 연구는 각 감정을 discrete한 class(happy, angry, sad 등)로 나누고, SER 모델이 classification 문제를 해결하도록 하는 방식으로 진행되었습니다. 일반적으로는 Wav2vec2, HuBERT, Whisper와 같이 사전학습된 음성 인코더로 음성 특징을 추출하고, 그 뒤에 분류기가 감정을 예측하는 것이죠. 그러나 이 논문의 저자는 단순 classification으로 접근하게 되면 학습 데이터와 유사한 환경에서만 잘 동작한다는 문제점을 지적하였습니다. 감정은 연속적인 스펙트럼 상에 존재하기 때문에, 동일한 class의 감정이라도 상황에 따라 다른 양상을 보이며 이로 인해 SER모델은 학습 데이터와 다른 Out-of-Domain(OOD)환경에서는 잘 동작하지 않는다는 것입니다.

논문에서는 call-center에서 발생하는 happy라는 감정과 business meeting에서 발생하는 happy라는 감정은 그 energy에 있어 큰 차이가 있고, 이것이 두 환경에서 발생하는 speech간 misclassification의 원인이라고 하였습니다. 정리하자면 OOD 환경에서는 음성 데이터의 화자, 언어, 악센트, 녹음 조건, 감정 등이 기존에 학습된 데이터와 달라지므로 기존 모델을 활용하기 어려워진다는 것입니다.

OOD 환경에서의 감정 인식 성능 개선을 위해 LanSER과 AudioFlamingo와 같은 방법론들은 Few-Shot Learning 방식을 도입하였습니다. 그러나 여전히 IID의 성능에는 미치지 못하며, LanSER의 경우 추가 학습을 위해 대량의 annotated out-of-domain audio 데이터가 필요했다고 합니다.

본 논문에서는 기존의 OOD 문제를 해결하기 위해 SER을 classification이 아닌 text generate 문제로 접근하여 보다 복잡한 상황에 대해 대처 가능한 SELM(Speech Emotion Language Model)을 제안하였습니다. SEML은 few-annotated example들로 학습되며, text generate이기 때문에 복합적인 감정 또한 모델링 가능하다고 합니다.

본 논문의 contribution은 아래와 같이 정리할 수 있습니다.

(1) An alternate formulation of the task of SER which breaks SER into Acoustic Model and Language Model.

(2) Introduce SELM which is an instance of the above formulation and provides SoTA performance in Out-of-Domain scenarios.

(3) Propose Few-Shot Learning approach for SELM

(4) Extensively testing SELM in various setups: In-domain, OOD, and Few-Shot Learning on three public datasets (RAVDESS, CREMA-D and IEMOCAP), thus establishing a baseline for future work.

Formulation

본격적인 방법론에 들어가기 앞서 논문에서 사용되는 notation과 기본적인 수식에 대해 설명드리겠습니다.

음성 task 중 가장 대표적인 것은 Automatic Speech Recognition으로, ASR은 입력된 음성 신호가 입력되면 해당 음성과 가장 연관성이 높은 단어 sequence를 생성하는 식으로 동작합니다. 전통적인 통계적 접근 방식으로 해석하자면, ASR 시스템이란 입력된 음성 신호 x가 입력되고 기존의 word sequence w가 있을 때 w이후에 등장할 가능성이 높은 단어 시퀀스 w^*를 찾는 것으로 수식으로 표현하자면 아래와 같습니다.

여기서 p(w)는 언어 모델에 의해 모델링되며, p(x|w)는 음향 모델에 의해 계산됩니다.

전통적인 음성 감정 인식(SER)은 speech에 내제된 word와는 관계 없이 단순히 음성 feature를 추출 후 이를 분류하는 classification problem으로 다루어졌습니다. 그러나 본 논문에서는 SER를 감정을 설명하는 text token의 sequence를 생성하는 문제로 접근하고자 하였습니다.

논문에서는 SER 문제를 해결하기 위해서 감정을 설명하는 text token의 sequence를 음성 신호 x와 x의 transcript에 해당하는 단어 sequence w를 바탕으로 생성하였으며, 이는 아래와 같은 수식으로 나타낼 수 있습니다.

위의 수식에서 e*는 SER 모델의 예측값으로 emotion은 class가 아닌 text token의 sequence로 간주되며, 논문에서는 GPT2의 Byte pair encoding을 사용하였다고 합니다.

위의 수식을 베이즈 정리에 따라 아래와 같이 표현할 수 있습니다.

여기서 p(x|w)는 단어 sequence [latex]w가 음성 신호 x로 발음될 확률값으로, p(x|w)는 감정 e를 예측할 때 상수값 c로 간주됩니다. 이를 반영하여 위의 식을 다시 정리하자면 emotion sequence e^*는 아래의 수식과 같이 나타낼 수 있습니다.

여기서 p(e|w)는 주어진 단어 시퀀스 w에 대해 가장 가능성 있는 감정을 나타냅니다. 이는 GPT2와 같은 사전 학습된 언어 모델에 의해 모델링되었으며, p(x|e, w)는 특정 감정과 단어 시퀀스가 주어졌을 때 관찰될 수 있는 음향 특징을 나타냅니다.

Method

Architecture

아래의 [그림 1]이 논문에서 제안하는 SELM(Speech Emotion Language Modeling)의 구조로, audio recording과 text prompt를 입력으로 받고 emotion에 관한 text를 출력하는 방식으로 동작하는 것을 확인할 수 있습니다.

위의 [그림 1]에서 볼 수 있듯 SELM은 크게 audio encoder, text embedder, text mapper, audio mappet, language modelfh 구성되어 있으며, 각 부분에 대한 설명은 아래에서 진행하겠습니다.

Audio Encoder

먼저 SELM에 음성이 입력되면 audio encoder를 통해 음성에서 embedded representation을 추출합니다. 본 논문에서는 audio encoder로 [5]논문에서 SER의 sota에 가까운 성능을 보인 Wav2Vec2를 사용하였습니다. 또한 [5]에 따르면 Wav2Vec2의 4번째 레이어는 감정 인식 작업과 관련된 정보를 포함하고 있으므로, 본 논문에서는 해당 레이어를 freeze하여 음성 특징을 추출하였다고 합니다.

Text Embedder

다음으로 입력되는 text token은 text embedder를 통해 연속적인 embedding으로 변환되는데요, 본 논문에서 사용되는 text embedder는 language model tokenizer와 embedding lookup으로 구성되어 있습니다. 본 논문에서 사용되는 Language Model은 GPT2이므로, tokenizer와 lookup또한 GPT2의 것을 그대로 사용하였다고 합니다.

Audio Projection

Audio Projection은 두 개의 학습 가능한 linear layer와 그 사이에 있는 GeLU 함수로 구성되어 있습니다. 이는 [7]의 CLAP projection과 유사한 구조이며, Wav2Vec2의 4번째 레이어의 hidden state를 non-linear하게 변환하며, audio projection의 output은 Audio Mapper로 전달됩니다.

Audio Mapper & Text Mapper

Audio Mapper와 Text Mapper는 입력되는 audio와 text embedding을 각각 Language model의 latent space로 mapping하는 역할을 수행합니다. 그 중 Audio Mapper는 Sequence Mapper와 Transformer 레이어로 구성됩니다. Sequence Mapper는 linear layer와 reshape 작업으로 구성되어 있어, single embedding을 continuous embedding set로 변환합니다. 이 continuous embedding set은 sequence 형태로, 이는 self-attention transformer로 전달되어, transformer에서 출력된 sequence가 Language model의 latent space에 매핑됩니다.

Text Mapper는 transforemr 레이어로 구성되어 있으며, audio mapper와 마찬가지로 출력된 text embedding을 Language model의 latent space의 embedding으로 변환합니다.

Language Model

언어 모델의 latent prefix는 오디오 prefix와 텍스트 prefix를 concat하여 생성됩니다. 언어 모델은 이 잠재 프리픽스에 조건화된 텍스트(예: "행복의 감정")를 생성합니다. 이 연구에서는 GPT2를 언어 모델로 사용하며, 오디오와 텍스트 각각에 대해 프리픽스 크기를 10으로 설정합니다.

Training

모델은 다음 토큰 예측 목표를 사용하여 훈련됩니다. 훈련 데이터의 예는 오디오 x_a, 입력 텍스트 프롬프트 x_t, 그리고 정답 응답 y_t로 구성됩니다. 오디오 인코더와 오디오 매퍼는 오디오 x_a를 연속적인 임베딩 시퀀스 a_1, a_2, ... a_k로 변환합니다. 이때 k는 프리픽스의 크기입니다. 마찬가지로, 텍스트 임베더와 텍스트 매퍼는 프롬프트 x_t를 연속적인 임베딩 시퀀스 t_1, t_2, ... t_k로 변환합니다. 두 시퀀스는 결합되어 프리픽스 z를 형성합니다:

그 후, 언어 모델은 이 프리픽스 z_i에 조건화된 상태에서 출력 토큰 시퀀스 o_t를 생성합니다. 모델은 z_i에 조건화된 상태에서 다음 텍스트 토큰 o_t을 예측하도록 훈련됩니다. 손실 함수는 **교차 엔트로피(Cross-Entropy)**를 사용합니다

여기서 \theta는 오디오 프로젝션, 오디오 매퍼, 텍스트 매퍼의 학습 가능한 파라미터를 나타냅니다. Wav2Vec2, 텍스트 임베더, 언어 모델은 훈련 과정에서 고정(frozen)되어 변하지 않습니다.

Experimental Setup

본 논문의 실험 결과를 설명하기 앞서 SELM의 성능을 평가라기 위해 사용된 실험 환경과 데이터셋에 대해 설명드리겠습니다.

Experimental Setup (실험 설정) 섹션은 연구에서 제안된 모델 SELM(Speech Emotion Language Model)의 성능을 평가하기 위해 사용된 실험 환경과 데이터셋에 대해 설명합니다. 각 문단을 자세하게 설명해드리겠습니다.

Training Datasets

학습 데이터셋으로는 기존 음성 감정 데이터셋을 바탕으로 {audio, prompt, output} 형태의 triplet을 구성하였으며, 감정 예측 성능을 향상시키기 위해 다양한 형태의 감정 label (categorical emotion, sentiment, dimensional score)을 예측하도록 모델 학습을 진행하였습니다.

각 data의 label 형태에 따른 prompt 구성을 간단하게 설명하자면 아래와 같습니다.

  • Categorical Data: 흔히 ‘happy’, ‘sad’등으로 구성된 categorical label을 가지며, 본 논문에서는 이러한 데이터를가지는 MSP Podcast, CMU MOSI, CMU MOSEI, MELD 데이터셋에서 audio와 label을 가져와 “This person is”라는 prompt를 사용하여 학습하였다고 합니다.
  • Sentiment Data:’positive’, 혹은 ‘negative’를 나타내는 것으로 본 논문에서는 MSP Podcast와 MELD의 sentiment state를 바탕으로 "This sentiment is”라는 프롬프트를 사용했습니다.
  • Dimensional Scores: MSP Podcast에서 제공하는 label을 사용하고 “Describe emotion parameters"라는 prompt로 학습하였습니다.

Evaluation Datasets

평가 데이터셋으로는 RAVDESS, CREMA-D, IEMOCAP의 세 데이터셋을 사용하였으며, 각 데이터셋에 대한 정보는 아래의 [표 1]과 같습니다.

평가 데이터로 사용된 세 가지 데이터셋들은 SELM 학습에 사용되지 않았으며, 논문에서는 이를 통해 OOD(Out-of-Domain) setup을 시뮬레이션하였습니다.

Setup

In-Domain

SELM의 in-domain 성능을 확인하기 위해, 모델을 평가 데이터셋인 ravdess, crema-d, iemocap의 training set으로 학습하고, test set으로 평가하였습니다. 명시적인 train/test set이 없는 경우, N-fold cross-validation을 수행하였으며, 논문에서는 N=5를 사용하였습니다.

Out-of-Domain (OOD)

OOD setup은 학습 데이터에 사용되지 않은 데이터로 평가를 진행하는 것으로, SELM의 학습에 사용되지 않은 RAVDESS, CREMA-D, IEMOCAP 세 가지 평가 데이터셋에서 평가를 진행하였습니다.

Few-Shot Learning

FSL setup에서는 사전 학습된 SELM 모델을 사용하고, 그런 다음 target 도메인의 sample N개를 사용하여 모델을 finetuning 합니다. 이때 parameter efficiency 및 generalization ability를 위해 fine tuning은 모델의 일부 레이어만 진행하였다고 합니다. 논문에서는 4-shot과 8-shot 환경에서 FSL을 수행하였으며, Evaluation Dataset의 training set에서 무작위로 각 클래스별 4개 또는 8개의 sample을 선정하였다고 합니다.

Results

SEML의 SER 성능으로, 평가 metric은 unweighted accuracy를 사용하였습니다.

In-Domain

In-Domain setup에서는 SELM의 감정 인식 모델을 전통적인 classification 기반의 SER 모델과 비교하였습니다. SELM에서 사용된 audio encoder는 Wav2Vec2이며, 이는 사전 학습 모델로 학습 중에는 freeze되어 업데이트 하지 않습니다. 이와 마찬가지로, 본 논문에서는 Wav2Vec2를 freeze하고 linear layer를 classifier로 학습하는 기존 연구의 baseline과 SELM의 성능을 비교했습니다. 이 실험은 앞서 설명드린 in-domain setup으로 진행되었습니다.

위의 [표 2]는 SELM의 성능과 Wav2Vec2 feature를 사용하고 그 다음에 간단한 layer를 추가한 방법론의 성능을 비교한 결과입니다. 두 모델 모두에서 acoustic model 구조는 동일하며, 이때, SELM의 성능이 더 뛰어난 것을 확인할 수 있습니다. 논문에서는 이를 통해 SER task를 acoustic model과 language model의 reweightingt의 두 가지 task로 분리한 이점이 있음을 주장하였습니다.

Out-of-Domain

OOD setup에서는 SELM의 OOD 성능을 기존 연구의 벤치마크 모델과 비교하였습니다. 이전 연구에 등장한 모델들도 RAVDESS, CREMA-D, IEMOCAP 데이터셋에서 학습되지 않았기 때문에 이러한 실험은 유효한 OOD성능 비교에 해당한다고 하네요.

위의 [표 3]은 RAVDESS, CREMA-D, IEMOCAP에 대한 OOD 실험 결과를 보여줍니다. 표의 상단 구역은 데이터셋의 모든 감정 클래스에 대한 성능을 나타내고, *로 표시된 아래 구역은 클래스의 하위 집합에 대한 성능을 나타냅니다. 여기서 하위 집합의 클래스는 네 가지 주요 감정인 happy, sad, angry, neutral으로 구성되었습니다.

[표 3]의 결과를 확인하였을 때, SELM이 세 가지 데이터셋 모두에 대해, 전체 클래스 및 4-클래스 설정 모두에서 기존 모델을 능가하는 것을 볼 수 있습니다. 또한, RAVDESS와 같은 일부 데이터셋에는 SELM이 학습 중에 보지 못한 감정이 포함되어 있음에도 뛰어난 OOD 성능을 보이는 것을 통해 SELM의 일반화 능력이 뛰어남을 확인할 수 있습니다.

Few-Shot Learning

Few-Shot Learning setup에서는 SELM의 새로운 도메인에 대한 adaptation 능력을 평가하고자 하였습니다.

위의 [표 4]는 모델이 각 클래스당 4개(4-shot), 혹은 8개의 example(8-shot)로 fine tuning되었을 때의 성능으로, OOD 실험과 마찬가지로 all-class, 4-emotion class의 두 시나리오에서 평가를 진행하였습니다.

Author: 천 혜원

4 thoughts on “[INTERSPEECH 2024]SELM: Enhancing Speech Emotion Recognition for Out-of-Domain Scenarios

  1. 안녕하세요 .좋은 리뷰 감사합니다.

    text token의 sequence를 음성 신호 x와 x의 transcript에 해당하는 단어 sequence w를 바탕으로 생성하였다고 하는데 이때 transcript란 무엇을 의미하나요 ?? 또, sequence w가 음성 신호 x로 발음될 확률인 p(x|w)는 어떻게 계산되는지 궁금합니다.

    감사합니다.

  2. 좋은 리뷰 감사합니다.

    기존 연구와 다르게 해당 연구는 감정에 대하여 classification이 아닌 text generate 문제로 접근한다고 하셨는 작성해주신 설명에 따르면 언어모델이 latent prefix로부터 조건화된 텍스트(예: “행복의 감정”)를 생성한다고 하셨는데, 기존의 감정인식에 대한 접근을 “happy”와 같은 classification으로부터 “행복의 감정”과 같은 text generate로 변경하는 것이 어떤 점에서 맥락을 고려할 수 있는 것인 지 조금 더 설명해주실 수 있을까요? (에너지에 차이가 있다는 것이 text generation에서 어떻게 해소가 될 수 있는 지 궁금합니다.)

  3. 안녕하세요 좋은 리뷰 감사합니다 !
    제가 놓친 부분일 수 있지만 실험에서 사용하는 데이터셋은 기존 SER 데이터셋으로 classification으로 라벨링 되어 있고, 본 논문에서는 텍스트 레벨로 감정을 예측하게 되는데 이 예측과 GT 사이의 갭에서 어떻게 성능을 측정하는건지 잘 이해가 되지 않습니다. 조금만 더 실험 세팅을 자세하게 설명해주시면 감사하겠습니다 !
    그리고 입력으로 들어가는 프롬프트는 혹시 OV에서처럼 데이터셋에 포함되는걸까요 ? 아니면 사용자가 임의로 생성한 프롬프트가 들어가는 것인가요 ??
    감사합니다.

  4. 안녕하세요 좋은 리뷰 감사합니다.

    결국 오디오와 텍스트 feature를 추출한 뒤 gpt2와 임베딩 공간을 align시키고 샘플의 감정을 출력해내는 것으로 이해했습니다. 이 때 gpt는 코드 공개가 되어있지 않은 것으로 아는데, 자연어가 아니라 feature 형태로 입력을 줄 수 있나요? 어떤 방식으로 언어모델의 입력이 처리된 것인지 궁금합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다