[논문 리뷰] DialogueRNN: An Attentive RNN for Emotion Detection in Conversations

yeomm·2024년 4월 19일
0

AI 논문리뷰

목록 보기
7/21

https://arxiv.org/abs/1811.00405

Abstract

  • opinion mining (Sentiment analysis): 텍스트 본문 뒤에 숨은 감정적 어조를 식별하는 방법
  • argumentation mining: 자연어 텍스트에 논증 구조를 자동으로 추출하고 식별하는 방법 (텍스트에서 논거, 주장, 근거, 논쟁 과 같은 인수(augment)를 추출)

현재 시스템은 대화에서 각 발언의 화자를 개별적으로 취급하지 않음 (대화에서 발화자를 구분하지 않음)

→ 이 논문에서는 대화 전반에서 rnn을 통해 개별 당사자를 추적하고 이 정보를 감정 분류에 사용한다.

Background

GRU (Gated Recurrent Unit): 순차 데이터를 처리하는 데 사용되는 모델로, Reset gate와 Update gate로 구성됨

LSTM의 forget gate와 input gate를 Update gate로 합쳐서 LSTM의 구조는 단순화시키면서 성능은 유지시킨 모델이다.

  • Reset gate: 현재 상태에서 얼마나 이전 상태의 정보를 유지할지 결정 (0~1: 1에 가까울 수록 이전 정보 기억)
  • Update gate: 이전 상태의 정보와 새로운 정보 사이의 균형을 결정 (0~1: 1에 가까울 수록 이전 정보 우선)

⇒ RNN과 마찬가지로 출력은 하나

출처: https://itrepo.tistory.com/40#Work-Flow-of-GRU

1 Introduction

대화가 진행됨에 따라 발화, 문맥, 현재 발화자에 의존하여 개별 당사자를 모델한다

이 모델은 대화에서 감정과 관련된 3가지 주요 측면이 있다고 가정한다. (화자, 이전 발화의 문맥, 감정)

→ 이 3가지 모델은 반드시 독립적이지는 않지만 개별 모델링이 성능이 좋다.


두 사람 사이의 대화에서는 각자 뚜렷한 역할을 가지고 있는데 문맥을 추출하려면 말하는 사람과 듣는 사람 모두의 이전 차례를 고려하는 것이 중요하다.

P_A의 감정이 P_B의 이전 발화에 의해 영향을 받음


→ DialogueRNN은 이런 측면을 모델링하기 위해 3개의 GRU를 사용한다. (Gated Recurrent Unit)

들어오는 발화는 문맥을 업데이트하는 global GRU와 개별 발화를 처리하여 발화자의 상태를 업데이트하는 party GRU라고 불리는 2개의 GRU로 공급된다

  • global GRU: 발화를 인코딩하는 동안 해당 당사자의 정보를 인코딩한다. GRU를 사용하여 이전 발화들을 고려하여 대화의 전체적인 문맥적 표현을 파악한다. 이러한 문맥적 표현을 바탕으로 발화자의 상태는 이전 상태를 고려하여 업데이트된다.

발화자의 상태가 발화자의 이전 상태와 이전 발화에 대한 정보를 포함한 Global GRU로부터 직접적으로 정보를 받는다

마지막으로, 업데이트된 발화자의 상태가 emotion GRU에 공급되어 감정 표현을 디코딩한다.

⇒ 시간 t에서 emotion GRU 셀은 t-1의 감정 표현과 t의 발화자의 상태를 얻는다.

대화의 감정적 측면을 파악하고 각 파티 간의 관계를 모델링하는 데 global GRU와 emotion GRU 협력한다. 대화 참여자 간의 관계를 모델링하는 데 중요한 역할을 한다.

party GRU는 동일한 파티의 두 순차적인 상태 간의 관계를 모델링한다. 이는 한 참여자의 연속적인 발화나 행동 간의 관계를 파악하는 데 사용됩니다. 즉, 동일한 발화자가 이전 상태에서 현재 상태로 전환되는 과정을 파악하고 이를 모델링하는 데 사용된다.

