[ACL 2019] Multimodal Transformer for Unaligned Multimodal Language Sequences

안녕하세요. 이번에도 멀티모달 감정인식 논문입니다. 최신 논문이 아닌 2019년도 논문을 왜 들고 왔느냐 했을 때 이 논문이 multimodal transforemr 방법을 처음 제안한 논문이라고 봐도 무방하기 때문에 들고왔는데요. 실제로 다른 멀티모달 감정인식 논문을 읽으면 성능 비교할 때 반드시 등장하기 때문에 리뷰를 써보고자 합니다. 그럼 리뷰 시작하겠습니다!


<Introduction>

인간의 언어는 단어의 의미뿐만 아니라 visual, acoustic modality같은 nonverbal behaviors들을 포함하고 있습니다. 이러한 modality들은 많은 정보를 담고 있지만 modality간의 heterogenetiesㄷ 때문에 분석이 어렵습니다. 그리고 각 데이터의 수집 빈도가 다르기 때문에 이 데이터들을 올바르게 맵핑하는 것이 쉽지 않습니다. 즉 multimodal language sequence는 “unaligned” 특성을 나타내며 여러 modality 사이의 long-term dependencies를 추론해내야 합니다.

이러한 문제를 해결하기 위해 이 논문에서는 Multimodal Transformer(MulT)를 도입하였습니다. 기존 Transformer Network를 정렬되지 않은 multimodal stream에서 직접 representation을 추출하도록 확장시킨 end-to-end 모델로, 이 논문에서 제안한 방법은 별도의 alignment가 필요하지 않으며, 피쳐 엔지니어링도 필요하지 않습니다.

<Method>

논문에서 제안한 Multimodal Transformer (MulT)에 대해서 설명하고자 합니다. high level에서, MulT는 multiple directional pairwise crossmodal transformers로부터 feed-forward fusion process를 통해 multimodal time series를 합칩니다. 특별히, 각 crossmodal transformer는 다른 source modality의 low-level의 feature를 활용하여 target modality를 반복적으로 강화하며, 이 과정은 두 modality들의 feature간의 attention을 학습함으로서 이루어집니다. MulT 구조는 Figure 2를 통해 확인할 수 있는데요, 그림에 나와있는 것처럼 modality의 모든 쌍을 학습합니다. 그 후에는 합쳐진 feature를 학습하는 transformer로 이루어집니다.

<1. Crossmodal Attention>

두 modality \alpha, \beta가 있을 때, 각 modality로부터 나온 sequence를 X_{\alpha} \in{\mathbb{R}^{T_{\alpha}\times{d_{\alpha}}}} 그리고 X_{\beta} \in{\mathbb{R}^{T_{\beta}\times{d_{\beta}}}}라고 정의하겠습니다. 또한 여기서 T_{()}d_{()}은 sequence의 길이와 feature의 dimession을 의미합니다. 논문의 저자는 한 언어를 다른 언어로 변역하는 NMT의 decoder transformer에 영감을 받아서, crossmodal information을 융합하는 좋은 방법은 modality 간 latent adaptation, 즉 \beta에서 \alpha로의 adaptation을 제공하는 것이라고 가설을 세웠습니다. 여기에서 고려해야할 것은 modality가 facial attributes이나 spoken words같은 매우 다른 영역에 걸쳐있다는 것입니다. (즉, 두 모달리티의 성질이 매우 다르다는 의미)

논문에서 Query는 Q_{\alpha} = X_{\alpha}W_{Q_{\alpha}}로, KeysK_{\beta} = X_{\beta}W_{K_{\beta}}로, Values는 V_{\beta}=X_{\beta}W_{V_{\beta}}로 정의하였습니다. 여기서 W_{Q_{\alpha}} \in {\mathbb{R^{d_{\alpha}\times{d_k}}}} W_{K_{\beta}} \in{\mathbb{R^{d_{\beta}\times{d_k}}}}, W_{V_{\beta}}\in{\mathbb{R^{d_{\beta}\times{d_v}}}}는 weight를 의미합니다. \beta에서 \alpha로의 crossmodal attention Y_{\alpha}는 아래와 같습니다.

기존의 transformer가 그랬던 것처럼 MulT도 마찬가지로 crossmoal attention computation에 residual connection을 더했구요, 그런 다음 또 다른 positionwise feed-forward sublayer를 넣어 crossmodal attention block을 완성합니다. Figure 3(b)를 통해서 자세히 확인할 수 있습니다.

각 crossmodal attention block은 low-level feature sequence에서 directly하게 adapt해서 self-attention에 의존하지 않도록 합니다.

<2. Overall Archtecture>

