///
Search
Duplicate
☁️

Mi et al.[2020] Continual Learning for Natural Language Generation in Task-oriented Dialog Systems

Created
7/4/2021, 6:49:00 AM
발표일자
2021/01/18
발표자
백병인
Tags
ContinualLearning
EWC
LanguageGeneration
✅main
포스팅 종류
논문리뷰

들어가며

이 논문은 2020년 10월에 발표된 논문으로서, 이 분야에서 보기 드물게 dialogue system에서의 continual learning을 다루고 있다. 이 논문의 기본 문제구성의 아이디어는 Lee[2017] Toward Continual Learning for Conversational Agents에서 가져왔다고 할 수 있다. 하지만 이후 Catastrophic forgetting을 극복하는 EWC, Experience Replay 등의 기법을 결합하면서 의미있는 수준의 성능을 확인할 수 있게 되었다. 이 논문의 2달 뒤에는 Facebook의 Madotto et al.[2020] Continual Learning in Task-Oriented Dialogue Systems에서 NLG 및 전체 NLP 영역을 포괄한 더욱 제너럴한 주제로 발전시켰다. (다음에 정리해볼 예정) 추가로 언급할 것은, 이 논문은 정말 친절하게 작성되었다는 점이다. 정말 읽기 쉽다는 느낌이었다. 기존 연구를 체계적으로 정리하여 소개하는 점, 수식이나 노테이션 활용시 애매함이 없게 명확하게 개념을 정리하여 제시한다는 점이 눈에 띈다. 아직 인용수는 많지 않지만, 이 분야를 정리하기 위해 도움이 될만하니 관심있는 분들의 일독을 권한다.

Continual Learning의 어려움

Continual Learning이 필요한 이유는 뭘까? 만약 최초의 모델학습만으로 우리의 딥러닝 모델이 충분히 이후의 모든 입력에 대해 완벽히 대응 가능하다면 필요없겠지만, 안타깝게도 우리의 모델은 서비스 도중에 처음보는 입력, 지식, 도메인을 맞닥뜨리게 된다. 즉, 우리의 모델은 필연적으로 재학습이 필요한데, 특히 오늘 주로 다룰 챗봇(Dialogue System)이라면 online learning이 필수적이다.
그러나, 새로운 데이터를 가미한 재학습을 시도했을 때, Catastrophic forgetting이라는 문제를 만나게 된다. 이전에 잘 학습시킨 지식과 피처가 사라져 버린다. 아래 그림은 이런 현상을 좀더 직관적으로 설명해 준다. 고양이과 금붕어를 잘 구분하는 모델에 새롭게 사자와 개의 이미지 데이터와 라벨을 추가해서 학습을 시켰더니, 놀랍게도 우리의 새로운 모델은 이전에 잘 알아맞추던 고양이와 금붕어를 아주 높은 확률로 사자나 개로 분류하고 있는 것이다. 새로운 class가 추가되는 형태의 continual learning에서 흔히 접하게 되는 현상인데, 이를 클래스간 fairness를 잃어버렸다고 표현한다.
Zhao et al.[2019] Maintaining Discrimination and Fairness in Class Incremental Learning

Task-oriented Dialogue system에서의 Continual Learning

이 논문에서는 MultiWoZ-2.0 데이터셋을 기반으로 새로운 task를 차례차례(continually) 배워가는 모델을 목표로 한다.
이 데이터셋은 6개의 도메인(Attraction, Hotel, Restaurant, Booking, Taxi and Train)에 대해 각각 7개의 intent(Inform, Request, Select, Recommend, Book, Offer-Booked, No-Offer)로 이루어져 있다. intent 개념은 모델 구성을 좀더 상세히 다루면서 다시 언급하겠지만, 이 논문에서 하고 싶은 것은 하나의 챗봇 모델이 특정 도메인에 대해서만 특화된 text generation을 하는 것이 아니라, 도메인이 지속적으로 추가되어도 이전 도메인에 대해 학습한 것을 잊어버리지 않으면서 text generaion 자체도 GPT 모델처럼 생성하는 문장을 통제할 수 없는 것이 아니라 정밀하게 부여된 intent에 따라 수행하게끔 하고싶은 것이다.

Continual learning vs Domain adaptation

이 두가지 주제는 다소 혼동스러울 수 있다. 하지만 domain adaptation은 continual learning에서 관심을 가지는 다음 2가지 목표에 관심이 없다.
continual learning은 지속적인 task/domain 추가 상황을 가정한다. 그러나 domain adaptation은 1회의 domain 변화 대응만을 목표로 한다.
continual learning은 domain 추가 이후에도 이전 domain들에 대한 모델 성능이 유지되기를 원한다. 그러나 domain adaptation은 target domain에서의 성능에만 관심이 있고, source domain에서의 성능이 유지되는데는 관심이 없다.