DialogueRNN에서는 이 3가지 유형의 GRU가 반복적으로 연결된다.

감정 인식이 다양한 분야에서 주목을 받고 있으며, 감정과 얼굴의 신호 간의 상관 관계, 음성 정보와 시각적 신호의 통합, 텍스트 기반의 감정 인식, 멀티 모달 설정에서의 맥락 정보 활용 등 다양한 연구들이 이루어지고 있다.

또한, 인간 상호 작용을 재현하려면 대화를 심층적으로 이해해야 한다. 감정이 대화에서 중요한 역할을 하며, 감정이 시간에 따라 변화하는 동적인 특성은 대화 참여자들 간의 상호 작용에 의해 영향을 받는다. 따라서 이런 개념들을 효과적으로 통합하여 대화 모델을 구축하는 것이 중요하다.

대화가 시간의 흐름에 따라 진행되고 발전하기 때문에 이를 재현하기 위해서는 rnn이 채택된다. 또한 memory network가 자연어 처리에서 많이 사용되고 있다.

따라서 두 발화자 사이의 대화에서 감정 인식을 위해 두 개의 별개의 메모리 네트워크를 사용하여 화자 간의 상호작용을 가능하게 했다.

3 Methodology

3.1 Problem Definition

감정 label을 예측 해야 함 (happy, sad, neutral, angry, excited, frustrated)

M: 대화 속의 발화자 수, Ut:

함수 s: 당사자와 해당 발화를 매핑

→ s(Ut): 발화 Ut에 속하는 당사자를 나타냄

utterance representation은 D차원 벡터로 표현되고, 이는 feature extractor에 의해 얻어진다.

3.2 Unimodal Feature Extraction

Conversational Memory Networks (CMN)이라는 이전 연구에서 사용된 특징 추출 과정과 동일한 방법을 사용해서 특징을 추출한다

Conversational Memory Networks (CMN):

대화 기억(Conversational Memory)

텍스트 특징 추출 (Textual Feature Extraction)

텍스트 특징 추출을 위해 CNN을 사용한다.

각 발화에서 n-gram 특징을 추출하기 위해 크기가 각각 3, 4, 5인 세 가지 다른 컨볼루션 필터를 사용한다. 각 필터는 50개의 feature 맵을 가지고 있다. 이후 출력은 max-pooling을 거쳐 ReLU 활성화 함수가 적용된다.

활성화함수가 적용된 결과는 100차원의 dense layer로 입력되어 텍스트 발화에 대한 특징을 담은 벡터가 100차원의 dense layer로 전달된다.

이러한 밀집 레이어는 각 발화를 특정 차원의 벡터로 표현하여 해당 발화의 특성을 나타내는 역할을 하며, 이 벡터는 텍스트 발화의 표현으로 해석될 수 있다.

이 네트워크가 각 발화와 해당 발화의 감정 레이블을 함께 사용하여 훈된다. (주어진 발화에 대한 감정을 예측하는 모델을 학습)

⇒ CNN을 사용하여 각 발화에서 텍스트 특징을 추출하는 과정: 각 발화를 n-gram 특징으로 변환 → 발화의 텍스트 표현 얻음

청각, 시각적 특징 추출 (Audio and Visual Feature Extraction)

시각적 특징 추출: 3D-CNN 사용

청각적 특징 추출: openSMILE 사용


3D-CNN

출처: https://jay.tech.blog/2017/02/02/3d-convolutional-networks/

2D ConvNet과 비교하면, 3D ConvNets는 3D convolution과 3D pooling operations으로 인해 temporal information을 모델링할 수 있다.

즉, 2D ConvNet이 공간적으로만 수행하는 operations을 3D ConvNets에서는 시공간에 대해서 수행할 수 있다. 그림에서 그 차이점을 확인할수 있다. 하나의 convolution에 대한 개념을 상대 비교한 것이다. 2D convolution은 여러 이미지에 적용되더라도 channel로 인식하기 때문에 하나의 이미지만을 생성시키지만, 3D convolution은 input signal의 temporal information을 보존하고 생성 결과물이 volume형태가 된다.

