Seq2Emo: A Sequence to Multi-Label Emotion Classification Model 논문 리뷰를 해보자.
핵심은 emotion 과 bi-directional decoder 를 연관짓는 것이다. 실험결과 SemEal'18, GoEmotion 에서 SOTA 를 뛰어넘었다고 한다. (특히나 binary relevance 또는 classifier chain과 비교했을 때!)
기존 연구를 좀 살펴보자.
또한
multi-label 과 관련해서 binary relevance(BR) 가 넓게 적용되었음. BR은 각 감정들에 대해 독립적으로 binary 판단을 하는 것이며, 문장에 대해서 감정들이 서로 독립적임을 가정한다. (그러나 실제론 'hate' 라는 감정이 있을 경우 'joy'보단 'disgust' 감정이 더 두드러질 것이다.)
이에 대안으로 classifier chain(CC) 이 등장, CC의 경우 문장이 들어오면 autoregressive 하게 라벨을 판단한다. (Seq2Seq 모델처럼) 그러나 Seq2Seq 처럼 예측할 경우 exposure bias 문제가 있었다. (시간적으로 앞선 예측이 미래 예측에 계속계속 영향을 준다. 따라서 bias 는 전파될 것이다.)
따라서 이 논문에선 Sequence-to-emotion (Seq2Emo) 접근을 제안한다. CC와 비슷하게 모델 자체는 Seq2Seq 비슷하게 설계할 것이지만, 각 decoding step 에서 binary 하게 예측할 것이다.
(생략)
위의 것들이 기본적 사항이고 이제 프레임웍에 대해 알아보자.
Seq2Emo 는 Seq2Seq 프레임웍과 닮아있다.
Encoder
문장 x = (x1, x2, .. xM) 이라 하자. 각 단어를 임베딩 GloVe 를 사용해서 인코딩한다. - GloVe(xi) - 또한 ELMo 를 사용해서 contextual embedding 까지 수행한다. - LSTM으로 전체 문장을 임베딩 - 문장 임베딩의 경우 ELMo(x)i 로 표시된다.
여기 위에 two-layer bi-directional LSTM 을 쌓게된다. forward LSTM만보면, 다음과 같다.
여기에 ht 의 forward 와 backward 를 concate 해서 하나의 표현을 만든다.
Decoder
여기서는 LSTM 기반의 decoder 가 모든 후보 감정에 대해 sequential 한 prediction 을 만들어내는 역할을 하게된다. (판단은 binary 하게한다.)
중요한 것은 bias 를 막기 위해 이전 시점에서의 예측을 다시 input 으로 주지 않을 것이란 것.
시점 j에서의 디코딩은 다음과 같다.
Luong attention 의 경우 attention probability 를 계산한 다음, (알파) encoder hidden states (hi) 와 가중합을 한 context vector 를 만들 것이다.
추가적으로 Seq2Emo with an unidirectional decoder와 관련해서는, Seq2Emo (uni) 라 표기했는데 성능이 더 떨어진 것으로 보아 bi-directional decoder 의 효과가 있었음을 확인했다. 또한 Order of emotions와 관련해서는, Seq2Emo 의 경우 정해진 순서대로 감정의 1, 0 을 예측하는데, 여기 순서에 따라 결과의 차이를 확인했다.
결과를 보면 거의 순서에 영향을 받지 않고, CC는 많이 받는다는 것을 확인했다. (bias problem)