논문에서는 다루는 3개의 modality는 language(L), video(V), audio(A) 입니다. 이를 X_{L,V,A} \in {\mathbb{R}^{T_{L,V,A}\times{d}_{L,V,A}}}로 표시합니다.

<Temporal Convolutions>

우선 각 modality의 sequence의 길이가 다르기 때문에 transformer에 input으로 넣기 위해서 1D temporal convolutional layer를 거칩니다.

여기서 k_{L,V,A}는 각 modality에 대한 convolutional kernel size를 의미하고, d는 dimension을 의미합니다. 이렇게 얻은 convoluted sequence는 sequence의 local structure를 포함할 것으로 예상되며, 이는 sequence가 서로 다른 samplig rate로 수집되기 때문에 중요합니다.

<Positional Embedding>

논문에서는 각 sequence들이 시간적 정보를 지닐 수 있도록 position embedding을 활용하였습니다.

여기서 PE는 positional embedding을 의미합니다. PE(T_{L,V,A},d) ∈ \mathbb{R}^{T_{L,V,A}×d}는 각 position 인덱스에 대한 고정된 임베딩을 계산하고, Z^[0]_{L,V,A}는 다양한 modality에 대한 low-level position-aware feature인 {L,V,A}를 계산한 결과입니다.

<Crossmodal Transformers>

위에서 설명한 crossmodal attention block을 활용해 crossmodal transformer를 디자인하였습니다. crossmodal transformer를 이용하여 다른 modality로부터 한 modality로 정보를 받을 수 있도록 합니다. 예를 들어서 설명해보겠습니다. vision(V)에서 language(L)로 정보 전달 하는 상황이라고 가정해보겠습니다. 이를 “V→L”로 표시하겠습니다.

각 crossmodal transformer는 D개의 crossmodal attention block으로 구성되어 있습니다. 수식적으로 표현하면 아래와 같습니다.

여기에서 f_{\theta}\theta로 parameterized된 positionwise feed-forward sublayer를 의미하고, CM^{[i], mul}{V→L}은 i번째 layer에서 CM{V→L}의 multi-head version입니다. (transformer에서 나오는 multi-haead attention을 생각해주시면 맞습니다) LN은 layer normalization을 의미합니다.

이 과정에서 각 modality는 multi-head crossmodal attention module을 통해 low-level의 external information을 활용해서 계속해서 업데이트 됩니다. crossmodal attention block의 모든 level에서 source modality로부터 나온 low-level의 신호들은 target modality와 상호작용하는 Key/Value pairs가 됩니다. 이를 통해 transformer는 modality 사이의 의미있는 elements를 학습하게 됩니다. 최종적으로 MulT는 모든 modality 쌍의 상호작용을 모델링합니다. 따라서 3개의 modality를 고려하면 총 6개의 crossmodal transformer를 갖게 됩니다.

<Self-Attention Transformers and Prediction>

마지막 단계로, 동일한 target modality를 공유하는 crossmodal transformer를 출력을 연결하여 Z_{L,V,A} \in {\mathbb{R}^{T_{L,V,A}\times{2d}}}를 산출합니다.

이렇게 이어 붙였으면 sequence modal에 넣어 sequence modal의 마지막 element를 추출하여 fc layer를 통과하여 최종적으로 예측합니다.

<3. Discussion about Attention & Alignment>

MulT는 따로 alignment 작업을 수행하지 않고 crossmodal attention block을 통해 modality간의 signal을 merge합니다. MulT는 modality non-alignment를 단순히 align하는 방식으로 처리하는 것이 아니라, crossmodal attention을 통해 model이 강력한 signal이나 중요한 information이 있는 다른 modality element에 직접 attention하도록 유도합니다. 그 결과, MulT는 기존 alignment에서 쉽게 파악할 수 없었던 long-range crossmodal contingencies를 포착할 수 있습니다. 반면에 classical crossmodal alignment는 special (step diagonal) crossmodal attention matrix로 표현할 수 있습니다. 이를 표현한 것이 Figure 4 입니다.

<Experiments>

<1. Datasets and Evaluation Metrics>

데이터셋은 감정인식 데이터셋으로 유명한 CMU-MOSEI 데이터셋을 사용하였는데요. 이 데이터셋을 안 사용하면 좀 그런것이 이 데이터셋을 제안한 랩실에서 작성한 논문이기 때문에 이 데이터셋을 사용한 것 같습니다. 실제로 CMU-MOSEI는 aligned 버전과 unaligned 버전 모두 제공하기 때문에 실험하기 용이했던 것은 아닌가 싶습니다. 또한 CMU-MOSEI와 동일하게 매우 유명한 IEMOCAP 데이터셋 또한 사용합니다.

