Hierarchical Attention Networks: 문서 분류를 위한 계층적 어텐션 구조
목차
개요
NAACL-HLT 2016에서 발표된 Hierarchical Attention Networks for Document Classification은 문서 분류를 위한 계층적 어텐션 네트워크(HAN)를 제안한 논문이다. 저자는 Carnegie Mellon University의 Zichao Yang, Diyi Yang, Chris Dyer, Alex Smola, Eduard Hovy와 Microsoft Research의 Xiaodong He이다.
이 모델은 두 가지 특징을 갖는다. 첫째, 문서의 계층 구조를 그대로 반영하는 계층적 아키텍처를 갖는다. 단어가 모여 문장을 이루고 문장이 모여 문서를 이루므로, 모델도 먼저 문장 표현을 만든 뒤 이를 집계해 문서 표현을 만든다. 둘째, 단어 수준과 문장 수준 두 곳에 어텐션 메커니즘을 적용해 중요한 내용과 덜 중요한 내용에 차등적으로 주목한다.
6개의 대규모 텍스트 분류 데이터셋에서 실험한 결과, 제안 구조는 기존 방법들을 상당한 폭으로 앞섰다. 어텐션 레이어를 시각화한 결과 모델이 정성적으로 유의미한 단어와 문장을 선택하고 있음도 확인되었다.
연구 배경
기존 문서 분류 접근법
텍스트 분류는 자연어 처리의 기본 과제 중 하나로, 텍스트에 레이블을 할당하는 것을 목표로 한다. 토픽 레이블링, 감성 분류, 스팸 탐지 등 응용 범위가 넓다.
전통적 접근은 n-gram 같은 희소 어휘 특징으로 문서를 표현한 뒤 선형 모델이나 커널 방법을 적용했다. 최근 접근은 합성곱 신경망(CNN)이나 LSTM 기반 순환 신경망으로 텍스트 표현을 학습했다.
문서 구조를 모델에 반영한다는 가설
논문은 신경망 기반 접근이 이미 효과적임을 인정하면서도, 모델 아키텍처에 문서 구조에 대한 지식을 통합하면 더 나은 표현을 얻을 수 있다는 가설을 검증한다. 문서의 모든 부분이 질의에 동일하게 관련되어 있지는 않으며, 관련 있는 부분을 판별하려면 단어의 단순한 존재 여부가 아니라 단어 간 상호작용을 모델링해야 한다는 직관이 바탕이다.
핵심 기여는 문서 구조에 대한 두 가지 통찰을 담은 새로운 신경망 아키텍처다. 첫째, 문서가 계층 구조를 가지므로 문서 표현도 문장 표현을 먼저 만든 뒤 집계하는 방식으로 구성한다. 둘째, 문서 내의 서로 다른 단어와 문장은 정보량이 다르며, 그 중요도는 문맥에 크게 의존한다. 동일한 단어나 문장이라도 문맥이 달라지면 중요도가 달라진다.
논문은 Yelp 2013의 짧은 리뷰를 예시로 든다. “pork belly = delicious . || scallops? || I don’t even like scallops, and these were a-m-a-z-i-n-g . || fun and tasty cocktails. || next time I in Phoenix, I will go back here. || Highly recommend.” 이 리뷰에서 1점부터 5점까지의 평점을 예측할 때, 첫 번째와 세 번째 문장이 더 강한 정보를 담고 있고, 그 문장 안에서는 delicious와 a-m-a-z-i-n-g라는 단어가 긍정적 태도를 드러내는 데 가장 크게 기여한다.
어텐션은 두 가지 이점을 제공한다. 성능 향상으로 이어지는 경우가 많을 뿐 아니라, 어떤 단어와 문장이 분류 결정에 기여했는지에 대한 통찰을 제공한다. 기존 연구와의 핵심 차이는 문맥에서 분리된 토큰(또는 토큰 시퀀스)을 단순히 필터링하는 대신, 문맥을 사용해 어떤 토큰 시퀀스가 관련 있는지를 발견한다는 점이다.
방법론
HAN의 전체 구조는 단어 시퀀스 인코더, 단어 수준 어텐션 레이어, 문장 인코더, 문장 수준 어텐션 레이어의 네 부분으로 구성된다.
문서가 L개의 문장으로 이루어지고 각 문장이 Ti개의 단어를 포함한다고 가정한다. i번째 문장의 t번째 단어는 wit로 표기한다. 모델은 원문서를 벡터 표현으로 사영하고, 그 위에 분류기를 올려 문서 분류를 수행한다.
GRU 기반 시퀀스 인코더
GRU는 별도의 메모리 셀 없이 게이팅 메커니즘으로 시퀀스 상태를 추적한다. 리셋 게이트 rt와 업데이트 게이트 zt 두 종류의 게이트가 함께 상태 갱신 방식을 제어한다.
시각 t에서 GRU는 새로운 상태를 다음과 같이 계산한다.
1
h_t = (1 - z_t) * h_{t-1} + z_t * h~_t (1)
이는 이전 상태 h_{t-1}과 새로운 시퀀스 정보로 계산된 현재 상태 h~_t 사이의 선형 보간이다. 게이트 z_t는 과거 정보를 얼마나 유지하고 새 정보를 얼마나 더할지 결정하며 다음과 같이 갱신된다.
1
z_t = sigma(W_z x_t + U_z h_{t-1} + b_z) (2)
여기서 x_t는 시각 t의 시퀀스 벡터다. 후보 상태 h~_t는 전통적인 RNN과 유사한 방식으로 계산된다.
1
h~_t = tanh(W_h x_t + r_t * (U_h h_{t-1}) + b_h) (3)
r_t는 과거 상태가 후보 상태에 얼마나 기여할지를 제어하는 리셋 게이트다. r_t가 0이면 이전 상태를 잊는다. 리셋 게이트는 다음과 같이 갱신된다.
1
r_t = sigma(W_r x_t + U_r h_{t-1} + b_r) (4)
단어 인코더
단어 wit가 주어지면 먼저 임베딩 행렬 We를 통해 단어를 벡터로 임베딩한다. 그 후 양방향 GRU로 양쪽 방향의 정보를 요약해 단어의 주석(annotation)을 얻고, 문맥 정보를 주석에 통합한다. 양방향 GRU는 wi1에서 wiT 방향으로 읽는 순방향 GRU와 wiT에서 wi1 방향으로 읽는 역방향 GRU로 구성된다.
1
2
3
4
x_it = W_e w_it, t in [1, T]
forward h_it = forward GRU(x_it), t in [1, T]
backward h_it = backward GRU(x_it), t in [T, 1]
h_it = [forward h_it, backward h_it]
순방향 은닉 상태와 역방향 은닉 상태를 연결해 얻은 h_it는 wit를 중심으로 한 문장 전체의 정보를 요약한다.
논문은 단어 임베딩을 직접 사용했다고 밝히고 있다. 더 완전한 모델이라면 문자로부터 GRU를 통해 단어 벡터를 직접 얻을 수도 있었으나, 단순성을 위해 생략했다고 명시한다.
단어 어텐션
모든 단어가 문장 의미의 표현에 동일하게 기여하지는 않는다. 따라서 문장 의미에 중요한 단어를 추출하고 그 정보성 있는 단어들의 표현을 집계해 문장 벡터를 구성하기 위해 어텐션 메커니즘을 도입한다.
1
2
3
u_it = tanh(W_w h_it + b_w) (5)
alpha_it = exp(u_it^T u_w) / sum_t exp(u_it^T u_w) (6)
s_i = sum_t alpha_it * h_it (7)
먼저 단어 주석 h_it를 1층 MLP에 통과시켜 은닉 표현 u_it를 얻는다. 그다음 u_it와 단어 수준 문맥 벡터 u_w의 유사도로 단어의 중요도를 측정하고, softmax를 통해 정규화된 중요도 가중치 alpha_it를 얻는다. 마지막으로 그 가중치에 기반한 단어 주석의 가중합으로 문장 벡터 s_i를 계산한다.
문맥 벡터 u_w는 메모리 네트워크에서 사용되는 것처럼 “무엇이 정보성 있는 단어인가”라는 고정 질의의 고수준 표현으로 볼 수 있다. u_w는 무작위로 초기화되고 학습 과정에서 함께 학습된다.
문장 인코더
문장 벡터 s_i가 주어지면 유사한 방식으로 문서 벡터를 얻는다. 문장들을 인코딩하는 데에도 양방향 GRU를 사용한다.
1
2
3
forward h_i = forward GRU(s_i), i in [1, L]
backward h_i = backward GRU(s_i), i in [L, 1]
h_i = [forward h_i, backward h_i]
순방향과 역방향 상태를 연결해 얻은 h_i는 문장 i 주변의 인접 문장을 요약하면서도 여전히 문장 i에 초점을 맞춘다.
문장 어텐션
문서를 올바르게 분류하는 단서가 되는 문장에 보상을 주기 위해 다시 어텐션 메커니즘을 사용한다. 문장 수준 문맥 벡터 u_s를 도입해 문장의 중요도를 측정한다.
1
2
3
u_i = tanh(W_s h_i + b_s) (8)
alpha_i = exp(u_i^T u_s) / sum_i exp(u_i^T u_s) (9)
v = sum_i alpha_i * h_i (10)
여기서 v는 문서 내 모든 문장의 정보를 요약하는 문서 벡터다. 문장 수준 문맥 벡터도 무작위로 초기화되어 학습 과정에서 함께 학습된다.
문서 분류와 학습 목적 함수
문서 벡터 v는 문서의 고수준 표현이며 문서 분류를 위한 특징으로 사용된다.
1
p = softmax(W_c v + b_c) (11)
학습 손실로는 정답 레이블의 음의 로그 가능도를 사용한다.
1
L = - sum_d log p_{d, j} (12)
여기서 j는 문서 d의 레이블이다.
실험 설정
데이터셋
6개의 대규모 문서 분류 데이터셋에서 모델의 효과를 평가했다. 이 데이터셋들은 감성 추정과 토픽 분류라는 두 가지 유형의 과제로 분류된다. 별도 언급이 없으면 데이터의 80%를 학습, 10%를 검증, 나머지 10%를 테스트에 사용했다.
Yelp 리뷰는 2013, 2014, 2015년 Yelp Dataset Challenge에서 얻었으며, 평점은 1부터 5까지 다섯 단계다. IMDB 리뷰는 Diao et al. (2014)에서 얻었으며 평점은 1부터 10까지다. Yahoo Answers는 Zhang et al. (2015)에서 얻은 10개 클래스 토픽 분류 과제다. 클래스는 Society and Culture, Science and Mathematics, Health, Education and Reference, Computers and Internet, Sports, Business and Finance, Entertainment and Music, Family and Relationships, Politics and Government이다. 사용한 문서는 질문 제목, 질문 본문, 베스트 답변을 포함하며 학습 140,000건, 테스트 5,000건이다. 원본 데이터셋에 검증 셋이 없어 학습 샘플의 10%를 무작위로 검증에 사용했다. Amazon 리뷰 역시 Zhang et al. (2015)에서 얻었고 평점은 1부터 5까지이며, 학습 3,000,000건, 테스트 650,000건을 사용하고 학습의 10%를 검증에 사용했다.
데이터셋 통계는 다음과 같다. 여기서 문장 수는 문서당 평균 및 최대 문장 수, 단어 수는 문서당 평균 및 최대 단어 수를 뜻한다.
| 데이터셋 | 클래스 수 | 문서 수 | 평균 문장 수 | 최대 문장 수 | 평균 단어 수 | 최대 단어 수 | 어휘 크기 |
|---|---|---|---|---|---|---|---|
| Yelp 2013 | 5 | 335,018 | 8.9 | 151 | 151.6 | 1184 | 211,245 |
| Yelp 2014 | 5 | 1,125,457 | 9.2 | 151 | 156.9 | 1199 | 476,191 |
| Yelp 2015 | 5 | 1,569,264 | 9.0 | 151 | 151.9 | 1199 | 612,636 |
| IMDB review | 10 | 348,415 | 14.0 | 148 | 325.6 | 2802 | 115,831 |
| Yahoo Answer | 10 | 1,450,000 | 6.4 | 515 | 108.4 | 4002 | 1,554,607 |
| Amazon review | 5 | 3,650,000 | 4.9 | 99 | 91.9 | 596 | 1,919,336 |
베이스라인
HAN은 선형 방법, SVM, 신경망 기반 문단 임베딩, LSTM, 단어 기반 CNN, 문자 기반 CNN, Conv-GRNN, LSTM-GRNN 등 여러 베이스라인과 비교되었다. 베이스라인 방법과 결과는 Zhang et al. (2015)과 Tang et al. (2015)에서 보고된 값이다.
선형 방법은 구성된 통계량을 특징으로 사용하고 다항 로지스틱 회귀 기반 선형 분류기로 문서를 분류한다.
| 베이스라인 | 설명 |
|---|---|
| BOW | 학습 셋에서 가장 빈번한 50,000개 단어를 선택하고 각 단어의 빈도를 특징으로 사용 |
| BOW+TFIDF | 위 빈도의 TFIDF 값을 특징으로 사용 |
| n-grams | 가장 빈번한 500,000개 n-gram(최대 5-gram)을 사용 |
| n-grams+TFIDF | n-gram의 TFIDF 값을 사용 |
| Bag-of-means | word2vec 임베딩의 평균을 특징 집합으로 사용 |
SVM 기반 방법은 Tang et al. (2015)에서 보고되었다.
| 베이스라인 | 설명 |
|---|---|
| SVM + Unigrams | bag-of-unigrams를 특징으로 사용 |
| SVM + Bigrams | bag-of-bigrams를 특징으로 사용 |
| SVM + TextFeatures | 단어 및 문자 n-gram, 감성 사전 특징 등을 포함 |
| SVM + AverageSG | word2vec으로 만든 200차원 단어 벡터의 문서 평균 임베딩 사용 |
| SVM + SSWE | 감성 특화 단어 임베딩 사용 |
신경망 기반 방법은 다음과 같다.
| 베이스라인 | 설명 |
|---|---|
| CNN-word | Kim (2014) 방식의 단어 기반 CNN |
| CNN-char | Zhang et al. (2015)의 문자 수준 CNN |
| LSTM | 문서 전체를 하나의 시퀀스로 받아 모든 단어 은닉 상태의 평균을 분류 특징으로 사용 |
| Conv-GRNN | CNN이 문장 벡터를 만들고 GRNN이 문서 수준 표현으로 결합 |
| LSTM-GRNN | LSTM이 문장 벡터를 만들고 GRNN이 문서 수준 표현으로 결합 |
Conv-GRNN과 LSTM-GRNN은 Tang et al. (2015)이 제안한 방법으로, 이들 역시 계층 구조를 탐색한다.
모델 구성과 학습
문서를 문장으로 분할하고 각 문장은 Stanford CoreNLP로 토크나이즈했다. 어휘 사전 구축 시 5회를 초과해 등장한 단어만 유지하고, 5회 등장하는 단어는 특수 UNK 토큰으로 치환했다. 단어 임베딩은 학습 및 검증 분할에서 비지도 word2vec 모델을 학습해 얻었고, 이를 임베딩 행렬 We의 초기값으로 사용했다.
하이퍼파라미터는 검증 셋에서 튜닝했다. 단어 임베딩 차원은 200, GRU 차원은 50으로 설정했다. 순방향과 역방향 GRU를 결합하면 단어 및 문장 주석은 100차원이 된다. 단어 및 문장 문맥 벡터도 100차원이며 무작위로 초기화된다.
학습에는 미니배치 크기 64를 사용했고, 문서 내 문장 수 기준으로 길이가 비슷한 문서들을 하나의 배치로 묶었다. 이러한 길이 조정이 학습 속도를 3배 가속했다고 보고한다. 모든 모델은 모멘텀 0.9의 확률적 경사 하강법으로 학습했고, 학습률은 검증 셋에서 그리드 서치로 선택했다.
주요 결과
논문은 제안 모델을 HN-{AVE, MAX, ATT}로 표기한다. HN은 Hierarchical Network를 뜻하고, AVE는 평균, MAX는 max-pooling, ATT는 제안하는 계층적 어텐션 모델을 의미한다.
전체 정확도 비교
전체 데이터셋에 대한 실험 결과는 다음과 같다(단위는 백분율, 하이픈은 해당 논문에서 보고되지 않은 값).
| 출처 | 방법 | Yelp’13 | Yelp’14 | Yelp’15 | IMDB | Yahoo Answer | Amazon |
|---|---|---|---|---|---|---|---|
| Zhang et al., 2015 | BoW | - | - | 58.0 | - | 68.9 | 54.4 |
| Zhang et al., 2015 | BoW TFIDF | - | - | 59.9 | - | 71.0 | 55.3 |
| Zhang et al., 2015 | ngrams | - | - | 56.3 | - | 68.5 | 54.3 |
| Zhang et al., 2015 | ngrams TFIDF | - | - | 54.8 | - | 68.5 | 52.4 |
| Zhang et al., 2015 | Bag-of-means | - | - | 52.5 | - | 60.5 | 44.1 |
| Tang et al., 2015 | Majority | 35.6 | 36.1 | 36.9 | 17.9 | - | - |
| Tang et al., 2015 | SVM + Unigrams | 58.9 | 60.0 | 61.1 | 39.9 | - | - |
| Tang et al., 2015 | SVM + Bigrams | 57.6 | 61.6 | 62.4 | 40.9 | - | - |
| Tang et al., 2015 | SVM + TextFeatures | 59.8 | 61.8 | 62.4 | 40.5 | - | - |
| Tang et al., 2015 | SVM + AverageSG | 54.3 | 55.7 | 56.8 | 31.9 | - | - |
| Tang et al., 2015 | SVM + SSWE | 53.5 | 54.3 | 55.4 | 26.2 | - | - |
| Zhang et al., 2015 | LSTM | - | - | 58.2 | - | 70.8 | 59.4 |
| Zhang et al., 2015 | CNN-char | - | - | 62.0 | - | 71.2 | 59.6 |
| Zhang et al., 2015 | CNN-word | - | - | 60.5 | - | 71.2 | 57.6 |
| Tang et al., 2015 | Paragraph Vector | 57.7 | 59.2 | 60.5 | 34.1 | - | - |
| Tang et al., 2015 | CNN-word | 59.7 | 61.0 | 61.5 | 37.6 | - | - |
| Tang et al., 2015 | Conv-GRNN | 63.7 | 65.5 | 66.0 | 42.5 | - | - |
| Tang et al., 2015 | LSTM-GRNN | 65.1 | 67.1 | 67.6 | 45.3 | - | - |
| This paper | HN-AVE | 67.0 | 69.3 | 69.9 | 47.8 | 75.2 | 62.9 |
| This paper | HN-MAX | 66.9 | 69.3 | 70.1 | 48.2 | 75.2 | 62.9 |
| This paper | HN-ATT | 68.2 | 70.5 | 71.0 | 49.4 | 75.8 | 63.6 |
HN-ATT가 모든 데이터셋에서 최고 성능을 기록했다.
결과 해석
성능 향상은 데이터 규모와 무관하게 나타났다. Yelp 2013과 IMDB처럼 상대적으로 작은 데이터셋에서 제안 모델은 이전 최고 베이스라인을 각각 3.1%와 4.1% 앞섰다. 이러한 경향은 더 큰 데이터셋에서도 일관되게 나타나, Yelp 2014, Yelp 2015, Yahoo Answers, Amazon Reviews에서 각각 3.2%, 3.4%, 4.6%, 6.0%만큼 이전 최고 모델을 앞섰다고 논문은 보고한다. 성능 향상은 과제 유형과도 무관했다. Yelp 2013-2014, IMDB, Amazon Reviews의 감성 분류와 Yahoo Answers의 토픽 분류 모두에서 향상이 관찰되었다.
계층적 문서 구조를 탐색하지 않는 LSTM, CNN-word, CNN-char 같은 신경망 방법은 문서 크기 기준의 대규모 텍스트 분류에서 전통적 방법 대비 이점이 거의 없었다. 예를 들어 SVM+TextFeatures는 Yelp 2013, 2014, 2015, IMDB에서 각각 59.8, 61.8, 62.4, 40.5를 기록했지만 CNN-word는 59.7, 61.0, 61.5, 37.6에 그쳤다.
반면 계층 구조만 활용해도 HN-AVE, HN-MAX는 LSTM, CNN-word, CNN-char를 크게 개선했다. HN-AVE는 Yelp 2013, 2014, 2015, IMDB에서 CNN-word 대비 각각 7.3%, 8.8%, 8.5%, 10.2% 앞섰다. 여기에 어텐션 메커니즘까지 결합한 HN-ATT는 이전 모델(LSTM-GRNN) 대비 각각 3.1%, 3.4%, 3.5%, 4.1%의 개선을 보였다.
주목할 점은 HN-AVE가 정보성 없는 전역 단어/문장 문맥 벡터를 사용하는 것과 동치라는 사실이다. 예를 들어 문맥 벡터가 모두 0 벡터라면 식 (6)과 (9)의 어텐션 가중치는 균등 가중치가 된다. HN-AVE 대비 HN-ATT가 전 데이터셋에서 우수한 성능을 보인 것은, 제안하는 전역 단어 및 문장 중요도 벡터의 효과를 분명히 보여준다.
문맥 의존적 어텐션 가중치
단어가 본질적으로 중요하거나 중요하지 않다면, 어텐션 없는 모델도 관련 없는 단어에 낮은 가중치를 자동으로 할당하면서 잘 동작할 수 있다. 그러나 단어의 중요도는 문맥에 크게 의존한다. 예를 들어 good이라는 단어는 사용자가 제품이나 서비스의 일부에만 만족했거나 not good처럼 부정 표현으로 사용한 경우, 최저 평점 리뷰에도 등장할 수 있다.
이를 검증하기 위해 Yelp 2013 테스트 분할에서 good과 bad의 어텐션 가중치 분포를 시각화했다. 단어에 할당된 어텐션 가중치가 0에서 1까지 분포한다는 점은, 모델이 다양한 문맥을 포착하고 문맥에 따른 가중치를 할당하고 있음을 나타낸다.
리뷰 평점 1에서 5로 조건부 분포를 나누어 보면 경향이 더 명확하다. 평점 1인 리뷰에서 good의 가중치는 낮은 쪽에 집중되고, 평점이 올라갈수록 가중치 분포도 함께 상승한다. 즉 good이라는 단어는 평점이 높은 리뷰에서 더 중요한 역할을 한다. bad에서는 반대 경향이 관찰되어, 낮은 평점에서 중요하게 취급되고 높은 평점에서는 덜 중요하게 취급된다.
어텐션 시각화 정성 분석
모델이 문서 내에서 정보성 있는 문장과 단어를 선택할 수 있는지 검증하기 위해, Yelp 2013과 Yahoo Answers의 여러 문서에 대해 계층적 어텐션 레이어를 시각화했다. 시각화에서 각 줄은 하나의 문장이며, 빨강은 문장 가중치를, 파랑은 단어 가중치를 나타낸다. 계층 구조 때문에 단어 가중치를 문장 가중치로 정규화하여 중요한 문장 안의 중요한 단어만 강조되도록 했다. 동시에 중요하지 않은 문장 속 중요 단어도 완전히 보이지 않게 되지 않도록 처리했다.
Yelp 2013 시각화에서 모델은 delicious, amazing, terrible처럼 강한 감성을 나타내는 단어와 해당 문장을 선택했다. 반면 cocktails, pasta, entree 같은 단어가 많은 문장은 무시되었다.
모델은 단순히 강한 감성 단어를 고르는 데 그치지 않고, 문장을 넘나드는 복잡한 문맥도 처리한다. 예시 문서에는 “i don’t even like scallops”라는 문장이 있는데, 이 문장만 단독으로 보면 부정적 코멘트로 보일 수 있다. 그러나 모델은 이 문장의 문맥을 살펴 전체가 긍정 리뷰임을 파악하고 이 문장을 무시하는 선택을 한다.
계층적 어텐션은 Yahoo Answers의 토픽 분류에서도 잘 동작했다. Science and Mathematics를 뜻하는 레이블 1 문서에서 모델은 zebra, stripes, camouflage, predator와 해당 문장을 정확히 지목했다. Computers and Internet을 뜻하는 레이블 4 문서에서는 web, searches, browsers와 해당 문장에 집중했다. 이는 다중 클래스 설정에서 일어난 일로, 토픽을 선택하기 전에 탐지가 먼저 이루어진다는 점이 주목할 만하다.
관련 연구
Kim (2014)은 컴퓨터 비전의 CNN을 NLP로 해석해 텍스트 분류에 직접 적용했다. Johnson and Zhang (2014)은 고차원 원-핫 벡터를 입력으로 직접 사용하는 경우를 탐구해 좋은 성능을 확인했다. Zhang et al. (2015)은 단어 수준 모델링과 달리 문자 수준 CNN을 적용해 경쟁력 있는 결과를 얻었다. Socher et al. (2013)은 재귀 신경망을, Tai et al. (2015)은 트리 구조 LSTM을 문장 구조 활용에 사용했다. LSTM과 CNN 구조를 결합한 문장 분류 연구도 존재한다.
Tang et al. (2015)은 감성 분류에 계층 구조를 사용해, CNN이나 LSTM으로 문장 벡터를 얻은 뒤 양방향 GRNN으로 문장 벡터를 조합해 문서 벡터를 만들었다. 시퀀스 생성이나 언어 모델링에 계층 구조를 사용한 연구도 있다.
어텐션 메커니즘은 Bahdanau et al. (2014)이 기계 번역에서 제안했다. 인코더-디코더 프레임워크에서 번역 전 원어의 참조 단어를 선택하는 데 어텐션이 사용되었다. Xu et al. (2015)은 이미지 캡션 생성에서 단어 생성 시 관련 이미지 영역을 선택하는 데 어텐션을 사용했다. 그 외에도 구문 분석, 자연어 질의응답, 이미지 질의응답 등에 어텐션이 활용되었다. 이러한 연구들과 달리 본 논문은 계층적 어텐션 메커니즘을 탐구하며, 저자들이 아는 한 이것이 최초 사례라고 밝힌다.
한계와 주의사항
논문 본문에서 명시적으로 언급된 단순화와 제약은 다음과 같다.
단어 벡터를 문자로부터 GRU로 직접 얻는 방식(Ling et al., 2015 유형)은 단순성을 위해 생략하고 단어 임베딩을 직접 사용했다. 따라서 문자 수준 형태 정보를 활용하는 확장 여지는 남아 있다.
어휘 사전은 5회를 초과해 등장한 단어만 유지하고 나머지는 UNK로 치환하므로, 저빈도 단어의 정보는 손실된다.
문서를 문장 단위로 분할해야 하므로 Stanford CoreNLP 같은 문장 분할 및 토크나이즈 전처리에 의존한다. 문장 경계가 불명확한 텍스트에서는 이 전처리 품질이 성능에 영향을 줄 수 있다.
성능 비교 대상인 베이스라인 수치는 Zhang et al. (2015)과 Tang et al. (2015)에서 보고된 값을 그대로 인용한 것이므로, 일부 데이터셋에는 특정 베이스라인 결과가 존재하지 않는다. 결과 표에 하이픈으로 표시된 항목이 이에 해당한다.
또한 본문에서 서술한 개선 폭과 결과 표의 수치 차이를 그대로 계산한 값 사이에는 일부 불일치가 있다. 예를 들어 Yelp 2014에서 본문은 3.2% 개선을 언급하지만 표에서는 70.5와 67.1의 차이가 3.4로 계산된다. Amazon에서도 본문은 6.0% 개선을 언급하지만 표에서는 63.6과 59.6의 차이가 4.0으로 계산된다. 인용 시에는 표의 원 수치를 기준으로 확인하는 편이 안전하다.
결론
논문은 문서 분류를 위한 계층적 어텐션 네트워크(HAN)를 제안했다. 모델은 중요한 단어를 문장 벡터로 집계하고, 다시 중요한 문장 벡터를 문서 벡터로 집계하는 방식으로 문서 표현을 점진적으로 구축한다. 편리한 부수 효과로 문서에서 정보성이 높은 구성 요소를 활용한 더 나은 시각화를 얻었다.
실험 결과 제안 모델은 이전 방법들보다 유의미하게 우수한 성능을 보였다. 6개 데이터셋 전반에서 HN-ATT가 최고 정확도를 기록했으며, 계층 구조만 사용한 HN-AVE와 HN-MAX보다도 일관되게 앞섰다. 어텐션 레이어의 시각화는 모델이 중요한 단어와 문장을 효과적으로 골라내고 있음을 보여준다.
이 연구는 Microsoft Research의 지원을 받아 수행되었다.