Catastrophic forgetting을 극복하는 3가지 방법

이 논문에서는 Catastrophic forgetting 을 극복하는 그동안의 연구가 3개 카테고리로 나뉜다고 정리한다.
Regularization
Exemplar replay
Dynamic architecture
3가지 개념에 대해서는 아래에서 좀더 다루겠지만, 이 논문에서 제시하는 ARPER(Adaptively Regularized Prioritized Exemplar Replay)이라는 방법을 여기서 한문장으로 정리할 수 있겠다.
ARPER = AR + PER
AR(Adaptively Regularization)이라는 것은 대표적인 Regularization 기법 중 하나인 EWC를 활용하되, 이를 얼마나 활용할지의 가중치를 추가하도록 하자는 것이다.
PER(Prioritized Exemplar Replay)는 Continual learning에서 핵심적인 개념으로 떠오르는 Exemplar replay 개념을 활용하되, 도메인이 추가되어도 Exemplar replay가 무한히 커지지 않고 일정한 개수를 가지도록 우선순위를 부여하자는 것이다.
그러므로, 이 논문은 결국 위의 2가지 카테고리의 핵심 개념을 적절히 잘 결합하여 NLG에 적용한 것이라고 할 수 있다.

Regularization 기법에 대해

논문에서 언급된 Continual learning 관련 핵심적인 regularization 기법으로는 LwF(Li and Hoiem[2017] Learning without Forgetting)과 EWC(Kirkpatrick et al[2017] Overcoming catastrophic forgetting in neural networks)이 있다. LwF와 EWC 개념에 대해서는 아래 링크된 블로그의 설명을 추천한다.
이 블로그에서 아래 설명이 아주 명쾌하게 두 개념의 차이를 보여주고 있다.
앞 서 언급한 EWC와 LwF (혹은 LwF+)는 neural network에서 catastrophic forgetting을 극복할 수 있는 대표적인 방법들이며, 특히 LwF는 output activation을 한정하는 방식으로, EWC는 model parameters를 한정하는 방식으로 catastrophic forgetting을 극복합니다. 즉, 두 방법은 서로 complementary하며, 따라서 아래와 같이 동시에 활용될 수 있습니다 (EWCLwF 와 EWCLwF+).
LwF
LwF는 새로운 task를 위한 finetune 레이어를 추가하면서도, 기존 레이어의 activation이 이전 task의 경우 일정하게 유지되도록 하는 regularization이다. Fine-tune, feature extraction, joint training 등의 개념들과 어떻게 다른지 아래 그림이 잘 보여준다.
EWC
EWC는 L2 regularization처럼 loss에 부과하여 파라미터의 gradient 방향을 직접 제어하는 방식의 regularization 방식이다. 아래 식에서 보는 것처럼 Fisher matrix라는, 모든 i번째 파라미터마다 가지는 가중치에 비례하여 loss가 커지는 방식이다. 만약 F_i를 전부 1로 세팅한다면.. L2 reg와 같아질 것이다.

Exemplar Replay 에 대해

이 용어는 강화학습에서 주로 언급되던 Experience Replay 개념에서 나온 것으로 보인다. 강화학습이 본질적으로 지도학습과 다른 점 중 하나는 모델이 학습 도중에 입력데이터 스페이스의 모든 데이터를 다 접할 수 없고, 학습이 진행되고 policy가 좋아짐에 따라 새롭게 접할 수 있는 데이터 분포 구간이 생겨난다는 점이다. 그래서 catastrophic forgetting에 취약할 수밖에 없는 강화학습 모델의 특성을 continual learning 컨셉으로 극복해 보고자, 이전의 경험들을 효과적으로 저장하고 재활용하는 기법들이 연구되었다.
이전에 다루었던 continual learning 관련 아래 논문리뷰글들은 모두 Exemplar replay 기법과 관련된 것들이었다.

Task-oriented NLG의 언어모델

특정 task에 적합한 언어를 정교하게 생성하기 위한 언어모델은 GPT에서 볼 수 있는 일반적인 next token prediction 모델과는 다르다. 아래 식에 나오는 Dialogue Act(DA) d 는 언어생성을 위해 조건으로 제시되는 semantic representation이다.
예를 들어 설명하면 이해가 쉽다. 아래와 같은 문장을 생성하기 위해서
There is a restaurant called [La Margherita] that serves [Italian] food.
다음과 같은 DA가 주어져야 하는 것이다.
[Inform, (name=La Margherita, food=Italian)]
이제 언어모델을 제시할 수 있게 되었다. 생성해야 할 text의 ground truth를 Y라고 한다면,
d를 조건으로 하는 conditional language model은 다음과 같다.
이때 이 모델의 loss는 일반적인 언어모델의 것과 크게 다르지 않을 것이다.

