[ACL 2024] emotion2vec: Self-Supervised Pre-Training for Speech Emotion Representation

Introduction

본 논문은 SER task의 논문으로 이전 리뷰에서 설명드린 바와 같이 음성 데이터 바탕으로 화자의 감정을 예측하는 task입니다. 전통적으로 SER은 음성의 어조를 바탕으로 감정을 유추하는데요, 이를 위해 hand-crafted speech feature인 Filter Bank (FBank), Mel Frequency Cepstrum Coefficients (MFCC)등을 사용하였습니다. 그러나 이러한 feature들은 음성에 담긴 단어의 semantic 정보가 풍부하지 않기 때문에 감정 예측 성능이 제한된다는 단점이 있습니다. 이러한 단점을 극복하기 위해 연구자들은 딥러닝 기반의 방법론을 사용하기 시작했으며, 최근에는 speech-based self-supervised learning (SSL) pre-trained model을 사용하여 큰 성능 향상을 이루었습니다.

그러나 저자들은 SSL 모델 역시 감정 인식에 적합한 모델이 아니라고 주장하였습니다. 이전 연구를 살펴보자면, Wang[ ]은 SSL 모델을 emotion task에 적용하였으나, 음성 사전 학습 모델을 감정 데이터로 fine-tuning 할 때 높은 computational cost를 요구하며 해당 기법은 특정 모델 혹은 데이터에 한정적으로 사용될 수 있었다고 합니다. 또한 본 논문의 저자들은 Chen[ ]이 knowledge distillation 기법을 통해 연산 비용이 적은 Vesper 모델을 제안하였으나 해당 모델의 universal representation capability는 아직 증명되지 않았음을 지적하였습니다.

이에 논문에서는 보다 emotion task에 특화된 음성 사전학습 모델이 필요하다고 주장하며, 다양한 emotion task에 사용될 수 있는 universal emotion representation model인 emotion2vec을 제안하였습니다.

emotion2vec의 사전 학습은 약 262시간의 오픈 소스 감정 데이터를 사용하여 online distillation paradigm에 따라 학습하였다고 하며, 논문에서는 추가적으로 감정의 전체적인 정보와 세부적인 정보를 고려하기 위해 utterance-level과 frame-level의 loss를 결합하는 새로운 학습 전략을 제안하였습니다.

결과적으로 emotion2vec은 IEMOCAP 데이터셋에서 주요한 SSL 모델과 최신 모델들의 성능을 뛰어넘는 성능을 보여주었다고 합니다. 또한 논문에서는 emotion2vec을 10개 언어를 포함하는 13개의 데이터셋에서 평가하여 emotion2vec의 language generalization을 보였으며, SER task 외에도 song emotion recognition, conversation emotion prediction, sentiment analysis와 같이 다른 emotion task에서도 실험을 진행하였다고 합니다.

Methods

Model Pipeline

논문에서 제안하는 emotion2vec의 전체적인 pipeline은 아래의 [그림 1]과 같습니다.

[그림 1]과 같이 emotion2vec은 teacher (T)와 student (S)로 구성된 online distillation 방식을 따라 학습되며 inference 시 student만을 freeze 하여 사용하게 됩니다. Teacher와 student 두 모델은 모두 multi-layer의 CNN으로 구성된 Feature extractor(F)와 multi-layer transformer로 구성된 Backbone network (B)를 포함하고 있습니다.

어떤 raw audio utterance X = [x_1, · · · , x_{N_x}]가 각각 T와 S에 입력되면 각 모델은 feature extractor F^T F^S 를 사용하여 downsampled feature인 Z = [z_1, · · · , z_{N_z}]를 얻을 수 있으며, 이는 아래의 [수식1], [수식 2]와 같이 표현할 수 있습니다.

이어서 Z는 각 모델의 backbone으로 전달됩니다. 이때 T의 경우 Z^T가 직접 backbone network B^T로 전달되지만, S의 경우 Z^S는 각 frame에 대해 p의 확률로 l개의 연속된 frame이 masking됩니다. 그런 다음 학습 가능한 utterance embedding U = [u_1, · · · , u_{N_u}]를 앞부분에 추가한 채 backbone network B^S로 전달됩니다. 이러한 과정은 아래의 [수식 3, 4]와 같이 나타낼 수 있습니다.

위의 [수식 3]에서 Y^{T}는 teacher 모델에서 상위 k개의 transformer block B^{T}{i}의 출력 임베딩의 평균을 나타냅니다. U^{S}는 utterance-level output embedding을, Y^{S}는 frame-level output embedding으로 student backbone network에 [U, Z]가 input으로 들어갔을 때의 출력값을 의미합니다.

Y^{T}, Y^{S}U^{S}는 동일한 hidden layer dimension을 가지며, Y^{T}Y^{S}의 time dimension은 N{z}로 동일하게 설정된다고 합니다.

위에서 notation을 복잡하게 설명드렸으나 결론은 utterance embedding과 frame embedding으로 구성된 student 모델의 output은 [/latex]teacher network의 output인 Y^{T}을 모방하는 방향으로 학습되는 것이라고 이해하면 될 것 같습니다.

[그림 1]를 보면 distillation에 두 가지 loss를 사용하고 있으며, 이는 음성의 global한 감정 정보를 학습하기 위한 Utterance Loss와 음성의 부분적인 context 정보를 학습하기 위한 frame-level loss를 나타내고 있습니다.

Utterance-level Loss

Emotion2vec에 사용된 utterance-level loss L-{Utt}는 음성의 global emotion을 학습하기 위한 pretext task를 구성하고 있는데, 이는 teacher의 output인 Y^T와 student의 utterance embedding U^S간의 MSE를 구하는 방식으로 구현되었습니다.

