Gorio Tech Blog search

ERNIE 논문 설명(ERNIE 3.0 - Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation)

|

이 글에서는 Baidu에서 만든 모델 시리즈 ERNIE 중 다섯 번째(ERNIE 3.0: Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation)를 살펴보고자 한다.

ERNIE 시리즈는 다음과 같다. 참고로 2번째는 Baidu가 아닌 Tshinghus University에서 발표한 논문이다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


ERNIE 3.0: Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation

논문 링크: ERNIE 3.0: Large-Scale Knowledge Enhanced Pre-Training For Language Understanding And Generation

초록(Abstract)

사전학습 모델은 다양한 자연어처리 문제에서 SOTA 결과를 얻었다. T5, GPT3은 사전학습 모델을 크게 키우는 것이 그 일반화 성능을 높일 수 있음을 보였다. 특히 GPT3 모델은 175B개의 parameter를 사용, task-agnostic zero/few-shot 학습능력이 강력함을 보였다. 이러한 성공에도 불구하고 이러한 대규모 모델은 언어적/실제 세계의 지식에 대한 정보 없이 plain text에서 학습되었으며 대부분 자동회귀 방식으로 학습된다. 그 결과로 전통적인 미세조정 접근법은 downstream 언어이해 문제를 풀 때 상대적으로 낮은 성능을 보인다. 이러한 문제를 해결하기 위해, 대규모 지식강화 모델을 사전학습하기 위한 통합 framework ERNIE 3.0을 제안한다. 이는 자동회귀 및 자동인코딩 network를 결합하여 학습된 모델이 언어이해 및 생성 문제에서 zero/few-shot 학습 및 미세조정에서 더 쉽게 조정될 수 있다. 본 논문에서 4TB의 말뭉치 및 지식 그래프를 갖고 10B의 parameter를 가지는 모델을 학습하였다. 실험 결과는 54개의 중국어 자연어처리 문제와 영어에서는 SuperGLUE에서 1등을 달성하였으며 이는 사람과 비교하여 0.8%만큼의 우위를 보인다(90.6% vs. 89.8%).

ERNIE

1. 서론(Introduction)

ELMo, GPT, BERT, ERNIE 1.0과 같은 사전학습 모델은 감정분류, 자연어추론, 텍스트 요약, 명명 객체 인식 등의 다양한 자연어처리 문제에서 효과적으로 성능을 높였다. 일반적으로, 사전학습 모델은 대규모 텍스트 데이터로부터 선학습한 뒤 downstream task에서 미세조정하거나 바로 zero/few-shot 학습에 사용된다. 이러한 사전학습 모델은 자연어처리 문제에서 새로운 패러다임이 되었다.

최근의 연구 동향은 이러한 모델의 크기를 크게 키워 perplexity를 낮추고 더 좋은 성능을 얻는 것이었다. Megatron-LM, T5, GPT3 등은 단순하면서도 효율적인 (거대한) layer를 여러 개 쌓아 만든 것으로 10B, 175B 정도의 parameter를 갖는다. 후에 나온 Switch-Transformer는 1T(1조) parameter 정도 크기를 갖는다.

그러나 이러한 모델은 단지 plain text에서 학습된다. 단순 텍스트는 언어적 지식과 실제 세계의 지식이 부족하여 이러한 데이터로 학습하는 것은 성능이 많이 좋아지지 않는다.

본 연구에서는 이러한 하나의 자동회귀 framework로 인해 발생하는 문제를 해결하고 지식을 추가한 사전학습 모델의 성능을 탐색하는 것으로 대규모 단순 텍스트(4TB)와 대규모 지식 그래프를 사용하여 학습하는 통합 framework인 ERNIE 3.0을 제안한다. 이는 자연어처리 및 생성 문제, zero/few-shot 학습을 모두 다루며 여러 task에도 적용될 수 있다. 이 방법은 여러 task에서 기능하는 어휘적, 구문, 의미적 정보를 인코딩하는 것이 가능하며 새로운 task가 추가되면 이 framework는 이전에 학습된 parameter에 기초하여 분산표현을 점층적으로 학습시켜 사용하며 이는 scratch로부터 새로 학습할 필요가 없음을 의미한다.

요약하면, 이 논문이 기여한 바는:

  1. 통합 framework ERNIE 3.0을 제안한다. 자동회귀 및 자동 인코딩 network를 결합하여 학습된 모델이 zero/few-shot 학습 혹은 미세조정을 통해 자연어이해 및 생성 문제를 다룰 수 있게 한다.
  2. 10B개의 parameter를 갖는 지식 강화된 모델을 사전학습하여 자연어이해 및 생성 task에서 실험하였다. 결과는 ERNIE 3.0이 54개의 중국어 task 및 SueprGLUE에서 일관되게 타 모델을 능가함을 보여준다.

2. 관련 연구(Related Work)

2.1 Large-scale Pre-trained Models

BERT 이후로 자연어이해 문제에서는 사전학습 모델이 새로운 패러다임이 되었다. 이후로는 더 낮은 perplexity를 지니는 더욱 더 큰 모델이 계속해서 나오게 되었다. 그러나 GPT3과 같은 모델은 일반상식이 부족하다. 1T개의 parameter를 갖는 Switch Transformer는 더 적은 학습 비용으로 모델을 향상시키고자 했으며 다른 연구에서는 학습 복잡도, 통신비용, 학습 불안정성 등을 해결하고자 하였다. 위의 모델들 이외에도 Chinese Pre-trained Language Model(CPM), M6, PangGu-$\alpha$ 등 비 영어 모델이 여럿 제안되었다. 중국어 모델 이외에도 204B개의 parameter를 가지는 한국어 모델 HyperCLOVA가 제안되어 GPT3보다 6500배 많은 한국어 데이터를 사용하여 학습하였다.

종합적으로 대규모 사전학습 모델이 학계와 산업계에서 높은 성능을 보이며 주목받고 있다.

2.2 Knowledge Enhanced Models

사전학습 언어모델은 대규모 말뭉치로부터 구문, 의미적 지식을 학습하지만 실세계의 지식은 부족하다. 최근, 사전학습 모델에 이러한 상식을 부여하고자 하는 시도가 여럿 있었는데 대표적으로 지식 그래프를 사용하는 방법이 있다. WKLM, KEPLER, CoLAKE, ERNIE 1.0, CALM, K-Adapter 등이 발표되었다.


3. ERNIE 3.0

ERNIE

ERNIE, ERNIE 2.0, SpanBERT 등은 base/large 모델을 각각 12/24 layer의 Transformer로 구성하고 있다. 대규모 말뭉치와 지식 그래프로 사전학습한 모델 ERNIE 3.0 framework를 제안한다. 서로 다른 수준의 지식을 얻기 위해 다양한 사전학습 task를 구성하였다. ERNIE 3.0은 Continual Multi-Paradigms Unified Pre-training Framework이다.

3.1 Overview of ERNIE 3.0 Framework

일반적인 사전학습 방식은 cloze task를 위해 공유 Transformer 네트워크를 사용하고 예측 조건이 어떤 문맥에 있는지 제어하기 위해 특정 self-attention mask를 사용하지만 ERNIE 3.0은 새로운 연속 다중 패러다임 통합 사전 훈련을 설계한다.
어휘, 구문 정보를 일관되게 추출할 수 있는 방식에 의존하지만 top-level feature의 요구사항은 양립할 수 없다. 전통적인 방식에서 하단 layer는 모든 task에서 공유되고 상단 layer는 task에 특화된 방식으로 사용되며, 이에 착안하여 ERNIE 3.0은 공유 network에서 학습된 추상 feature를 공유하고 task-specific feature는 task-specific network에서 학습된 것을 사용한다. 모델이 표현을 더 잘 사용할 수 있도록 ERNIE 2.0에서 제시한 연속적 multi-task 학습 framework를 사용한다.
Downstream task로의 응용은 ERNIE 3.0을 사전학습된 공유 네트워크 및 task-specific 네트워크를 결합한 것으로 최적화하여 특정 task의 data를 사용하여 실행하는 과정을 따른다.

ERNIE 3.0에서 Backbone 공유 네트워크와 task-specific 네트워크는 Universal Representation ModuleTask-specific Representation Modules으로 칭한다.

  • Universal Representation Module은 범용 semantic feature 추출기로서 작동하며(multi-layer Transformer가 될 수 있다) 모든 task에서 공유되는 parameter이다.
  • Task-specific Representation Modules는 task-specific feature를 추출하는 부분으로 task마다 다른 parameter를 가진다.

이러한 방식으로 대규모 사전학습 모델은 제한된 시간과 자원 하에서 사용하기 어려운 것을 ERNIE 3.0은 task-specific 네트워크 부분만 업데이트함으로써 이를 가능케 한다. ERNIE 3.0은 1개의 Universal 모듈과 2개의 Task-specific 모듈(NLU & NLG specific representation module)을 사용한다.

3.1.1 Universal Representation Module

XLNet, Segatron, ERNIE-Doc과 같이 Multi-layer Transformer-XL을 backbone으로 사용한다. 일반적으로, Transformer는 self-attention을 통해 sequence의 각 token에서 문맥 정보를 잡아낼 수 있고 문맥 임베딩의 sequence를 생성할 수 있다. 그 크기가 커질수록 더 많고 더 다양한 많은 정보를 담을 수 있다. 따라서 ERNIE 3.0은 다양한 사전학습 task의 학습 데이터로부터 어휘적, 구문 정보를 잡아내기 위해 큰 크기의 universal 표현 모듈을 사용한다. 그리고 특히 attention이 필요한 부분은 attention mask matrix를 제어하는 동안 자연어생성 task에만 유효한 메모리 모듈이다.

3.1.2 Task-specific Representation Module

범용모듈과 비슷하게 multi-layer Transformer-XL을 사용하며 이는 서로 다른 task paradigm을 위한 상단부 의미표현을 잡아내기 위한 것이다. 기본 모델로 MLP나 shallow Transformer 대신 적정 크기의(manageable) 표현 모듈을 사용하였는데 이는 3가지 장점을 갖는다:

  1. 의미정보를 잡아내는 능력이 더 뛰어나다.
  2. Parameter의 수를 크게 늘리지 않고도 서로 다른 task paradigm 중에서 상단부 의미정보를 구별할 수 있도록 해 준다.
  3. 공유 네트워크보다 더 작은 크기의 task-specific 네트워크는 task-specific 표현모듈만을 미세조정했을 때보다 대규모 사전학습 모델을 위한 실용적, 실제적 응용에 더 적합하다.

ERNIE 3.0에서는 2개의 task-specific 표현모듈을 사용하였고 이는 각각 NLU 및 NLG specific representation module인데, 전자는 양방향 모델이고 후자는 단방향이다.

3.2 Pre-training Tasks

학습 말뭉치로부터 여러 방면의 정보를 얻기 위해 다양한 task paradigm을 구성하여 이해/생성/추론능력을 증가시켰다.

3.2.1 Word-aware Pre-training Tasks

Knowledge Masked Language Modeling: ERNIE 1.0에서 지식통합을 통해 표현을 증강시키는 효율적인 방법으로 제시되었다.

