Search
🤖

[논문 리뷰][arXiv 2024] Emotion-LLaMA: Multimodal Emotion Recognition and Reasoning with Instruction Tuning

생성일
2024/07/16 10:43
태그
paper-review
안녕하세요. 정말 따근따근한 MER (Multimodal Emotion Recognition)논문을 들고 왔습니다. arXiv에 6월에 등록된 논문으로 EMER과 마찬가지로 under review 중에 있는 논문입니다. 새로운 MER 분야로 찾아보게 되니 아직 under review인 논문을 위주로 읽게 되는거 같습니다 그만큼 최신 연구 분야라고 생각해주시면 감사하겠습니다.
본 논문은 제목에서 알 수 있듯이 LLaMA를 이용해서 EMER 데이터셋으로 성능을 보는 논문 중에 하나로, 새로운 데이터셋을 제안할뿐만 아니라 다양한 데이터셋에서 높은 성능을 달성한 모델 또한 제안하는 논문입니다. 그럼 리뷰 시작하도록 하겠습니다!

<1.Introduction>

많은 unimodal model이 감정 인식을 굉장히 잘하고 있고 연구 또한 활발히 진행되고 있습니다. 하지만 real-worold emotion data는 주로 text, audio, images로 구성된 multimodal로 구성되어 있기 때문에 더 정확한 감정인식을 위해서는 MER (Multimodal Emotion Recognition)을 수행할 필요가 있습니다.
본 논문에서는 기존의 대부분의 연구들이 여러 modality에서 feature를 추출해서 fusion하는 feature interaction과 missing modality시에 다른 modality를 이용하여 보완하는 modality completion에 주로 포커싱하여서 진행되고 있고, 사람의 감정 추론에 필요한 knowledge-level interaction에 대한 연구가 부족하다는 것을 지적합니다.
최근에는 이러한 reasoning을 할 때 Multimodal Large Languaage Models (MLLMs)을 이용하는 트렌드인데, 감정 인식에서는 이러한 MLLM을 사용하기 힘들다고 논문의 저자는 강조합니다. 그 예로 MLLM인 GPT-4V(GPT-4 with Vision)의 경우 여전히 2가지 문제점이 있습니다. 우선 첫번째로 audio를 처리하지 못한다는 것이고, micro-expression을 잘 인지하지 못한다는 것입니다.
논문의 저자는 MLLM이 위와 같은 문제를 가지고 있는 것의 원인으로 특화된 multimodal emotion instruction dataset이 부족한 것을 주요 요인이라 생각하였습니다. 텍스트, 영상, 오디오로 구성된 multimodal 데이터셋이 충분하지 못하기 때문에 오디오를 제대로 다루는 MLLM이 없는 것이고, 오디로를 다루는 MLLM이 있어도 미묘한 얼굴의 미세한 표정을 인식하기 어렵기 때문입니다. 이 때문에 real-world 시나리오에서는 제대로 감정 인식을 하기 어렵습니다.
위의 문제를 해결하기 위해서, 먼저 본 논문에서는 텍스트, 영상, 오디오를 모두 다루는 MLLM을 가능하게 하고 다양한 시나리오에서 학습하여 실제 application 단에서 일반화할 수 있도록 instruction tuning을 지원하는 MERR 데이터셋을 제안합니다. 여기에 추가로, emotion-specific encoder를 통해 오디오, 영상, 텍스트 입력을 통합하는 Emotion-LLaMA 모델을 제안합니다. Emotion-LLaMA에 instruction tunning을 사용하여 감정 인식의 정확도와 감정 추론의 수준을 크게 향상시켜 multimodal emotion recognition의 새로운 benchmark를 설정하고자 하였습니다.
위의 내용을 정리하여 본 논문의 contribution은 다음과 같습니다.
28,618개의 coarse-grained sample과 4,487개의 fine-grained sample로 구성된, MMER 데이터셋을 구축하였습니다. 여기에는 “doub”, “contempt”와 같은 미묘한 emotion category도 포함되어 있습니다.
emotion-specific encoder를 통해 텍스트, 영상, 음성을 입력으로 받아 감정을 인식하는 Emotion-LLaMA 모델을 제안합니다.
Emotion-LLaMA 모델 성능이 EMER, MER2023, DFEW 데이터셋에서 높은 성능을 달성하였습니다.