Utterance-level Loss는 아래의 [수식 5], [수식 6], [수식 7]과 같이 나타낼 수 있습니다.

이때 bar\Y ^Tbar\U ^S는 각각 Y^T U^S의 temporal pooling를 의미합니다.

저자들은 student의 output에서 bar\U ^S를 구하는 방법에 따라 총 세 가지의 방식으로 utterance-level loss를 구하였으며, 이는 아래 [그림 2]에서 확인할 수 있습니다.

1. Token Embedding

Token Embedding이란 student 모델 S에서 인코딩된 단일 token 값으로 전체 audio의 global emotion 정보를 의미합니다. 앞서 pipeline 부분에서 student의 경우 feature extractor에 학습 가능한 utterance embedding U = [u_1, · · · , u_{N_u}]을 추가한다고 하였는데 token embedding은 N_u가 1인 경우를 나타낸다고 이해하시면 됩니다.

2. Chunk Embedding

Chunk Embedding은 여러 개의 token을 사용하는 방식으로, utterance embedding인 U = [u_1, · · · , u_{N_u}]의 일반적인 버전이라고 할 수 있으며, token에 비해 많은 정보를 담을 수 있는 방식입니다.

3. Global Embedding

Global Embedding은 추가적인 utterance token 없이 student의 feature를 직접 활용하는 방식으로 이 경우에는 bar\U ^S는 frame-level output인 Y^S의 global pooling 값이 됩니다.

Frame-level Loss

앞서 살펴본 utterance-level loss가 음성의 global emotion을 포착하였다면, frame-level loss는 음성의 context emotion을 학습하기 위해 사용되었습니다. 이를 위해 저자들은 frame-wise pretext task를 설계하여 student가 각 frame에 집중할 수 있도록 하였습니다.

위의 그림과 같이 Frame-level Loss는 NLP에서 일반적으로 사용되는 masked language modeling 방식을 따라 음성의 일부 frame을 masking하고, 모델이 masking된 부분을 예측하도록 학습하였으며, 수식으로 나타내면 아래의 [수식 8]과 같습니다.

여기서 \M은 masking된 frame-level embedding Y^S의 index를 나타내며, M은 masking된 token의 개수를 의미합니다. 즉, student의 output 중 M개의 frame에 masking을 하면 teacher의 output에서 해당 frame과 동일한 위치의 frame간의 차이가 최소가 되도록 하는 것입니다. 이러한 frame-level loss를 통해 masking된 frame 각각에 대한 감정을 예측하도록 하여 전체 모델이 보다 정교한 표현을 학습할 수 있었다고 합니다.

Experiments

실험 결과를 설명드리기 앞서 실험에 사용된 모델의 구조와 데이터셋에 대해 간단히 언급하고 넘어가겠습니다. 먼저 teacher와 student는 동일한 구조의 모델로 feature extractor는 7층의 1d cnn로 구성되어 있으며 backbone에는 음성 사전 학습 모델인 data2vec과 data2vec 2.0을 사용하였습니다.

본 논문에서는 emotion2vec의 일반화 성능을 확인하기 위해 다양한 감정 데이터셋에 대한 실험을 진행하였으며, 사용된 데이터셋은 아래의 [표 1]과 같이 나타낼 수 있습니다.

실험에는 [표 1]에 있는 데이터셋 중 상단 부분의 5개 데이터셋을 self supervised pretraining 단계에 사용하였고, 아래의 소개될 실험들은 여기서 학습된 모델을 각각 Downstream에 표시된 데이터셋으로 supervised fine-tuning을 진행한 결과를 리포팅한 것에 해당합니다.

Main results

Table 2

위의 [표 2]는 IEMOCAP데이터셋에서 emotion2vec과 다른 ssl모델의 감정 분류 성능을 비교한 결과입니다. emotion2vec는 IEMOCAP 데이터셋에서 지난 리뷰에 다룬 Vesper를 포함하여 파라미터 수가 많은 기존의 SSL 모델들보다 우수한 성능을 보이는 것을 확인할 수 있습니다. 또한 논문에는 emotion2vec이 최신 classifier 대신 liner 레이어만으로 수행한 분류하였기 때문에 emotion2vec이 감정 표현을 잘 학습하였다는 것을 알 수 있는 결과라고 합니다.

위의 [표 3]은 emotion2vec가 서로 다른 영문 음성 감정 데이터(MELD, RAVDESS, SAVEE)에서 보인 분류 성능으로, 저자들은 해당 실험을 통해 서로 다른 환경에서 감정 인식 성능을 확인하고자 하였습니다. [표 3]의 결과를 보면, emotion2vec은 다양한 데이터셋에서 state-of-the-art를 달성함으로써 뛰어난 일반화 성능을 보였습니다.

Language generalization

여러 언어의 감정 인식 데이터셋에서 모델의 일반화 성능을 확인하기 위해 서로 다른 9개 언어의 데이터로 실험을 진행하였습니다. [표 4]에서 emotion2vec이 9개의 다른 언어 데이터셋에서 모든 SSL 기반 모델보다 뛰어난 성능을 보여주었음을 확인할 수 있으며, 이를 통해 여러 언어 간의 도메인 차이를 에도 공통된 감정 패턴을 효과적으로 학습하고 있다는 것을 확인할 수 있습니다. 또한, [표 4]의 실험을 통해 emotion2vec는 다양한 평가 지표에서 일관된 성능을 보임으로써 모델이 특정 언어에 의존하지 않고 감정을 잘 인식할 수 있음을 보여주고 있습니다.

Author: 천 혜원

답글 남기기

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