attention 구조 복습!
: 디코더에서 출력 단어를 예측하는 매 시점(time step)마다, 인코더에서의 전체 입력 문장을 다시 한 번 참고
: 해당 시점에서 예측해야할 단어와 연관이 있는 입력 단어 부분을 좀 더 집중(attention)해서 보는 것
이러한 attention 구조를 통해 우리는 신경 모델의 내부를 확인하고 해석할 수 있을 것이라고 생각한다
그러나 이 통념은 확실하게 평가되지 않았고, 논문에선 두 가지 제안을 하면서 여러 NLP task (text classification, QA, Natural Language Inference )에서 그 제안들이 여전히 성립하는지 확인하고자 하였다.
[BiLSTM을 활용한 감정분석 task]
두 번의 실험 모두 결과값은 negative로 예측되었지만 왼쪽 attention 분포에선 ‘waste’라는 단어에 높은 weight가 갔고 오른쪽 attention 분포에선 ‘was’라는 단어에 높은 weight가 갔다.
이 상황을 통해 최종 예측값을 attention된 토큰에 의해 결정하는 것 (responsible for하다)은 바람직하지 않다는 것을 확인할 수 있었고, 추가적으로 gradient기반 척도와 attention weight간에도 매우 낮은 연관성을 지닌 것으로 확인되었다.
위 두 제안을 여러 task에서도 들어맞는지 확인하기 위해 구체적으로 empirical question을 구축하였고 그 대답은 아래와 같다.
🗣 ① attention weight와 feature importance measure간의 연관성은 어느정도나 있는가 (feature importance 척도로 gradient와 leave-one-out method를 활용한다) → 매우 약한 일관성을 갖는다 |
🗣 ② alternative한 attention weight는 다른 예측값들을 만들어내는가 → 아니다. 랜덤하게 변동시킨 attention weight에서 output의 변화는 미미했다 |
attention weight는 아래와 같이 정의된다.
어텐션의 스코어 함수는 Additive 함수와 Scaled-Dot-Product 함수 두 가지를 활용한다
(h는 t시점 은닉층, Q는 쿼리_QA에선 question, NLI에선 가설. )
모델은 비교를 위해 BiLSTM 인코더를 기준으로 정렬되지 않은 average embedding variants 인코더와 ConvNets를 활용하였다.
*average embedding variants 인코더는 그냥 일반적인 feedforward layer를 의미하는 것으로 해석할 수 있다
binary text classification, QA, Natural Language Inference 이 세 가지 task를 진행하였고 데이터셋은 아래와 같다.
Total Variation Distance (TVD) : 예측값 y_hat 들 간의 차이를 비교하기 위해
Jensen-Shannon Divergence (JSD) : 두 개의 attention distribution 간의 차이를 비교하기 위해
attention과 gradient-based measure (tau_g) / attention과 LOO에 의한 모델 아웃풋의 차이(tau_{loo})
이 두 가지 관계에서 상관성을 확인하고자 한다.
켄달타우 : 두 변수들 간의 순위를 비교하여 연관성을 계산 [비모수적 상관계수 구하는 방법] → 샘플 사이즈가 작거나 데이터의 동률이 많을 때 유용하다. |
아래와 같은 iteration으로 상관계수를 구하였다
[BiLSTM model]
대부분의 상관계수가 0 즉 어텐션과 feature importance 지표들간 상관성이 매우 적다는 것을 확인할 수 있었다. document 길이가 큰 데이터셋에서는 유의미한 상관성을 나타내는 것으로 보였다.
[average embedding based model]
BiRNN계열 모델보다 attention weight - gradient 상관성이 높은 것으로 나왔다.
⇒ 결론적으로 attention weight와 feature importance measure간에 연관성을 제대로 밝혀낼 없다는 것을 확인하였다.
실험을 위해 attention 분포를 섞는 방법 두 가지를 제시하였다
[1] attention permutation
attention weight를 무작위로 섞어 도출한 y와 기존의 attention weight distribution이 도출한 예측값의 y간의 차이의 중간값을 구하였다.
그 중간값과 attention weight의 최댓값 (= 통념적으로 우리가 이해하기로는 attention weight가 큰 토큰이 가장 좋은 설명력을 지닌다고 알고 있는데) 간의 관계가 어떻게 나오는지 비교해본 결과,
original data의 attention weight 값이 큼에도 불구하고 original attention distribution과 suffle된 attention distribution간의 차이가 크지 않은 것을 확인할 수 있었다.
[2] adversarial attention
ouput 간의 차이가 epsilon 보다 크지 않으면서도 기존 attention distribution과는 거리가 매우 멀리 떨어진 새로운 attention distribution을 아래 최적화 식을 통해 찾아내었다.
모델별 JSD(attention distribution간의 차이를 나타내는 단위) 최댓값의 분포를 나타내는 히스토그램이다.
y값은 비슷하게 예측하면서 attention distribution간 차이는 다르게 할 수 있는 케이스들을 나열해본 결과 JSD distribution 간 차이가 큰 data들이 매우 많았다.
따라서
논문의 한계점
(BiRNN 계열보다 단순한 FFN 계열 인코더가 attention weight - feature importance 간 연관성을 잘 설명한다는 점은 다소 유익함)
댓글 영역