Document Language Modeling: 생성적 사전학습 모델은 보통 전통적인 언어모델이나 seq-to-seq 언어모델을 사전학습 task로 사용하는데, 후자는 auxiliary decoder 구조와 같이 네트워크를 학습한다. ERNIE 3.0은 전통적 언어모델을 선택하여 모델복잡도를 낮추고 통합 사전학습의 효율성을 높였다. 추가로, ERNIE 3.0의 NLG 네트워크를 모델의 더 긴 텍스트에 활용하기 위해 ERNIE-DOc에서 제안된 Enhanced Recurrence Memory Mechanism을 사용, shifting-one-layer-downwards recurrence를 same-layer recurrence로 바꿈으로써 전통적인 재귀 Transformer보다 더 효율적인 문맥길이를 모델링한다.

3.2.2 Structure-aware Pre-training Tasks

Sentence Reordering: ERNIE 2.0에서 제안된 task로 모델은 순서가 뒤바뀐(permuted) 문장들의 원래 순서를 찾아내야 한다.

Sentence Distance: NSP(Next Sentence Prediction) task의 확장판으로 문장 간의 관계를 3가지 분류(인접 문장/인접하지는 않았으나 같은 문서 내에 존재/서로 다른 문서에 존재) 중 하나로 특정해야 한다.

3.2.3 Knowledge-aware Pre-training Tasks

Universal Knowledge-Text Prediction: 하나의 사전학습된 언어모델에 지식을 통합하기 위해, 지식 마스크 언어모델링의 확장판인 UKTP(Universal Knowledge-Text Prediction) task를 도입하였다. 지식 마스크 언어 모델링에는 plain text만 필요하지만 범용 지식 텍스트 예측 작업에는 plain text와 지식 그래프가 모두 필요하다.
범용 지식 텍스트 예측 작업은 아래 그림에서 볼 수 있다.

ERNIE

지식 그래프의 triplet 쌍과 백과사전에서 얻은 대응되는 문장이 주어지면, 모델은 head/Tail Entity를 탐지하고 대응 문장에서 그것들의 관계를 판별해야 한다. 이 과정의 본질은 관계 추출 task에서 distant 지도 알고리즘과 비슷하다. Distant 지도 알고리즘은 두 entity가 어떤 관계에 참여하면, 해당 entity를 포함하는 어떤 문장이든 그 관계를 표현할 것이라고 가정한다.
한편, 대응 문장에서 단어를 예측하기 위해, 모델은 문장 내에서 의존정보뿐 아니라 triple 안에서 논리적 관계를 고려해야 한다. 구체적으로, triple과 해당 문장의 쌍을 구하는 과정은 다음과 같다: 백과사전에서 문서가 주어지면, 지식 그래프에서 head/tail entity에 대한 언급이 문서의 제목이 되는 후보 triple을 먼저 찾은 다음, 문서의 동일한 문장에서 해당 entity들이 언급된 후보 triple 중에서 선택한다.

ERNIE 3.0은 지식 마스크 언어 모델링을 통해 NLU 네트워크를 훈련하여 어휘 정보 캡처 능력을 향상시키고, sentence reordering task와 sentence distance discerning task를 훈련하여 구문 정보 캡처 능력을 강화하고, 지식 기억 및 추론능력을 향상시기키 위해 UKTP task를 통해 모델을 최적화한다.
한편, ERNIE 3.0은 다양한 생성 스타일을 갖추도록 문서 언어 모델링 작업으로 NLG 네트워크를 학습시킨다.

3.3 Pre-training Process

3.3.1 Pre-training Algorithm

점진적 학습은 원래 효율적이고 작은 모델에서 시작하여 점차적으로 용량을 늘리는 안정성 향상을 위해 제안된 방법으로 최근 연구에서는 이 패러다임을 활용하여 모델 학습을 가속화한다. 대규모 사전학습이 계속해서 SOTA를 발전시키면서 그 엄청난 계산량은 강력한 모델을 개발함에 있어 더 큰 부담이 되고 있다.
Transformer에서 점진적 사전학습의 적용이 이루어졌는데, BERT는 처음 90%의 업데이트 동안 sequence의 길이를 줄인 2단계 학습 방법을 적용하고, batch size를 점차 큰 크기로 늘려가는 방법을 사용하였다.

또한 input 크기와 관련하여 정규화 인자를 조절하는 것도 학습 속도를 높이는 데 도움을 주는 것이 알려져 있다. 본 논문에서는 수렴 속도를 향상시키기 위해 sequence 길이, batch size, learning rate, dropout rate 등을 점진적으로 동시에 조정하는 것을 제안한다.

3.3.2 Pre-training Data

대규모, 다양성, 고품질의 중국어 데이터를 11개의 다른 종류, 4TB의 용량에 달하는 텍스트 말뭉치를 구성하였다. 이는 CLUECorpus2020(100GB), WuDaoCorpus2.0(2.3TB), PanGu Corpus(1.1TB) 등보다 더 큰, 가장 대규모의 데이터셋이다.

구체적으로, ERNIE 2.0에 기반하여, Baidu Search, Web text, QA-long/short, Poetry & Couplet, 의학/법/경제 영역 데이터 등에서 데이터를 수집하였고, 품질을 높이기 위해 다음 전처리를 수행하였다.

  • 중복을 제거하기 위해,
    • 문자 단위에서 연속적으로 동일한 문자(공백, 특수문자 등)을 하나로 통합하였다.
    • 문단 단위에서 $N$개의 문장으로 구성된 연속 문장을 포함하는 2개의 동일한 문단을 하나로 통합한다.
    • Message Digest Algorithm5(MD5)를 사용, 가장 긴 top-3 문장의 합을 비교, 중복 문서를 제거한다.
  • 10개 단어보다 적은 문장은 불완전할 수 있기 때문에 제거되었다.
  • Baidu의 단어 분절 도구를 사용, 문장 segmentation 작업을 수행하였다. 이는 문장 및 명명 객체의 경계를 학습하는 데 도움을 줄 것이다.
ERNIE

3.3.3 Pre-training Settings

Backbone network로 Transformer-XL을 사용한다.

  • Universal representation module의 경우 48 layers, 4096 hidden units, 64 heads이다.
  • Task-specific representation module의 경우 12 layers, 768 hidden units, 12 heads이다.

전체 parameter 수는 10B이다.

활성함수는 GeLU, 문맥의 최대길이는 512, 생성 문장의 최대길이는 128, 모든 사전학습 task의 총 batch size는 6144, Adam($lr=1e-4, \beta_1=0.9, \beta_2=0.999$), L2($decay=0.01$), lr warmup은 1만 step이다.

모델은 PaddlePaddle framework 하에서 384개의 NVIDIA v100 GPU를 사용하여 총 375B개의 token을 학습하였다. Parameter 공유를 통해 모델의 크기를 줄이고 하나의 GPU에 들어갈 수 있도록 하였다.


4. 실험(Experiments)

SOTA와 비교, 4.2.1에서 자연어이해, 4.2.2에서 자연어생성, 4.3에서 zero-shot 학습을 살펴본다.

4.1 Evaluation Tasks

54개의 자연어처리 문제를 비교한다.

4.1.1 Natural Language Understanding Tasks

14종류의 45개의 데이터셋을 사용하였다.

  • Sentiment Analysis: NLPCC2014-SC 6, SE-ABSA16_PHNS 7, SE-ABSA16_CAME, BDCI2019 8.
  • Opinion extraction: COTE-BD, COTE-DP, COTE-MFW.
  • Natural Language Inference: XNLI, OCNLI, CMNLI.
  • Winograd Schema Challenge CLUEWSC2020.
  • Relation Extraction: FinRE, SanWen.
  • Event Extraction: CCKS2020 9.
  • Semantic Similarity: AFQMC, LCQMC, CSL, PAWS-X, BQ Corpus.
  • Chinese News Classification: TNEWS 10, IFLYTEK, THUCNEWS 11, CNSE, CNSS.
  • Closed-Book Question Answering: NLPCC-DBQA 12, CHIP2019, cMedQA, cMedQA2, CKBQA 13, WebQA.
  • Named Entity Recognition: CLUENER, Weibo, OntoNotes, CCKS2019 14.
  • Machine Reading Comprehension: CMRC 2018, CMRC2019, DRCD, DuReader, Dureaderrobust, Dureaderchecklist, Dureaderyesno 15, C3, CHID.
  • Legal Documents Analysis: CAIL2018-Task1, CAIL2018-Task2.
  • Cant Understanding: DogWhistle Insider, DogWhistle Outsider.
  • Document Retrieval: Sogou-log.

4.1.2 Natural Language Generation Tasks

7종류의 9개의 데이터셋을 사용하였다.

  • Text Summarization: LCSTS
  • Question Generation: KBQG 16, DuReader-QG, DuReaderrobust-QG.
  • Closed-Book Question Answering: MATINF-QA.
  • Math: Math23K.
  • Advertisement Generation: AdGen.
  • Translation: WMT20-enzh.
  • Dialogue Generation: KdConv.

4.2 Experiments on Fine-tuning Tasks

4.2.1 Fine-tuning on Natural Language Understanding Tasks

ERNIE
ERNIE

원 논문에는 각 task별로 간단한 설명이 있는데, 각 task가 어떤 task인지를 한 문장 정도로 설명하고 나머지는 ERNIE 3.0이 얼마의 차이로 가장 좋은 성능을 내었다는 설명이 있다. 자세한 내용은 위 표를 보면 알 수 있기 때문에 여기서는 생략한다.

4.2.2 Fine-tuning on Natural Language Generation Tasks

참고로 Math는 간단한 산술연산을 수행하는 능력을 평가한다. 이는 계산기를 구현한 것이 아니라 모델이 실제로 식을 보고 답을 계산하는 것을 평가하는 것이다. 실제로 데이터셋이 이렇게 구성되어 있지는 않지만, 주어지는 문제가 1+3=?이 아니라 1에다가 3을 더하면 얼마인가?를 이해하고 푸는 문제라고 대략 이해하면 된다.

ERNIE

4.2.3 LUGE benchmark

Language Understanding and Generation Evaluation Benchmark라는 벤치마크로 여기서는 6개의 representative task를 사용하였다.

ERNIE

ERNIE 2.0과 RoBERTa에 비해 5.36%의 차이를 보인다.

4.3 Experiments on Zero-shot Learning

어떤 gradient 업데이트나 미세조정 없이 zero-shot만으로 ERNIE 3.0이 얼마만큼의 성능을 내는지를 평가한다.

4.3.1 Evaluation

크게 2가지로 평가 방법을 나눌 수 있다.

  • Perplexity-based Method: 다지선다형 문제에서 구문 내에서 빈칸을 각 선택지로 채웠을 때 token당 perplexity 점수를 비교한다. 물론 정답일 때 perplexity 점수가 가장 낮은 값을 가진다. 분류 문제의 경우, 좀 더 의미가 있는 이름을 각 분류에 붙인 뒤 multi-choice task로 취급하여 평가한다.
  • Generation-based Method: Closed-book QA와 같이 자유양식 문제의 경우 beam width 8의 beam search를 사용한다. 최대 생성 길이는 데이터셋의 상위 95%의 정답 길이로 제한된다. 이후 metric은 EM(exact match), F1, Rouge-1이 사용된다.

4.3.2 Results

ERNIE

C3 task를 제외하고는 모든 부분에서 가장 좋은 성능을 보인다.

4.3.3 Case Study

