안녕하세요. 이번에는 Emotion Recognition 논문이 아닌 ERC 논문을 들고 와봤습니다! 새롭게 나오는 감정인식 논문들이 대부분 ERC 관련 논문이기도 하고 여기는 어떻게 감정 인식을 수행하고 있나 팔로업 할 겸 읽어봤습니다. 그럼 리뷰 시작합니다!
<Introduction>
Emotion Recognition in Conversation (ERC)는 대화 중 화자가 표현한 발화에 대한 감정을 분류하는 task입니다. 기존의 제가 계속 관심을 가져왔던 Emotion Recognition의 경우, 대화 내용을 고려할 필요 없이 단순히 utterance에 대해서 감정인식을 해왔었는데요. ERC에서는 대화의 context를 고려하여 감정을 인식해야 합니다. 그래서 ERC에서의 대부분의 연구는 화자 의존성과 대화 context를 모델링하는데 집중하여 연구하였는데요. 하지만 본 논문에서는 아직 몇가지 해결되지 않은 문제가 존재한다고 합니다. (1) 첫 번째로, multimodal information의 보완성이 잘 활용되지 않는다는 것입니다. text modality에 포함된 정보 외에도 화자의 어조와 억양은 감정의 정도를 나타낼 수 있으며, 대화 상대방의 얼굴 표정은 감정적 경향을 명시적으로 나타낼 수 있습니다.
Figure 1을 보시면, 정확한 감정 분류를 위해서 text modality와 더불어 audio, visual modality가 상호보완적으로 작용하여 감정을 분류하는 것을 확인할 수 있습니다. 그럼에도 불구하고 대부분의 기존 접근 방식은 발화의 text modality에 초점을 맞추거나 단순히 concat을 multimodal fusion 매커니즘으로 활용하기 때문에 text, audio, visual modality 간의 복잡한 상관관계와 매핑 관계를 모델링하지 않아 아쉬운 결과를 보입니다. (2) 두 번쨰는, 소수 감정 class에서 만족스럽지 못한 성능을 내는 것입니다. ERC의 벤치마크인 IEMOCAP과 MELD는 class imbalance한 문제를 가지고 있는데요.
Figure 2에서 볼 수 있듯이 MELD와 IEMOCAP은 모두 class가 불균형하고 특히, MELD는 그 정도가 심각한 것을 확인할 수 있습니다. 이 때문에 현재 연구 방식은 class 불균형 문제를 해결하지 못하여 소수 class의 감정에 대한 성능이 떨어집니다. (3) 세 번째로, 의미적으로 유사한 감정을 구별하기 어렵다는 점입니다. 혐오와 분노와 같이 의미론적으로 연관성이 있는 서로 다른 감정들은 유사한 인지적, 정서적, 생리적 특징을 공유하고 비슷한 맥락에서 화자가 표현하는 경향이 있기 떄문에 MELD에서는 이를 정확하게 분류하는 것이 어렵습니다.
본 논문에서는 이러한 부분을 해결하기 위해, 새로운 attention-based correlation-aware mutlimodal fusion framework (MutiEMO)를 제안하였습니다. 먼저, 각 modality에 대해 single modal feature 추출과 context modeling을 수행하며, 이를 위해 MTCNN와 사전학습된 ResNet-101에 기반한 visual feature extractor VisExtNet을 도입합니다. 두 번째로, bidirectional multi-head cross-attention layer를 기반으로 multimodal information을 효과적으로 통합하는 multimodal fusion model (MultiAttn)을 제안하여 contextualized된 text, audio, visual feature에 걸쳐 복잡한 cross-mode 상관관계와 매핑 관계를 성공적으로 포착합니다. 세 번쨰로, Focal Contrastive loss를 이용하여 소수 및 의미적으로 유사한 감정 class의 분류 어려움을 완화하기 위해, 분류하기 어려운 소수 classs에 더 많은 focus를 할당하고 서로 다른 감정 label을 가진 sample 쌍을 상호 배차적으로 만들어 의미적으로 유사한 감정을 더 잘 구분할 수 있도록 하는 sample-Weighted Focal Contrastive (SWFC)를 제안하였습니다.
본 논문의 contribution을 정리하면 아래와 같습니다.
- 중복된 장면 정보를 모델링하지 않고도 대화 상대방의 시작적 단서를 효과적으로 포착하는 새로운 visual feature extractor network인 VisExtNet을 제안함.
- bidirectional multi-head cross-attention layer를 기반한 multimodal fusion model인 MultiAttn을 설계하여 text, audio, visual modality 간의 복잡한 상관관계를 성공적으로 모델링함.
- 소수 감정과 의미적으로 유사한 감정 class 분류하는데 따르는 어려움을 해결하기 위해 SWFC loss를 도입함.
- MELD와 IEMOCAP에서 실험한 결과 sota 달성.
<Method>
<Problem Definition>
n개의 발화 $u_1, u_2, … , u_n$와 화자 $S_{u_1}, S_{u_2}, …, S_{u_n}$으로 구성된 대회가 주어졌을 때 ERC의 목표는 미리 정의된 k개의 클래스로 감정이 라벨링 된 Y로부터 대화에 포함된 각 발화의 감정 라벨을 예측하는 것입니다. 각 발화에는 text(t), audio(a), vision(v) 모달리티로 구성되어 있으며 다음과 같이 표시할 수 있습니다.
<Model Overview>
본 논문에서 제안한 모델인 MultiEMO의 전체 프레임워크는 Figure 3을 통해서 확인할 수 있습니다. 4가지 구성요소로 모델은 구성되는되요. 1) Unimodal Feature Extraction, 2) Context Modeling, 3) Multimodal Fusion, 4)Emotion classification 입니다.
<Unimodal Feature Extraction and Context Modeling>
<Textual Modality>
기존 ERC 연구에서는 contextualized textual feature를 추출하기 위해서 두가지 방법을 많이 사용하였다고 합니다.
- Two-stage paradigm : 이 방법에서는 먼저 텍스트 시퀀스를 pretrained language model에 입력하여 utterance-level의 local textual representation을 학습합니다. 이 다음에 대화에 있는 contextual information을 통합하여 dialogue-level의 global textual feature를 앞에 사용한 모델과는 다른 모델을 이용하여 생성합니다.
- One-stage paradigm : 이 방법은 1번 방법과는 다르게 pretrained language model을 finetuning하여 local utterance-level information과 global dialogue-level context를 공동으로 포착합니다. 본 논문에서는 이 두가지 방법을 모두 실험해본 결과 두번째 방식이 더 좋은 결과가 나왔고 이러한 결과를 바탕으로 계산 효율성을 위해서 One-stage paradigm을 사용했다고 합니다.
구체적으로 말하면, 각 text utterance $u_t$에는 발화의 화자 이름 $S_{u_i}$가 접두사로 붙어 화자 정보를 효율적으로 인코딩할 수 있습니다. 그런 다음 i 번째 발화에 대한 입력 시퀀스는 context information을 통합하기 위해 3개의 segmentation으로 구성됩니다. 앞의 contextual utterance {$u_1^t, …., u^t_{i-1}$}, 현재 utterance $u^t_i$, 후속 contextual utterance {$u^t_{i+1},…,u^t_n$}로 구성됩니다. 이 3개의 segment는 [SEP]에 의해서 concat되고 분리된 후 pretrained RoBERTa 모델에 입력됩니다. 이후 첫 hidden state의 [CLS]를 $u_i^t$의 textual representation $c^t_i$로 사용하게 됩니다.
<Audio Modality>
<Audio Feature Extraction>
audio feature의 경우 다른 논문에서도 흔히 사용하는 라이브러리인 OpenSMILE을 통해 각 utterance audio로부터 feature representation을 추출합니다. 각 audio input $u^a_i$에 대해서 512 차원의 feature $h_i^a$를 얻게 됩니다.
<Audio Context Modeling>
audio feature 추출 이후에는 각 audio clip에 대해 256 차원을 가진 contextualized audio feature $c^a_i$를 포착하기 위해서 DiaglogueRNN을 사용합니다. 화자 모델링이 가능한 DialogueRNN의 특성 때문에 여러 화자의 audio cues를 효과적으로 통합할 수 있다고 합니다.
<Visual Modality>
<Visual Feature Extraction>
본 논문에서 말하길, 대부분의 기존 연구에서는 video clip에서 visual feature를 포착하기 위해 3D-CNN을 활용했다고 합니다. 하지만 최근에는 Multitask Cascaded Convolutional Network (MTCNN)을 이용하여 visual feature를 추출하는데요. 이 두가지 방법 모두 효과적이지만, 두 방법 모두 화자의 얼굴 표정뿐만 아니라 각 utterance clip에 대한 장면 정보도 인코딩합니다. 본 논문에서는 이렇게 장면 정보도 인코딩 할 경우 시각 주변 정보가 중복되기 때문에 문제가 발생한다고 말합니다. 그 이유로는 첫 번째, 같은 장면에서 일어나는 대화는 비슷한 감정적 성향을 공유하는 경향이 없기 때문에 장면 정보와 화자의 감정 사이에는 명시적인 상관관계가 존재하지 않습니다. 예를 들어서, ERC 데이터셋으로 많이 사용하는 MELD에서는 대화의 대부분이 집에서 이루어지지만 대화를 하면서 발생하는 감정의 변화는 굉장히 다양합니다. 두 번째 이유로는, 장면은 일반적으로 대화가 진행되는 동안 변하지 않는다는 것입니다. 따라서 각 발화에 대해 장면별 시각 정보를 캡쳐하는 것은 불필요하고, 이로 인해 오히려 관련 없는 장면 정보의 영향으로 화자의 실제 감정을 잘못 예측할 수도 있습니다.
본 논문에서는 이 문제를 해결하기 위해 VisExtNet이라는 새로운 visual feature extractor를 제안합니다. 이 extractor는 VGGFace2에서 사전학습된 MTCNN과 ResNet-101로 구성됩니다. Figure 4를 통해서 VisExtNet의 구조를 확인할 수 있습니다. VisExtNet은 중복되는 장면 관련 정보는 인코딩하지 않고 여러 프레임에서 대화 상대방의 얼굴 표정을 통합하여 visual cue를 효과적으로 포착하는 것을 목표로 합니다.
utterance video $u^v_i$의 경우, utterance clip의 20 프레임에 대해 visual feature extraction을 수행합니다. 좀더 구체적으로 말씀드리겠습니다. 먼저 각 프레임은 해당 프레임에서 장면에 존재하는 모든 대화자의 얼굴을 정확하게 감지하기 위해 MTCNN으로 전송되고, 감지된 각 얼굴은 사전 훈련된 ResNet-101을 통과하여 감정이 풍부한 visual feature vector를 추출합니다. 모든 참가자의 얼굴 representation feature를 연결한 것이 해당 프레임의 visual representation으로 간주됩니다. 20개의 프레임 각각에 대해 동일한 프로세스를 반복한 후 모든 프레임의 output feature를 프레임 축에 average pooling하여 visual feature vector $h^v_i$를 얻습니다.
<Visual Context Modeling>
audio context modeling과 마찬가지로 추출한 visual feature를 DialogueRNN의 입력으로 넣어 각 video clip에 대해서 256차원의 contextualized visual representation $c^v_i$를 얻습니다.
<Multimodal Fusion>
본 논문의 저자는 기존의 ERC 연구는 multimodal information을 효과적으로 통합하지 못했고, 여러 modality간의 복잡한 상관관계와 맵핑 관계를 제대로 파악하지 못했다고 말합니다. 이러한 문제를 해결하기 위해, 본 논문에서는 query는 한 modality에서 생성되고, key와 value값은 다른 modality에서 생성되며, attention distribution을 계산할 때 현재 발화의 이전 및 후속 context가 모두 활용되는 bidirectional multi-head corss-attention mechanism을 기반으로 하는 새로운 multimodal fusion network인 MultiAttn을 제안합니다. Figure 5를 통해 MultiAttn의 구조를 디테일하게 확인할 수 있습니다.
MultiAttn은 총 3가지 요소로 구성되어 있습니다. 1) $MutiAttn_{text}$, 2) $MultiAttn_{audio}$, 3) $MultiAttn_{visual}$로 구성되어 있습니다. 각 구성 요소는 하나의 modality와 다른 두 modality의 상호보완적인 정보를 통합하는 것을 목표로 합니다. Figure 5에서 볼 수 있듯이, $MutiAttn_{text}$, $MultiAttn_{audio}$, $MultiAttn_{visual}$은 동일한 block을 공유하며, 입력 쿼리, 키, 값만 다릅니다. $MutiAttn_{text}$를 대표로 설명해보겠습니다. 먼저 MultiAttntext는 3단계 방식을 통해 text modality와 audio, visual modality를 통합합니다. (1) 먼저 $MutiAttn_{text}$는 text modality를 쿼리로, audio modality는 bidirectional multi-head cross-attention 연산을 위한 키, 값으로 처리하여 text와 audio modality간 상관관계와 매핑 관계를 학습합니다. (2) 첫 번째 단계에서 학습된 output은 새로운 쿼리로 활용되고 visual modality는 text modality와 visual cue를 융합하기 위해 다른 bidirectional multi-head cross-attention의 키, 값으로 간주됩니다. (3) 마지막으로, 키-값 memory로 작동하는 ReLU를 사용하여 2개의 FC layer로 구성된 feed-forward 네트워크가 사용됩니다. 또한 각 단계의 output에 대해 residual connection과 layer normalization을 사용하여 학습이 좀더 용이하도록 합니다. 여기에 보다 깊고 강한 네트워크를 구축하기 위해, 각 layer의 output이 새로운 쿼리로 다음 layer에 공급되는 MultiAttn의 전체 모델 아키텍처로서 $MutiAttn_{text}$, $MultiAttn_{audio}$, $MultiAttn_{visual}$의 T개의 layer를 구성하여 사용합니다.
layer j-1에서 학습한 모든 utterance 쿼리 $F^{t^(j-1)} = [ f^{t^(j-1)}_1, …, f^{t^(j-1)}n]^T$, audio 및 visual feature $C^a = [c^a_1, … , c^a_n]^T$와 $C^v = [c^v_1, … , c^v_n]^T$가 주어지면, layer j에서 $MultiAttn_{text}$ 연산은 다음과 같이 설명될 수 있습니다.
여기서 W로 시작하는 문자는 projection matrics를 의미하고, $b_{FFN}$은 bias parameter를, H는 attention head의 수를 의미합니다.
<Emotion Classification>
multimodal fusion이후, 학습된 multimodal-fused textual, audio, visual feature representation $f^t_i, f^a_i, f^v_i$는 concat된 다음 FC layer와 ReLU를 사용하는 MLP를 통과합니다. 마지막으로 softmax를 사용하여 감정을 예측하게 됩니다. 수식으로 설명하면 아래와 같습니다.
여기서 ⊕는 concat을, W는 weight를, b는 bias parameter를 나타냅니다.
<Training Objectives>
본 논문에서는 emotion recognition에서는 잘 보이지 않는 흔지 않은 그런 loss를 여러개 사용하였는데요. 그 중 첫번째는 SWFC loss입니다. 소수 감정과 의미적으로 유사한 감정을 분류하는 어려움을 완화하기 위해 sample-weight term과 focusing parameter를 도입하여 Focal Contrastive loss를 베이스로하는 새로운 loss인 SampleWeighted Focal Contrastive (SWFC) loss를 만들었습니다. 학습 단계에서 분류하기 어려운 소수 class에 더 많은 중요성을 할당하고 서로 다른 감정 label을 가진 sample 쌍을 상호 배타적으로 만들어 class간 거리를 최대화하여 의미적으로 유사한 감정을 더 잘 구별할 수 있도록 합니다. loss 식은 다음과 같이 정의됩니다.
또한, 본 논문에서는 MultiAttn에서 추출한 multimodal-fused textual, audio, visual feature 간의 상관관계를 극대화 하기 위해 oft Hirschfeld-Gebelein-Rényi loss를 사용합니다. loss 식은 다음과 같이 정의됩니다.
여기에 추가로 CrossEntorpy loss를 사용하여 예측 확률과 실제 label간의 차이를 측정합니다.
최종적으로 위에서 사용한 SWFC loss와 soft-HGR loss, cross-entropy loss를 선형조합으로 사용하여 loss를 가져갑니다.
<Experiment>
본 논문에서는 ERC에서 가장 많이 사용되는 IEMOCAP과 MELD 데이터셋을 사용하여 성능 평가를 수행하였습니다. IEMOCAP의 경우, 6개의 감정 label(happiness, sadness, neutral, anger, excitement, frustration)로 구성되어 있습니다. MELD의 경우, 프렌즈라고 유명한 드라마를 가공하여 만든 데이터셋인데요. MELD의 경우, 7개의 감정 label(anger, disgust, fear, joy, neutral, sadness, surprise)로 구성되어 있습니다.
Table 1과 Table 2를 통해 IEMOCAP에서의 성능과 MELD에서의 성능을 확인해 볼 수 있습니다. 두 table에서의 결과를 모두 종합해서 보면, 본 논문에서 제안한 MultiEMO가 두 데이터셋 모두에서 SOTA를 달성한 것을 확인할 수 있으며, 특히 소수 및 의미적으로 유사한 class에서 상당한 성능 개선을 이룬것을 확인할 수 있습니다. 특히 개인적으로 성능 개선하여 놀란 부분이 MELD 데이터셋에서 소수 class인 fear에 대해서 엄청난 성능 향상을 이룬 것을 확인할 수 있습니다. 다른 모델들과 비교해봤을 때 Fear가 0%인 것도 있는데 이것에 비해서 MultiEMO는 확연히 많이 맞춘 것을 볼 수 있죠.
modality setting에 대해서는 Table 3을 확인하면 됩니다. Table 3에서 utterancedml text modality가 ERC에서 중요한 역할을 하는 반면에 audio, visual modality가 제공하는 상호 보완적인 단서가 text 기반 MultiEMO에 비해 상당한 개선을 가져올 수 있음을 알 수 있습니다. 이 부분을 보면서 감탄했던 부분이 대부분 text modality의 성능이 높게 나오는 현상을 보이는데 다른 논문들의 경우 여기에 편승해 다른 모달리티를 사용했어도 많아야 5%? 정도밖에 성능을 향상 시키지 못했는데 여기는 거의 8~9% 정도의 성능을 향상시켜서 멀티모달 융합을 굉장히 잘했구나 생각하게 되었습니다.
이렇게 리뷰를 마쳐봅니다. ERC에서 멀티모달 논문은 아주 오랜만에 읽는거 같아 읽으면서 많이 버벅였지만 많은 방법을 제안하여 성능 향상을 크게 이룬 좋은 논문 같습니다. 앞으로도 이 분야를 계속 팔로업해야 겠습니다. 읽어주셔서 감사합니다.
안녕하세요 주연님 좋은 리뷰 감사합니다.
본문에서 MultiAttn에서 추출한 multimodal-fused textual, audio, visual feature 간의 상관관계를 극대화 하기 위해 oft Hirschfeld-Gebelein-Rényi loss를 사용한다고 하셨는데 이 공식은 어떠한 의미를 가지길래 상관관계가 극대화 되는건가요?
감사합니다.
안녕하세요 주연님 좋은 리뷰 감사합니다.
ERC task에 관한 논문은 처음이라 이해가 어렵네요 ㅠㅠ 결국 비전, 오디오, 텍스트를 멀티모달로 활용하는 모델로 감정을 분류하는 task가 맞나요?
모달을 같이 활용하기 위해 fusion하는 과정에서 각 layer마다 MultiAttn이 존재하여 각 모달리티의 특징들을 활용하는 것으로 이해했습니다. 특히, 논문에서 텍스트에서의 성능을 많이 올랐다고 언급해주셨는데 MultiAttn_text연산의 notation이 복잡한데 결국 transformer의 multi-head attention구조를 그대로 가져다 활용한 구조가 맞나요? 만약에 차이점이 있다면 어떤 차이점이 있는지 궁금합니다.
감사합니다.
안녕하세요. 댓글 감사합니다!
네 이해하신 바가 맞습니다. multi-head attention 구조를 거의 그대로 사용한 것이 맞는데요. 차이점이 있다면 transformer의 multi head attention 연산 시 키, 쿼리, 값이 모두 같은 모달리티의 값으로 구성되어있다면, 본 논문에서는 키, 쿼리, 값의 모달리티가 다릅니다.
감사합니다.
안녕하세요 김주연 연구원님 좋은 리뷰 감사합니다.
지난번 미팅에서 말씀해주신 논문인가 뭔가 익숙하네요 덕분에 좀 술술 읽었던 것 같습니다.
우선 가장 먼저 궁금한 건, MELD 데이터셋은 어떤식으로 구성되어 있나요? 예시를 알 수 있을까요?
물론 Emotion recognition은 아니기에 제가 아는 IEMOCAP, CMU 과는 다소 다른 형태겠지만, 문득 궁금해집니다. 데이터셋의 구조, 라벨 종류 등 간단하게 설명해주시면 이해하는 데에 도움이 될 것 같습니다!
데이터셋에 대한 질문이 들어서 또 궁금해진 게 생겼는데, 아마 이건 전반적인 multi-modal 데이터셋에 대한 질문이 될 것 같습니다.
그림 3인 모델의 전체 개요를 보면, T V A는 모두 n개의 피처로 구성된 것 같은데..
실제로 데이터셋은 각 모달 별로 모두 동일한 프레임(?) n 개로 구성되어 있나요?
그리고 각각 i번째 T, V, A가 모두 대응되나요?
안녕하세요. 댓글 감사합니다!
MELD를 예를 들어서 설명드리면, [{대화1}, {대화 2}, {대화 3} ..]의 큰 형식으로 구성이 되어 있고 각 대화는 {발화자, 발화} 형태로 들어가 있다고 생각하시면 될 것 같습니다.
각 모달 별로 동일한 프레임으로 가져가는 방법론도 있고 제가 봤던 방법론 중에서는 코드 중간에 pooling하는 과정을 거쳐서 프레임의 수가 다르더라도 동일하게 shape을 맞춰주는 부분이 있었습니다. 또한, i번째 입력 발화가 들어왔을 경우, T, A, V는 모두 대응 되도록 데이터가 제공되는 것으로 알고 있습니다.
감사합니다.
안녕하세요 김주연 연구원님. 좋은 리뷰 감사합니다.
위에서 주영님이 언급하신 데이터셋 관련 질문과 비슷한 질문인데요, 제가 알기로는 MELD 데이터셋드라마에서 추출한 데이터셋으로 알고 있는데 해당 데이터셋은 장면에 등장하는 화자의 수가 일정하게 유지되나요? [그림 4]같은 경우 화면에 등장하는 모든 화자 얼굴 특징을 개별적으로 추출하고 concat하는데 인물의 수가 다를 경우 shape이 달라지는 경우는 발생하지 않는 지 궁금합니다.
안녕하세요. 댓글 감사합니다!
우선 해당 데이터셋을 이용하여 직접 연구를 수행한 것은 아니지만, 대화에 등장하는 화자의 수는 2명이상이기만 하면 문제는 발생하지 않습니다. 데이터셋에 이미 발화자가 누구인지, 이 데이터셋에 등장하는 발화자는 몇명인지를 제공하기 때문에 shape과 관련한 문제는 없을 것이라 예상됩니다.
감사합니다.