<2. Related Work>

최근에 논문 작성과 관련한 글을 보면서 related work가 본 논문의 저자가 얼마나 이 분야에 대해서 팔로업이 잘 되어있는지를 확인할 수 있는 부분이라고 하여서 저도 이제부터라도 related work를 세심히 살피고 있는데요. 본 논문의 저자는 Multimodal Large Language Models(MLLMs)와 Instruction Tunning 이렇게 두개로 나눠 본 논문의 필요성을 어필합니다.
Multimodal Large Language Models(MLLMs)
본 파트에서는 최근에 굉장히 MLLMs이 관심을 받고 있으며, CLIP, Q-Former, ImageBind와 같은 MLLM들이 general하게 domain application에 잘 작동하지만, 오디오에 있는 emotional clue를 잘 인식하지 못하거나 얼굴의 미세한 표현을 잘 포착하지 못하는 문제가 있음을 말합니다. 그에 반해 본 논문의 저자가 제안한 Emotion-LLaMA는 이러한 부분을 잘 포착하여 높은 성능을 달성했음을 언급합니다.
Instruction Tuning
본 파트에서는 instruction tuning 기법이 NLP task에서 주로 사용되는 기법이었지만, vision-language로 넘어오면서 visual instruction dataset이 주로 구축되어 tuning 되고 있음을 말하고 있습니다. 하지만 대부분 vision-language 모델에 한정하여 instruction tuning이 진행되기 때문에 audio를 처리하는 능력은 부족합니다. 이러한 문제를 본 논문의 저자는 multimodal description을 생성하여 이를 해결할 수 있음을 언급합니다.

<3.Method>

Emotion-LLaMA는 3개의 key point로 구성되어 있습니다. 첫 번째로, MERR data construction, 두 번째로, Multimodal Emotion-LLaMA model architecture, 세 번째로, training proceduers입니다. 하나씩 자세히 설명드리고자 합니다.

<3.1 MERR Dataset Construction>

MERR 데이터셋은 Algorim 1과 Figure 1에 설명된 대로 video data에서 emotion expression을 annotation하는 process를 통해 구축됩니다. 먼저, OpenFace toolkit을 사용하여 각 video frame에서 facial feature를 추출한 다음, Action Units(AUs)를 감지하고 점수를 maximum cumulative intensity를 가진 frame을 식별합니다. 여기서 Action Units(AUs)는 얼굴의 특정 근육 움직을 타나태는 표정 단위를 의미합니다. 주로 AUs는 본 논문에서처럼 각각의 미세한 얼굴 근육 움직임을 정량적으로 평가하는데 사용된다고 합니다.
여기서 SauiS_{au_i}는 각 AU의 intensity를 나타냅니다. 이러한 AU는 facial expression description CvedC_{ved}(Table 7, Table 8)에 맵핑되어 얼굴 움직임을 정확하게 나타냅니다. Table 7과 Table 8은 아래와 같이 주어집니다.
다음으로 MiniGPT-v2를 이용하여 peak frame에서 activitiy나 environment와 같은 contextual information을 추출하여 CvodC_{vod}를 생성합니다. 이를 통해 backgroud context 내에서 잠재된 감정 요소를 쉽게 식별할 수 있도록 합니다. 또한, Qwen-Audio를 이용하여 audio segment를 처리하여 음성 톤의 미묘한 차이를 추출하고, 감정 관련 description인 CatdC_{atd}를 생성합니다. 이후에 시각 및 오디오 정보를 concat하여 raw multimodal description를 만듭니다. 이렇게 만든 raw multimodal description을 lexical subtitle(자막) ClsC_{ls}와 합쳐 audio, visual data를 보충할 수 있도록 합니다. 이렇게 각 모달리티마다 description을 만들었으면, LLaMA-3가 Table 9의 instruction과 example에 따라 unimodal descriptions(Cved,Cvod,Catd,ClsC_{ved}, C_{vod}, C_{atd}, C_{ls})을 multimodal description CmdC_{md}로 통합하여 이러한 annotation을 정제합니다. Table 9는 다음과 같습니다.
최종적으로, 모든 모달리티의 설명을 담고 있는 포괄적인 description CmdC_{md}를 사용하여 비디오의 감정이 가장 잘 드러나는 feak frame에 상서한 감정 묘사를 주석으로 추가합니다. 이를 통해 비디오의 특정 순간이 정확이 어떤 감정을 표현하는지 명확하게 볼 수 있습니다.
Table 12를 보시면 기존의 데이터셋과 새롭게 구축한 MERR 데이터셋 간의 차이를 확인할 수 있습니다. MERR 데이터셋은 기존 데이터셋 보다 더욱 광범위한 emotion category와 annotation을 포함하고 있으며, 각 sample에는 emotion label이 annotation되고, emotion label은 emotional expression 측면에서 설명되어 제공됩니다. 초기에 28,618개의 데이터셋이 coarse-grained하게 labeling되었으며, 이후에 4,487개의 sample에 대해 fine-grained하게 annotation 되었다고 합니다. 아래의 Figure 5를 보시면, “odubt”, “contempt”와 같은 혼동되기 쉬운 emotion category까지 포함하여서 기존의 데이터셋과 비교했을 때 더 다양한 emotion category를 가지는 것을 확인할 수 있습니다.