QA, Interpretation, Dialogue, Text Generation, Summarization 5종류의 13개 task에서 450개의 case를 모아 zero-shot 생성능력을 평가하였다. coherence, fluency, accuracy는 표 6에서 확인할 수 있고, 일부 예시는 아래 표 7에서 볼 수 있다. (중국어이다..) 세부는 표 8에서 볼 수 있다.

ERNIE
ERNIE
ERNIE

4.4 Experiments on SuperGLUE

ERNIE

절반 정도에 해당하는 task에서 GLUE benchmark 1위 자리에 올랐다고 한다.


5. 분석(Analysis)

The Effectiveness of the Task-specific Representation Modules

다양한 사전학습 task 하에서 parameter를 공유하는 모델(원래는 공유하지 않는 모델)과 비교하였다. 통합 모델은 12 layers, 768 dims, 12 attention heads를 갖지만 원래 모델은 각 task당 3 layers, 256 dims, 4 attention heads를 갖는다. 이 두 모델을 갖고 사전학습 단계에서 NLG task의 perplexity를 비교한 결과가 아래 그림과 같다.

ERNIE

학습이 진행됨에 따라 task-specific module을 갖고 있는 것이 통합 모듈을 갖는 것보다 PPL이 점점 더 낮아지는 것을 볼 수 있다.

Universal Knowledge-Text Prediction

관계추출 task는 전형적인 지식 기반 task로 주어진 문장에서 언급된 2개의 entity 간의 관계를 예측하는 것이다. 구체적으로, 4개의 특수 token [HD], [\HD], [TL], [\TL]을 추가하여 head/tail entity를 구별할 수 있게 하고, 관계 분류기는 전술한 4개의 특수 token의 최종 표현의 합으로 수행된다. SanWen과 FinRE에서 측정한 결과 지식 강화전략은 관계추출에서 좋은 성능 향상을 보여준다.

ERNIE

추가로, CKBQA에서 수행한 zero-shot 생성 실험도 UKTP task의 효과를 보여준다. KBQA task는 모델이 지식 그래프에 기반해서 정답과 그 이유를 들도록 요구하는 task로 지식학습 능력을 평가하는 데 적합하다. zero-shot 세팅으로 "QUESTION: $QUESTION? ANSWER:" 형식을 사용, CKBQA데이터셋에서 SOTA 모델과 ERNIE 3.0을 비교하였다. 표 5에서 보듯이 ERNIE 3.0은 타 모델을 능가한다.

Progressive Learning to Speed up Convergence

학습 수렴속도를 보기 위해 ERNIE-Base, ERNIE-1.5B와 비교한다. ERNIE-1.5B는 48 layers, 1536 dims, 24 attention heads를 갖는다. 학습 시간은 ERNIE 3.0의 loss 값과 동일해질 때까지의 시간으로 측정하였다. 표 11에서 보듯이 ERNIE-Base는 65.21%의 감소를, ERNIE-1.5B는 48.2%만큼 감소하있다. 2개의 세팅에서 모두 8개의 NVIDIA Tesla V100 GPU를 사용하였다.

  • ERNIE-Base의 경우, batch size를 8에서 2048로 늘리고 sequence 길이는 128에서 512로 증가사킸고, learning rate는 0에서 1e-4로 선형 증가, dropout은 warmup stage 동안 0으로 고정하였다. ERNIE 1.5
  • ERNIE-1.5B의 경우, batch size를 8에서 8192로 늘리고 learning rate는 0에서 6e-4로 선형 증가, dropout은 warmup stage 동안 0으로 고정하였다.

나머지 세팅은 ERNIE-Base와 같다.

ERNIE

6. 결론(Conclusion)

4TB의 대규모 말뭉치, 10B개의 parameter를 갖는 사전학습 framework ERNIE 3.0을 제안하였다. ERNIE 3.0은 auto-encoder, auto-regressive 네트워크를 통합한 사전학습 framework로 자연어이해, 생성, zero-shot 학습에서 모두 좋은 성능을 보였다.


참고문헌(References)

논문 참조!


Comment  Read more

ERNIE 논문 설명(ERNIE-Doc - A Retrospective Long-Document Modeling Transformer)

|

이 글에서는 Baidu에서 만든 모델 시리즈 ERNIE 중 네 번째(ERNIE-Doc: A Retrospective Long-Document Modeling Transformer)를 살펴보고자 한다.

ERNIE 시리즈는 다음과 같다. 참고로 2번째는 Baidu가 아닌 Tshinghus University에서 발표한 논문이다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


ERNIE-Doc: A Retrospective Long-Document Modeling Transformer

논문 링크: ERNIE-Doc: A Retrospective Long-Document Modeling Transformer

초록(Abstract)

Transformers는 계산량이 sequence의 제곱에 비례해서 길이가 긴 문서를 다루는 데는 적합하지 않다. 단순히 넘치는 부분을 자르는 것은 의미를 훼손할 수 있다.
본 논문에서는 문서 서준 언어 사전학습 모델인 ERNIE-DOC을 제안한다. Retrospective feed mechanism과 enhanced recurrence mechanism을 사용하여 더 긴 길이에 효과적이고 전체 문서의 문맥적 의미를 효율적으로 잡아낼 수 있다. ERNIE-DOC이 문서수준 segment reordering 목적함수를 최적화하여 segment 간 관계를 학습할 수 있게 하여 결과적으로 좋은 성과를 얻었다.

ERNIE

1. 서론(Introduction)

Transformer는 자기지도 방식을 통해 NLP의 광범위한 분야에서 좋은 성과를 얻었다. 그러나 길이의 제곱에 비례하는 계산량은 상당한 부담이 되었다.

BERT는 길이 512를 최대로 하여 진행하였고 널리 쓰였으나 이 또한 context fragmentation 문제가 발생하는 등 한계가 명확했다. 이를 해결하기 위해 이전 segment의 정보를 다음 segment를 처리하는 데 활용하는 방법을 사용하는 Recurrence Transformers 등이 제안되었다.

그러나 여전힌 문서 전체의 문맥 정보를 다 잡아내지 못하였다. 그래서 Recurrence Transformer에 기반한 ERNIE-DOC(A Retrospective Long-Document Modeling Transformer)을 제안한다.

  • ERNIE-DOC에서, 각 wegment를 입력으로 두 번 주는 retrospective feed mechanism을 고안, retrospective phase 내의 각 segment는 명시적으로 전체 문서의 정보를 융할할 수 있게 되었다.
  • 그러나 이것만으로는 부족한데, 최대 문맥 길이가 layer의 수에

ELMo

OpenAI GPT

BERT

ERNIE 1.0

Transformer


2. 관련 연구(Related Work)


3. doc

ERNIE

4. 실험(Experiments)


5. 분석(Analysis)

###


6. 결론(Conclusion)

4TB의 대규모 말뭉치, 10B개의 parameter를 갖는 사전학습 framework ERNIE 3.0을 제안하였다. ERNIE 3.0은 auto-encoder, auto-regressive 네트워크를 통합한 사전학습 framework로 자연어이해, 생성, zero-shot 학습에서 모두 좋은 성능을 보였다.


참고문헌(References)

논문 참조!


Comment  Read more

ERNIE 논문 설명(ERNIE-ViL- Knowledge Enhanced Vision-Language Representations Through Scene Graph)

|

이 글에서는 Baidu에서 만든 모델 시리즈 ERNIE 중 세 번째(ERNIE-ViL: Knowledge Enhanced Vision-Language Representations Through Scene Graph)를 살펴보고자 한다.

ERNIE 시리즈는 다음과 같다. 참고로 2번째는 Baidu가 아닌 Tshinghus University에서 발표한 논문이다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


ERNIE-ViL: Knowledge Enhanced Vision-Language Representations Through Scene Graph

논문 링크: ERNIE-ViL: Knowledge Enhanced Vision-Language Representations Through Scene Graph

Official Code: Github

초록(Abstract)

본 논문에서는 지식 강화된 접근법, ERNIE-ViL을 제안하며 이는 시각 및 언어의 결합표현(joint representation)을 학습하기 위해 scene graph로부터 얻은 구조화된 지식을 포함한다. ERNIE-ViL은 시각-언어 cross-model task에서 필수적인 상세한 의미적 연결(물체, 물체의 특성, 물체 간 관계)를 만드는 것을 목표로 한다. 시각적 장면에서 scene graph를 사용하며 ERNIE-ViL은 물체예측(Object Prediction), 특성예측(Attribute Prediction), 관계예측(Relation Prediction) 등의 Scene Graph Prediction task를 구성한다. 구체저으로, 이 예측 task들은 문장에서 분석된 scene graph에서 서로 다른 종류의 node를 예측하는 것으로 구성된다. 따라서, ERNIE-ViL은 시각 정보와 언어를 망라하는 상세한 의미적 정보의 alignments을 특징짓는 결합표현을 학습할 수 있게 된다. 대규모의 이미지-텍스트 데이터셋에서 사전학습한 후 ERNIE-ViL의 유효함을 5개의 cross-modal downstream task에서 검증한다. ERNIE-ViL은 이들 모두에서 SOTA 성능을 보였으며 VCR에서는 절대수치로 3.7%의 성능 개선을 보이며 1등 자리에 올랐다.

ERNIE

1. 서론(Introduction)

BERT, GPT와 같은 사전학습 모델들은 많은 자연어처리 문제에서 성능을 크게 향상시켰으며 VQA, VCR과 같은 시각-언어 task를 위한 사전학습의 중요성이 알려졌다.

현존하는 시각-언어 사전학습 방법은 임의로 subword를 masking하는 Masked Language Modelling, 이미지- 텍스트 수준에서 수행하는 Masked Region Prediction, Image-Text Matching을 포함한 대규모 이미지-텍스트 데이터셋에서 visual grounding task를 수행함으로써 결합표현을 학습하고자 하였다. 그러나, subword를 임의 masking하고 이를 예측하는 방식으로는 모델이 일반적 단어와 상세 의미를 묘사하는 단어를 구별하지 못한다. 예: 물체(“man”, “boat”), 물체의 특성(“boat is white”), 물체 간 관계(“man standing on boat”).
이러한 방법은 지식과 언어 간 세부적인 semantice alignments를 구성하는 중요성을 무시하여, 학습 모델은 몇몇 실제 장면에서 요구되는 세밀한(fine-grained) 의미정보를 잘 표현하지 못한다. 아래 그림 1에서와 같이, 세부 의미는 물체/특성/관계와는 다른 여러 장면들을 구별하는데 필수적이다. 따라서, 더 나은 시각정보-언어 결합표현은 modality를 넘는 세부적인 semantic alignments을 특징지을 수 있어야 한다.

ERNIE의 masking 전략에 힘입어 각 subword보다는 phrase와 명명 객체를 masking하는 방법으로 더 구조화된 지식을 학습하는 것으로 ERNIE-ViL을 제안한다. 이는 시각-언어 결합표현을 구성하기 위해 scene graph에서 얻은 지식을 통합한다. Scene Graph Prediction(SGP) task를 구성함으로써 시각-언어 정보의 상세한 semantic alignments에 더 많은 역점을 둔다. Scene graph 상의 여러 종류의 node를 masking하고 이를 다시 예측하는 사전학습 task를 구현하였다. 그리고 일반단어보다 더 세부적인 의미를 담고 있는 단어를 이해하는 데 집중함으로써 이러한 SGP task는 모델이 시각 정보에서 물체/특성/관계 정보를 추출하도록 강제하고 따라서 시각-언어 사이의 의미적 연결을 수립할 수 있다. SGP 사전학습 task를 통해 ERNIE-ViL은 시각-언어 간 세부적인 semantic alignments 정보를 학습한다.

