포스트

A Structured Self-Attentive Sentence Embedding: 2D 행렬로 문장을 표현하기

목차

  1. 개요
  2. 배경과 문제의식
  3. 방법론
  4. 관련 연구와의 차이
  5. 실험 설정
  6. 주요 결과
  7. 탐색적 실험
  8. 부록: 가지치기된 MLP와 Gated Encoder
  9. 한계와 주의사항
  10. 결론
  11. Reference

개요

A Structured Self-Attentive Sentence Embedding은 ICLR 2017에 발표된 논문이다. 저자는 IBM Watson과 MILA(Universite de Montreal)의 Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou, Yoshua Bengio다.

이 논문의 핵심 주장은 문장 임베딩을 하나의 벡터가 아니라 2차원 행렬로 표현하자는 것이다. 행렬의 각 행이 문장의 서로 다른 부분에 어텐션을 걸어, 문장이 담고 있는 여러 의미 요소를 분리해서 담는다. 이를 위해 self-attention 메커니즘과 중복을 억제하는 전용 정규화 항을 함께 제안한다.

부수적 효과로 임베딩의 해석이 쉬워진다. 어텐션 가중치 행렬을 그대로 히트맵으로 그리면 문장의 어떤 부분이 임베딩에 인코딩되었는지 직접 확인할 수 있다.

저자들은 author profiling, 감성 분류, 텍스트 함의라는 3개 태스크에서 모델을 평가했고, 세 태스크 모두에서 기존 문장 임베딩 방법 대비 유의미한 성능 향상을 보고했다.

배경과 문제의식

기존 문장 임베딩 방식의 두 갈래

단어 수준의 분산 표현(word embedding)은 상당한 진전을 이루었지만, 구와 문장 수준의 표현은 여전히 과제가 남아 있다. 논문은 기존 방법을 크게 두 범주로 나눈다.

첫 번째는 비지도 학습으로 훈련되는 범용(universal) 문장 임베딩이다. SkipThought vectors, ParagraphVector, recursive auto-encoder, Sequential Denoising Autoencoders(SDAE), FastSent 등이 여기에 속한다.

두 번째는 특정 태스크를 위해 학습되는 임베딩이다. 보통 하위 응용(downstream application)과 결합해 지도 학습으로 훈련한다. RNN, recursive network, CNN을 중간 단계로 사용해 분류와 랭킹 등 다양한 태스크를 푸는 연구들이 이 계열이다. 일반적으로 특정 태스크용으로 학습된 임베딩이 범용 임베딩보다 성능이 좋지만, 범용 임베딩은 대규모 비라벨 코퍼스를 활용하는 준지도 설정에서 쓸 수 있다는 장점이 있다. 파스 트리나 의존 트리 같은 언어학적 구조를 활용해 문장 표현을 개선하려는 시도도 있었다.

풀링과 마지막 은닉 상태의 한계

이전 방법들의 공통된 접근은 RNN의 마지막 은닉 상태를 쓰거나, RNN 은닉 상태 또는 합성곱 n-gram에 max/average pooling을 적용해 단순한 벡터 표현을 만드는 것이다.

일부 태스크에서는 CNN이나 LSTM 위에 어텐션을 얹어 추가 정보원을 사용한다. 그러나 감성 분류처럼 입력이 단일 문장뿐인 태스크에서는 어텐션의 기준이 될 추가 정보가 없어 이 방식을 바로 적용할 수 없다. 그래서 모든 타임스텝에 대한 max pooling이나 averaging을 쓰거나, 마지막 타임스텝의 은닉 표현을 그대로 임베딩으로 쓰는 것이 일반적이었다.

저자들의 가설은 순환 모델의 모든 타임스텝을 따라 의미를 끌고 가는 일이 상대적으로 어렵고, 또 반드시 필요하지도 않다는 것이다. 그래서 max pooling이나 averaging 단계를 self-attention 메커니즘으로 대체한다. 이 방식은 추가 입력이 없는 상황에서도 어텐션을 쓸 수 있게 해 주며, 이전 타임스텝의 은닉 표현에 직접 접근하므로 LSTM의 장기 기억 부담을 덜어 준다.