<3.2 Multimodal Emotion-LLaMA Model>

본 논문에서 제안된 모델인 Emotion-LLaMA은 Figure 2를 통해서 그 구조를 확인할 수 있습니다. 구조를 보면, audio encoder Eaud\mathcal{E}^{aud}, visual encoder Evis\mathcal{E}^{vis}, multimodal large language model ϕϕ로 구성된 것을 확인할 수 있습니다. 입력으로 tuple P = <Audio, Video, Prompt>가 들어왔을 때, Emotion-LLaMA는 다음과 같이 공식화 할 수 있습니다.
여기서 ϕϕ는 LLaMA language model, Ω\Omega는 vision pre-processor, E\mathcal{E}는 multimodal encoder를 의미합니다. O^\hat{O}는 포맷된 output text 결과를 의미합니다. multimodal encoder E\mathcal{E}은 audio, vision, text prompt encoder로 구성되어 있으며, input VideoVideo는 frame sequence VVFramepeakFrame_{peak}로 preprocessing 됩니다.

<3.2.1 Multimodal Prompt Template>

prompt는 감정 상태와 감정 상태와 관련된 시각적 또는 청각적 내용 간의 잠재적인 연관성을 해석하도록 LLM을 유도하기 위해서 descriptive captions(설명 캡션)과 감정 상태를 명확히 식별하기 위한 표식인 emotion flags(감정 플래그)를 이용히여 다음과 같이 구성합니다.
앞으로 혹시 저도 감정 데이터셋을 구축해야할지도 모른다는 생각이 들어서 template를 어떻게 구성하였는지 조금 더 디테일하게 분석해봤습니다.
[INST],[/INST][INST], [/INST] : instruction 시작과 종료를 의미
<AudioFeature><Audio Feature> : audio feature를 삽입하는 자리
<VideoFeature><Video Feature> : video feature를 삽입하는 자리
[TaskIdentifier][Task Identifier] : 특정 작업을 식별하는 태그
PromptPrompt : 사용자가 입력할 prompt
descriptive captions와 emotion flags는 아래의 Table 13과 Table 14를 참고해주시면 이해하기 쉬우실 것 같습니다.

<3.2.2 Multiview Multimodal Encoder>

