상세 컨텐츠

본문 제목

[논문 리뷰] Interpreting Recurrent and Attention-Based Neural Models: a Case Study on Natural Language Inference

심화 스터디/논문 리뷰

by 김제성 2022. 11. 10. 20:08

본문

1. Introduction

머신러닝과는 다르게 딥러닝에서는 최종 결과물을 얻었을 때 그 결과물을 설명할 수 있는 인간이 이해할 수 있는 feature를 제공하는 것이 어렵다. (black-box) 특히나 NLP에선 워드 임베딩의 높은 차원수로 인한 복잡성과 같은 요인들로 인해 명확하게 모델이 왜 그 결정을 내리게 되었는지를 알아내기가 어렵다.

감정분석이나 POS 태깅 같은 작업에서는 최종적으로 나타난 단어의 표현을 색칠한다던지, hidden state를 도출해내는 방법으로 시각화 혹은 결과에 대한 설명을 할 수 있었으나 자연어 추론 분야(Natural Language Inference) 에서는 그것을 설명하는 것이 더욱 어렵다.

따라서 논문에서는 “saliency”개념을 attention과 LSTM gating singal 부분에 접목하여 NLI 작업에서 모델이 왜 그러한 결정을 내렸는지를 설명하고자 한다.

 

더보기

Natural Language Inference (NLI)

주어진 근거(premise)에 대해서 가설 (hypothesis)가 참인지 (entailment), 거짓인지 (contradiction), 중립인지 (neutral)인지를 판단하는 작업

ex)

premise : A soccer game with multiple males playing.

hypothesis : Some men are playing a sport.

label : entailment

 

2. Task and Model

NLI 실험을 하는데 있어 기본적으로 ESIM 모델을 활용하였다.

ESIM (Enhanced Sequential Inference Model)
1) Input Encoding layer : pretrain된 워드 임베딩 활용해서 Bi-LSTM으로 premise와 hypothesis 각각 인코딩
2) Local Inference Modeling layer : 인코딩된 premise와 hypothesis에 대해 어텐션 적용
3) Inference composition layer : Bi-LSTM활용해서 최종 representation을 만든다

 

 

3. Visualization of Attention and Gating

premise : “A kid is playing in the garden”

hypothesis

h1 : A kid is taking a nap in the garden

h2 : A kid is having fun in the garden with her family

h3 : A kid is having fun in the garden

 

위 NLI task 샘플을 가지고 attention과 LSTM에서 어떻게 결과물을 설명하는지를 확인하고자 한다.

 

 

3.1 Attention

보통 어텐션을 활용해 시각화를 하면 인코더와 디코더 간의 hidden state 값을 가지고 heatmap을 그리는 것이 통상 작업이다.

(But) NLI task에서 최종 결과 ( 참, 거짓, 중립으로 판단 내리는)에 상관없이 모든 결과물이 유사한 것으로 보였다.

 

ESIM-50을 활용하여 세 가지 케이스에 대해 normalized한 어텐션값을 히트맵으로 표현한 것인데 세 가지 가설 모두 다른 decision을 지니지만 전체적으로 유사한 흐름을 갖는 것으로 보였다.

따라서 어텐션으로는 premise와 hypothesis 간 배열(align)시키는 작업밖에 수행하지 못하고 그 배열이 결과에 어떤 영향을 끼치는지는 알 수 없다.

⇒ 새로운 시각화 방법론이 필요하다! 단순히 어텐션의 hidden state 말고

 

 

 

3.1.1 Attention Saliency

Saliency map이란 학습된 모델의 예측과 가장 관련된 부분을 highlight 하여 예측을 설명하는 방법 중 하나로 gradient, GradCAM, Gradietn * Input 등 기울기를 활용하여 역전파 과정에서 모델이 어느 부분에 집중했는지를 파악하는 방법론이다.

이 논문에서는 간단하게 최종 decision score 함수 S(y)와 hidden state 값 e_{ij} 을 편미분한 gradient 값으로 히트맵을 그려 saliency를 표현하였다.

 