ERNIE-ViL은 2개의 일반적으로 사용되는 대규모 이미지-텍스트 out-of-domain 데이터셋을 사용하였다(Conceptual Captions, SBU Captions). 성능 측정을 위해서는 VQA 2.0, VCR, RefCOCO+(Region-to-Phrase Grounding), Image-text Retrival, Text-image Retrival(Flickr30K)를 사용하였다. 위의 모든 task에 대해서 ERNIE-ViL은 이전의 모델보다 더욱 좋은 성능을 보여주었다. 특히 세부 semantic alignments에 크게 의존하는 Region-to-Phrase Grounding task에서는 2.4%의 개선을 보여준다.
Out-domain과 in-domain 비교를 위해 ERNIE-ViL은 MS-COCO와 Visual Genome에서 사전학습을 하여 VCR의 Q$\rightarrow$AR task에서 3.7%의 개선을 보였다.

이 논문의 기여한 바는:

  1. ERNIE-ViL은 시각-언어 사전학습을 향상시키는 구조화된 지식을 소개한 첫 번째 연구이다.
  2. ERNIE-ViL은 시각-언어 결합표현의 사전학습을 위한, cross-modal 세부적 semantics alignments에 특히 집중하는 Scene Graph Prediction task를 구성하였다.
  3. 5개의 downstream cross-modal task에서 SOTA 결과를, VCR에서 1등의 자리에 올랐다.

2. 관련 연구(Related Work)

Cross-modal Pre-training

BERT와 같은 시각-언어 문제를 위한 cross-modal 사전학습 모델이 많이 제안되었다. 이들 연구자들은 모델구조, 사전학습 task, 사전학습 데이터라는 3가지 관점에서 노력하였다.

Model Architecture: 현재 연구들은 Transformer 및 그 변형으로 구성된다. 대부분 한 종류의 cross-modal Transformer를 사용하지만 ViLBERT나 LXMERT는 이미지와 텍스트에 더 특화된 표현을 얻을 수 있는 2종류의 cross-modal Transformer를 사용하였다.

Pre-training Tasks: Masked Language Model과, 비슷한 Masked Region Prediction task가 cross-modal 사전학습에서 많이 사용되어 왔다. Next Sentence Prediction과 비슷하게 Image-Text Matching task가 널리 사용되었다. 그러나 subwords를 임의 masking 및 예측하는 방법은 일반단어와 세부 의미를 구별하지 못하며 결합표현을 제대로 특징짓기 어렵다.

Pre-training Data: 자연어의 방대한 것과 다르게 시각-언어 task는 고품질의 대규모 데이터셋을 구하기 어렵다. Conceptual CaptionsSBU Captions는 이미지-텍스트 사전학습에서 널리 사용되는 데이터셋으로 각각 3.0M / 1.0M개의 이미지-설명 쌍을 포함한다. 이들 2개의 데이터셋은 시각-언어 downstream task의 전문 분야는 아니다. 현존하는 연구들은 MS-COCO와 Visual-Genome과 같은 downstream task와 연관이 깊은 데이터셋을 사용하는 것과는 대조적이다.

Scene Graph

Scene Graph는 존재하는 물체들, 물체의 특성, 물체 간 관계를 포함하는 시각 장면의 구조화된 지식을 포함한다. 이미지와 caption의 세부지식을 묘사하는 사전지식에 힘입어, scene graph는 image captioning, image retrival, VQA, image generation 등에서 SOTA 모델을 만드는 데 큰 도움을 주었다.


3. 접근법(Approach)

이 섹션에서, ERNIE-ViL의 구조를 소개하고, Scene Graph Prediction task를 설명한다. 마지막으로 SGP task로 ERNIE-ViL을 사전학습하는 방법을 기술한다.
이 framework의 효율성을 검증하기 위해 3가지의 비지도 언어처리 task를 구성하고 사전학습 모델 ERNIE 2.0을 개발하였다. 이 섹션에서 모델의 구현 방법을 설명한다.

Model Architecture

시각-언어 모델은 2개의 modality와 두 modality 간 alignment의 정보를 통합한 결합표현을 학습하는 것을 목표로 한다. ERNIE-ViL의 입력은 문장과 이미지이다. 단어의 sequence와 이미지가 주어지면 feature space로 embedding시키고 시각-언어 encoder에 주는 방법을 소개한다.

Sentence Embedding

BERT와 유사한 단어 전처리 작업을 적용한다. 입력 sequence는 WordPiece에 의해 sub-word token으로 변환되고 특수 token이 추가된다. 최종 embedding은 원래의 word/segment/position embedding의 결합으로 이루어진다.

[\lbrace [CLS], w_1, …, w_T, [SEP] \rbrace]

Image Embedding

중요한 이미지 영역을 탐지하기 위해 물체 탐지 모델을 사용한다. multi-class 분류 layer 전 pooling feature가 region feature로 사용된다. 위치 feature는 위치와 이미지 영역의 비율로 구성되는 5차원 벡터로 표현된다. 이미지 크기를 $W, H$와 좌상단 좌표 $x_1, y_1$, 우하단 좌표 $x_2, y_2$에 대해 벡터는 다음과 같다.

[\Bigl( \frac{x_1}{W}, \frac{y_1}{H}, \frac{x_2}{W}, \frac{y_2}{H}, \frac{(y_2-y_1)(x_2-x_1)}{WH} \Bigl)]

이미지 벡터는 위치 feature를 위해 사용된 후 region visual feature와 합해진다. 특수 토큰 [IMG]를 추가하여 이미지 표현임을 나타내어 최종 region sequence는 다음과 같이 된다.

[\lbrace [IMG], v_1, …, v_I \rbrace]

Vision-Language Encoder

이미지 영역과 단어의 embedding이 주어지면 modal 간 모델 및 modal 내 모델 표현을 결합한 two-stream cross-modal Transformer에 넣는다. VilBERT와 비슷하게 ERNIE-ViL은 이미지/텍스트를 위한 2개의 평행한 Transformer encoder로 구성된다. 이미지와 텍스트 표현 전체는 각각 다음으로 표시된다.

[h_{[IMG]}, h_{[CLS]}]

Scene Graph Prediction

물체, 물체의 특성, 물체 간 관계를 포함하는 세부 semantics은 시각적 장면을 이해하는데 필수적이다.

ERNIE

그림 2와 같이, 세부 semantic은 여러 방면에서 시각 장면을 묘사한다. "cat", "car", "woman"과 같은 물체(object)는 장면에서 핵심 요소이다. 이와 연관된 "little", "brown", "blue"와 같은 특성(attributes)은 물체의 모양과 색깔을 특징짓는다. "on top of", "putting"과 같은 관계는 물체 사이의 공간적인 연결과 action을 표현한다. 따라서 세부적인 semantic은 시각 장면을 정확히 이해하는 데 필수적이다. 시각-언어 결합표현의 목적은 modality 간 의미적 연결을 새기는(engrave, 혹은 학습하는) 것으로 세부적 semantic alignments는 cross-modal 학습에서 매우 중요하다.

Scene graph는 다양한 세밀한 의미적 정보를 표현한다. Scene graph로부터 얻은 지식을 바탕으로 ERNIE-ViL은 cross-modal detailed semantic alignments를 학습한다. 위 그림에서와 같이 텍스트로부터 분석된 scene graph에 따라 물체/특성/관계예측 task를 포함하는 Scene Graph Prediction task를 구성한다. 이들 task는 모델이 modality 간 세부적 semantic을 학습하도록 강제한다.

예를 들어 on top of가 masking되었다고 하면, 문맥에 기반하여 모델은 가려진 단어가 under 혹은 into 정도일 것으로 예측할 것이다. 이는 구문으로는 맞지만 the cat in in top of the car이라는 이미지의 내용과 맞지 않다. 관계예측 task로 학습함으로써 모델은 물체 간 공간적 관계를 이미지로부터 학습하고 빠진 단어 on top of를 바르게 예측할 수 있다. SGP task를 구성함으로써 ERNIE-ViL은 cross-modal detailed semantic alignments를 학습하게 된다.

Scene graph parsing

텍스트 sequence $\mathbf{w}$가 주어지면 scene graph로 parse한다. Scene Graph는

[G(\mathbf{w}) = < O(\mathbf{w}), E(\mathbf{w}), K(\mathbf{w}) >]

이다.

  • $O(\mathbf{w})$는 $\mathbf{w}$에서 언급된 물체
  • $R(\mathbf{w})$는 관계
  • $E(\mathbf{w}) \subseteq O(\mathbf{w}) \times R(\mathbf{w}) \times O(\mathbf{w}) $는 물체 간 관계를 나타내는 hyper-edge
  • $K(\mathbf{w}) \subseteq O(\mathbf{w}) \times A(\mathbf{w})$는 특성 쌍
  • $A(\mathbf{w})$는 물체 node와 연관된 특성 node의 집합이다.

Scene graph는 물체의 여러 특성과 관계를 포함하여 물체를 상세히 묘사한다. scene graph의 지식을 통합하는 것은 더욱 세밀한 시각-언어 결합표현을 학습하는 데 도움이 된다. 이 논문에서, Anderson의 Scene Graph parser를 사용하여 scene graph를 생성하였다. 아래 표에서 생성된 scene graph의 일부 예시를 확인할 수 있다.

ERNIE

Object Prediction

물체는 시각 장면의 지배적 존재로 의미정보 표현을 구성하는 데 중요한 역할을 차지한다. 물체를 예측하는 것은 모델이 물체 수준 시각-언어 연결을 구축하는 것을 강제한다.

먼저 scene graph의 모든 물체 node에 대해 30%를 임의로 masking한다. 선택된 각 물체 node $O(\mathbf{w})$에 대해 80%를 [MASK]로 대체하고 10%는 임의의 다른 token으로, 나머지 10%는 그대로 둔다. 물체는 사실 문장의 sub-sequence와 연관되어 있으므로 물체를 masking하는 것은 텍스트에서 sub-sequence를 masking하는 것으로 구현된다.

물체 예측을 위해 ERNIE-ViL은 주변단어 $\mathbf{w}$와 모든 이미지 영역 $\mathbf{v}$에 기반하여 masking된 물체 token $w_{o_i}$를 복구한다. 다음 log-likelihood를 최소화한다.

[\mathcal{L}{obj}(\theta) = -E{(\textbf{w, v}) \sim D} \log(P(\textbf{w}{o_i} \vert \textbf{w}{\backslash \textbf{w}_{o_i}}))]

Attribute Prediction

물체의 특성은 물체를 표현하는 데 있어서 중요한 역할을 한다.
비슷하게, 30%의 특성 쌍을 임의로 택하여 Object Prediction과 같은 masking 전략을 취한다. 특성은 어느 물체에 속하기 때문에 $K(\mathbf{w}) \subseteq O(\mathbf{w}) \times A(\mathbf{w})$에서 선택된 $A(\mathbf{w})$를 masking하는 동안 물체 $O(\mathbf{w})$는 그대로 둔다.

특성예측 task는 특성 쌍 $<w_{o_i}, w_{a_i}>$에서 물체에 해당하는 단어 $w_{o_i}$가 주어지면 $w_{a_i}$를 복구해야 한다. 물체예측과 비슷하게, 다음 로그 우도를 최소화한다.

