이 때, transformer의 hθ(xz<t)는 예측되는 토큰의 위치에 관계없이 일정한 값을 가짐
기존 AR모델링에서는 Context가 고정되면 예측할 토큰의 위치가 다음 시점(t)로 고정되어 문제가 발생하지 않지만, 위 Objective의 경우 순열된 순서를 고려하기에 주어진 Context(xz<t)가 고정되더라도 예측할 토큰의 위치가 고정되지 않기 때문에 예측 위치에 대한 정보가 추가적으로 필요함
time step zt는 주변 Context(xz<t)와 Attention으로 정보를 축정해 나가는 방식 제안
두 가지 Constraint
특정 시점 t에서 target position zt의 token xzt를 예측하기 위해, hidden representation g(xz<t,zt)는 t 시점 이전의 context 정보 xz<t와 target position 정보 zt만을 이용 해야. 함
단어 자체의 정보를 알게 된다면 Cheating
특정 시점 t 이후 j(>t)에 해당하는 xzj를 예측하기 위해 hidden representation g(xz<t,zt)가 t시점의 content인 xzt를 인코딩 해야 함
위 조건들은 특정 시점에서 하나의 hidden state를 인코딩하는 기존 Transformer구조에서는 작동하지 않음
Architecture
모델의 기본 구조는 위와 같음
두가지 hidden representation 제안
Query Representation
gzt(m)<−Attention(Q=gztm−1,KV=hz<tm−1;θ)
첫 번째 Constraint를 해결하기 위해 제안
현재 시점을 제외한 이전 시점 token들의 Content와 현재 시점의 위치 정보를 이용하여 계산되는 Reprentation
마지막 층의 Query Representation을 이용하여 현재 position의 토큰을 예측하는 pre-training objective 계산
첫 층의 Query는 훈련 가능한 random value로 초기화하고 위 식과같은 방식으로 각 layer의 State 계산
Content Representation
hzt(m)<−Attention(Q=hztm−1,KV=hz≤tm−1;θ)
현재 시점 및 이전 시점 Token들의 Content를 이용하여 계산되는 Representation
바닐라 transformer의 Hidden State와 동일한 역할
첫 층의 Content Stream은 해당 위치 Token의 Word embedding으로 초기화
각 층의 State는 위 식과 같이 계산
t index 이후 Token의 State들은 마스킹하여 계산
Partial Prediction
위 방식은 사실 매우 느리고 Optimize가 어려움
이를 해결하기 위해,특정 순서에서 마지막 몇 개의 예측만 이용하는 방식을 사용
위 식을 최대화 하는 방식
Incorporating Ideas from Transformer-XL
XLNet은 긴 문장의 처리를 위해 Transformer-XL에서 사용 된 두 가지 테크닉을 차용
Relative Positional Encoding
바닐라 Transformer는 Self-attention을 기반으로하고, CNN이나 RNN과 달리 단어들의 상대적, 절대적 위치 정보를 직접적으로 모델링하지 않음
대신 Input에 단어의 절대적인 위치에 대한 Representation (Absolute positional encoding)을 추가하는 방식으로 순서에 대한 모델링을 함
But. 위 방식은 하나의 Segment 내에서는 위치에 대한 의미를 표현할 수 있지만, Transformer-XL과 같이 여러 Segment에 대해 Recurrent 모델링을 하는 경우 문제가 있음
아래 식은 Segment-level의 Recurrence의 식
hτ+1=f(hτ,Esτ+1+U1:L)
τ+1번 째 segment의 문장 sτ+1에 대한 hidden state를 구하는 식
hτ=f(hτ−1,Esτ+U1:L)
τ번째 segment의 문장 sτ에 대한 hidden state를 구하는 식
위 식에서 τ는 segment의 순서를 의미
Esτ는 input 문장 sτ의 word embedding
f는 transformation function
위 식에서 사용하는 input을 주목하면 word embedding E의 경우 segment순서에 맞춰서 알맞게 들어 갔으나, U1:L의 경우 τ번 째 Segment에 속한 단어들의 position이 τ+1번째 segment의 단어들의 position보다 앞에 있지만, 둘 다 같은 위치를 표현하는 U1:L을 사용
즉, 위 두 식에서 τ번째 Segment의 첫 번째 단어와, τ+1번째 segment의 첫 번째 단어를 위치상 같다고 인식
이러한 문제를 해결하기 위해서 Transformer-XL과, XLNet은 input-level이 아닌 self-attention mechanism에서 relative positional encoding이라는 단어 간의 상대적 위치 정보를 모델링하는 기법을 제안
Attention score in standard Transformer
Attention score with Relative Positional Encoding
Term (b)와 (d)에서 기존 absolute embedding Uj를 relative positional embedding Ri−j로 대체
R은 학습가능하는 파라미터가 아닌 sinusoid encoding matrix
Term (c)와 (d)에서 UiTWqT를 각각 uT,vT로 대체
Query vector가 모든 query position에 대해 같기 때문에 다른 단어들에 대한 attention bias가 query position에 상관없이 동일하게 유지되어야함
Wk를 Wk,E,Wk,R로 분리
Content 기반의 key vector와 location 기반의 key vector를 만들어 내기 위함
Attention score with Relative Positional Encoding의 Term (a)는 content를 처리, Term (b)는 content에 의존한 positional bias를 잡아냄 Term (c) global content bias Term (d)는 global positional bias 인코딩
Segment Recurrence Mechanism
XLNet은 긴 문장에 대해서 여러 segment로 분리하고 이에 대해 recurrent하게 모델링을 함
Transformer-XL에서 제안된 segment-level recurrence를 XLNet에 적용하기 위해 2가지 포인트에 주목
어떻게 permutation setting에 recurrence mechanism을 적용할 것인지
이전 segment로 부터 얻어진 hidden state를 재사용할 수 있게 하는 것
x~=s1:T,x=sT+1:2T 일 때, z~=[1,2,...,T],z=[T+1,...,2T]의 순열이라면, z~를 기반으로 첫 번째 segment에 대한 처리를 하고, 각 layer m으로 부터 얻어진 content representation h~(m)을 caching