방법론

모델 구조

제안 모델은 두 부분으로 구성된다. 첫 번째는 양방향 LSTM(bidirectional LSTM)이고, 두 번째는 LSTM 은닉 상태에 대한 합산 가중치 벡터 집합을 제공하는 self-attention 메커니즘이다. 이 가중치 벡터들을 LSTM 은닉 상태와 내적한 결과가 문장 임베딩이 된다. 여기에 MLP 같은 층을 붙여 하위 응용에 적용한다.

n개 토큰으로 이루어진 문장은 단어 임베딩 시퀀스로 표현된다.

1
S = (w1, w2, ..., wn)

여기서 각 wi는 i번째 단어의 d차원 단어 임베딩이며, S는 n-by-d 크기의 2차원 행렬이다.

시퀀스 S의 각 항목은 서로 독립적이므로, 인접 단어 간 의존성을 얻기 위해 양방향 LSTM으로 문장을 처리한다. 정방향 LSTM 출력과 역방향 LSTM 출력을 이어 붙여 은닉 상태 ht를 만든다. 단방향 LSTM의 은닉 유닛 수를 u라 하면, 전체 은닉 상태 H는 n-by-2u 크기가 된다.

1
H = (h1, h2, ..., hn)     # shape: n x 2u

Self-Attention 메커니즘

목표는 가변 길이 문장을 고정 크기 임베딩으로 인코딩하는 것이다. 논문은 H에 있는 n개의 LSTM 은닉 벡터의 선형 결합을 선택하는 방식으로 이를 달성한다. 선형 결합 계수를 만들어 내는 것이 self-attention이며, 어텐션은 LSTM 은닉 상태 H 전체를 입력으로 받아 가중치 벡터 a를 출력한다.

1
a = softmax( ws2 * tanh( Ws1 * H^T ) )

각 항의 형태는 다음과 같다.

기호형태설명
Hn x 2u양방향 LSTM 은닉 상태 전체
Ws1da x 2u어텐션 MLP의 첫 번째 가중치 행렬
ws2da어텐션 MLP의 두 번째 가중치 벡터
an각 토큰에 대한 합산 가중치, 합이 1

da는 임의로 설정 가능한 하이퍼파라미터다. softmax는 계산된 모든 가중치의 합이 1이 되도록 보장한다. 이 가중치 a로 H를 가중합하면 문장의 벡터 표현 m을 얻는다.

다중 hop과 2D 행렬 임베딩

이렇게 얻은 벡터 표현은 대체로 문장의 특정 구성 요소, 이를테면 관련 단어나 구의 특정 집합에 집중한다. 그러나 특히 긴 문장에서는 여러 구성 요소가 모여 전체 의미를 이룬다. 논문은 “and”로 연결된 두 개의 절을 예로 든다. 따라서 문장 전체 의미를 표현하려면 서로 다른 부분에 집중하는 여러 개의 m이 필요하고, 어텐션을 여러 번(multiple hops) 수행해야 한다.

r개의 서로 다른 부분을 추출하려면 ws2를 r-by-da 행렬 Ws2로 확장한다. 그 결과 어텐션 벡터 a는 어노테이션 행렬 A가 된다.

1
2
A = softmax( Ws2 * tanh( Ws1 * H^T ) )    # shape: r x n
M = A * H                                 # shape: r x 2u

여기서 softmax는 입력의 두 번째 차원을 따라 수행된다. 이 식은 편향이 없는 2층 MLP로 볼 수 있으며, 은닉 유닛 수는 da, 파라미터는 Ws1과 Ws2다. 어노테이션 행렬 A와 LSTM 은닉 상태 H를 곱해 r개의 가중합을 계산한 결과 행렬 M이 최종 문장 임베딩이다. 즉 임베딩은 더 이상 벡터가 아니라 r-by-2u 크기의 행렬이다.