[\mathcal{L}{attr}(\theta) = -E{(\textbf{w, v}) \sim D} \log(P(\textbf{w}{a_i} \vert \textbf{w}{o_i}, \textbf{w}{\backslash \textbf{w}{a_i}}, \textbf{v}))]

Relationship Prediction

관계예측 task는 $E(\mathbf{w}) \subseteq O(\mathbf{w}) \times R(\mathbf{w}) \times O(\mathbf{w}) $를 선택하여 물체는 그대로 두고 관계 $ R(\mathbf{w})$만 masking한다. 즉 $<w_{o_{i1}}, w_{r_i}, w_{o_{i2}}>$에서 물체 $w_{o_{i1}}, w_{o_{i2}}$가 주어지면 관계 $w_{r_{i}}$를 복구해야 한다. 손실함수는 다음과 같다.

[\mathcal{L}{rel}(\theta) = -E{(\textbf{w, v}) \sim D} \log(P(\textbf{w}{r_i} \vert \textbf{w}{o_{i1}}, \textbf{w}{o{i2}}, \textbf{w}{\backslash \textbf{w}{r_i}}, \textbf{v}))]

Pre-training with Scene Graph Prediction

VilBERT와 비슷하게, ERNIE-ViL은 텍스트의 구문, 어휘적 정보를 얻기 위해 Masked Language Modelling(MLM) task를 적용한다. 또한, 시각 modality와 cross-modality를 위해 Masked Region Prediction과 Image-text Matching을 각각 사용한다. 모든 사전학습 task의 손실함수는 합산한다.


4. Experiments

Training ERNIE-ViL

Pre-training Data

Conceptual Captions와 SBU Captions 데이터셋을 사전학습 데이터로 사용했다. CC는 3.3M개의 이미지-캡션 쌍을 포함하며 SBU는 1.0M쌍을 포함한다. 깨진 링크 일부를 제외하고 각각 3.0M, 0.8M쌍의 데이터를 사용하였고 추후의 downstream task와는 별 연관이 없는 데이터로 out-of-domain 데이터셋 역할을 한다.

Implementation Details

각 이미지-텍스트 쌍에 대해 다음 전처리를 한다.

  • 이미지에 대해서는 Faster R-CNN을 사용하여 중요 부분을 찾고 region feature를 추출한다.
    • 0.2 이상의 점수를 갖는 영역만을 취하고 10~36개의 영역을 택한다.
    • 각 영역에 대해 mean-pooled convolutional 표현이 사용된다.
  • 텍스트는 BERT와 비슷하게 Scene Graph Parser를 통해 scene graph를 생성하고 WordPieces를 사용하여 tokenize한다.
  • Masking 전략은 다음과 같다.
    • token의 15%, scene graph node의 30%, 이미지 영역의 15%만큼 임의로 masking한다.
    • Image-text Matching task에 대해서는 부정 이미지-텍스트 쌍을 만들기 위해 임의의 이미지와 텍스트를 택한다. Token과 region 예측 task에 대해서는 긍정 쌍만 고려됨을 참고하라.

모델의 깊이(및 규모)가 다른 2개의 모델 ERNIE-ViL-base와 ERNIE-ViL-large를 학습시킨다.

ERNIE

ViLBERT와 비슷하게 cross-transformers가 사용된다. Baidu에서 만든 플랫폼인 PaddlePaddle를 통해 구현하였으며 8개의 V100 GPU를 사용, batch size 512로 700K step만큼 학습시켰다. Adam optimizer, learning rate는 1e-4이며 Noam decay를 사용했다.


Downstream Tasks

Visual Commonsense Reasoning (VCR)

2개의 다지선다형 문제, Visual Question Answering($Q \rightarrow A$)와 Anser Justification($QA \rightarrow R$)의 sub-task로 구성되어 있다. 전체 세팅($QA \rightarrow R$)는 문제에 대한 답뿐만 아니라 그 이유까지 맞춰야 한다. VQA($Q \rightarrow A$)에서는 언어 modality에서 질문과 각 선택지를 이어 붙인다. 최종 은닉상태 $h_{[CLS]}, h_{[IMG]}$에 내적을 취하여 FC layer를 통해 matching score를 예측한다.
답변 타당성 문제($QA \rightarrow R$)에서는 질문, 각 이유 선택지를 이어 붙인다. UNITER와 비슷하게 2번째 사전학습이 VCR 데이터셋에서 행해진다. 6 epoch, batch size 64, learning rate 1e-4, Adam optimizer를 사용했다.

Visual Question Answering (VQA)

204k개의 이미지와 1.1M개의 질문을 포함하는 VQA 2.0 데이터셋을 사용한다. UNITER와 같이 데이터 증강을 위해 Visual Genome에서 얻은 질답 쌍을 추가로 사용했다. 본 논문에서는 VQA를 multi-label 분류문제로 생각(10개의 사람의 답변 반응에 대한 연관도에 기반한 답변의 soft target score를 부여)하였다.
$h_{[CLS]}, h_{[IMG]}$을 내적하고 2-layer MLP를 추가하여 3129개의 가능한 답변에 매칭을 시킨다. 12 epoch, batch size 256, learning rate 1e-4, Adam optimizer를 사용했다.

Grounding Referring Expressions

자연어 reference가 주어질 때 (원하는) 이미지 영역을 특정하는 task로 RefCOCO+ 데이터셋을 사용했다. 각 이미지 영역의 표현 $h_{v_i}$와 FC layer에 의해 표현된다. 각 영역 $i$는 GT bounding box와 IoU가 0.5 이상일 때에만 label이 부여된다. 20 epoch, batch size 256, learning rate 1e-4, Adam optimizer를 사용했다.

Image Retrieval & Text Retrieval

내용을 묘사하는 caption에 기반한 pool로부터 이미지를 식별하는 task이다. Flickr30K는 31K개의 이미지와 각 이미지당 5개의 caption을 포함한다. VilBERT와 같은 분할을 적용하여 1K개의 validation/test set을 만든다. 역시 최종 은닉상태를 내적하고 FC layer를 사용하여 matching score $s(\textbf{w}, \textbf{v})$를 예측한다.
각 이미지-텍스트 쌍에 대해 20개의 부정 쌍을 사용하여 circle loss를 사용하였고, 40 epoch, learning rate 1e-4, Adam optimizer를 사용했다.


Results

ERNIE

같은 out-of-domain 데이터셋으로 사전학습한 경우 중 ERNIE-ViL이 5개의 모든 downstream task에서 가장 좋은 성능을 보였다. 시각추론 문제에서 ERNIE-ViL-large는 VLBERT-large에 비해 VCR($Q \rightarrow AR$)에서 6.6%, VQA에서 1.74%의 향상을 이루었다. Visual Grounding task에서는 testA/B에서 2.4%, Cross-modal Retrieval task에서는 ERNIE-ViL-base가 R@1 이미지에서 2.94%, R@1 텍스트에서 0.5%만큼의 성능 향상이 있었다.

Out-of-domain과 in-domain에서 사전학습한 모델들의 비교를 표 3의 아래에서 볼 수 있는데, UNITER, OSCAR, VILLA보다 더 좋은 결과를 얻었다.


Analysis

Effectiveness of Scene Graph Prediction tasks

SGP task의 효과를 알아보기 위해 우선 BERT로 초기화한 ERNIE-ViL-base를 사용한다.

ERNIE

SGP가 있을 때가 더 좋은 성능을 보임을 알 수 있다.

Cloze Test

SGP task의 향상을 더 이해하기 위해 cloze test를 수행한다. 텍스트에서 물체, 특성, 관계 등 세부 semantic이 masking된 상태에서 모델은 텍스트와 이미지 모두의 문맥에서 그것들을 추론해야 한다. Flickr30K에서 15K개의 이미지-텍스트 쌍, 5K개의 물체를 선택하여 top-1, top-5 정확도를 평가 지표로 사용했다. SGP가 있을 때와 없을 때의 차이를 아래에서 볼 수 있다.

ERNIE

결과 예시를 아래에서 볼 수 있다.

ERNIE

SGP task 없이 학습한 모델은 세부 semantic alignments를 정확히 학습하지 못했기 때문에(일반단어와 세부 의미를 포함하는 단어를 구분하지 못하므로) 맞는 추론을 하기가 어렵다. 경우 3에서, 모델은 합리적인 token을 추론하긴 했으나 확신하는 정도가 SGP가 있을 때에 비해 더 낮다.


5. 결론(Conclusion)

시각-언어 결합표현을 학습하는 ERNIE-ViL을 제안하였다. Cross-modal 사전학습을 위한 전통적인 MLM task에 더하여 Scene Graph Prediction task를 새로 구성하여 cross-modal detailed semantic alignments를 특징화할 수 있다. 실험 결과로 SGP task로 인해 구조화된 지식을 통합하여 향상함으로써 다양한 downstream task에서 좋은 결과를 보였다.
추후 연구로 이미지에서 추출한 scene graph도 cross-modal 사전학습에 통합할 수 있을 것이다. 또 Graph Neural Networks는 더욱 구조화된 지식을 통합하는 데 고려할 수도 있다.


참고문헌(References)

논문 참조!


Comment  Read more

ERNIE 논문 설명(ERNIE 2.0 - A Continual Pre-Training Framework for Language Understanding)

|

이 글에서는 Baidu에서 만든 모델 시리즈 ERNIE 중 두 번째(ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding)를 살펴보고자 한다.

ERNIE 시리즈는 다음과 같다. 참고로 2번째는 Baidu가 아닌 Tshinghus University에서 발표한 논문이다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding

논문 링크: ERNIE 2.0: A Continual Pre-training Framework for Language Understanding

Official Code: Github

초록(Abstract)

최근 사전학습 모델들이 다양한 언어이해 문제에서 SOTA 결과를 달성해 왔다. 현재 사전학습 과정은 보통 모델을 여러 개의 단순한 task에서 학습시켜 단어나 문장의 동시 등장(co-occurrence)을 학습하는 것에 주안점을 둔다. 그러나, 이러한 동시등장성 외에도 다른 귀중한 정보인 named entity, 의미적 유사성, 담화 관계 등 어휘적, 구문, 의미적 정보가 학습 말뭉치에 존재한다. 이러한 정보를 추출하고 학습하기 위해서 사전학습 task를 점진적으로 증가시키고 연속적 multi-task 학습을 통해 이들 task에서 모델을 사전학습시키는 연속적 사전학습 framework인 ERNIE 2.0을 본 눈문에서 제안한다. 이 framework에 기반하여, 여러 task를 만들고 ERNIE 2.0을 학습시켜 영어(GLUE) 및 중국어 문제 총 16개의 task에서 BERT와 XLNet을 능가함을 보였다.

ERNIE

1. 서론(Introduction)

ELMo, OpenAI GPT, BERT, ERNIE 1.0, XLNet 등의 사전학습 언어표현은 감정분류, 자연어추론, 명명 객체 인식 등 다양한 자연어이해 문제에서 성능을 향상시킬 수 있다는 것이 입증되었다.