논문의 저자는 audio, visual modality에서 emotional clue를 포착하기 위해서, audio encoder Eaud\mathcal{E}^{aud}로 HuBERT를 사용하였습니다. HuBERT는 input audio signal AA로부터 종합적인 청각 representation인 uaudu_{aud}를 추출합니다.
visual modality에서는, input video에서 추출한 facial sequence와 peak frame을 포함한 vision preprocessor를 이용하여 vision modality를 통합하는데, 본 논문에서는 상호 보완적인 multi-view visual emotional feature를 추출하기 위해서 세 개의 visual encoder Evis=Eglovis,Elocvis,Etempvis\mathcal{E}^{vis} = \mathcal{E}^{vis}_{glo}, \mathcal{E}^{vis}_{loc}, \mathcal{E}^{vis}_{temp}를 사용합니다.
Local Encoder : ViT 구조의 모델로, MAE scheme으로 사전학습되었습니다. 이 모델을 통해서 정적인 facial expression feature를 추출합니다. facial sequence를 local encoder에 넣고, average pooling을 통해 frame별 feature를 결합합니다. 최종적으로 local visual feature ulocvis=AVG(Elocvis(V))u^{vis}_{loc} = \text{AVG}(\mathcal{E}^{vis}_{loc}(V))를 얻습니다.
Temporal Encoder : VideoMAE 모델로, facial sequece로부터 temporal feature utempvis=Etempvis(V)u^{vis}_{temp} = \mathcal{E}^{vis}_{temp}(V)를 추출합니다. emotional state를 나타내는 facial dynamics(’얼굴 역동성’이라 표현하는데 얼굴의 표정이 변화는 것을 나타내는 것이라 이해하시면 됩니다)을 학습하여 사람 감정의 temporal dynamic view를 제공합니다.
Global Encoder : ViT 구조의 EVA 모델로, offical한 사전학습된 weight를 이용하여 초기화합니다. EVA 모델을 이용하여 visual feature uglovis=Eglovis(Framepeak)u^{vis}_{glo} = \mathcal{E}^{vis}_{glo}(Frame_{peak})를 추출합니다. facial expression만 포착하는 것이 아니라 background context도 같이 포착하여 feature를 추출합니다.

<3.2.3 Multimodal Integration and Tokenization>

본 논문에서는 open vocabulary challenge와 text input을 효율적으로 처리하기 위해 SentencePiece를 기반으로한 byte-pair encoding(BPE)을 사용하는 LLaMA tokenizer를 사용하였습니다. (여기서 byte-pair encoding은 텍스트 데이터를 처리하기 위해 사용하는 인코딩 방법의 일종으로 굉장히 많이 쓰이는 방식 중 하나 입니다. BPE 모델을 구현하는 방법으로 SentencePiece를 사용하였는데, 구글에서 개발한 방식으로 이 또한 굉장히 유명한 방식입니다)
multimodal emotinoal reasoning의 경우, 문장을 생성할 때 가장 적합한 token(가장 가능성이 높은 token)을 반복적으로 선택해 감정적으로 적절한 response를 생성하도록 합니다.
audio, visual feaeture를 text token과 통합하기 위해서 linear projection mechanism을 이용하여 공통된 dimension space로 feature를 변환시킵니다. 학습 가능한 linear mapping σ\sigma를 사용하여 feature를 변환 시키는데, audio token인 σaud\sigma^{aud}, visual token인 σglovis,σlocvis,σtempvis\sigma^{vis}_{glo}, \sigma^{vis}_{loc}, \sigma^{vis}_{temp}를 포함합니다. 구체적으로 설명하면, σ\sigma를 적용하여 multimodal feature uu를 language embedding token T\mathcal{T}로 변환시킵니다.
결과적으로 생성되는 multimodal token T\mathcal{T}는 하나의 audio toekn <Taud><T^{aud}>, 3개의 visual token <Tglovis>,<Tlocvis>,<Ttempvis><T^{vis}_{glo}>, <T^{vis}_{loc}>, <T^{vis}_{temp}>와 text token <T0tex>,,<TNtex><T^{tex}_{0}>, …, <T^{tex}_{N}>의 sequence로 구성됩니다. 이러한 multimodal token을 Emotion-LLaMA 내부에 있는 cross-attention을 통해 통합하여 emotional content를 캡쳐하고 추론할 수 있도록 합니다.
이러한 linear projection과 multimodal token representation을 사용함으로써 Emotion-LLaMA는 다양한 modality information을 처리하고 통합할 수 있게 됩니다.
본 논문의 저자는 여기서 더 디테일한 부분은 코드를 통해서 확인할 수 있다고 하니 더 궁금하신 분은 이 깃허브 주소를 참고하시면 좋을 것 같습니다.

<3.3 Training of Emotion-LLaMA Model>