출처: https://m.blog.naver.com/khm159/222027509486


openSMILE

음성과 같은 오디오 신호의 feature를 추출하고 음성 및 음악 신호를 분류하는 데 사용됨

음성 신호에서 음성 콘텐츠를 추출하는 자동 음성 인식 과 달리 openSMILE은 주어진 음성 또는 음악 세그먼트의 특성을 인식할 수 있다. 인간의 음성에 인코딩된 이러한 특성의 예로는 화자의 감정 ,나이, 성별 및 성격뿐만 아니라 우울증 , 중독 또는 음성 병리학적 장애와 같은 화자 상태가 있다.

3.3 Our Model

대화에서 감정 감지의 주요 3요소

  1. 발화자: 각 party는 말할 때마다 변하는 party state를 사용해서 모델링된다. 이를 통해 발화 내에서 감정의 변화를 추적할 수 있다.

  2. 앞의 발화의 문맥: 발화의 문맥은 global state (모든 party들과 공유돼서 global)를 사용해서 모델링된다.

    global state는 이전 발화와 party state가 함께 인코딩되어 맥락 표현에 사용된다. 이는 party state를 정확하게 표현하기 위해 필요함

  3. 앞의 발화의 숨겨진 감정: 화자의 party state와 이전 화자의 state를 문맥으로 사용하여 감정 표현을 추론한다. ⇒ 이 감정 표현은 최종 감정 분류에 사용됨

GRU cell을 state와 representation을 업데이트하기 위해 사용함.

각 GRU 셀은 ht = GRU∗(ht−1, xt)로 정의된 은닉 상태를 계산함 (Xt: 현재 입력, ht-1: 이전 GRU state, ht: 현재 GRU 출력)

현재 발화의 감정 표현 = 이전 발화의 감정 표현과 현재 화자 상태의 함수로

이후에 이 감정 표현을 감정 분류를 위해 소프트맥스 레이어로 보냄


전체적인 Dialogue RNN 구조

업데이트되는 체계도

Global State (Global GRU)

이는 발화와 화자의 상태를 공동으로 인코딩하여 발화의 문맥 파악하는 것을 목표로 함. 각 states는 화자 별 발화 표현으로도 사용됨

→ 화자나 발화 간의 종속성이 생겨 향상된 문맥 표현을 얻을 수 있음

현재 발화 Ut는 화자의 상태를 qs(ut) t−1 에서 qs(ut) t로 변화시킨다.

우리는 이런 변화를 GRU 셀을 통해 포착한다.

Party State (Party GRU)

고정된 사이즈의 벡터를 사용해서 개별 화자의 상태를 추적한다. 이는 감정 분류에 영향을 미친다. 현재 들어오는 발화 Ut에서 참가자의 역할을 업데이트한다. (화자인지 청취자인지). 이런 state vector는 null 벡터로 초기화된다.

이 모듈의 주요 목적은 각 발화의 화자를 인식 후 처리하는 것이다.

Speaker Update (Speaker GRU)

화자는 이전 대화의 문맥을 바탕으로 응답함. 따라서 아래와 같이 문맥을 파악.

g: 이전 발화를 대표하는 global state

alpha: attention score, Ut와 감정적으로 관련성 높을수록 값이 높아짐

문맥 벡터 Ct는 이전 global state를 alpha로 pooling함으로써 계산된다

들어오는 발화 Ut와 GRU 셀을 사용해서 현재 화자 상태를 새로운 화자상태로 업데이트한다.

이를 통해 현재 발화에 대한 정보와 global GRU의 문맥이 새로운 화자의 상태 qs(ut)로 업데이트 된다.

Listener Update

Listener state는 발화자의 발화로 인한 청취자의 상태 변화를 모델링한다.

  1. 청취자의 상태가 변하지 않는 매커니즘

  2. 청취자의 시각적 단서를 기반으로 다른 GRU 셀을 적용하여 청취자의 상태를 업데이트하는 매커니즘

⇒ 두번째 방법은 파라미터의 값이 증가함에도 결과값이 비슷해서 첫번째 방법이 더 효율적임