일반적으로 모델의 사전학습은 단어와 문장의 co-occurrence에 기반하여 모델을 학습시킨다. 그러나, 문장에는 사실 어휘적, 구문, 문맥적 정보가 존재하며 때로 이 정보가 더 중요할 수도 있다. 예를 들어 사람/지명 이름 등은 개념적 정보를 담고 있을 수 있다. 문장 순서나 문장의 유사성 등은 모델이 구조정보가 포함된 표현을 학습하는 것을 가능하게 한다. 그리고 문서 수준 의미적 유사성 혹은 문장 간 담화 관계는 모델이 의미정보가 포함된 표현을 학습할 수 있게 한다. 학습 말뭉치로부터 이러한 귀중한 정보를 활용하기 위해 연속적 사전학습 framework인 ERNIE 2.0을 제안한다.

ERNIE framework는 continual multk-task 학습 방식을 통해 다양한 customized task를 연속적으로 사용할 수 있다. 하나 혹은 여러 개의 새로운 task가 주어지면, 연속적 multi-task 학습 방식은 기존 지식을 잊어버리지 않으면서도 새로 소개된 task를 기존 task와 동시에 학습시킨다. 이러한 방식으로, ERNIE framework는 분산표현을 계속하여 학습할 수 있으며 모든 task는 같은 encoding network를 공유하여 이 인코딩의 어휘적, 구문, 의미적 정보가 여러 task 사이에서 공유되는 것을 가능하게 한다.

요약하면, 이 논문이 기여한 바는:

  1. customized 학습 task와 연속적 multi-task 학습 방식을 효과적으로 지원하는 ERNIE 2.0 framework를 제안하였다.
  2. 3가지의 비지도학습 task를 만들어 제안된 framework의 효율성을 확인하였다. 실험 결과는 ERNIE 2.0이 영어(GLUE)와 여러 중국어 task에서 BERT와 XLNet을 능가함을 보여주었다.
  3. ERNIE 2.0의 미세조정 코드와 모델을 Github에서 볼 수 있다.

2. 관련 연구(Related Work)

Unsupervised Learning for Language Representation

Annotation이 없는 많은 양의 데이터로 언어모델을 사전학습시켜 일반적인 언어표현을 학습하는 것은 효과적이다. 전통적인 방법은 보통 문맥무관 단어 임베딩에 초점을 두었다. Word2Vec과 GloVe가 단어별로 고정된 임베딩을 학습하는 대표적인 방식이다.

최근, 문맥 의존 언어표현을 학습하는 방식이 많이 연구되었다.

  • ELMo는 언어모델에서 문맥민감(context-sensitive) 특징을 추출하는 방식을 제안하였고,
  • OpenAI GPT는 Transformer를 수정하여 문맥민감 임베딩을 발전시켰다.
  • BERT는 사전학습으로 다음 문장 예측 task를 추가하여 masked 언어모델을 만들었다.
  • XLM은 교차 언어(cross-lingual) 언어모델을 학습하기 위해 1) 단일 언어 데이터에 의존하는 비지도학습 2) 2개의 언어 데이터를 leverage하는 지도학습 두 가지 방식을 결합하였다.
  • MT-DNN은 여러 지도학습 방식을 사용하여 GLUE에서 좋은 결과를 냈으며,
  • XLNet은 Transformer-XL을 사용하여 우도를 최대화하는 양방향 문맥을 학습하는 일반화된 자동회귀 사전학습 방식을 제안하였다.

Continual Learning

연속적 학습(continual learning)은 모델이 여러 task를 차례로 학습하도록 하되 새로 학습하면서 이전 학습한 task를 잊어버리지 않도록 하는 것을 목표로 한다. 이러한 방법은 계속해서 학습하고 정보와 지식을 쌓아가는 사람의 학습 방식에서 영감을 받은 것으로, 이러한 연속적 학습을 통해 모델은 이전 학습에서 얻은 지식을 활용하여 새로운 task에서도 좋은 성능을 발휘할 것으로 기대된다.


3. The ERNIE 2.0 Framework

ERNIE

위 그림 1에서 보듯이 ERNIE 2.0은 널리 쓰이는 사전학습-미세조정 구조에 기초한다. 다른 점은 사전학습 단계에서 적은 수의 목적함수 대신 더 광범위한 사전학습 task를 사용하여 모델이 효율적으로 어휘적, 문맥적, 의미적 표현을 학습할 수 있도록 한 것이다. 이에 기초하여 ERNIE 2.0은 연속적 multi-task 학습을 통해 사전학습 모델을 업데이트할 수 있게 한다. 미세조정 단계에서 ERNIE는 먼저 사전학습 parameter를 사용하여 초기화한 다음 특정 task에 대해 미세조정하게 된다.

Continual Pre-training

연속적 사전학습은 두 단계로 이루어진다.

  1. 많은 데이터와 사전지식이 포함되도록 비지도 사전학습 task를 구성한다.
  2. ERNIE를 연속적 multi-task 학습을 통해 점진적으로 학습시킨다.

Fine-tuning for Application Tasks

각 단계에서 다른 종류의 task(word/structure/semantic - aware task)를 구성한다. 모든 사전학습 task는 자기지도 또는 약한 지도 signal에 의존하여 annotation 없이 대규모 데이터로부터 얻을 수 있다. 명명 객체나 구, 담화 관계와 같은 사전 지식은 대규모 데이터로부터 label을 생성하는 데 쓰인다.

Continual Multi-task Learning

ERNIE 2.0은 여러 개의 다른 task로부터 어휘적, 문맥적, 의미적 정보를 학습하는 것을 목표로 한다. 따라서 극복해야 할 두 가지 문제가 있다.

  1. 이전에 학습한 지식을 잊어버리지 않으면서 학습을 연속적으로 할 수 있을지
  2. 어떻게 효율적으로 사전학습할 것인지

이를 해결하기 위해 연속적 multi-task 학습 방법을 제안한다. 새로운 task를 만나면, 연속적 multi-task 학습 방법은 먼저 이전 학습된 parameter를 사용하고, 원래 학습하던 task와 새로운 task를 동시에 사용하여 학습한다. 이는 학습된 parameter가 이미 학습된 지식을 encode하도록 할 수 있다. 남은 문제는 효율적으로 학습할 방법인데, 이는 각 학습 task마다 $N$번의 반복학습을 배정함으로써 해결했다. 이러한 $N$번의 반복을 task에 자동으로 배정할 것을 필요로 하는데 이러한 방법을 통해 모델이 이전 지식을 잊어버리지 않도록 할 수 있다.

ERNIE

위 그림은 ERNIE와 기존의 multi-task 학습 및 연속학습 모델과의 차이를 보여준다. Scratch로부터 학습하는 Multi-task 학습은 같은 시간에 여러 개의 task를 학습할 수 있으나 모두 customized된 사전학습 task가 준비되어야 한다. 따라서 이 방법은 연속학습 이상의 학습 시간을 필요로 한다. 전통적인 연속학습 방법은 모델이 각 단계에서 오직 하나의 task만을 학습하는 문제가 있고 또한 그 구조상 이전 학습에서 얻은 지식을 잊어버릴 수 있다.

ERNIE

위의 그림에서 연속적 multi-task 학습의 각 단계가 문맥 정보를 인코딩하는 여러 개의 공유된 text encoding layer를 포함하고 있고 이는 RNN 혹은 deep Transformer를 통해 customized될 수 있다. 인코더의 parameter는 모든 학습 task에서 업데이트될 수 있다.

이 framework에서는 BERT와 비슷하게 두 가지 손실함수가 존재한다.

  1. 문장 수준 loss
  2. token 수준 loss

각 사전학습 task는 고유한 손실함수를 갖는다. 사전학습하는 동안, 하나의 문장수준 손실함수는 모델을 연속적으로 업데이트하기 위해 여러 개의 token 수준 손실함수와 결합될 수 있다.

Fine-tuning for Application Tasks

Task-specific 지도 데이터에서 사전학습의 장점은, 사전학습 모델은 여러 언어의 이해 task(예. QA, 자연어추론, 의미적 유사성 task)에 적용될 수 있다는 것이다. 각각의 downstream task는 미세조정 이후 고유한 미세조정 모델을 갖는다.


4. ERNIE 2.0 Model

이 framework의 효율성을 검증하기 위해 3가지의 비지도 언어처리 task를 구성하고 사전학습 모델 ERNIE 2.0을 개발하였다. 이 섹션에서 모델의 구현 방법을 설명한다.

Model Structure

Transformer Encoder 이 모델은 GPTBERT, XLM과 비슷하게 multi-layer Transformer를 기본 인코더로 사용한다.
Transformer는 self-attention을 통해 sequence에서 각 token의 문맥 정보를 잡아낼 수 있으며 문맥 임베딩의 sequence를 생성할 수 있다. Sequence가 주어지면 [CLS]를 맨 앞에 추가하고 여러 개의 입력이 들어오는 경우 구분을 위해 그 사이에 [SEP] token을 추가한다.

Taxk Embedding 모델은 서로 다른 task의 특성을 표현하기 위해 task embedding을 입력받는다. Task들은 각각 $0 \sim N$의 번호를 부여받으며 고유한 embedding을 갖는다. 이에 대응되는 token, segment, position, task embedding은 모델의 입력으로 사용된다. 각 task id를 미세조정 단계에서 모델을 초기화하는 데 사용한다. 모델 구조는 아래와 같다.

ERNIE

Pre-training Tasks

3가지의 사전학습 task를 구성하여 학습 데이터로부터 서로 다른 정보를 가져올 수 있도록 했다. 단어수준 task는 모델이 어휘적 정보를, 문장수준 task에서는 말뭉치의 구문 정보를, 의미수준 task는 의미정보를 가져오는 것에 초점을 둔다.

Work-aware Pre-training Tasks

  1. Knowledge Masking Task: ERNIE 1.0에서는 지식통합을 통해 표현의 질을 높이는 효과적인 방법을 제시하였다. phrase 및 명명 객체 전체의 masking과 masking된 전체 부분을 예측하는 task를 도입함으로써 지역적 및 전반적인 문맥에서의 의존 정보를 학습할 수 있게 하였다. 이를 ERNIE 2.0 모델의 초기 버전으로 학습하도록 하였다.
  2. Capitalization Prediction Task: 전체가 대문자로 쓰여진 단어는 보통 특별한 의미를 담고 있다. 이러한 경우 모델은 명명 객체 인식과 같은 문제에서 이점을 가지며 이를 고려하지 않는 모델은 다른 task에 더 적합하다. 두 모델의 장점을 합쳐서 어떤 단어가 대문자화된 단어인지 아닌지를 판별하는 task를 추가했다.
  3. Token-Document Relation Prediction Task: 이 task는 어느 segment의 token이 원본 문서의 다른 segment에 나타나는지를 예측하는 task이다. 경험적으로, 문서의 많은 부분에서 등장하는 단어는 보통 사용 빈도 자체가 높은 단어이거나 문서의 주요 주제와 관련이 있다. 따라서, 문서에서 자주 등장하는 단어를 판별하는 것을 통해 모델이 문서의 keyword를 찾는 능력을 증대시켜줄 수 있다.

Structure-aware Pre-training Tasks

  1. Sentence Reordering Task: 이 task는 문장 간의 관계를 학습하는 데 주안점을 둔다. 이 task의 사전학습 단계 동안 주어진 문단은 $1 \sim m$개의 segment로 임의로 쪼개어 이들 permutation의 모든 조합(combination) 중 하나로 섞는다. 사전학습 모델은 이 segment들의 원래 순서를 찾는 것이 목적이다. 경험적으로 이 문장 재배치 task는 사전학습이 문서 내 문장 간 관계를 학습할 수 있게 한다.
  2. Sentence Distance Task: 문서 수준 정보를 사용하여 문장 간 거리를 학습하는 task이다. 3-class 분류 문제로 모델링되는데, 0은 두 문장이 같은 문서에서 인접해 있는 것, 1은 두 문장이 같은 문서에 있는 것, 2는 두 문장이 서로 다른 문서에 존재함을 나타낸다.

