Donut (2022) 논문 리뷰
Donut 논문의 제목은 OCR-free Document Understanding Transformer다. (링크)
저자는 Geewook Kim, Teakgyu Hong, Moonbin Yim, Jeongyeon Nam, Jinyoung Park, Jinyeong Yim, Wonseok Hwang, Sangdoo Yun, Dongyoon Han, Seunghyun Park다.
Abstract
현재의 Visual Document Understanding (VDU) 방법들은 OCR 엔진으로 텍스트를 읽어온 다음 그 결과를 이해하는 태스크에 집중하고 있다. OCR 기반 접근법은 좋은 성과를 보장하지만 다음의 문제점이 있다. 1) OCR를 사용하면 계산량이 많이 필요하며, 2) 문서의 종류나 언어에 따라서 OCR 방법들의 유연성이 부족하며, 3) OCR 에러가 다음 단계에 까지 영향을 미친다.
이를 해결하기 위해서 본 논문에서는 새로운 OCR-free VDU 방법인 Donut, Document understanding transformer을 제시한다. OCR-free의 첫 단계이기에 단순한 구조인 트랜스포머 구조와 단순한 pre-training objective인 crocss entropy loss를 제시한다.
단순한 구조로도 다양한 VDU 방법들에서 SOTA를 달성함을 보인다.
기존의 documen information extraction (IE)는 위 Figure 1에서처럼 OCR를 통해서 텍스트를 추출한다. 우선 텍스트의 위치를 확인하고 각각의 위치에 놓인 상자를 통해서 어떤 character 글자인지를 판별한다. 그 다음 (d) 단계에서 이를 통해서 원하는 structured information을 생성한다.
OCR과 다운스트림 모델을 합한 결과는 Figure 2에 나와있듯이 메모리를 많이 요구하고, 시간이 오래 걸린다. Donut은 메모리도 적게 요구하며, 더 빠르고, 정확도도 높은 모델이다.
2. Method
Donut 모델의 전체적인 구조는 Figure 3와 같다.
Encoder
Visual encoder는 input document image $\textbf{x} \in \mathbb{R}^{H \times W \times C}$를 { $\textbf{z}_i | \textbf{z}_i \in \mathbb{R}^d, 1 \leq i \leq n$ }으로 매핑한다. 이때 $n$은 피쳐 맵의 크기 혹은 이미지 패치의 수이며, $d$는 latent vector의 차원이다. 다른 CNN이나 Transformer 베이스 모델 대신 Swin Transformer를 visual encoder로 선택했는데 이는 document parsing에서 가장 좋은 모델이기 때문이다. Swin Transformer는 우선 input image $\textbf{x}$를 서로 not overlapping 겹치지 않는 패치들로 나눈다. Swin Transformer는 shited window-based multi-head self-atention과 two-layer MLP로 구성되며 이를 패치들에 적용한다. 그 다음 Patch merging layers에서 패치 토큰들에 적용된다. 최종 output {$\textbf{z}$}은 textual decoder로 전달된다.
Decoder
{$\textbf{z}$}이 주어지고, textual decoder는 token sequence인 {$(\textbf{y}_i)_{i=1}^m$}을 생성한다.
이때 $\textbf{y}_i \in \mathbb{R}^v$로 $i$ 번째 토큰의 one-hot vector이며 $v$는 token vocabulary size이고 $m$은 하이퍼 파라미터다. 저자들은 BART를 디코더 구조로 사용했으며 공개적으로 사용 가능한 pre-trained multi-lingual BART를 초기값으로 사용했다.
Model Input
GPT-3에 영감을 받아서 prompt를 주고 여기에 맞춰서 token sequence를 생성하도록 지시한다. 따라서 개별 다운스트림 태스크에 대한 프롬프트에 special tokens를 더했다. 자세한 내용은 Appendix A.4에 나와있다.
Output Conversion
출력의 형태를 structured format으로 변환하기 위해서 JSON 형식으로 변환한다.
[START_*]와 [END_*]의 두 가지 스페셜 토큰을 더함으로써 * 표시가 각 필드에서 추출한 내용임을 나타낸다.
만약 output token sequence가 wrongly structured 잘못된 구조를 지닌다면 해당 필드를 잃어버린 것으로 간주한다.
예를 들어서 [START_name]은 있지만 [END_name]이 없다면 name의 필드를 추출하는 작업을 실패했다고 간주한다.
JSON 형식의 Output은 아래 Figure B에서 자세하게 보여준다.
2.3. Pre-training
이미지와 이전의 컨텍스트가 주어진 상태에서 next token prediction을 수행하고 이에 대한 Cross-entroy를 최소화하는 작업을 목적함수로 삼는다.
Visual Corpora
IIT-CDIP 데이터를 사용한다. 하지만 데이터가 부족하기 때문에 Synthetic Document Generator인 SynthDoG를 제시하고 이를 통해서 중국어, 일본어, 한국어, 영어 위키피디아를 사용해서 추가적인 데이터를 생성한다. 이때 사용한 배경 이미지는 ImageNet에서 샘플링했다. 생성된 이미지는 아래 Figure 4에서 제시된다.
2.4. Fine-tuning
다음과 같은 형식의 스페셜 토큰을 사용해서 개별 다운스트림 태스크에 대한 파인 튜닝을 수행한다.
문서 분류 태스크의 경우 디코더에 [START_class][memo][END_class] 토큰이 주어지고 JSON 형식으로는 {"class": "
memo"}로 표기할 수 있다. 이때 [memo]는 문서 분류에서 라벨이 memo라는 뜻이다.
아래 Figure 5에서는 Document Classification, Document Inormation Extraction, Document Visual Question Answering라는 다운스트림 태스크의 예시를 보여준다.
3. Experiments and Analyses
Document Classification, Document Inormation Extraction, Document Visual Question Answering에 대한 Donut모델의 기존 모델과의 성능 비교를 보여준다.
Document Classification
Donut이 시간, 파라미터 수에 있어서 효율적이면서 성능도 SOTA인 LayoutLMv2를 능가함을 알 수 있다.
Document Inormation Extraction
역시나 Donut이 효율적이면서 성능도 좋은 모델임을 보여준다.
Document Visual Question Answering
VQA에서는 Donut이 빠르지만 LayoutLMv2 보다는 다소 성능이 부족함을 알 수 있다.