이는 청취자가 말하고 있을 떄만 대화와 관련이 있기 때문이다. (조용히 있으면 대화에 영향을 미치지 않음)

⇒ 참여자가 말하면 상태 qi를 모든 이전 발화와 관련된 정보를 담고 있는 Ct를 통해 업데이트한다.

Emotion Representation (Emotion GRU)

화자 상태 qs(ut),t와 이전 발화의 e(t-1)로부터 감정 표현 et를 추론한다. e(t-1)은 상대방의 파인 튜닝된감정 문맥 정보를 et에 보낸다. →화자 상태와 상대방 상태의 연결을 설정

모델이 발화자의 상태가 전역 상태로부터 정보를 받아오는데, 이는 발화자별 발화 표현으로 작용한다.

감정 GRU는 이전 화자의 상태와 직접적으로 연결되기 때문에 성능을 향상시키는 데 도움이 된다.

화자 GRU와 global GRU는 인코더와 비슷한 역할을 하고 감정 GRU는 디코더 역할을 한다.

Emotion Classification

2 계층의 퍼셉트론으로 구성됨

마지막 소프트맥스 층은 6개의 감정 클래스 확률을 계산하기 위해 사용됨. (happy, sad, neutral, angry, excited, frustrated)


yt: 예측 레이블

Training

훈련하는 동안 loss를 측정하기 위해 L2 정규화를 categorical cross-entropy로 진행함 (이는 multi-class 분류에서 하나 클래스 구분 시 사용됨)

N: 대화의 수

c(i): 발화의 수

Pi,j: 대화 i의 발화 j의 감정 레이블 확률

yi,j: 대화 i의 발화 j의 예상 클래스 레이블

감마: 가중치, 세타: 훈련 간으한 파라미터들의 집합

stochastic gradient descent based Adam optimizer 사용

3.4 DialogueRNN Variants (변형)

  • DialogueRNN + Listener State Update: 발화자의 상태 qs(ut) 를 기반으로 청취자의 상태 업데이트
  • Bidirectional DialogueRNN (양방향 RNN과 유사): 두 RNN이 입력 시퀀스에서 forward와 backward pass에 사용되고, RNN의 출력은 시퀀스 레벨에서 연결된다. 최종 감정 표현에서 forward pass와 backward pass를 통해 대화의 과거, 미래 정보가 포함되어 감정 분류를 위해 더 좋은 문맥 제공함.
  • DialogueRNN + attention: 각 et에 대해 attention이 적용되어 이는 과거와 미래의 발화에 관련서을 제공함
  • Bidirectional DialogueRNN + Emotional attention: 대화의 모든 감정 표현을 통해 대화의 다른 발화에서 문맥 파악함. → et는 감정 분류를 위해 2 layer 퍼셉트론으로 보내짐

4 Experimental Setting

4.1 Datasets

8:2 비율로 train set과 test set을 나눔

  • IEMOCAP: 10명의 발화자와 쌍방향 대화, 8명만 훈련 세트에 속함. "happy", "sad", "neutral", "angry", "excited", "frustrated" 중 하나의 여섯 가지 감정 레이블
  • AVEC: 사람과 인공 지능 에이전트 간의 대화. 각 대화는 4가지 감정 속성 중 하나 가짐: "valence" (감정의 긍정성/부정성), "arousal" (감정의 활동성/정적성), "expectancy" (감정의 예측 가능성), 그리고 "power" (감정의 강도).