페널티 항

어텐션 메커니즘이 r개의 hop 전부에 비슷한 합산 가중치를 준다면 임베딩 행렬 M은 중복 문제를 겪는다. 따라서 hop 간 합산 가중치 벡터의 다양성을 유도하는 페널티 항이 필요하다.

다양성을 측정하는 가장 자연스러운 방법은 두 합산 가중치 벡터 사이의 Kullback-Leibler divergence다. 그러나 저자들은 이 방식이 안정적이지 않았다고 보고한다. 하나의 KL을 최소화하는 통상적 경우와 달리 여기서는 KL divergence의 집합을 최대화하기 때문에, softmax 출력 유닛 여러 곳에서 매우 작거나 0인 값이 대량으로 생기고 이것이 학습을 불안정하게 만든다는 추정이다. 게다가 KL로는 각 행이 하나의 의미 측면에 집중하도록, 즉 어노테이션 softmax 출력의 확률 질량이 더 모이도록 유도할 수 없다.

이를 해결하기 위해 논문은 A와 그 전치의 내적에서 단위 행렬을 뺀 값을 중복도의 척도로 사용한다.

1
P = || A * A^T - I ||_F^2

여기서 아래 첨자 F는 행렬의 Frobenius norm이다. L2 정규화 항을 추가하는 것과 유사하게, 이 페널티 항에 계수를 곱해 하위 응용에 의존하는 원래 손실과 함께 최소화한다. 저자들은 이 항이 KL divergence 페널티 대비 계산량이 3분의 1에 불과하다고 밝힌다.

동작 원리는 다음과 같다. softmax 때문에 A의 임의의 합산 벡터 내 모든 원소는 합이 1이므로, 이산 확률 분포의 확률 질량으로 볼 수 있다. AA^T 행렬의 비대각 원소 aij(i와 j가 다름)는 두 분포의 원소별 곱을 합한 값에 해당하며, 0과 1 사이의 값을 가진다.

1
0 < a_ij = sum_k ( a_ik * a_jk ) < 1

두 확률 분포 ai와 aj 사이에 겹침이 전혀 없는 극단적인 경우 해당 aij는 0이 되고, 그렇지 않으면 양수가 된다. 반대 극단으로 두 분포가 동일하고 하나의 단어에만 집중되어 있으면 최댓값 1을 가진다. AA^T에서 단위 행렬을 빼면 대각 원소가 1에 가까워지도록 강제되어 각 합산 벡터 ai가 가능한 한 적은 수의 단어에 집중하게 되고, 나머지 비대각 원소는 0에 가까워져 서로 다른 합산 벡터 간의 중복이 처벌된다.

시각화 방법

어노테이션 행렬 A가 존재하므로 문장 임베딩의 해석이 직관적이다. 논문은 두 가지 시각화 방법을 제시한다.

첫 번째는 임베딩 행렬 M의 각 행에 대응하는 어노테이션 벡터 ai를 그대로 히트맵으로 그리는 방법이다. 이 벡터의 각 원소는 해당 위치 토큰의 LSTM 은닉 상태가 얼마나 기여했는지를 나타내므로, 임베딩의 각 부분에 무엇이 인코딩되었는지 힌트를 준다.

두 번째는 모든 어노테이션 벡터를 합한 뒤 결과 가중치 벡터의 합이 1이 되도록 정규화하는 방법이다. 문장 의미의 모든 측면을 합산하므로 임베딩이 전체적으로 어디에 집중하는지에 대한 조망을 제공한다. 어떤 단어가 임베딩에 크게 반영되고 어떤 단어가 건너뛰어지는지 파악할 수 있다.

관련 연구와의 차이