ARPER 모델 구성 (1) Prioritized Exemplar Replay

Catastrophic forgetting을 방지하기 위해 이전 도메인의 데이터를 일부 저장해 놓는 기법은 이미 널리 알려져 있고, 효과도 입증되어 있다. 단지 문제는 어떤 데이터를 얼마나 저장해 두어야 하는가 하는 점이다. 이 논문의 독특한 발견 중 하나는, Exemplar replay 개수를 일정하게 유지할 수 있으며, 이를 위해 exemplar 를 도메인별로 중요도를 매겨 중요한 순으로 보관하게 되는데, 이 방법으로 기존 다른 방법보다 우월한 성능을 확인했다는 점이다.
task t의 이전 task 1...t-1까지에 대한 exemplar 의 집합을 다음과 같이 표시할 수 있다.
task t에 대한 데이터의 집합을 Dt라고 한다면 Continual learning 상황에서 exemplar replay에 대한 loss를 다음과 같이 정의할 수 있다.

Exemplar의 priority를 매기는 방법 (대표성, 다양성)

본 논문의 저자들은 priority를 다음과 같은 수식으로 매기도록 제안하였다.
저장해야 할 exemplar는 (Y, d)의 tuple이다. 이 exemplar의 priority는 모델에 넣었을 때의 loss가 낮을수록 높다.
그리고, Slot-value pair S(d)의 pair 갯수가 작을수록 priority가 높아지도록 하는데, 이것은 text generation의 요건 갯수가 적을수록 제너럴한 문장을 생성하기 때문이다. 즉, 제너럴한 문장을 만드는 (대표성을 가지는) exemplar를 기억해 두자는 뜻이다.
하지만, 이렇게 되면 exemplar replay를 학습시킬때마다 같은 내용의 데이터만 학습시키게 되는 단점이 있다. 이를 상쇄시키기 위해 한번 보았던 (Y, d)를 Sseen에 넣어 제외하는 방법을 사용해 다양성을 강화시킨다. 전체적인 알고리즘은 아래 슈도코드와 같다.

task 개수 증가에 따른 exemplar 일정개수 관리 방법

Continual learning이 계속되고 task 개수가 증가하지만 exemplar 개수를 일정하게 관리하려면 task별 exemplar 개수를 적절히 감소시켜야 한다. 본 논문에서는 task별 데이터 개수에 비례하여 감소시키는 방법을 제안한다. 단, 총 exemplar 개수 M은 250 또는 500을 사용하였다.

ARPER 모델 구성 (2) PER을 adaptive EWC와 결합하기

이전에 살펴보았던 EWC의 loss 함수를 PER 을 위한 loss와 결합해 볼 수 있다.
여기서 EWC의 가중치로 쓰이는 Fi는 다음과 같이 주어진 Fisher matrix 의 i번째 diagonal element를 사용한다.
EWC에 대해 EWC 논문보다 더 잘 쓰인 본 논문의 설명을 그대로 가져와 보았다.
The idea is to elastically penalize changes on parameters important (with large Fi) to previous tasks, and more plasticity is assigned to parameters with small F
여기까지는 사실 EWC 의 구성 그대로이다. 그렇다면 본 논문의 adaptive EWC란? 사실 별게 아니고 adaptive weight (λ)를 다음과 같이 task에 따라 가변적으로 바꿔준다는 뜻이다.
여기서 Vt는 task t에서 새롭게 추가된 vocabulary 갯수이다. 즉, task t에 새로운 단어가 적게 추가될수록 EWC를 통한 regularization이 강화된다. 다시 말해, 이전 지식을 기억하려는 경향이 강해진다는 뜻이다.
그래서 PER과 AR을 결합한 ARPER의 최종 알고리즘 슈도코드는 다음과 같다.

Experiment Result

Continual learning 개념이 전혀 안들어간 Finetune 기법을 baseline으로 했을 때, ER 기법과 Regularization 기법의 변화에 따라 어떤 성능 변화가 있는지를 보는 것이다. Full은 모든 task의 데이터를 전부 학습에 사용한, best 성능을 가정한 것이다. 비교해 보면 ARPER이 Full에 크게 떨어지지 않는 것을 확인할 수 있다.
샘플로 생성된 문장을 살펴본다. ARPER가 missing slot 없이 정확한 문장을 생성하는 것을 볼수 있다.
위 표의 정량적 결과는 language generation model을 SCLSTM을 사용했을 경우인데, 이를 SCVAE나 GPT-2로 확장해도 유사한 성능향상을 보인다. 즉 ARPER 기법이 여러 모델에 두루 사용할 수 있는 제너럴한 방법임을 입증한 것이다.