일관성 있는 (Coherent) Text Generation을 위한 Language Modeling 기법.
Stochastic Process의 일종인 Brownian Bridge를 차용한 점이 인상적!
(Brownian Bridge를 비롯한 통계 지식이 부족한 나에게 “~상황에서 ~기법을 사용할 수 있겠다”하는 직관을 주는 좋은 논문이었음!)
최근 Large LM들은 Text Generation에서 일반적으로 좋은 성능을 보이지만, 일관성 있는 (Coherent) Long Text를 생성하는 데에 한계를 갖는다.
일관성 (Coherency)이란 일상에서 “대화의 흐름”이나 “글의 맥락”이 일정하다고 말하는 것을 의미하는데, 해당 논문에서 궁극적으로 구현하려는 점이 바로 이러한 “흐름”을 반영하는 문장 임베딩 (Latent) Space와 이에 기반한 Text Generation (Decoding) 기법이다.
위 그림과 같이 대화의 시작/끝 문장 (발화)의 임베딩 값을 z_0/z_T라고 하면, 대화의 흐름은 z_T - z_0로 표현할 수 있으며, 중간 발화들은 모두 z_0과 z_T를 잇는 선 상에 존재해야 한다 (일종의 Interpolation).
이 때, 대화의 끝을 어떻게 알 수 있느냐 의문이 들 수 있는데, Task-Oriented Dialogue (TOD, 은행 업무 챗봇 등)와 같은 Tasks에서는 대화의 종료 조건이 정해져 있으므로 끝 문장을 충분히 예측 (설정)할 수 있다.
해당 논문에서는 중간 발화들이 위치하는 임베딩 (Latent) Space 상 위치를 정하는 데에 Stochastic Process의 일종인 Brownian Bridge를 활용한다.
논문 저자는 Large LM의 일반적인, Auto-Regressive한 Inference 혹은 Decoding 과정을 Brownian Motion으로 표현했으며 (아래 그림),
Inference 시에 생성해야 하는 대화의 흐름 (임베딩 값)이 함께 제시되면, Brownian Motion이 Brownian Bridge 과정으로 변화한다고 설명한다.
위에서 설명한 임베딩 (Latent) Space는 실제 대화 세션의 중간 발화들을 Positive Samples, 다른 대화 세션에서 무작위로 샘플링한 발화들을 Negative Samples로 하는 Contrastive Learning을 통해 얻을 수 있다.
Inference는 GPT에 이전 Timestep의 Token들과 생성할 문장의 임베딩 값을 함께 Feed하여 수행한다.