제안 방법은 새로운 self-attention 메커니즘으로 문장의 서로 다른 측면을 다수의 벡터 표현으로 추출한다. 행렬 구조와 페널티 항의 조합이 입력 문장의 잠재 정보를 분리(disentangle)하는 능력을 키운다는 것이 논문의 설명이다. 또한 언어학적 구조를 문장 표현 학습의 가이드로 사용하지 않으며, 학습된 표현의 해석을 돕는 시각화를 쉽게 만들 수 있다.

문장 내부 어텐션을 사용하는 선행 연구들과의 차이는 다음과 같다.

선행 연구접근본 논문과의 차이
Ling et al. (2015)컨텍스트 윈도 내 각 위치의 단어마다 어텐션 가중치를 계산하는 단어 임베딩 모델가능한 모든 문장을 열거할 수 없어 문장 수준으로 확장 불가
Liu et al. (2016a)LSTM 상태의 mean pooling을 어텐션 소스로 삼아 풀링된 벡터 표현을 재가중동기는 유사하나 구현 방식이 다름
Li et al. (2016)factoid QA 모델의 질문 인코딩에 동일한 self-attention 사용, 본 연구와 동시기인코딩이 여전히 벡터 형태, 본 논문은 행렬 표현과 전용 페널티 항 사용
LSTMN (Cheng et al., 2016)순환 반복 중 은닉 상태마다 어텐션 벡터를 생성하는 온라인 갱신형 어텐션세분성이 다름, 본 논문 어텐션은 한 번만 수행되고 문장 길이에 대한 확장성이 더 좋음

LSTMN은 특정 단어와 그 이전 단어들 사이의 어휘적 상관을 찾는 데 목표를 두는 더 세밀한 어텐션이다. 반면 본 논문의 어텐션은 한 번만 수행되며, 타깃을 판별하는 데 유의미한 의미에 직접 집중한다. 단어 간 관계보다는 각 단어가 기여하는 문장 전체의 의미에 초점을 둔다. 계산 측면에서도 LSTMN처럼 매 스텝마다 이전 모든 단어에 대한 어노테이션 벡터를 계산할 필요가 없어 문장 길이에 대해 더 잘 확장된다.

실험 설정

평가는 Age 데이터셋, Yelp 데이터셋, SNLI 코퍼스의 3개 데이터셋에서 이루어졌다. 각각 author profiling, 감성 분석, 텍스트 함의 태스크에 해당한다.

데이터셋태스크클래스학습/개발/테스트
Age (PAN16 Author Profiling)저자 연령대 예측5 (18-24, 25-34, 35-49, 50-64, 65+)68,485 / 4,000 / 4,000
Yelp별점 예측5 (1~5 stars)500K / 2,000 / 2,000
SNLI텍스트 함의3 (entailment, contradiction, neutral)570k 문장 쌍 규모의 코퍼스

세 태스크 모두 분류 문제이며 평가지표는 분류 정확도다.

Age 데이터셋 (Author Profiling)

Author Profiling 데이터셋은 영어, 스페인어, 네덜란드어 트위터 트윗으로 구성된다. 일부 트윗에는 작성 당시 사용자의 연령과 성별이 제공된다. 논문은 영어 트윗을 입력으로 사용해 사용자의 연령대를 예측하며, 이 때문에 논문 전반에서 Age 데이터셋으로 지칭한다.

베이스라인은 두 개다. biLSTM 모델은 각 방향 300차원의 양방향 LSTM을 사용하고, 모든 LSTM 은닉 상태에 max pooling을 적용해 문장 임베딩 벡터를 얻은 뒤, 3000개 은닉 유닛의 2층 ReLU 출력 MLP로 분류 결과를 낸다. CNN 모델은 동일한 구성에서 biLSTM을 1층 1차원 합성곱 신경망으로 대체한다.

학습 설정은 MLP에 dropout 0.5, L2 정규화 0.0001, 옵티마이저는 SGD, 학습률 0.06, 배치 크기 16이다. biLSTM은 그래디언트 norm을 -0.5에서 0.5 사이로 클리핑한다. 저자들은 넓은 범위로 하이퍼파라미터를 탐색해 이 설정이 가장 높은 정확도를 낸다는 것을 확인했다.