평가지표에 대해서 간단히 설명드리자면, Acc_7은 sentiment score classification으로 7-class accuarcy를 의미하고, Acc_2는 positive/negative sentiments로 binary accuary를 의미합니다. Corr은 models’prediction with human을 의미합니다.

<2. Results>

성능을 확인하면 역시나 MulT가 가장 높은 것을 확인할 수 있는데요. 주목해야 할 점은 소수점 몇자리 찔끔 성능 높은 것이 아니라 거의 2퍼센트 정도 높은 것을 확인할 수 있는데요. 확실히 multimodal transformer가 성능 향상에 많은 영향을 준 것은 아닌가 합니다.

IEMOCAP에서도 역시나 가장 성능이 높은 것을 확인할 수 있는데요. CMU-MOSEI처럼 다른 방법론에 비해서 성능이 월등히 높은 것을 확인할 수 있습니다.

<3.Ablation Study>

ablation study 입니다. 다른 방법론과 비슷하게 unimodal transformer 부분을 살펴보면 language 모델이 가장 성능을 많이 내는 것을 알 수 있습니다.

논문의 저자는 세가지 self-attention transformer의 마지막 element를 feature-wize concat하는 late-fusion transformer와 세가지 asynchronous sequence를 temporal하게 concat하는 early-fusion self-attention transformer에 대해서 고려하였지만, 경험적으로 EF-, LF-transformer 모두 unimodal transformer에 비해서 성능이 뛰어나다는 것을 발견하였습니다.

최종적으로 논문에서 제안한 multimodal transformer를 사용하는 것이 가장 성능향상에 도움이 된다는 것을 발견하였습니다.


이렇게 리뷰를 해봤는데요. MulT라는 모델은 정말 다른 멀티모달 감정인식 논문에서 성능 비교용으로 거의 매번 등장하는 모델이라 리뷰하기를 기다렸던 것 같습니다. multimodal transformer를 처음 제안한 논문이라 배울 점이 많았던 논문이었던 것 같습니다. 읽어주셔서 감사합니다.

Author: 김 주연

