SpanBERT
SpanBert는 텍스트 범위를 예측하는 질문-응답과 같은 태스크에 주로 사용된다. SpanBERT의 아키텍처를 통해서 어떠한 원리로 작동하는지 확인해보자.
SpanBERT의 아키텍처
예제를 통해 SpanBERT의 아키텍처를 이해해 보자.
sentence = 'you are expected to know the laws of your country'
# sentence를 토큰화
tokens = [you, are, expected, to, know, the, laws, of, your, country]
# SpanBERT에서는 토큰을 무작위로 마스킹하는 대신에, 다음과 같이 토큰의 연속 범위를 무작위로 마스킹함.
tokens = [you, are, [MASK], [MASK], [MASK], [MASK], the, laws, of, your, country]
즉, 토큰의 위치를 무작위로 선정해 마스킹하는 것이 아니라, 토큰의 범위를 무작위로 마스킹한다. 다음 그림은 토큰 i에 대한 표현인 R을 출력한다.
마스크 된 토큰을 예측하기 위해 MLM과 새로운 목적 함수인 SBO(span boundry objective)
를 사용해 SpanBERT를 학습시킨다.
MLM
MLM에서는 마스크된 토큰을 예측하기 위해 마스크된 토큰의 표현을 사용한다.
마스크된 토큰 $x_4$을 예측한다고 하면 $R_4$을 사용해서 마스크된 토큰을 예측한다. 이때 $R_4$을 분류기에 입력하면 사전에 있는 모든 단어에 대해서 마스크된 토큰이 될 확률을 얻을 수 있다.
SBO
SBO에서는 마스크된 토큰을 예측하기 위해서 해당하는 마스크된 토큰의 표현을 사용하는 대신에, 스팬 경계에 있는 토큰의 표현만 사용한다.
스팬 경계에서 스팬 시작 전과 스팬 종료 후 지점의 토큰을 포함한다.
예를 들어, 아래와 같이 $x_2$와 $x_7$이 스팬 경계의 토큰을 나타내고 $R_2$와 $R_7$이 스팬 경계에 대한 표현이 된다.
이제 마스크된 토큰을 예측하기 위해 모델에서는 두 가지 표현만 사용한다. 예를 들어 마스크된 토큰$x_3$을 예측하기 위해 모델은 스팬 경계의 토큰에 대한 표현인 $R_2$와 $R_7$만 사용한다.
여기서 문제가 발생하는데, 모델에서 마스크 된 토큰을 예측하기 위해 범위의 경계에 있는 토큰의 표현만 사용하게 되면, 이때 경계 안에 있는 마스크된 토큰은 어떻게 구별 할 수 있을까?
예를 들어 마스크 된 토큰 $x_4$를 예측한다고 할 때, 모델에서는 스팬 경계에 있는 $R_2$와 $R_7$을 사용하는데 $x_3$을 예측할때도 마찬가지로 $R_2$와 $R_7$을 사용한다.
이러한 문제를 해결하기 위해 스팬 경계의 토큰 표현과는 별도로 모델은 마스크 된 토큰의 위치 임베딩값을 같이 사용한다.
SpanBERT는 2개의 목표를 설정하는데, 하나는 MLM이고 다른 하나는 SBO이다. MLM은 마스크된 토큰을 예측하기 위해 해당 토큰의 표현만 사용한다. 하지만 SBO의 경우에는 마스크된 토큰을 예측하기 위해 스팬 경계 토큰의 표현과 마스크된 토큰의 위치 임베딩 정보를 사용한다.
SpanBERT의 학습
$x_s$와 $x_e$를 각각 마스크된 토큰의 시작과 종료 지점이라고 하자. 위 토큰을 SpanBERT에 입력하고 모든 토큰에 대한 표현을 얻는다. 토큰 i에 대한 표현을 $R_i$라고 하면 스팬 경계는 $R_{s-1}$과 $R_{e+1}$이 된다.
SBO
마스크된 토큰 $x_i$를 예측하기 위해 스팬 경계의 표현인 ($R_{s-1}$, $R_{e+1}$)과 마스크된 토큰의 위치 임베딩($p_{i-s+1}$)의 3개 값을 사용한다. 3개 값을 사용하는 함수를 다음과 같이 표현해보자.
$z_i = f(R_{s-1},R_{e+1},P_{i-s1})$
여기서 함수는 2개의 피드 포워드 네트워크와 GeLU활성화 함수로 구성되어 있다.
이제 마스크 된 토큰 $x_i$를 예측하기 위해서는 $z_i$ 표현만 사용하면 된다. $z_i$를 분류기에 입력하면 사전 안의 모든 단어가 마스크된 단어일 확률을 얻는다. 즉 SBO에서 마스크된 토큰 $x_i$를 예측 할 때는 스팬 경계 토큰의 표현과, 마스크된 토큰의 위치 임베딩 정보를 가진 $z_i$를 사용한다.
MLM
MLM에서는 마스크된 토큰 $x_i$를 예측하기 위해 해당 토큰의 표현인 $R_i$ 를 사용한다. 분류기에서는 $R_i$를 입력해서 사전에 있는 모든 단어를 기준으로 마스크된 토큰이 될 확률을 얻는다.
SpanBERT의 손실 함수는 MLM과 SBO 로스를 더한 값이다. 손실 값을 최소화하기 위해 SpanBERT를 학습시킨다.
'딥러닝 > NLP' 카테고리의 다른 글
DistilBERT : 지식 증류BERT (0) | 2022.02.06 |
---|---|
BART (0) | 2022.01.26 |
XLM-BERT (0) | 2022.01.26 |
bertsum (0) | 2022.01.26 |
ROUGE 이해하기 (0) | 2022.01.25 |