제안 모델은 biLSTM과 동일한 설정을 쓰되 출력 MLP의 은닉 유닛을 2000개로 두었다. self-attention MLP의 은닉층은 350 유닛(즉 da = 350), 행렬 임베딩의 행 수는 30(즉 r = 30), 페널티 항 계수는 1이다. 세 모델 모두 수렴할 때까지 학습한 뒤, 개발 세트 최고 성능에 대응하는 테스트 세트 성능을 선택했다.

Yelp 데이터셋 (감성 분석)

Yelp 데이터셋은 270만 건의 리뷰로 구성된다. 리뷰를 입력받아 작성자가 해당 업소에 부여한 별점을 예측한다. 리뷰 텍스트는 Stanford tokenizer로 토큰화했고, 단어 임베딩 초기화에는 100차원 word2vec을 사용해 학습 중 함께 튜닝했다. 별점은 1에서 5 사이의 정수이므로 5-클래스 분류 문제로 다룬다.

베이스라인은 Age 데이터셋과 동일한 설정을 사용하되 배치 크기만 32로 변경했다. 제안 모델도 동일한 설정을 쓰되 출력 MLP의 은닉 유닛 수를 3000으로 두었다.

SNLI 데이터셋 (텍스트 함의)

SNLI 코퍼스는 텍스트 함의 분야에서 가장 큰 데이터셋으로, 사람이 작성한 57만 건의 영어 문장 쌍에 entailment, contradiction, neutral 레이블이 균형 있게 부여되어 있다. 모델은 hypothesis와 premise 문장 쌍을 받아 두 문장의 의미가 서로 모순되는지 여부를 판별한다.

논문은 hypothesis와 premise를 독립적으로 처리한 뒤, Memisevic(2013)이 제안한 곱셈적 상호작용(multiplicative interaction)으로 두 문장 임베딩 사이의 관계를 추출한다. 그 위에 4000개 은닉 유닛의 2층 ReLU 출력 MLP를 두어 분류 결과로 매핑한다. biLSTM과 어텐션 MLP의 파라미터는 hypothesis와 premise 사이에서 공유된다.

세부 설정은 biLSTM 각 방향 300차원, 어텐션 MLP 은닉 유닛 150개, hypothesis와 premise 양쪽 임베딩 모두 30행(r = 30), 페널티 항 계수 0.3이다. 단어 임베딩 초기화에는 300차원 GloVe를 썼고, 옵티마이저는 AdaGrad, 학습률 0.01이다. dropout이나 L2 정규화 같은 추가 정규화는 사용하지 않았으며, 학습은 4 에폭 만에 수렴해 비교적 빠르다.

이 태스크는 입력이 두 문장이라는 점에서 앞의 두 태스크와 다르다. 문장 간 어텐션을 추가하는 방법은 여러 가지가 있고 이점도 크지만, 비교를 공정하게 하기 위해 논문은 문장 인코딩 기반 모델, 즉 hypothesis와 premise가 각각 분산 표현으로 인코딩되기 전에는 정보 교환이 없는 방법들과만 비교했다.

주요 결과

Yelp와 Age 정확도

모델YelpAge
BiLSTM + Max Pooling + MLP61.99%77.40%
CNN + Max Pooling + MLP62.05%78.15%
제안 모델64.21%80.45%

두 데이터셋 모두에서 제안 모델이 biLSTM과 CNN 베이스라인을 유의미한 차이로 앞선다. Yelp에서는 CNN 대비 2.16%p, Age에서는 2.30%p 높다.

SNLI 정확도

모델테스트 정확도
300D LSTM encoders (Bowman et al., 2016)80.6%
600D (300+300) BiLSTM encoders (Liu et al., 2016b)83.3%
300D Tree-based CNN encoders (Mou et al., 2015a)82.1%
300D SPINN-PI encoders (Bowman et al., 2016)83.2%
300D NTI-SLSTM-LSTM encoders (Munkhdalai and Yu, 2016a)83.4%
1024D GRU encoders with SkipThoughts pre-training (Vendrov et al., 2015)81.4%
300D NSE encoders (Munkhdalai and Yu, 2016b)84.6%
제안 방법84.4%