8 thoughts on “[ACL 2019] Multimodal Transformer for Unaligned Multimodal Language Sequences

  1. 안녕하세요 김주연 연구원님. 좋은 리뷰 감사합니다.

    실험 부분을 보다가 궁금했던 건데 Word Aligned데이터셋과 Unaligned의 차이점이 무었인가요? 전체적으로 Unaligned에서의 성능이 낮은 것을 확인할 수 있는데 이와 관련해서 논문에서 별다른 언급은 없었는지도 궁금합니다.

    1. 댓글 감사합니다

      그러고보니 뭐가 unaligned 되었는지 제가 언급을 안했었네요;; 제일 중요한 거를 빼먹은 느낌입니다. 설명드리자면 aligend version은 P2FA라는 기법을 적용하여 aligned를 진행하고, unaligned version은 단어 segment 정렬이나 수동 subsampling 없이 추출된 원본 audio, visual feature를 그래도 유지해서 사용합니다. 그래서 각 모달리티의 길이가 매우 달라집니다.

  2. 안녕하세요 김주연 연구원님. 좋은 리뷰 감사합니다.
    이번 리뷰의 모델은 단순히 multimodal pair를 모두 학습시킨것으로 보이는데, 그럼에도 불구하고 좋은 성능을 냈다는것이 신기했습니다. 혹시 multi-modal이나 multi-spectral에서 다른 domain의 feature를 fusion하는 방법 중에서, element-wise concat/summation 이외에 자주 사용되는 방법이 또 있을까요? 예전 thermal-RGB fusion에서는 element 간 단순 덧셈을 사용하였는데, 이런 간단한(concatenation, summation) 방법 이외에 자주 사용되는 다른 방법이 있는지 궁금합니다.

    1. 댓글 감사합니다.

      concat/summation 하는 것은 정말 아주 간단한 fusion 기법 중 하나라 말할 수 있는데요. 무작정 concat하는 방법은 비교적 단순한 fusion 방식으로 볼 수 있고, 제가 본 감정인식에서 멀티모달은 cross-modal attention을 많이 사용하는데. 쿼리, 키, 벨류를 모달리티끼리 섞어 사용하여 마지막에 나온 feature를 concat하여 사용하는 방법이 있습니다.

  3. 리뷰 잘 봤습니다. 수식이 복잡하게 작성되어있어서 이해하는데 조금 어려움이 있네요.

    몇가지 질문이 있는데, 먼저 리뷰 내용 중
    “각 modality는 multi-head crossmodal attention module을 통해 low-level의 external information을 활용해서 계속해서 업데이트 됩니다. crossmodal attention block의 모든 level에서 source modality로부터 나온 low-level의 신호들은 target modality와 상호작용하는 Key/Value pairs가 됩니다.”
    라고 말씀해주셨습니다. 여기서 low-level 신호라는 것은 무엇을 의미하는건가요? 보통 CNN에서 앞단 레이어 부분에서 추출된 feature들을 low level feature, 네트워크 뒷단에 추출된 feature를 high level feature라고 부르는데, 여기서 말하는 low-level 신호는 어떤 개념인가요?

    그리고 결국 논문에서는 서로 다른 모달리티에 대하여 각각의 모달리티로의 변환을 해줄 수 있는 crossmodal transformer를 제안한 것이며 이 crossmodal transformer는 query는 알파, key value는 베타라고 두고 attention 연산을 수행하는 방법이 맞나요? 그럼 결국 이러한 attention 연산을 통해 저자는 베타를 알파쪽 모달리티로 변환시킬 수 있다고 믿고 있는 것이구요.

    그렇다면 저자는 왜 각 모달리티 별로 변환할 수 있는 transformer를 개별적으로 둔 것인가요? 좀 어려운 문제일지라도 3가지의 모달리티가 모두 동일한 latent space로 보낼려고 시도하는 것이 더 효율적일 것 같은데, 이렇게 개별적으로 A2B, A2C, B2A, B2C, C2A, C2B로 쪼갠다는 것은 이쪽 분야에 이렇게까지 쪼개야하는 이유가 있어서인가요? 아니면 하나의 latent space로 변환시킨다는 것이 어렵기에 세부적으로 쪼개서 변환하는 것인가요?

    1. 댓글 감사합니다.

      1. 논문에서 말하는 low level의 신호는 정민님이 이해하신 것처럼 CNN 앞단 레이어에서 추출한 feature라고 이해하는 것이 맞습니다. Figure 2를 보면 각 모달리티끼리 attention을 수행하기 전에 conv를 통과하는데 통과하여 나온 값을 low level feature라고 논문에서는 지칭합니다.

      2. 네 맞습니다.

      3. 정민님의 의견대로 각 모달리티를 모두 동일한 latent space로 보내는 시도 또한 다른 논문에서 수행하는데 이 논문에서 개별적으로 쪼개서 진행한 이유는 이 논문은 단순히 aligned dataset에서 transformer를 수행하는 것이 아니라 unaligned dataset에서 transformer를 수행하기 때문이라 생각합니다. A2B, A2C, B2A, B2C, C2A, C2B 쪼개서 수행함으로써 unaligned를 맞추는 과정이 수행되는 것이 아닌가 생각합니다.

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

    1 . Fig 4에서 ‘기존 alignment에서 쉽게 파악할 수 없었던 long-range crossmodal contingencies를 포착할 수 있다고 하셨는데‘ long-range crossmodal contingencies은 무엇을 의미하나요? 그리고 이러한 특성을 얻었을 때 가질 수 있는 장점은 무엇이 있나요?

    2. 제가 아직 attention 기법에 대해서 잘 모르지만 Fig 3(a)에서 Query(Q)와 Keys(K)를 곱한뒤에 d(k)로 나눈뒤 softmax를 취하고 Values를 곱하게 되는데 이 부분이 두 sequence 간의 유사도를 계산해서 attention할 곳을 찾는 것인가요?

    1. 안녕하세요. 댓글 감사합니다.

      1) long-range crossmodal contigencies를 포착할 수 있다는 말은 기존에는 먼 거리의 modality간의 관련성을 포착하기 힘들었는데, attention을 통해 먼 거리의 modality 간의 관련성도 포착할 수 있게 되었습니다. 이러한 특성을 얻을 경우, 긴 sequence가 들어오더라도 강인하게 작동할 수 있습니다. 기존의 RNN 계열의 모델 같은 경우 긴 sequence가 들어오면 앞단의 내용은 적게 반영되는 경우가 있었는데 attention으로 이를 극복한 것이지요.

      2) 더 구체적으로 말씀드리자면, 쿼리와 키를 곱해 d로 나눈뒤 softmax를 취하면 확률 분포가 나오게 되는데 이것이 각 value에 얼만큼의 가중치를 줄 것인지 결정하게 됩니다. 이렇게 구한 확률 분포에 value를 곱하면 주어진 확률만큼 가중치가 곱해져서 값에 반영됩니다. 그렇게 되면 먼 거리에 있는 단어일지라도 높게 가중치를 주어서 값을 많이 반영할 수 있게 됩니다.

      감사합니다.

답글 남기기

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