
이 논문은 제목에서 확인 할 수 있는 것과 같이, Semi-Supervised Learning 관한 연구이며, 특히 자연어 처리 쪽에 어떻게 효과적으로 이 기법을 적용할 것인지에 초점을 맞추고 있다. 이 논문에서는 Unsupervised 형태로 Pretrained Model 을 만든 후 , 기존 모델에 활용하는 Word2Vec이나 ElMo 같은 알고리즘을 Semi supervised 의 한 형태로 정의하고 있으며, 이러한 방법의 문제로 Labeled 된 데이터를 활용하지 못하고 단순히 일반화된 언어적인 패턴만을 학습하는 것을 지적하고 있다. 또, 과거의 연구 중 Self-Learning 기법은 이러한 문제에서는 자유로우나, 훈련된 데이터내에서 다시 예측을 한다는 한계점이 존재하고, 이러한 한계를 극복하기 위하여 잡음을 추가하는 방식이 존재하지만, Text 문제에서는 그러한 잡음을 추가하는 것이 어려웠다고 말하고 있다. 결론적으로 이 논문에서 제시하는 솔루션은 불완전한 Input 을 받는 복수의 보조 모델을 만드는 방식을 제안하고 있다. 이게 무슨말인지 천천히 살펴 보도록 하자.

전체적인 개념은 주어진 Labeled 데이터를 기준으로 기존의 방법과 같이 모델을 만들고(이 모델을 Primary 모델 이라고 한다) 제한된 데이터를 입력 받는 보조 모델을 만든 후 이 모델의 결과가 Primary 모델의 결과와 유사해 지도록 Shallow Train(Shared Layer 는 훈련하지 않음) 을 수행하고, 마지막으로 전체 Loss (Primary 모델 Loss + 보조 모델 Loss)가 최소화 되도록 훈련을 진행하는 형태로 수행된다.
(1) Primary 모델 훈련
붉은 색으로 칠한 부분을 보면, Primary 모델은 일반적인 분류 문제를 해결하듯이 Cross Entropy Loss 를 최소화하는 형태로 훈련이 진행됨을 할 수 있다.

(2) Auxiliary 모델의 훈련
이 부분이 이 논문의 가장 핵심적인 내용으로, 주어진 데이터를 불완전하게 입력하여 출력한 결과가 Primary Model 의 결과와 최대한 유사해 지도록 KL-Divergence 를 활용하여 Loss 를 설계하고 이를 최소화하는 형태로 Auxiliary 모델을 위해서 추가한 마지막 FCC 만 훈련 (전체 Shared Layer를 훈련하는 것은 아님) 하는 형태로 불완전한 데이터에서 Primary 모델과 같은 Shared Layer 를 통해 추출된 결과가 Primary 모델(모든 데이터 혹은 조건을 알고 있는) 모델의 결과와 유사해 지도록 훈련 함으로써, 불완전한 부분을 유추할 수 있는 기능을 기대 할 수 있다고 한다.
PS. 이때, Primary 모델은 Freeze 한 상태, 아마도 Mini Batch 단위로 반복 되는 것으로 이해 됨
PS. Auxiliary 모델은 Train 시에서 활용되면 Inference 시에는 활용 되지 않음
(3) Total LOSS 기반 훈련
(1) 의 Primary Loss 와 (2) 의 Auxiliary Loss 를 동시에 Minimize 하는 형태로 모델을 훈련하는 것으로 우리가 Inference 시 활용한 Primary 모델의 성능을 극대화 한다.
[기타] Multi Tasking 적용
CVT(Cross View Training 은) 딱 보기에도 알 수 있듯이, Multi Tasking 적용이 매우 용이하다. 이는 위에서 설명한 (2) 과정 훈련시 복수개의 Auxiliary 모델의 LOSS 을 동시에 최적화하는 형태로 쉽게 응용 가능하다

(1) Sequence Tagging 에 적용
실제 NLP 문제에 이 이론을 어떻게 적용하였는지 실제 사례를 이야기 하고 있다. 기본적인 Shared Layer 는 BiLSTM 구조를 가지고 있다고 가정하며, Primary 모델은 Forward 와 Backward 를 모두 활용하여 각 Step 별 Tag 를 예측하는 FCN 을 훈련하는 형태로 구성된다.
Auxiliary 모델은 4개로 구성이 되는데 Forward 만 활용하는 모델, Backward 만 활용하는 모델, 앞뒤로 데이터를 하나씩 덜보고 예측하는 모델로 구성된다. 이 후에 훈련 방법은 앞에서 이야기한 맥락과 동일하다.
(2) Dependency Parsing 에 적용
파싱 트리의 경우 형태소 분석 결과인 단어 단위로 u,t,r (head, dependent, relation) 3가지의 값을 갖게 되는데, 위에 명시된 s (Scoring Function) 을 제외하고는 Sequence Tagging과 사실상 동일하게 구성된다.

이 논문은 ElMo 를 대상으로 개선 방안을 찾기 위해 연구 되었던 논문으로 보이며, 실제 성능 비교 또한 ElMo 와 비교가 핵심이라고 보여진다. (초록에서 비교 했던 대상도 Pretrained 개념의 Semi-Supervised 였음.) 비슷한 시기에 Bert 가 나와서 주목을 덜 받았을 수는 있지만, 개념 자체는 꽤 흥미롭다고 생각된다.