제안 방법은 300D NSE encoders를 제외한 다른 공개 방법 대비 약 1% 수준의 유의미한 향상을 보인다. NSE encoders가 이 범주의 최고 성능이지만, 0.2%의 차이는 다른 방법들 사이의 격차에 비하면 상대적으로 작다는 것이 저자들의 평가다.

탐색적 실험

페널티 항의 효과

페널티 항 P의 주된 목적이 임베딩의 중복 억제이므로, 저자들은 먼저 문장이 주어졌을 때 각 행의 히트맵을 직접 시각화해 비교했다. Age 데이터셋에서 동일한 크기의 두 모델을 각각 학습했다. 하나는 페널티 계수 1.0을 적용했고 다른 하나는 페널티를 적용하지 않았다. 어텐션 hop이 30개라 전부 그리면 중복이 심하므로 6개만 표시했으며, 이 6개가 30개 전체의 상황을 반영한다고 밝힌다.

페널티 항 없이 학습한 모델은 서로 다른 hop 사이에 중복이 많았고, 그 결과 저자의 연령과 별 관련이 없는 단어 “it”에 큰 비중이 실렸다. 반면 페널티를 적용한 모델은 hop 간 변화가 더 크고, 전체 임베딩이 “mail-replies spam”에 집중했다.

Yelp 데이터셋에서도 유사한 현상이 관찰되었다. 페널티 항이 있는 모델은 리뷰의 중요한 부분에 더 집중하는 경향을 보였다. 저자들은 이것이 AA^T의 대각 성분을 통해 집중되도록 유도한 결과라고 설명한다.

이 차이가 실제 성능 차이로 이어지는지 확인하기 위해 Yelp와 Age에서 페널티 유무에 따른 네 개 모델을 평가했다.

페널티 계수YelpAge
1.064.21%80.45%
0.061.74%79.27%

페널티 항을 적용한 모델이 그렇지 않은 모델을 일관되게 앞선다. Yelp에서 2.47%p, Age에서 1.18%p 차이다.

다만 SNLI에서는 결과가 다르다. 페널티 항이 행렬 문장 임베딩의 행 다양성을 늘리고 네트워크가 문장에 더 집중하게 만드는 효과 자체는 관찰되지만, 정량적 효과는 뚜렷하지 않았고 두 모델의 테스트 정확도가 유사했다.

hop 수 r의 영향

행렬 문장 임베딩에서 행이 여러 개라는 점이 인코딩된 내용에 대해 더 풍부한 정보를 제공할 것으로 기대되므로, r이 가져오는 개선폭을 평가했다. Age와 SNLI에서 사용한 모델을 기준으로 각 태스크마다 r을 1에서 30까지 변화시켜 총 10개 모델을 독립적으로 학습했다. r = 1일 때 문장 임베딩은 통상적인 벡터 형태로 축소된다.

결과의 요지는 두 가지다. 행이 여러 개가 아닐 때, 즉 r = 1일 때 모델은 다른 벡터 형태 문장 임베딩을 사용하는 경쟁 모델들과 비슷한 수준의 성능을 낸다. 그러나 문장 임베딩이 벡터 하나일 때와 여러 벡터일 때 사이에는 유의미한 차이가 있다. 한편 모델은 r 값 자체에 대해서는 꽤 둔감하다. 두 그림 모두에서 10에서 30 사이의 넓은 범위가 비슷한 학습 곡선을 만들어 냈다.

어텐션 히트맵 해석

Yelp 리뷰에 대해서는 앞서 설명한 두 번째 시각화 방식으로 히트맵을 그렸다. 모델이 레이블 예측에 0.8을 넘는 높은 확신을 보이는 경우 중에서 부정(1 star)과 긍정(5 stars) 리뷰를 각각 5개씩 무작위로 뽑았다.