Semantic-aware Pre-training Tasks

  1. Discourse Relation Task: 위에서 언급한 거리 (측정) 문제에 더하여, 두 문장 간 의미적 혹은 수사적인 관계를 예측하는 task를 소개한다. 영어 task를 위한 사전학습 모델을 학습시키기 위한 데이터를 사용하였다. 같은 논문에서 제안된 방법을 따라 사전학습을 위한 중국어 데이터셋을 구성하였다.
  2. IR Relevance Task: 정보 검색에서 짧은 텍스트 관계를 학습하는 사전학습 task를 추가하였다. Query를 첫 번째 문장, title을 두 번째 문장으로 구성하며 상업 검색엔진에서 얻은 검색 기록 데이터를 사전학습 데이터로 사용하였다. 이 task는 3-class 분류 문제로 query과 title 간 관계를 예측한다. 0은 강한 관계(유저가 검색 후 제목을 클릭함), 1은 약한 관계(제목이 검색 결과로 나왔지만 유저가 클릭하지는 않음), 2는 query와 title이 무관하며 의미 정보의 관점에서 임의(로 선택됨)임을 나타낸다.

Experiments

ERNIE 2.0을 다른 SOTA 모델들과 비교하였다. 영어 task를 위해 GLUE에서 BERT 및 XLNet, 중국어 task를 위해 여러 task에서 BERT와 ERNIE 1.0과 비교하였다. 또한 본 논문의 방법을 multi-task 학습과 전통적인 연속학습 방법과 비교하였다.

Pre-training and Implementation

Pre-training Data: BERT와 비슷하게 일부 영어 말뭉치는 Wikipedia와 Book-Corpus에서 크롤링하여 가져왔다. 또한 Reddit과 Discovery data를 담화 관계 데이터로 사용하였다. 중국어 말뭉치는 검색 엔진으로부터 백과사전, 뉴스, 대화, 정보검색, 담화관계 데이터 등을 수집하였다. 표 1에서 사전학습 task와 데이터의 관계를, 데이터의 세부 정보를 표2에 기술하였다.

ERNIE
ERNIE

Pre-training Settings: BERT와 비교를 위해 같은 크기의 Transformer 모델을 만들었다(base: 12 layers, 12 self-attention heads, 768-dim hidden size, large: 24 layers, 16 self-attention heads, 1024-dim hidden size). XLNet의 모델 세팅은 BERT와 같다.

ERNIE 2.0은 base 모델에서 48개의 Nvidia v100 GPU, large 모델에서 64개의 Nvidia v100 GPU를 사용하였다. ERNIE는 Baidu에서 end-to-end 오픈소스 딥러닝 플랫폼으로 개발한 PaddlePaddle 위에서 구현되었다.
Hyperparameter 세팅은 $\beta_1 = 0.9, \beta_2 = 0.98$이고 batch size는 393216 token이다. Learnint rate는 영어에서 $lr=5e-5$, 중국어 모델에서 $lr=1.28e-4$이며 decay scheme noam(4000 step의 warmup 포함)을 따른다. float16 연산으로 학습을 가속화했고 각 사전학습 task는 수렴할 때까지 진행되었다.

Fine-tuning Tasks

English Task: GLEU benchmark를 사용하였다.

Chinese Tasks: 9개의 중국어 자연어처리 task에서 실험을 진행하였다(독해, 명명 객체 인식, 자연어추론, 의미적 유사성, 감정분석, 질의응답 등). 중국어 데이터셋은 다음 중에서 선택되었다.

  • Machine Reading Comprehension (MRC): CMRC 2018 (Cui et al. 2018), DRCD (Shao et al. 2018), and DuReader (He et al. 2017).
  • Named Entity Recognition (NER): MSRA-NER (Levow 2006).
  • Natural Language Inference (NLI): XNLI (Conneau et al. 2018).
  • Sentiment Analysis (SA): ChnSentiCorp.
  • Semantic Similarity (SS): LCQMC (Liu et al. 2018), and BQ Corpus (Chen et al. 2018).
  • Question Answering (QA): NLPCC-DBQA.

Implementation Details for Fine-tuning

영어 및 중국어 세팅(Epoch, Learning rate, Batch size)을 아래 표에 표시하였다.

ERNIE
ERNIE

Experimental Results

Results on English Tasks: 각 방법의 base와 large 모델을 GLUE에서 평가하였다. XLNet의 dev set만 보고되어 있는 관계로 다른 방법도 dev set에서의 결과를 표시한다. BERT와 XLNet과 비교를 위해 단일 task와 단일 모델 ERNIE 2.0을 테스트하였다. GLUE에 대한 결과는 표 5와 같다.

ERNIE

ERNIE 2.0 base 모델이 BERT base 모델을 모든 task에서 상회하며 80.6점을 얻었다. Large 모델의 경우 ERNIE 2.0이 BERT와 XLNet을 단 한 개의 task를 제외하고 모든 부분에서 상회하며 GLUE 점수는 83.6점으로 3.1% 향상시킨 것을 볼 수 있다.

Results on Chinese Tasks: 표 6은 중국어 task에서 결과를 보여준다.

ERNIE

ERNIE 1.0이 BERT base를 5개의 task에서 상회함을 보여주지만 이상적이지는 않은 결과인데 사전학습의 차이로 보인다. 구체저으로 ERNIE 1.0 base의 경우 길이 128 이상의 instance를 포함하지 않으나 BERT base는 512까지 사용한다. ERNIE 2.0은 BERT base를 모든 task에서 압도하며 ERNIE 2.0 large 모델은 제시된 모든 중국어 task에서 SOTA 결과를 얻었다.

Comparison of Different Learning Methods

ERNIE 2.0 framework에 적용한 연속적 mult-task 학습 전략의 효과를 분석하기 위해 그림 2에서 나온 2가지 방법을 비교하였다. 아래 표 7에서 세부 사항을 볼 수 있다. 모든 방법에서 학습 반복횟수는 각 task에서 같다고 가정한다. 각 task는 50k회의 반복 학습을 하며 총 200k번의 학습을 한다. multi-task는 한 단계에서 모든 task를, 연속적 사전학습 방법은 한 번에 하나의 task를, 연속적 multi-task 학습 방법(본 논문에서 제시)는 각 단계마다 서로 다른 반복횟수를 적용하여 점진적으로 학습하는 것을 볼 수 있다.

ERNIE

실험 결과에서 본 논문에서 제시된 방법이 효율을 희생하지 않으면서 가장 효과가 좋다는 것을 확인할 수 있다. 이는 본 논문에서 제시된 사전학습 방식이 새로운 task를 학습하는 데 있어 더 효율적이고 효과적임을 보여준다. 또한, 이 비교 결과는 연속적 학습 방법이 단순 multi-task 학습 방법을 능가한다는 것을 뜻하고 새로 제시된 방법은 이전 학습에서 얻은 지식을 잘 잊어버리지 않는다는 것을 의미한다.


결론(Conclusion)

본 논문에서 연속적 사전학습 framework인 ERNIE 2.0을 제안하였고 사전학습 task들은 점진적으로 추가되며 연속적 multi-task 학습 방법을 통해 학습된다. 이 framework에 기반하여 언어의 다양한 부분을 커버하는 여러 사전학습 task를 구성하였다. GLUE와 여러 중국어 task에서 좋은 결과를 보였으며 BERT와 XLNet을 상회하는 성과를 얻었다. 앞으로 모델의 성능을 더 발전시킬 수 있는 사전학습 task들을 소개하며 더 세련된 학습 방식을 연구할 계획이다.


참고문헌(References)

논문 참조!


Comment  Read more

Session-based Recommendation with GNN (SR-GNN) 설명

|

본 글에서는 2018년에 발표된 Session-based Recommendation with Graph Neural Networks라는 논문에 대한 Review를 진행할 것이다. 단순히 논문을 읽어보는 것을 넘어서서, 실제 추천 시스템에서 활용하는 상황을 가정하고 설명을 진행해 볼 것이다.

보통의 세션 기반의 추천 알고리즘의 경우 Recurrent Neural Networks에 기반하여 설계된 경우가 많은데, SR-GNN의 경우 Recurrent Unit과 Graph Neural Network를 결합하여 독특한 형태의 방법론을 제시하고 있다.

세션 기반의 추천 시스템은 익명의 세션에 기반하여 User의 행동을 예측하는 데에 목적을 둔다. 그러나 과거의 여러 연구들을 보면, 세션에서 정확한 User Embedding 벡터를 얻기에는 부족하고 Item 간의 복잡한 transition을 무시하는 경향을 보이곤 했다.

이러한 문제를 해결하기 위해 본 논문에서는 SR-GNN이라는 기법을 제시한다. GNN을 통해 이전의 전통적인 Sequential한 방법들에서는 어려웠던, Item 간의 복잡한 transition을 포착하는 것이 본 방법론의 핵심이다.


Session-based Recommendation with Graph Neural Networks 리뷰

1. Introduction

RNN, NARM, STAMP 등의 여러 방법론이 세션 기반의 추천을 위해 도입되었지만 다음과 같은 한계점을 지닌다. 우선 하나의 세션 내에서 적절한 User 행동이 존재하지 않으면, User Representation을 추정하는데에 어려움을 겪는다는 것이다. 보통 이러한 방법들에서는 RNN의 Hidden Vector가 User Representation으로 취급되는데, 사실 세션은 그 수가 방대하고 충분한 정보가 주어지지 않는다면 세션과 User를 잇기 어렵기 때문에 (익명성) 이러한 방법으로는 각 세션 내에서 User Representation을 추정하기가 쉽지 않은 것이다.

그리고 이전의 연구들에서 분명 Item 간의 transition의 중요성에 대해 밝힌 바는 있으나, 맥락 속에서 발생하는 transition을 무시한 채 단 방향의 transition 만을 고려했다는 문제점을 지닌다.

위 문제점을 해결하기 위해 소개하는 SR-GNN은 Item 사이에서 풍부한 transition을 탐구하고 Item에 대한 정확한 잠재 벡터를 생성할 수 있는 알고리즘이다.

위 그림은 SR-GNN의 구조를 대략적으로 나타낸 것이다. $v_1, …, v_7$ 는 추천 대상인 Item 리스트를 의미한다. 모든 세션 Sequence를 directed session graph로 나타내면, 각 세션 Graph는 하나의 subgraph로 생각할 수 있다. 위 예시에서는 $v_2 \rightarrow v_5 \rightarrow v_6 \rightarrow v_7$ 로 이어지는 하나의 세션을 subgraph로 생각하면 된다.

이제 각 세션은 차례대로 하나씩 위 Workflow을 타고 흐르게 된다. 첫 번째 세션은 $s_1 = [v_1 \rightarrow v_2 \rightarrow v_3 \rightarrow v_4]$ 라고 해보자. 웹사이트나 어플 상의 로그 기록을 기반하여 세션을 구성한다고 하면 위 세션은 어떤 4개의 Item을 순차적으로 클릭한 데이터를 표현한 것이다. 이 세션 데이터는 Gated Graph Neural Network를 통과하여 각각의 Node 벡터를 얻게 된다.