본 논문에서는 emotional reasoning과 recognition을 학습할 때 모델을 동시에 supervise하는 multi-task learning을 통해 학습합니다. ground trouth output과 label은 text 형식으로 변환 한 뒤 이를 concat하여 autoregressive loss calculation을 수행하게 됩니다. 학습 중에 emotion reasoing, recognition에 대한 반복적인 random instruction sampling을 통해 모델이 emotion reasoning에 대해서 포괄적으로 이해할 수 있도록 유도합니다. 일반적으로 Emotion-LLaMA는 coarse-to-fine 방식으로, Pre-training과 Multimodal Instruction Tuning으로 구성되어 학습합니다.
Stage 1: Pretraining
처음에는 vidual, audio description을 포함한 coarse-grained data로 모델을 학습시킵니다. 모델이 다양한 관점으로 감정을 이해할 수 있도록 학습시키는데, 단순한 description 또는 classification을 통해 multimodal feature token인 <Taud>,<Tvisglo>,<Tvisloc>,<Ttempvis><T^{aud}>, <T^{vis}{glo}>, <T^{vis}{loc}>, <T^{vis}_{temp}>이 word embedding space와 align되도록 합니다.
Stage 2: Multimodal Instruction Tuning
Emotion-LLaMA 모델을 사전학습 시켰다면, fine-grained instructional dataset을 통해서 emotion recognition, reasoning 능력을 더욱 향상시키고자 합니다. 이 단계에서는 이전에 구축한 MERR 데이터셋을 이용하여 모델이 다양한 감정 상태를 더 복합적으로 이해할 수 있도록 유도시킵니다.

<4. Experiments>

<4.1 Experimental Setup>

본 논문에서 제안한 Emotion-LLaMA를 평가하기 위한 데이터셋으로, MERR, MER2023, DFEW, EMER를 사용하였습니다. emotion recognition에 사용한 데이터셋과 emotion reasoning에 사용한 평가 지표가 다르니 둘을 분리하여 조금 더 디테일하게 설명드리고자 합니다.
Emotion Recognition
먼저 MER2023, DFEW 데이터셋에서의 instruction tuning으로 모델의 emotion knowledge를 통합합니다. 그런 후, 세 개의 test dataset(MER2023, DFEW, EMER)로 모델의 generalization 능력을 테스트합니다.
평가 지표로는 F1-Score, UAR(unweighted average recall), WAR(weighted average recall)을 사용하였다고 합니다.
Emotion Reasoning
감정 추론의 경우 EMER 데이터셋을 이용하여 평가하였습니다. EMER 데이터셋은 전통적인 감정 데이터셋과 달리, emotion trigger label(예를 들어서 얼굴의 미세한 표현, 말투, video context 정보)이 포함되어 있습니다. 평가는 ChatGPT를 통해 예측된 결과를 점수화하여 평가합니다. 세 가지의 key aspect에 포커싱하여 점수를 매겼는데, (1) 감정 관련 clue의 중복 정도, (2) 요약된 감정 상태의 중복 정도, (3) 다양한 모달리티에서의 reasoning process의 완전성을 중심으로 평가하였다고 합니다. 이런 평가 방식을 취한 이유는 모델이 multimodal context를 이용해서 감정을 이해하고 설명하는 능력이 정말 제대로 갖춰 있는지를 보기 위해서 입니다.
+) 여기에 추가적으로 잠시 이 모델이 어떤 GPU를 이용해서 학습했는지에 대해서 확인해봤는데 4개의 A100 GPU를 20시간 동안 사용하여 학습하였다고 합니다. 생각보다 적은 GPU와 적은 시간으로 학습하여 조금 놀라운 부분이 있네요.

<4.2 Comparision with State-of-the-Art Methods>

