Data Science/Paper Review

K-ADAPTER: Infusing Knowledge into Pre-Trained Models with Adapters (2020)

준나이 2023. 5. 2. 05:20

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


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으로 실험


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 후, 학습 시킴