그리고 나서 이를 활용하여 우리는 최종적으로 $\mathbf{s_g}, \mathbf{s_l}$ 이라는 2개의 벡터를 얻게 되는데, 전자는 Global한 선호를 반영하는 Global Session Vector를, 후자는 그 세션 내에서의 User의 현재의 관심을 나타내는, 즉 가장 최근에 클릭/반응한 Item을 나타내는 Local Session Vector를 의미한다.

최종적으로 본 모델은 각 세션에 대해 다음 클릭의 대상자가 될 Item을 예측한다.


(중략)


3. The Proposed Method

Notations

기호 설명
$V = [v_1, v_2, …, v_m]$ 모든 세션에 속해 있는 모든 Unique한 Item의 집합
$m$ 모든 Unique한 Item의 수
$s = [v_{s, 1}, …, v_{s, n}]$ 특정 세션 $s$에 속해 있는 Item의 집합, 시간 순서에 의해 정렬됨
$n$ 특정 세션 $s$에 속해 있는 Item의 수
$v_{s, n+1}$ 세션 $s$ 에서 다음 클릭의 대상자가 될 Item

Constructing Session Graphs
전체 Graph는 아래와 같이 정의할 수 있다.

[\mathcal{G} = ( \mathcal{V}, \mathcal{E} )]

모든 세션 Sequence $s$ 는 아래와 같은 Directed Graph로 정의할 수 있다.

[\mathcal{G}_s = ( \mathcal{V_s}, \mathcal{E}_s )]

이 세션 Graph에서 각 Item Node는 $v_{s, i} \in V$ 를 나타낸다. 각 Edge $(v_{s, i-1}, v_{s, i}) \in \mathcal{E_s}$ 는 세션 $s$ 에서 $v_{s, i-1}$ 를 클릭한 후에 $v_{s, i}$ 를 클릭했다는 의미이다.

똑같은 Item이 반복적으로 나올 수 있기 때문에 본 논문에서는 각 Edge에 대해 Normalized Weight을 적용하였다. 모델을 통과한 후, 각 Item $v$ 는 Gated GNN을 통과하여 아래와 같이 통합된 Embedding Space에 임베딩되어 Node 벡터로 표현된다.

[\mathbf{v} \in \mathbb{R^d}]

그리고 각 세션 $s$ 는 Graph에서의 Node 벡터들로 이루어진 $\mathbf{s}$ 라는 임베딩 벡터로 표현된다.

Learning Item Embeddings on Session Graphs
세션 Graph 내에서 이루어지는 Node 벡터의 학습 과정에 대해 알아보자. $t-1$ 시점의 Node 벡터를 활용하여 $t$ 시점의 Node 벡터를 얻게 되는 과정이라고 생각하면 된다. 먼저, 세션 $s$ 내의 $n$ 개의 Node가 주어졌다고 할 때 이들의 Node 임베딩 벡터를 아래와 같이 활용하게 된다.

[\mathbf{a}^t_{s, i} = \mathbf{A}_{s, i:} [\mathbf{v}_1^{t-1}, …, \mathbf{v}_n^{t-1}] \mathbf{H} + \mathbf{b}]

$n=4$ 인 세션을 예로 들어보자. 위와 같은 Subgraph가 있다고 할 때, $\mathbf{A_s}$ 는 위와 같이 표현된다.

이 때 아래 기호로 표기된 Block은

[\mathbf{A}_{s, i:} \in \mathbb{R}^{1 * 2n}]

다음과 같은 Connection Matrix의 일부이다.

[\mathbf{A}_{s} \in \mathbb{R}^{n * 2n}]

따라서 형광색으로 표시한 부분이 위 예시에서 $\mathbf{A}_{s, 2:}$ 가 될 것이다.

위 식을 통해 Gated Graph Neural Network를 활용하여 여러 Node 사이의 정보를 전파하는 과정을 수행하게 된다. 이 때 Connection Matrix $\mathbf{A_s}$ 를 통해 현재 관심 있는 Node, 예를 들어 $i=2$ 번째 Node $v_{s, 2}$ 와 관련있는 Row를 추출하여 이후 과정에 활용하게 된다. 즉 Edge가 존재하는 Neighbor들의 정보를 통합하여 $\mathbf{a}_{s, i}^t$ 라는 벡터로 나타내는 것이다. $\mathbf{H}$ 는 Weight를 조절하는 역할을 수행한다. (Parameter)

아래 두 식은 각각 Update GateReset Gate의 역할을 수행한다. 각각 어떤 정보를 보존하고 어떤 정보를 버릴 것인지를 결정하게 되는 것이다.

[\mathbf{z}{s, i}^t = \sigma (\mathbf{W}_z \mathbf{a}{s, i}^t + \mathbf{U}_r \mathbf{v}_i^{t-1})]

[\mathbf{r}{s, i}^t = \sigma (\mathbf{W}_r \mathbf{a}{s, i}^t + \mathbf{U}_r \mathbf{v}_i^{t-1})]

이후에는 Candidate State를 아래와 같이 얻게 된다. $t$ 시점, 즉 Current State의 정보를 얼마나 반영하고, $t-1$ 시점, 즉 Previous State의 정보를 얼마나 Reset하는지를 결정하여 Candidate State 값을 얻게 된다.

[\widetilde{\mathbf{v}i^t} = tanh( \mathbf{W}_o \mathbf{a}{s, i}^t + \mathbf{U}o (\mathbf{r}{s, i}^t \odot \mathbf{v}_i^{t-1}) )]

Final State는 아래와 같이 Previous Hidden State인 $\mathbf{v}_i^{t-1}$ 를 얼마나 Reset하고, Candidate State인 $\widetilde{\mathbf{v}_i^t}$ 를 얼마나 보존하는지를 통해 결정하게 된다.

[\mathbf{v}i^t = (1 - \mathbf{z}{s, i}^t) \odot \mathbf{v}i^{t-1} + \mathbf{z}{s, i}^t \odot \widetilde{\mathbf{v}_i^t}]

이렇게 세션 Graph들 내의 모든 Node에 대해 수렴할 때까지 Update를 진행하고 나면 Final Node Vectors를 얻게 된다.

[\mathbf{v}_1, \mathbf{v}_2, …, \mathbf{v}_m]

혼란을 방지하고자 다시 언급하면 $i$ 는 Node의 Index를 의미하며, $t$ 는 학습 Update 과정에서의 시점을 의미한다. 모든 업데이트가 끝나면 $t$ 는 필요 없는 기호가 된다.

각 벡터와 행렬의 길이, 차원 등을 정확히 파악하기 위해 아래와 같은 정리 식을 첨부하도록 하겠다.

Generating Session Embeddings
지금까지 과정을 통해 모든 세션 Graph를 Gated GNN에 투입하여 모든 Node에 대해 Embedding 벡터를 얻었다. 이제 이렇게 얻은 벡터 값에 기반하여 세션 Embedding을 얻는 방법에 대해 알아보자.

세션 Embedding을 $\mathbf{s} \in \mathbb{R}^d$ 라고 표기하겠다. 이제 이 벡터는 아래와 같이 2가지 벡터를 결합하여 구성할 것이다.

Local Session Embedding은 간단하다. 아래와 같이 가장 최근에 클릭한 Item $v_{s, n}$ 의 Embedding 값을 그대로 쓰면 된다.

[\mathbf{s}_l = \mathbf{v}_n]

해당 세션 Graph $\mathcal{G}_s$의 Global Session Embedding은 모든 Node 벡터를 통합하여 얻을 수 있다. 그런데 이들에 대한 중요도는 각각 다를 것이므로 Soft-attention Mechanism을 사용한다.

[\alpha_i = \mathbf{q}^T \sigma ( \mathbf{W}_1 \mathbf{v}_n + \mathbf{W}_2 \mathbf{v}_i + \mathbf{c} )]

[\mathbf{s}g = \Sigma{i=1}^n \alpha_i \mathbf{v}_i]

식을 보면 Attention Score를 계산할 때 필수적으로 마지막에 클릭한 Item의 Embedding 벡터 값이 고려되는 것을 확인할 수 있다.

이렇게 얻은 두 벡터와 Trainable Parameter Matrix를 활용하여 선형 변환 과정을 거치면 아래와 같이 Hybrid Embedding $\mathbf{s}_h$ 를 얻을 수 있다.

[\mathbf{s}_h = \mathbf{W}_3 [\mathbf{s}_l, \mathbf{s}_g]]

Making Recommendation and Model Training
추천 후보 Item $v_i \in V$ 가 있다고 할 때 이에 대한 Score $\hat{\mathbf{z}_i}$ 는 아래와 같이 계산된다.

[\hat{\mathbf{z}_i} = \mathbf{s}_h^T \mathbf{v}_i]

$m$ 개의 Item이 존재한다고 하면 이들 중 가장 높은 Score를 정해야 할 것이다. 이 때는 아래와 같이 Softmax 함수를 사용해준다.

[\hat{\mathbf{y}} = softmax(\hat{\mathbf{z}})]

다시 한 번 길이, 차원에 대해 정리한다.

Loss 함수는 아래와 같이 Cross-entropy 함수를 사용해주면 된다.

[\mathcal{L} (\hat{\mathbf{y}}) = - \Sigma_{i=1}^m \mathbf{y}_i log (\hat{\mathbf{y}}_i) + (1-\mathbf{y}_i) log (1-\hat{\mathbf{y}}_i)]

그리고 이 SR-GNN을 학습하기 위해서는 Back-Propagation Through Time 알고리즘이 사용된다. 일반적으로 세션의 길이는 굉장히 짧기 때문에 과적합을 막기 위해서는 비교적 작은 수의 학습 Epoch이 적용되어야 할 것이다.


4. Experiments and Analysis

본 섹션의 경우 상세 내용에 대해서는 논문 원본을 참조하길 바란다. 다만 세팅과 관련하여 주요 내용만 메모하도록 하겠다.

세션 $s$ 가 아래와 같이 주어져 있다고 하면,

[s = [v_{s, 1}, v_{s, 2}, …, v_{s, n}]]

학습을 위해서는 아래와 같이 Sequence를 구성할 수 있다.

$([v_{s, 1}], , v_{s, 2})$, $([v_{s, 1}, v_{s, 2}], v_{s, 3})$ …

Validation Set의 비율은 10%로 설정하였으며 모든 파라미터는 평균0, 표준편차0.1의 정규분포로 초기화하였고, Adam Optimizer가 사용되었다. 최초의 Learning Rate은 0.001이나 3 Epoch마다 0.1의 Decay가 적용되었다. 100의 Batch Size와 $10^{-1}$ 의 L2 페널티가 적용되었다.


5. Conclusions

세션 기반의 추천 시스템은 User의 분명한 선호와 이전의 기록을 얻기 어려울 때 굉장히 유용하다. 본 논문은 Graph 모델을 통해 세션 Sequence를 표현하는 새로운 구조를 제안하였다. SR-GNN을 통해 Item 사이의 복잡한 구조와 transition을 고려할 수 있으며 또한 User의 다음 행동을 예측하기 위해 Long-term 선호와 최근 선호까지 복합적으로 반영하는 전략을 구사할 수 있다.


References

1) 논문 원본

Comment  Read more