Multimodal Emotion Reasoning Results
먼저, reasoning에서의 성능을 확인해보고자 합니다. EMER 데이터셋을 이용하여 얼마나 emotion clue가 겹치는지에 따라서 점수를 매겼을 때 점수가 높을 수록 좋은 모델임을 나타내는데 본 논문에서 제안한 Emotion-LLaMA가 가장 성능이 높은 것을 확인할 수 있습니다.
여기서 확인할 점은 PandaGPT와 Video-LLaMA와 같은 최신 MLLM은 오디오 입력을 받지만 여기서 감정적인 signal을 잘 포착하지 못해서 성능이 낮은 것에 비해서 Emotion-LLaMA의 경우 높은 성능을 통해 모달리티의 감정 signal을 잘 포착한다는 것을 보입니다.
Multimodal Emotion Recognition Results
다음은 recognition에서의 성능을 확인하고자 합니다. Table 2는 DFEW 데이터셋에서의 성능을 보이는데, zero-shot 시나리오와 fine-tuning 시나리오로 나눠 성능을 측정하였습니다. 결과적으로 다른 MLLM과 비교했을 때 몇 감정을 제외하고는 대부분의 감정에서 높은 성능을 달성한 것을 볼 수 있고, 최종적으로 UAR과 WAR을 보면 SOTA를 달성한 것을 확인할 수 있습니다. 특히 zero-shot 상황에서도 잘 작동하지만 fine-tuning 상황에서는 점수가 20정도 더 상승한 것을 통해서 학습 후에 더욱 우수한 성능을 보입니다.
Multimodal Emotion Recognition Challenge
Table 3은 MER2023 challenge에서 이전의 SOTA supervised method와 비교한 것을 확인할 수 있습니다. Emotion-LLaMA는 audio, visual feature를 성공적으로 잘 textual space로 mapping 했기 때문에 A,V 성능보다 A,V,T 성능이 높은 것을 볼 수 있고, 이 A,V,T 성능이 다른 모델과 비교했을 때 높은 성능임을 확인할 수 있습니다.
Qualitative Analysis of Emotion Reasoning
Table 4를 통해서 Emotion-LLaMA와 다른 MLLM 간의 정량적 성능을 확인해볼 수 있습니다. Table 4에서 주어진 sample은 한 사람이 웃으며 다른 사람에게 질문하는 장면으로 불만을 나타내는 웃음으로 화난 상태를 나타냅니다. 그런데, PandaGPT, Valley의 경우 성공적인 emotion reasoning을 하지 못하고 표면적인 감정만 읽어 화남과 완전히 반대되는 감정을 예측한 것을 볼 수 있습니다. VideoChat-Embed의 경우, 화난 감정을 제대로 예측했으나 description에 hallucination 현상이 발생하는 것을 확인할 수 있습니다. Emotion-LLaMa의 경우, 제대로 감정을 추론했을 뿐만 아니라 description도 제대로 생성한 것을 확인할 수 있습니다.

<4.3 Ablation Study>

Table 5와 Table 6을 통해서 본 논문에서 진행한 Ablation Study를 확인할 수 있습니다. 사실 논문을 읽으면서 굳이 visual encoder를 3개나 사용한 이유가 궁금했는데 성능이 잘 나와서 그런 것은 아닐까 추측하면서 읽었는데, 역시나 3개의 encoder를 모두 사용했을 때 가장 성능이 높은 것을 알 수 있습니다. 각 encoder가 global, local, tmporal한 부분을 잘 포착하여서 이 모든 것을 고려했을 때 감정 clue를 가장 많이 얻을 수 있었기 때문에 성능이 높은 것은 아닐까 생각이 듭니다.
또한 Table 6에서는 학습 방식에 따른 성능 차이를 볼 수 있는데요. standard training이 가장 성능이 낮고, instruction tunning을 했을 경우에 standard training에 비해서 성능이 0.1 이상 차이나는 것을 볼 수 있습니다.
최근에 reasoning에 관심이 생기면서 emotion이라는 주관적으로 매길 수 있는 label에 대해서 어떻게 연구를 할까에 대해서 생각이 많았는데 Emotion-LLaMA가 EMER을 시작으로 잘 성능을 내준거 같습니다. 앞으로 계속 이 연구에 대해서 팔로업을 할 생각입니다. 근데 생각보다 LLM을 학습하는데 GPU가 제가 생각했던 것보다 많이 요구하지 않아 학교 연구실에서 할 법도 한데? 라는 생각이 드네요. 그러면 이만 리뷰 마무리해보겠습니다. 읽어주셔서 감사합니다.