4.2 다른 모델들 설명

  • c-LSTM: 양방향 LSTM을 사용하여 주변 발화로부터 맥락을 캡처하여 맥락 인식 발화 표현을 생성하지만 발화자를 구분하지 않음
  • c-LSTM+Att: 이 변형에서는 각 타임스탬프에서 c-LSTM 출력에 어텐션을 적용하여 더 나은 맥락을 제공함
  • TFN: multimodal scenario에 특화된 모델로 Tensor outer product을 사용하여 다중 모달 간 및 내부 모달 상호 작용을 캡처한다. 이 모델은 주변 발화로부터 맥락을 캡처하지 않는다.
  • MFN: 다중 모달 시나리오에 특화된 이 모델은 다중 뷰 학습을 활용하여 뷰별 및 교차 뷰 상호 작용을 모델링하지만 주변 발화로부터 맥락을 캡처하지 않는다.
  • CNN: 텍스트 특징 추출 네트워크로, 주변 발화로부터 맥락 정보를 사용하지 않는다.
  • Memnet: 현재 발화를 메모리 네트워크에 공급하여 이전 발화에 해당하는 메모리에 입력. 메모리 네트워크의 출력이 감정 분류를 위한 최종 발화 표현으로 사용된다.
  • CMN: 대화 기록에서 발화 문맥을 모델링하기 위해 두 개의 서로 다른 GRU를 사용. 현재 발화를 두 개의 서로 다른 메모리 네트워크에 각각 쿼리로 공급하여 발화 표현을 얻음.

⇒ 텍스트 뿐만 아니라 다중 모달 데이터에서도 실험을 진행

5 Results and Discussion

최신 CMN과 Dialogue RNN 비교

  • IEMOCAP 데이터셋 Dialogue RNN이 CMN보다 2.77%의 정확도와 3.76%의 F1점수로 평균적으로 성능이 좋다. 이는 아래 세 차이점에 의해 향상되었다.
    • GRUp 를 사용한 party state 모델링

    • 발화자 별로 발화 처리

    • GRUg를 사용하여 global state 파악

      감정 레이블에 대한 성능에서는 6개 클래스 중 frustrated 클래스를 제외하고는 Dialogue RNN이 성능이 좋다.

      변형된 Dialogue RNN는 이미 CMN보다 frustrated에서도 성능이 좋다.


  • AVEC 데이터셋 DialogueRNN은 valence, arousal, expectancy, power 속성에 대해 CMN보다 우수한 성능을 보인다. 모든 네 가지 속성에 대해 평균 절대 오차(MAE)가 크게 낮고 Pearson 상관 계수(r)가 더 높다. 이는 CMN에는 없는 파티 상태와 감정 GRU를 통합한 결과이다.

DialogueRNN vs. DialogueRNN 변형

  • DialogueRNNt: 청취자 상태 업데이트는 일반적으로 DialogueRNN보다 성능이 약간 다. 하지만 "happy" 감정 레이블에 대해서는 성능 좋음.
  • BiDialogueRNN: 미래 발화에서 문맥을 파악하기 때문에 DialogueRNN보다 성능이 향상됨. 평균적으로 두 데이터 셋에서 모두 DialogueRNN보다 성능 좋음.
  • BiDialogueRNN+Attn: BiDialogueRNN에서 감정 표현을 생성한 후, 최종 감정 표현을 생성하는 방식으로, 다른 방법들보다 성능이 좋음.

Multimodal Setting

단일 모달 특징의 연결(concatenation)을 융합 방법으로 사용하여 비교했을 때, DialogueRNN이 최신 기술인 CMN을 획기적으로 능가하여 다중 모달 정보를 활용하여 감정 분류 작업에서 우수한 성능을 보인다.


Dependency on preceding utterances (DialogueRNN)

  • DialogueRNN의 중요한 구성 요소 중 하나는 글로벌 GRU (GRUG)의 출력에 대한 주의 모듈이다.
  • 이전 발화에 대한 attention 모듈을 비교하는 그림 3b는 우리 모델의 주의 집중이 CMN 모델보다 더 집중되어 있다는 것을 보여준다.
  • 테스트 발화에서 PA가 neutral에서 frustrated로 감정이 변화할 때, DialogueRNN은 PA와 PB가 각각 말하는 41번과 42번의 발화에 주의를 기울여 이러한 감정 변화를 정확하게 예측합니다. 그러나 CMN은 이러한 종속성을 포착하지 못하고 중립적인 감정으로 잘못 예측한다.

