2020년 10월 7일 수요일

논문 설명 - SpanBERT : Improving Pre-training by Representing and Predicting Spans

 

논문 정보 :


요약 :

  • 목표 : BERT의 성능 향상
  • MLM과 함께 span을 같이 prediction한다.


Model 



  1. Span masking
    • 기존 BERT는 token 단위 masking을 했는데, SpanBERT에서는 여러 단어에 걸쳐 있는 token들을 같이 masking했다.
  2. Span boundary objective(SBO)
    • Span의 경계 옆에 있는 토큰들로 span 안의 토큰들을 예측한다.

    • 추가적으로 position embedding p를 이용한다. 이 p는 x_s-1 토큰과의 relative position에 대한 정보를 담고 있다.
    • 이 함수 f()는 2-layer feed-forward 구조이며, GeLU 활성 함수를 사용한다.
  3. Single-sequence training
    • 기존 BERT와 다르게 NSP 없이 한 개의 segment를 입력으로 사용한다.
    • 이로 인해 모델이 더 긴 context를 학습할 수 있고, 관련없는 context에서부터 오는 noise를 없앨 수 있다.

Experimental Setup

  • Implementation
    • 구글의 BERT를 재구현했으며 같은 corpus로 학습했다-Our BERT.
    • 다른 점은, 매 epoch마다 다른 masking을 했고, 짧은 segment는 사용하지 않았다.
    • BERT는 처음 90% step을 짧은 128개의 sequence로 학습했다고 했는데, 항상 512개의 sequence를 사용하여 학습했다.
    • SBO를 위해 200 차원의 position embedding p를 사용했다.
    • 32개의 V100 GPU에서 15일 동안 학습했다.
    • Our BERT-1seq 모델은 Our BERT 모델을 한 개의 sequence로 학습하도록 변형한 모델이다(당연히 NSP도 없다).

Results



  • 거의 모든 task에서 향상된 결과를 냈다.
  • 특히 extractive question answering에서 좋았다.
  • Single-sequence로 학습한 결과가 be-sequence로 학습했을 때보다 좋았다.

Ablation Studies

  1. Masking schemes
    • 마스킹 방법을 다르게 해서 학습해 봤다.
    • Subword, whole word, named entities, noun phrase, span 단위를 실험했다.
    • 기본 BERT와 동일하게 bi-sequence + NSP로 학습했다.
    • Span 단위로 masking했을 때 가장 좋은 결과를 냈다.
  2. Auxiliary objectives
    • Bi-sequence + NSP의 안 좋은 점, SBO의 효과를 보기 위해 실험했다.
    • Sequence 1개로 SBO를 추가적으로 사용했을 때 점점 성능이 좋아졌다.


댓글 없음:

댓글 쓰기