관찰 결과, 모델은 주로 문장 뒤의 감성을 강하게 시사하는 핵심 요소를 포착하도록 학습된다. 짧은 리뷰 대부분에서는 극단적 점수에 기여하는 핵심 요소를 모두 잡아냈다. 그러나 긴 리뷰에서는 관련 요소를 전부 포착하지 못했다. 논문이 든 예에서는 “so much fun”이라는 단일 요소에 많은 집중이 쏠리고, “highly recommend”, “amazing food” 같은 다른 핵심 지점에는 적은 양의 어텐션만 배분되었다.

부록: 가지치기된 MLP와 Gated Encoder

행렬 문장 임베딩은 벡터 임베딩보다 여러 배 크기 때문에, 뒤따르는 완전 연결 층에 더 많은 파라미터가 필요하다. 논문의 예시 구조에서 이 완전 연결 층이 전체 파라미터의 약 90%를 차지한다. 부록 A는 행렬 임베딩의 2D 구조를 활용해 완전 연결 은닉층의 파라미터를 크게 줄이는 가중치 가지치기 방법을 제시한다.

행렬 임베딩 M이 r-by-u 형태이고 완전 연결 은닉층이 b개 유닛이라면, 일반적인 완전 연결 층은 r 곱하기 u 곱하기 b개의 파라미터를 필요로 한다. 가지치기 방법은 은닉 상태를 크기가 같은 r개 그룹으로 나누고 각 그룹에 p개 유닛을 배정한 뒤, i번째 그룹을 행렬 표현의 i번째 행에만 완전 연결한다. 나머지 연결은 모두 제거한다. 전체 은닉 유닛 수가 같을 때(r 곱하기 p가 b와 같을 때) 이 과정은 가중치의 (r-1)/r 비율을 제거하며, r이 클수록 상당한 비율이다.

다른 차원에도 유사한 대칭성이 존재한다. 각 벡터 표현 mi의 j번째 원소는 서로 다른 타임스텝의 동일한 LSTM 은닉 유닛에서 온 가중합이다. 같은 방식으로 가지치기하면 u-by-q 크기의 또 다른 2D 구조 은닉 상태를 얻는다. 후속 softmax 층은 두 구조 모두에 완전 연결되지만, softmax 속도는 주로 softmax 유닛 수에 좌우되므로 문제가 되지 않는다.

모델 설정은닉층Softmax기타전체정확도
Yelp, Original, b=300054M15K1.3M55.3M64.21%
Yelp, Pruned, p=150, q=102.7M52.5K1.3M4.1M63.86%
Age, Original, b=400072M20K1.3M73.2M80.45%
Age, Pruned, p=25, q=20822K63.75K1.3M2.1M77.32%
SNLI, Original, b=400072M12K22.9M95.0M84.43%
SNLI, Pruned, p=300, q=105.6M45K22.9M28.6M83.16%

가지치기는 모델 크기를 크게 줄이는 대신 성능을 약간 떨어뜨린다. 그럼에도 세 모델 모두 논문에서 비교한 다른 모델들과 비슷하거나 더 나은 성능을 유지한다.

부록 B는 SNLI용 모델 구조를 상세히 설명한다. hypothesis와 premise 각각에 대해 동일한 LSTM과 어텐션으로 임베딩 Mh, Mp를 독립적으로 추출하고, 이 부분의 파라미터는 공유된다. 두 행렬 임베딩의 비교는 Factored Gated Autoencoder에서 영감을 받은 3방향 곱셈적 상호작용으로 이루어지며, 논문은 이를 Gated Encoder라 부른다.

1
2
3
Fh = batcheddot(Mh, Wfh)
Fp = batcheddot(Mp, Wfp)
Fr = Fh (element-wise product) Fp