Dependency on future utterances (BiDialogueRNN+Att)

  • 그림은 대화의 세그먼트에서 감정 표현에 대한 주의를 시각화한다.
  • 여자 (PA)는 처음에 neutral 상태에 있으며, 남자 (PB)는 계속 angry.
  • 그림은 여자의 emotional attention이 그녀의 neutral 상태 기간 (대략 1-16턴)에 집중되어 있음을 보여준다.
  • 또한, 미래 발화에 대한 고려도 있습니다. 예를 들어, 발화 5는 과거 (턴 3)와 미래 (턴 8) 발화에 모두 주의를 기울인다.
  • 이러한 경향은 다른 발화에서도 유사하게 나타나며, 미래 발화와 과거 발화 간의 감정 상태 간의 상호 의존성을 보여준다.

Dependency on distant context

  • IEMOCAP 테스트 세트에서 모든 올바른 예측에 대해 테스트 발화와 (2번째) 주목 받은 발화 사이의 상대적 거리에 대한 분포
  • 이것은 local 컨텍스트 내에서 가장 높은 의존성이 있는 경향을 보인다.
  • 그러나 테스트 발화의 상당 부분(약 18%)은 자신과 20에서 40턴 떨어진 발화에 주의를 기울인다.
  • 이는 장기간의 감정적 종속성의 중요한 역할을 강조합니다.
  • 이러한 경우는 특정한 감정 톤을 유지하고 감정적 변화가 흔하지 않은 대화에서 주로 발생한다.

  • 그림은 장기간의 컨텍스트 종속성의 사례를 보여줌
  • 제시된 대화는 대화 전체에서 행복한 분위기를 유지한다.
  • 하지만, 34번째 턴에는 "Horrible thing. I hated it"라는 부정적인 표현이 포함되어 있다.
  • 전체적인 컨텍스트와 함께 볼 때, 이는 발화자의 흥분을 나타내는 것으로 해석된다.
  • 이러한 경우를 명확히 하기 위해, 우리 모델은 대화의 감정적 톤의 원형으로 작용하는 과거 발화(턴 11, 14)에 주의를 기울인다.
  • 이는 발화의 감정적 상태를 잘못 분류하더라도, 모델이 관련된 감정 상태(분노)를 추론할 수 있다는 것을 보여준다.

Error Analysis

이 예측에서 주목할만한 점은 관련된 감정들 사이에서 잘못된 예측이 많다는 것이다. 행복에 대한 잘못된 분류는 주로 excited 클래스로 이루어져 있으며, 분노와 좌절은 서로의 잘못된 분류를 공유합니다. 이는 이러한 감정들 간의 미묘한 차이로 인해 명확한 구별이 어려운 경우가 많기 때문일 것이라고 추정함.

또한, 중립 클래스에 대한 false-positive가 많은데, 이 클래스가 고려된 다른 감정들보다 더 많이 나타나기 때문일 수 있다. 특히 같은 발화자의 이전 발화에서 감정 변화가 있는 경우가 없는 경우에 비해 오류가 많이 발생하는 것으로 나타났다. 이러한 경우들의 개선은 여전히 연구가 진행 중인 중요한 과제이다.

Ablation Study

주요 차별성은 party state와 감정 GRU의 도입이다. 두 구성 요소의 영향을 철저히 연구하기 위해 한 번에 하나씩 제거하고 이들이 IEMOCAP에 미치는 영향을 평가한다.

party state가 매우 중요하며, 그 존재 없이는 성능이 4.33% 감소한다. 파티의 감정과 관련된 유용한 문맥 정보를 추출하는 데 도움이 되는 것으로 추측함.

감정 GRU 없이는 성능이 2.51%만 감소한다. 이는 이전 발화의 감정 표현을 통해 다른 파티의 상태에서 문맥 흐름이 부족한 것이 원인으로 추측한다.

6 Conclusion

대화에서 감정 탐지를 위한 RNN 기반의 신경 아키텍처를 제시했다. 최신 기술인 CMN과 대조적으로, 이 방법은 각 들어오는 발화를 처리할 때 발화자의 특성을 고려하여 발화에 더 세밀한 문맥을 부여한다.

0개의 댓글

관련 채용 정보