Abstract
- problem: 기존에는 pre-trained model에 새로운 knowledge를 주입(inject)하기 위해 pre-trained model 자체를 fine-tuning 했는데, 각기 다른 많은 knowledge가 한번에 주입될 경우, 모델이 갖고 있던 정보가 사라지는 문제 발생
- K-Adapter:
- pre-trained model의 parameters는 freeze 시킨 상태에서, versatile knowledge-infused model 개발
- 주입하려는 knowledge의 수만 큼 NN 기반의 adpater가 plug-in 처럼 존재,
- adapter 간에 공유되는 information이 존재하지 않아서, continual learning 가능
- case study:
- injected knowledge
- factual knowledge from Wikipedia and Wikidata
- linguistic knowledge via dependency parsing
- results (experiment)
- knowledge를 요구하는 (knowledge-driven) tasks (e.g. relation classification, entity typing, QA)
- performance: combined adapters > each adapter > other baselines
- injected knowledge
1. Introduction
- 기존 language representation models 한계
- language representation models: masked language modelling (MLM)과 같은 unsupervised 방식으로 대량의 데이터를 학습한 모델 (e.g. BERT, GTP, XLNET, RoBERTa, T5)
- language representation models은 많은 downstream tasks에서 SotA를 달성
- 하지만 unsupervised 방식은 풍부한 지식(rich knowledge)를 파악하는데에는 한계가 존재
- entity 간의 표면적인 관계는 추론 가능하지만, 실질적인 사실 정보는 파악하지 못함
- BERT의 경우 부정(negation)의 의미를 파악하지 못함
- language representation models에 knowledge를 주입하게되는 결정적인 동기로 작용
- 기존 knowledge injection 연구
- Augment LM objective with knowledge-driven objectives (참고: 자세히는 모르겠는데 objective 설정이 논문의 저자가 행한 방식과는 다르다는걸 언급하는 것 같음)
- pre-trained model 내 parameters 또한 update
- 문제점 : 각기 다른 정보를 한 모델에 주입하는데 어려움이 있음
- 기존 모델이 갖고있던 정보가 점점 사라짐
- 모델은 모든 knowledge가 섞인 (entangled) representation을 생성하므로, 각각의 knowledge가 실제로 효과를 갖는지 파악하기 어려움
K-Adapter
다수의 knowledge를 large pre-trained model에 주입할 수 있는 framework
pre-trained model은 fixed 된 상태에서, 각각의 knowledge마다 각기 다른 adapter를 두어 별도의 representation을 생성시킴
adapter:
- knowledge-specific model
- pre-trained model 외부에서 plug-in 되는 형태
- pre-trained model의 intermeidate layer의 output hidden-state를 input으로 받음
- e.g. RoBERTa의 0, 11, 23번째 Transformer layer를 통해 생성된 vector representation
architecture for case study:
- RoBERTa(base pre-trained model) + factual adapter + linguistic adapter
- 각각의 지식이 infused된 2개의 adapters를 각각 pre-training 시킴
- adapter의 경우, trainalbe parameter 수가 훨씬 적어서 메모리 측면에서 훨씬 효율적
experiment:
- (knowledge-driven) knowledge를 요구하는 3가지 tasks를 6가지 dataset으로 실험
- (knowledge-driven) knowledge를 요구하는 3가지 tasks를 6가지 dataset으로 실험
2. Related Work
지금까지 연구와는 knowledge sources와 training에 사용된 objective에서 차이를 보임
previous works + models 소개
contribution
두 가지 objectives를 모두 고려
- fact-related objective (e.g. predication prediction)
- linguistic-related objective (e.g. dependency relation prediction)
지식이 주입되는 과정에서 pre-trained model은 fixed 됨
continual learning:
- 각각의 adapter가서로 entangled 되지 않음
- parallel하게 각각의 adapter pre-training 가능
- 이전에 주입된 지식이 사라지거나 하는 문제에서 자유로워짐
3. K-Adapter
다수의 knowledge가 각기 다른 NN(adapter)에 주입됨
- 이는 기존 pre-trained model이 가진 정보는 유지시키고, continual learning을 가능하게 함
- 다른 지식을 갖고 있는 adapter마다 별도의 vector representation 생성
adapters
- knowledge-specific models (적은 수의 parameters를 가짐)
- pre-trained model 외부에서 동작
- pre-trained model의 intermeidate layer의 output hidden-states를 input으로 받음
- e.g. RoBERTa의 0, 11, 23번째 Transformer layer를 통해 생성된 vector representation
- pre-training 시, 각각의 adapter는 독립적으로 각기 다른 task를 pre-train함 (pre-trained model은 freezing)
- architecture for case study:
- RoBERTa(base pre-trained model) + factual adapter + linguistic adapter
3.1. Adapter Structure
knowledge-specific adapter
- 기존 adapter는 adapter layers가 pre-trained model 내부에 존재하는데, k-adapter는 pre-trained model 외부에서 존재
- architecture
- 각각의 k-adapter는 N개의 transformer, K개의 adapter layers, 2개의 prrojection layers를 가짐
- 두 projection layer사이에는 skip connection 존재
- 각각의 adapter를 위해 adapter layers가 pre-trained model의 transformer layer 에 plug 됨
- input & output
- adapter input: pre-trained model에 있는 transformer layer의 output hidden feature와 이전 adpater의 output feature를 concat하여 adapter의 input으로 사용
- final output (as input for downstream tasks): pre-trained model과 모든 adapter의 final hidden states를 결합하여 final output feature로 사용
pre-training: 각각의 adapter는 각기 다른 task를 독립적으로 학습
downstream task
- fine-tuning은 기존 pre-trained 모델과 유사하게 동작 (참고: Appendix에서만 자세하게 다루는데 약점이라 일부러 숨긴것 같음)
- input = concat final outputs from pre-trained model and adapters
3.2. Pre-training settings
- pre-trained model: RoBERTa$_{LARGE}$ 사용 (L=24, H=1024, A=16, 355M)
- adapter layer parameter 소개
- pre-trained model의 0, 11, 23 번째 transformer layer가 adapter layers와 plug 됨 (RoBERTa의 L이 24개 이므로 처음, 중간, 끝에 해당하는 layer임을 알 수 있음)
- adapter 간에는 별도로 parameter를 공유하지 않음
- 각각의 adapter는 42M parameters를 갖음 (space & time complexity가 낮음)
- RoBERTa parameters는 fixed되고, adapter parameter는 랜덤하게 초기화된 후 학습됨
3.3. Facutal Adapter (facAdapter)
- 사실과 관련된 기본적인 정보를 갖고 있음
- relation classification task를 통해 pre-training
- data: entities 간의 관계 from Wikipedia and Wikidata
- entities간의 relation classification
- input: entity paris based on its context
- facAdapter와 RoBERTa의 final hidden states를 concat하여 input으로 사용
- pooling layer 통해 각 entities의 representation을 apply
- 두 entity representations 를 concat해서 relation classification을 수행하는데 사용
3.4. Linguistic Adapter (linAdapter)
- syntatic and semantic information을 갖고 있음
- depency relation prediction task를 통해 pre-training
- data: dependency relationships among words (Book Corpus를 Stanford parser를 이용해서 parsing한 결과)
- 주어진 문장 내 각 token의 head index를 predict
- RoBERTa와 linAdapter의 final hidden states를 concat하여 input으로 사용
- linear layer를 각 token의 input representation에 적용하여 classification 수행
4. Experiments
- 3가지 task (Entity typing, QA, Relation classification)를 실험하여 결과를 공유하고 있는데 특별히 insightful한 내용은 있지 않음
- ablation experiment
- facAdapter, linAdapter: 결국 2개의 adapters를 모두 갖고 있는 모델이 높은 성능을 보임
- knowledge를 pre-training 않은 K-adapter 모델과도 비교 했는데 성능이 매우 낮게 나와서 knowledge infusion의 효과를 수치로 보여줌
5. Conclusion
- K-Adapter: large pre-trained models에 knowledge를 infuse 하기 위해 사용
- original parameters of pre-trained models은 바뀌지 않음
- continual knowledge infusion 가능
- facAdapter, linAdapter를 이용하여 Entity typing, QA, Relation classification를 모두 수행 (adapter를 하나만 쓰는 경우도 성능이 좋았지만 2개 모두 쓰는 경우가 제일 좋았음)
- K-Adapter가 RoBERTa 보다 더 풍부한 factual and commonsense knowledge를 파악하는 것을 알 수 있음
Appendix
C. Applying K-adapter on Downstream Tasks
- pre-trained model의 representation과 adapters의 representation를 조합하는게 key
- pre-trained model는 general informaion을 adapters의 representation은 specific knowledge를 제공
- 기존 pre-trained model은 its output feature를 task-specific layer에 feeding함
- K-adapter
1) fine-tuning
2) pre-trained model과 adapters의 output features를 concat
3) task-specific layer에 feeding
E. Fine-tuining Details
- fine-tuning 시에는 adapter 내에 있는 parameters는 fixed
- RoBERTa 내 parameter는 huggingface checkpoint 기준으로 initialisation 후, 학습 시킴