안녕하세요. 최근에 VQA 논문 리뷰하다가 다시 감정 인식 논문으로 돌아왔습니다. 이전에 external knowledge를 이용하여 ERC를 수행했던 논문을 읽은 경험이 있어서 multimodal emotion recognition 논문 중에서 knowledge를 사용하는 논문은 없을까? 해서 읽어보았습니다. 그럼 리뷰 시작하겠습니다.
<1. Introduction>
감정 인식을 위한 multi-modality는 서로 다른 modality가 상호 보완적인 단서를 제공할 수 있고, 이를 융합하면 효과적으로 성능을 향상시킬 수 있기 때문에 최근에 큰 관심을 받고 있는데요. 예를 들어서 text modality에서는 단어의 의미와 관계성이 감정을 표현하고, speech modality에서는 억양과 높낮이가 감정을 인식하는데 유용할 수 있습니다. 이 논문에서는 text와 speech modality에 초점을 맞추어서 연구 하였습니다.
emotion 데이터셋은 일반적으로 데이터 부족 문제를 마주하는데, 이는 감정 라벨링의 주관적인 특성 때문에 발생하는 어려움 때문입니다. 이 문제를 해결하위한 일반적인 해결책은 pre-trained 모델을 활용하는 것인데요. text modality의 경우, BERT가 가장 일반적으로 사용되는 모델이며 feature extraction에 적합합니다. 최근에는 speech 기반의 pre-trained 모델도 등장했는데 그 중 가장 SOTA 모델은 wav2vec2 입니다.
attention mechanism을 통해 모델은 어떤 부분이 중요하고 어떤 부분이 관련이 없는지 학습 할 수 있습니다. 따라서 text나 speech와 같은 순차적 입력을 처리하는데 적합하다고 할 수 있죠. self-attention은 single sequence의 서로 다른 위치를 연관시켜 sequence의 표현을 계산하는 attention mechanism입니다. attention mechanisms에 기반한 co-attention은 한 modality의 sequence representation을 다른 modality의 sequence와 연관시켜 계산하는 융합 방식입니다. 여러 연구에서 multimodal emotion recognition을 위해 speech와 text modality의 pre-trained 모델과 attention machanism을 활용할 것을 제안했으며 유망한 결과를 얻었습니다. [1, 2]
그런데, data sequence의 모든 부분이 감정과 관련된 것은 아니며, external knowledge 없이는 attntion이 스스로 감정과 관련된 부분을 정확하게 학습하기는 어렵다고 합니다 [13]. 이러한 문제를 해결하기 위해서 본 논문에서는 external emotion-related knowledge을 통합할 것을 제안합니다. 보다 구체적으로 말씀드리자면, emotion lexicon을 attention mechanism과 함께 사용하여 감정 인식 task에 대한 interpretability와 robustness를 향상시킵니다. emotion lexicon은 이전 연구에서 효과를 입증한 바 있다고 하는데요. [14] 연구에서는 commonsence knowledge를 사용하여 graph를 구축하고 emotion lexicon을 사용하여 graph 내 node에 대한 감정 관련 정보를 검색하여 감정인식을 수행히였습니다. 그런데 본 논문에서는 emotion lexicon과 attnetion을 결합한 연구는 아직까지 존재하지 않다고 말하는데요. 이 논문에서는 emotion knowledge-related attnetion map를 prior distribution으로 사용하는 Bayesian framework를 제안합니다. Beyesian framwork를 통해 attention weight의 posterior distribution을 학습할 수 있습니다. 기존 attention map에 단순히 knowledge-attention map을 추가하는 대신 Bayesian attentino moudle (BAM)을 도입하는 이유는 우리가 도입하는 knowledge가 우리가 사용하는 데이터셋에서 수집된 것이 아니기 때문에 편향성이 발생할 수 있기 때문입니다. knowledge를 통합하는데 다소 “hard”한 방법을 사용하면 attention 모델을 학습하는데 영향을 미칠 수 있습니다.
본 논문에서 제안하는 접근 방식은 attention weight를 통합적으로 학습하면서 prior knowledge를 도입할 수 있으므로 위와 같은 문제를 방지할 수 있다고 합니다. 또한 late fusion model과 결합하면 성능이 더욱 향상된다고 합니다.
이렇게 introduction을 마쳤는데요. 최종적으로 contribution을 정리하면 아래와 같습니다.
- We introduce emotion-related knowledge in the attention model to help the model focus more on relevant information for emotion recognition.
- To effectively incorporate knowledge, we further propose to use BAM, which not only brings randomness in the model and thus can help in modeling complex dependencies but also incorporates knowledge as prior in a “soft” way. We also show that it’s complementary to the late fusion model.
- We evaluate the proposed models on the popular IEMOCAP dataset. Experimental results show that they can outperform existing multimodal approaches using both speech and text modalities.
<2. Proposed Method>
본 논문에서 제안한 모델은 Fig 1을 통해서 확인할 수 있습니다. 첫번째로 text embedding을 추출하기 위해서 BERT를 사용하고 frame-level speech embedding을 추출하기 위해 wav2vec2.0을 사용합니다. 그런 다음 word-lebel speech embedding을 얻기 위해서 word-level force alignment를 수행합니다. 그 후에 input sequence를 처리하고 knowledge를 soft하게 만들기 위해 두 embedding에 self-attention을 수행합니다. 그 후에 일반적인 co-attention을 적용하고 두가지 modality를 융합하기 위해 제안된 knowledge-aware co-attention module을 적용합니다. 그런 다음 average pooling layer와 linear layer를 사용하여 emotion classification을 위한 probability distribution을 출력합니다.
<2.1 Word-level Forse Alignment>
text와 speech modality 모두에 대한 knowledge를 사용하고자 하므로 frame-level speech embedding에 대처하기 위해서 word-level force alignmnet을 본 논문에서는 사용합니다.
여기에서 $u_k^W$는 word-level speech embedding $U^W$의 $k^{th}$ segmentation을 의미하고, $u_f$는 frame-level speech embedding의 $f^{th}$ frame을 의미합니다. $s$는 starting frame, $e$는 end frame을 의미합니다.
word-level speech embedding과 같은 segment-level speech embedding은 운율과 밀접한 관련이 있으며, 운율은 speech signal의 cadence information을 포함하고 있기 때문에 emotional state와 같은 발화의 특성을 전달할 수 있습니다.
<2.2 Self-attention Module>
self-attention은 single sequence의 서로 다른 위치를 연관시켜 sequence의 representation을 계산하는 attention mechanism입니다. generality를 잃지 않기 위해서 여기서는 one-head attention을 아래와 같은 방식으로 구성하였습니다.
$U^i$는 $i \in {W,T}$ modality에 대한 embedding을 말하고, $W$는 word-level speech embedding, $$T$는 text embedding을 말합니다. $W$는 weight, b$는 bias를 말합니다. self-attention module에서, 식 2에 있는 i 는 $Q_s, K_s, V_s$에 대해서 동일합니다. 따라서 아래와 같이 처리된 embedding을 얻을 수 있습니다.
여기서 $d$는 embedding의 차원을 나타냅니다. Multi-head attention은 이 과정을 어러번 수행하여 다양한 representation subspace에서 information을 학습합니다. 또한 self-attention module을 사용하여 우리가 사용하는 emotion lexicon인 NRC VAD lexicon[18]의 knowledge를 soften합니다. (다른 말로는 연성화시킵니다) knowledge가 상대적으로 sparse하기 때문에, 이러한 단계가 없으면 모델이 knowledge로부터 유용한 information을 학습하는데 어려움을 겪을 수 있다고 합니다. knowledge를 soften시키는 과정은 다음과 같습니다.
sequence가 주어지면 먼저 lexicon을 찾아 lexicon에 나온 단어를 찾습니다. 우리가 사용하는 VAD values의 범위는 -1에서 1까지 입니다. 그런 다음 각 단어의 L2-norm을 계산하여 intensity를 구합니다. 식은 아래와 같습니다.
여기서 $i_k$는 sequence에 대한 intensity인 vector i의 $k$번째 이고, $v, a, d$는 각각 valence, arousal, dominace를 나타냅니다. lexicon에 나타나지 않은 단어에 대해서는 intensity가 0으로 할당됩니다. 이제 sequence에 대한 knowledge $i$를 얻었지만 위에서 언급한 것처럼 sparsity 문제에 직면하게 됩니다. 그래서 논문의 저자는 식 3의 attention map의 k번째 행에 $i$를 곱하여 vector $i^{soft}$의 $k$번째 softening intensity $i_k^{soft}$를 구합니다.
<2.3 Co-attetnion Moudle>
co-attention module은 Fig 2를 통해 확인할 수 있는데요. co-attention module에는 두 개의 branch가 있으며, 각 branch는 Transformer encoder와 동일한 구조를 가지고 있습니다. 두 가지 modality의 첫번째 embedding은 각각 multi-head attention으로 보내집니다. $Q_c, K_c, V_c$의 계산은 식 2와 같습니다 하지만 여기서는 각 branch마다 $Q_c$ 또는 $K_c, V_c$와 같이 다른 modality를 가집니다. 그런 다음 식 3을 사용하여 attention map을 계산합니다. multi-head attention의 output은 식 3를 이용하여 계산되고 그런 다음 input과 함께 추가되어 $Q_c$를 계산하는 데 사용됩니다. 모델이 수렴하는데 도움이 되도록 Layernorm layer가 추가됩니다. 그런 다음 feed-forward layer가 적용되며, 비선형 함수가 있는 두개의 linear layer로 구성됩니다. feed-forward layer의 output은 input과 함께 추가되고 LayerNorm이 적용됩니다. Co-attention moduel은 여러번 적용할 수 있는데요. output은 최종 co-attention module의 두 개의 branch의 mean 입니다.
<2.4 Knowledge-aware Bayesian Co-attention Module>
제안된 Knowledge-aware Bayesian Co-attention Module은 Fig 3에 표시된 식 3의 attention map 계산을 제외하고는 2.3 section의 co-attention module과 동일한 구조를 가집니다. BAM [16]에서 attention weight $W$는 deterministic하지 않고 variational distribution에서 data-dependent하는 local random variable 입니다. 이 variational distribution은 reparameterizable한 attention distribution과 정규화로서의 prior를 사용하여 attention weight $W$를 posterior로서 근사치를 구할 수 있음을 보여주었습니다. [16]에 따라 Weibull distribution를 variational distribution로, Gamma distribution을 prior distribution으로 사용하면 regularization KL은 다음과 같이 계산할 수 있습니다.
$k, λ$는 Weibull distribution의 parameter를 말하고, $α, β$는 Gamma distribution의 parameter를 말합니다. $γ$는 Euler의 constant를, $Γ$는 gamma function을 말합니다. 식 3을 사용하여 계산된 co-attention module의 original attention map은 Weibull distribution의 $λ$를 계산하는 데 사용됩니다. normalization 후의 Weibull distribution의 sample은 학습 중 BAM의 attention map을 말합니다. inference 동안, posterior expectation을 이용하여 point estimates를 얻습니다. 그러나 본 논문의 저자는 distribution에서 직접 sampling하면 gradient의 backpropagation에 실패한다고 말하는데요. [16]에 따르면, Weibull distribution은 reparameterizable distribution이므로 unifrom distribution $ε ∼ Uniform (0, 1)$에서 sampling하여 이 문제를 해결할 수 있다고 합니다. 그러면 Weibull distribution에서 sample을 추출하는 방법은 다음과 같습니다 $S := λ(-log(1-ε))^{1/k}$, 여기서 $λ, k$는 Weibull distribution의 parameter를 의미합니다. 식 4와 유사하게 sample S에 $V_c$를 곱하면 knowledge-aware Baysian attention의 output을 얻을 수 있습니다.
식 6의 prior distribution의 파라미터를 계산하기 위해 $K_c$를 사용하는 [16]과는 달리, 식 5의 knowledge vector $i_{Q_c}^{soft}, i_{K_c}^{soft}$를 사용하여 계산하며, 여기서 $i_{Q_c/K_c}^{soft}$는 $Q_c/K_c$를 계산하는 sequence의 intensity입니다. $P=softmax(i_{Q_c}^{{soft}^T}, i_{K_c}^{soft})$. $P$를 사용하여 식 6에서 Gamma distribution $α$를 계산합니다. 이러한 방식으로 prior knolwedge를 사용하면서도 attention weight는 모델 자체에서 학습하도록 남겨두어 emotion lexicon의 bias problem을 완화 시킬 수 있습니다.
<3. Experiments And Discussion>
<3.1 Datasets>
데이터셋으로는 이전 리뷰들에서도 많이 등장했던 IEMOCAP을 사용하였습니다. 4개의 감정 class (angry, happiness, sadness, neural)을 사용했다고 하고, 각 utterance의 수는 1103, 1636, 1084, 1708개 라고 합니다. 또한 emotion lexicon으로 NRC VAD lexicon을 사용했다고 하는데. 여기에는 20,000개 이상의 영어 단어 목록과 valence (positiveness-negativeness), arousal (active-passive), dominance (dominanat-submissive) socre가 포함되어 있습니다.
<3.2 Result>
Table 1의 앞단은 single modality의 결과를 보여주는데요. co-attention이 없다는 점을 제외하면 Fig 1의 one branch와 구조가 동일합니다. word-level speech embedding은 식 1을 사용하여 frame-level speech embedding으로부터 계산됩니다. Text modality가 성능이 가장 좋은 것을 확인할 수 있습니다. 논문의 저자는 이에 대한 이유로 IEMOCAP에서는 음성이 더 효과적인 복잡한 상황이 많지 않기 때문이라고 합니다.
Table 1의 뒷단은 multimodality의 결과를 보여주는데요. single-modality의 결과와 비교했을 때, 훨씬 더 높은 성능을 가져온 것을 볼 수 있는데요. 또한 word-level의 speech embedding기반 co-attention fusion이 freame-level의 co-attention fusion과 유사한 성능을 보이는 것을 확인할 수 있습니다. 다음으로, original attention map에 knowledge map를 직접 추가한 word-level co-attention(Co-att + Knowledg)를 보면 다소 성능이 저하 된것을 알 수 있습니다. 다음은 식 2의 $K_s$를 사용하여 계산한 이전 [16]을 사용하는 BAM(Co-att+BAM)을 사용한 word-level co-attention 결과를 보면, knowledge 없이 BAM 단독으로 통합하면 모델 성능을 향상시킬 수 없다는 것을 알 수 있습니다. 이는 external knowledge 없이 multimodal emotion recognition을 위해 두 가지 modality를 융합하도록 BAM을 학습시키는 것이 어렵기 때문이라고 논문의 저자는 추축합니다. 마지막으로 emotion-related knowledge (Co-att + BAM + Knowledge)을 사용하여 prior estimated된 BAM을 사용하면 가장 좋은 결과를 얻을 수 있음을 확인할 수 있고, 이는 제안된 knowledge-enhance BAM model의 효과를 검증합니다.
자체적으로 성능 향상을 이룬것보다 다른 모델에 비해서 얼만큼 성능 향상을 이루었는지가 중요한데 Table 3를 통해서 이를 확인할 수 있습니다. SOTA multimodal emotion recognition 방법들과 비교했을 때 SOTA를 달성한 것을 볼 수 있고 UA가 0.7이상 향상한 것을 확인할 수 있습니다.
이렇게 리뷰를 마쳤습니다. 이런 식으로 모델을 학습할 수 있다는 것을 배운 논문이었는데요. 만약 실제로 사용한다면, 한국어 같은 경우 사전 유무에 따라 적용이 가능할지 아닐지 나뉠것 같습니다. IEMOCAP에 대해서만 성능이 나와있어 다소 아쉬웠던 논문이었습니다. 읽어주셔서 감사합니다.
[1] Z. Zhao, Y. Wang, and Y. Wang, “Multi-level fusion of wav2vec 2.0 and BERT for multimodal emotion recognition,” in Proc. Interspeech, 2022, pp. 4725–4729.
[2] W. Chen, X. Xing, X. Xu, and et al., “Key-sparse transformer for multimodal speech emotion recognition,” in IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2022, pp. 6897–6901.
[13] J. Bai, Y. Wang, H. Sun, and et al., “Enhancing selfattention with knowledge-assisted attention maps,” in Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, 2022, pp. 107–
115.
[14] Y. Fu, S. Okada, L. Wang, and et al., “CONSK-GCN:conversational semantic-and knowledge-oriented graph convolutional network for multimodal emotion recognition,” in IEEE International Conference on Multimedia and Expo (ICME). IEEE, 2021, pp. 1–6.
[16] X. Fan, S. Zhang, B. Chen, and et al., “Bayesian attention modules,” Advances in Neural Information Processing Systems, vol. 33, pp. 16362–16376, 2020.
[18] S. Mohammad, “Obtaining reliable human ratings of valence, arousal, and dominance for 20,000 english words,” in Proceedings of the 56th annual meeting of the association for computational linguistics (volume 1: Long papers), 2018, pp. 174–184.
안녕하세요 김주연 연구원님.
Knowledge라는 개념 자체가 좀 생소하긴 한데, External knowledge가 아니고서 그냥 “Knowledge“라고 하면 이미 흔하게 사용되는거 아닌가요? Knowledge의 범위가 어디까지 통용되나요?
BAM의 도입 이유에 대해서는 단일 모달리티 – 단일 모달리티로 학습된 사전학습 모델의 단순한 결합은 CLIP과 같이 동일 representation을 가지도록 학습된 것이 아니라서 문제가 된다는 것으로 이해했습니다. 근데 성능을 보면 +-0 정도인 것으로 보이는데, 이에 대해서 학습이 어렵다는 것은 너무 naive한 이유같은데 따로 생각해보신 이유가 있을까요?
그리고 여기서 학습이 안되는 이유에서 말하는 External knowledge는 텍스트에서 뽑아낸 lexicon VAD값이죠? (Knowledge라고 통칭해서 쓰이고있는데, external knowledge로 이해했습니다)
안녕하세요. 댓글 감사합니다.
1) 저는 여기서 knowledge를 external knowledge라고 생각하였는데요. 외부의 지식을 가져와 적용하는 것으로 knowledge를 생각하였습니다.
2) 저도 논문의 저자의 생각에 동의했기 때문에 따로 생각한 이유는 없는데요. 논문의 저자가 저렇게 말한 것은 knowledge와 BAM에서의 조합을 더 강조하고자 그러한 것이 아닌가 싶습니다
3) 네 맞습니다.
좋은 리뷰 감사합니다.
lexicon을 이용한다는 것은 사전에 정의된 단어 사전을 이용하는 것으로 이해하였습니다. 그렇다면, lexcion을 이용하는 방법론은 실제 application 관점에서 볼 때, 확장이 어려워지는 것인가요?
또한, lexicon에 나타나지 않은 단어의 intensity를 0으로 처리한다는 것은 모르는 단어는 고려하지 않는다는 것으로 이해하였는데 맞는지 궁금합니다.
안녕하세요. 댓글 감사합니다.
1) lexicon 같은 경우 영어의 경우 구축되어 있는 경우가 많지만 한국어나 아랍어 같이 소수만 사용하는 언어인 경우 구축되지 않았을 경우가 더 흔합니다. 이 때문에 application 관점에서 볼 때 확장이 어렵다고 생각하였습니다.
2) lexicon에 나타나지 않은 단어의 intensity를 0으로 처리한다는 것은 모르는 단어는 고려하지 않는다 -> 맞습니다
안녕하세요 김주연 연구원님 좋은 리뷰 감사합니다.
우선 본문에 사용된 knowledge의 의미가 궁금합니다. 모델의 knowledge라고 하면 입력 데이터에 대한 모델의 출력값 분포라고 알고 있었는데요, 리뷰를 읽다 보니 단순히 backbone의 feature값을 의미하는 것 같아 논문에서는 knowledge를 무엇으로 정의하는지 알고 싶습니다.
제가 알기로는 external knowledge라는 것은 학습 데이터 이외의 외부 text data를 의미하는 것으로 알고 있는데요, 본문에서도 이와 같은 의미로 사용된 것인지 궁금합니다.
안녕하세요. 댓글 감사합니다.
저는 여기서 knowledge라는 것이 lexicon을 이용하는 것이라고 생각하였습니다. external knowledge라는 것은 학습 데이터 이외의 외부 text data를 의미하는 것도 맞습니다. 같은 의미로 사용된 것도 맞습니다.