위의 attention 값만을 가지고 히트맵을 그렸을 때와는 다르게 decision에 따라 중요하게 표시된 부분들이 유의미하게 달라진 것을 확인할 수 있었다.

 

최종 decision이 거짓이었던 h1을 보면,

“is playing”과 “taking a nap” 간의 alignment에서 두드러지는 값을 보였는데 이는 실제 거짓 판단을 내리는데 있어 모델이 이 부분에 차이를 인지했음을 확인할 수 있다.

 

이를 통해 attention saliency를 활용해서 최종 예측값의 기여한 주요한 alignment가 어딘지를 찾아낼 수 있었다.

 

 

3.1.2 Comparing Models

ESIM-50과 ESIM-300 두 가지를 모델을 활용해서 NLI 태스크에서 attention과 attention saliency의 차이를 비교하였다.

이번엔 반대로 하나의 hypothesis ( A man ordered a book)과 두 개의 premise ( John oredered a book from amazon, Mary ordered a book from amazon)를 가진 추론 작업을 진행하였다.

Prediction)

ESIM-50은 premise와 hypothesis 간 성별 관계를 짓지 못해 첫번째 두번째 모두에 대해서는 ‘중립’ 판정을 내렸다.

반대로 ESIM-300을 올바르게 p1, p2에 대해 각각 ‘참’,’거짓’ 판단을 내렸다.

Explanation)

어텐션의 hidden state 값만을 활용해 구한 히트맵에서는 두 전제에 대한 결과값이 모두 다름에도 불구하고 거의 동일한 히트맵 설명 결과를 보였다.

반대로 saliency를 활용해 히트맵을 그렸을 때는 (특히 ESIM-300)에선 주어진 “man”에 대해서 p1, p2 각각에서 “John”, “Mary”와 높은 결과값을 보이면서 설명력에 차별점을 보였다.

 

3.2 LSTM Gating Signals

LSTM 구조 —remind—
RNN의 장기 의존성 문제를 해결하기 위해 게이트 개념을 도입하여 메모리 셀이라는 추가적인 파라미터를 통해 어떤 정보를 기억 또는 삭제
>>ESIM 모델에서는 양방향 BiLSTM을 활용 : 왼쪽에서 오른쪽, 오른쪽에서 왼족으로 단어를 읽는 두 개의 독립적인 LSTM 구조를 활용해서 정보 도출

LSTM의 forget/input/output게이트 값을 LSTM gate signal로 설정해서 만든 시각화와

그 gate signal과 최종 decision 스코어 값 간의 편미분 값을 시각화 한 것을 비교

(위의 어텐션에서 했던 비교 작업과 동일)

 

results:

  • 동일한 hypothesis에 대해 하나의 LSTM 내에서 gate signal saliency가 일관되게 나왔다
    • ex) Neutral sample에서 다른 두 예제와는 달리 특히나 “with her family”부분에 높은 값이 나온 것을 확인하였다
  • inference LSTM에서는 특정 부분에 집중되어서 saliency가 나타났고 반대로 input LSTM에서는 퍼져서 나타났다
    • ESIM이 input LSTM과 inference LSTM 사이에 어텐션을 활용했기 때문에 특정 부분에 집중되는 경향이 나타난듯 하다

 


 

attention이나 LSTM에서 단순히 hidden state 값으로 설명력을 찾아내는게 순전파 흐름이라면

final decision score 함수와 hidden state 값을 편미분해서 설명력을 찾아내는 건 역전파 흐름과 유사해 보임.

 

예측을 만들어가는 순전파 흐름에서 예측 결과의 설명력을 찾는 것보단 만들어낸 예측값에서 그 예측값에 영향 줬던 feature를 gradient에 따라 역전하는 흐름에서 찾는게 더 정확해 보이기도 하다.

 

CNN에서 Class activation map 이나 Grad-CAM 쓸 때 pooling이나 추가적인 FC layer 활용해서 이미지의 어느 부분에 더 집중하는지 확인하는 작업이랑 유사한 것 같다.

 

관련글 더보기

댓글 영역