먼저 행렬 임베딩의 각 행에 서로 다른 가중치 행렬을 곱한다. 모든 행에 대해 반복하면 2D 행렬과 3D 가중치 텐서 사이의 배치 내적이 된다. hypothesis와 premise 양쪽에 대해 이를 수행해 Fh와 Fp를 얻고, 관계의 factor인 Fr은 두 값의 원소별 곱이다. Fr 층 다음에는 softmax 출력을 갖는 MLP로 관계를 분류한다.

한계와 주의사항

논문이 직접 언급하거나 실험에서 드러난 한계는 다음과 같다.

첫째, 현재 학습 방식은 하위 응용에 크게 의존하므로 비지도 방식으로 학습할 수 없다. 비지도 학습을 막는 주된 장애물은 디코딩 시 임베딩의 서로 다른 행들이 어떻게 나뉘고 재조직되어야 하는지 사전에 알 수 없다는 점이다. 가능한 모든 분할을 신경망으로 탐색하면 과적합에 빠지기 쉽다. 문장 임베딩 위에 순차 디코더를 얹어 비지도 학습을 할 수는 있지만, 저자들은 디코더로 다른 구조를 찾는 편이 더 가치 있다고 본다.

둘째, 긴 리뷰에서는 관련 핵심 요소를 모두 포착하지 못한다. 어텐션이 하나의 강한 표현에 쏠려 다른 중요한 근거를 놓치는 사례가 시각화에서 확인된다.

셋째, 페널티 항의 효과가 태스크에 따라 다르다. Yelp와 Age에서는 정량적 이득이 분명하지만, SNLI에서는 다양성과 집중도 개선이 관찰되어도 테스트 정확도 차이가 뚜렷하지 않다.

넷째, 행렬 임베딩은 벡터 임베딩보다 파라미터가 훨씬 많다. 후속 완전 연결 층이 전체 파라미터의 약 90%를 차지하며, 가지치기로 크기를 줄이면 Age의 경우 80.45%에서 77.32%로 정확도가 3%p 이상 하락한다.

다섯째, SNLI에서 문장 인코딩 기반 모델 범주의 최고 성능(NSE encoders 84.6%)에는 0.2%p 미치지 못한다. 또한 비교 자체가 문장 간 어텐션을 쓰지 않는 인코딩 기반 모델로 제한되어 있어, 문장 간 어텐션을 쓰는 방법과의 직접 비교는 다루지 않는다.

결론

이 논문은 self-attention 메커니즘을 갖춘 고정 크기의 행렬 문장 임베딩을 제안했다. 어텐션 메커니즘 덕분에 문장 임베딩을 깊이 있게 해석할 수 있으며, 3개 태스크의 실험 결과 다른 문장 임베딩 모델을 유의미한 차이로 앞선다.

어텐션 도입의 이점은 최종 문장 임베딩이 어텐션 합산을 통해 이전 LSTM 은닉 상태에 직접 접근할 수 있다는 점이다. 따라서 LSTM이 모든 정보를 마지막 은닉 상태까지 끌고 갈 필요가 없다. 각 LSTM 은닉 상태는 각 단어 주변의 비교적 짧은 문맥 정보만 제공하면 되고, 더 긴 의존성이 필요한 상위 수준 의미는 어텐션이 직접 집어 올린다. 저자들은 내용이 길어질수록 모델의 이점이 커진다는 관찰이 이 설명을 뒷받침한다고 밝힌다. 또한 어텐션에서 원소를 합산한다는 개념 자체는 매우 원시적이므로, LSTM 은닉 상태에 대해 더 복잡한 연산을 허용하는 방향으로 확장할 여지가 있다고 덧붙인다.

모델은 장기 의존성 문제 없이 가변 길이 시퀀스를 고정 크기 표현으로 인코딩할 수 있다. 이 점은 확장성으로 이어져, 별도 수정 없이 문단이나 기사 같은 더 긴 콘텐츠에도 직접 적용할 수 있다. 논문의 초점은 아니지만 흥미로운 향후 연구 방향으로 남겨 두었다.

Reference