PICK: Processing Key Information Extraction from Documents using Improved Graph Learning-Convolutional Networks
대부분의 OCR 기반의 Key Information Extraction(KIE) 방법론들은 textual features와 position features만 사용하고 있습니다. 하지만 풍부한 semantic representation을 얻기 위해서는 visual feature와 global layout까지 사용하는 것이 좋을 수 있습니다
Oct 11, 2022
Introduction
Motivation
대부분의 OCR 기반의 Key Information Extraction(KIE) 방법론들은 textual features와 position features만 사용하고 있습니다. 하지만 풍부한 semantic representation을 얻기 위해서는 visual feature와 global layout까지 사용하는 것이 좋을 수 있습니다.
KIE Approaches
기존 KIE 방법론과 이 논문에서 제안하는 방법론은 다음의 그림 한장으로 설명할 수 있습니다.
- Figure 2-(a) : 전통적인 접근방법으로 hand-craft features(e.g., regex and template matching)을 사용하는 방법 ⇒ task specific knowledge와 human-designed rules에 의존하기 때문에 다른 도메인으로 확장하기가 어려움.
- Figure 2-(b) : 최근의 접근 방법들로 자연어처리 기반의 모델들에 Named Entity Recognition이나 Sequence Labeling을 적용하는 방법 ⇒ Sequence Labeling 방식은 문서의 global layout을 충분히 반영하지 못하고 있으며 visual feature를 잘 활용하지 못함. 최근 visual feature를 활용하는 LayoutLM이 제안되었지만 이 모델은 두 개의 text segments간의 latent relationship을 고려하지 못한다는 문제가 있음.
- Figure 2-(c) : Graph Convolution 연산을 통해 textual and visual information을 결합하는 그래프를 사전에 정의하는 방법 ⇒ 사전에 task-specific edge type, adjacent matrix를 정의해야 하므로 상당한 도메인 지식과 문서의 구조가 복잡할 때 적용하기가 어렵다는 문제가 있음.
- Figure 2-(d) : 이 논문의 방법론으로 visual feature, textual feature, 관계 추출에 강력한 graph learning module을 통한 global layout feature를 얻어 KIE task에 사용하는 방법
Contributions
- 복잡한 layout을 가지는 문서들에서 Key Information Extraction task를 수행하기 위한 새로운 방법론 제안.
- 사전에 그래프 구조를 정의하는 것 없이 graph learning module을 모델에 도입함으로써 복잡한 documents에 대한 graph structure(=graph representation)를 정제할 수 있는 방법론 제안.
Proposed Method
논문에서 제안하는 방법론인 PICK(Processing Key Information Extraction from Documents using Improved Graph Learning-Convolutional Networks)은 아래의 그림과 같이 Encoder, Graph Module, Decoder의 3가지 module로 나눌 수 있습니다.
1. Encoder
Encoder 파트는 text embeddings을 얻어내기 위한 Transformer의 Encoder 파트와 image embeddings을 얻어내기 위한 ResNet50으로 만들어진 CNN 모델로 구성되어 있습니다.
Encoder 파트에서는 text embeddings과 image embeddings들을 구하고 이들을 element-wise addition 연산을 통해 한 문서 에 대한 embdding 를 구합니다.
이렇게 구해진 embedding 는 pooling 연산을 거쳐 로 변환되어 Graph Module의 input으로 사용됩니다.
(이 때, 은 segment의 개수, 는 token의 개수, 은 모델의 차원 수를 의미)
2. Graph Module
Graph Module 파트는 global layout과 각 segment 간의 관계를 잘 반영하는 graph context를 얻어냅니다.
구체적으로, Graph Module은 node들의 feature 를 Multi-layer perceptron(MLP)를 통해 얻어내고 Graph Learning Operation을 통해 soft adjacent matrix 를 얻어냅니다. 이렇게 얻어낸 와 는 Graph Convolution Operation을 통해 노드에 대한 새로운 feature 표현법인 를 만들어 내는데 사용됩니다.
Graph Learning Operation에서는 다음과 같은 수식으로 soft adjacent matrix 가 학습되도록 합니다.
이 때, 는 learnable weight vector이고 는 graph의 node vector를 의미합니다. 추가로, 논문에서는 gradient vanishing 문제를 방지하고자 LeakRelu를 사용했다고 합니다.
또한, 를 학습시키기 위해서 논문에서는 다음과 같은 Loss function을 사용했습니다. (이 때, 는 주로 행렬의 크기를 측정할 때 사용하는 Frobenius-Norm을 의미합니다.)
위의 수식에서 각각의 term은 다음과 같은 의미를 갖습니다.
- : 노드 와 의 관계가 멀수록 에 관계가 있을 확률이 작아지도록 함.
- : adjacent matrix의 sparsity를 통제함. 값이 커질수록, sparse adjacent matrix가 만들어짐.
따라서, 는 noise node에 대해 처리하기 위한 reguralization의 역할을 하고 는 adjacent matrix가 얼마나 sparsity를 유지할지를 결정합니다.
위의 Loss function 은 최종적인 Loss function 에서 사용됩니다.
Graph Convolutional Network(GCN)은 global visual information과 그래프에서의 노드들의 layout을 잘 표현하는 노드 feature들을 얻기 위해 사용됩니다. 즉, 논문에서는 node-edge-node triplets ()에 대해 graph convolution 연산을 적용하여 graph representation을 얻어낸 후에 이를 통해 node feature를 추출합니다.
우선, 논문에서는 노드 와 에 대해 relation embedding 를 얻기 위해 다음과 같은 수식을 사용합니다.
- , : 노드 와 에 대한 horizontal and vertical distance.
- , , , : 노드 와 에 대한 가로, 세로.
- , , : aspect ratio, normalization, affine invariance.
- : 노드 와 에 대한 sentence length ratio.
이렇게 얻어낸 relation embedding 는 다음과 같이 노드 와 에 대한 node-edge-node triplets ()의 hidden features 를 얻는데 사용됩니다.
(이 때, 은 convolution layer의 번째 layer를 의미하고 은 bias vector를 의미, σ(·)는 max(0, ·) 형태를 갖는 non-linear activation를 의미합니다.)
마지막으로, 이렇게 얻어진 hidden feature를 통해 다음과 같이 최종적인 노드의 feature 은 아래의 수식을 통해 얻어집니다.
이렇게 얻어진 최종적인 노드의 feature 는 tagging task를 위해 decoder 파트의 input으로 사용됩니다.
3. Decoder
Decoder 파트는 key information extraction을 위해 tagging task를 수행하는 파트로 BiLSTM layer와 CRF layer로 구성됩니다.
Decoder는 우선적으로 양방향의 context information을 고려할 수 있는 BiLSTM을 사용하는데, 이 때 BiLSTM은 Encoder 파트에서의 output과 Graph Module 파트에서의 output인 node embedding들을 input으로 받습니다. 이 때, Encoder에서의 output과 Graph Module에서의 output은 concat 연산을 통해 하나의 feature로 합쳐집니다. BiLSTM은 최종적으로 각각의 class에 대한 확률 값들을 ouput으로 내뱉습니다.
이후, 자연어처리의 Named Entity Recognition 분야에서 전통적으로 사용되온 CRF layer를 통해 각각의 sequence에 대한 각 class의 확률 값인 을 구하고 argmax를 통해 가장 확률 값이 큰 class로 예측을 합니다.
최종적으로, CRF layer를 학습시키는데 사용한 Loss function 와 Graph Module의 Loss function 과 이에 대한 tradeoff parameter인 와의 weighted sum이 전체 Loss function이 됩니다.
Experiments
논문에서는 Medical Invoice, Train Ticket, SROIE 데이터셋들에 대한 실험을 수행하였습니다. 또한, entity에 대해서만 성능 평가를 하는 것이 적절하다고 생각하여 mean entity recall(mER), mean entity precision(mEP), mena entity F-1(mEF)들을 evaluation metric으로 사용하였습니다.
또한, 적절한 비교를 위해서 Baseline으로는 BiLSTM + CRF 모델으로 선정하였습니다.
Medical Invoice 데이터셋에 대한 결과는 다음과 같습니다.
Train Ticket 데이터셋과 SROIE 데이터셋에 대한 결과는 다음과 같습니다.
SROIE 데이터셋에 대해 비교적으로 최근에 발표된 BROS - large 모델과 LayoutLM v2 - large 모델의 성능이 각각 96.6, 96.3인 점을 볼 때 2020년에 나온 PICK 모델의 결과가 꽤 괜찮음을 확인할 수 있습니다.
다음으로, 논문에서는 각각의 feature들이 모델의 성능에 어떠한 영향을 끼치는지 알아보기 위해 추가적인 ablation study를 진행했습니다. 그 결과, image segment를 사용하지 않을 때와 graph learning을 사용하지 않을 때 모두 성능이 어느정도 드랍되는 것을 확인할 수 있었습니다.
이를 통해 볼 때, image feature와 graph information from global layout이 key information extraction task의 성능에 영향을 끼치는 것으로 이해할 수 있습니다.
마지막으로, 논문에서는 grpah convolution 연산에서의 layour의 개수에 대한 영향을 확인하기 위해 다음과 layer 개수를 늘려가면서 실험 성능을 평가했습니다.
1개에서 2개의 layer를 사용하는게 가장 실험 성능이 좋았는데, 논문의 저자들은 overfiting의 영향일 것이라고 설명하고 있습니다.
Conclusion
PICK은 문서 내에서 다양한 feature들(textual feature, visual feature, graph를 활용한 global layout feature)을 추출하여 Key Information Extraction task를 수행할 수 있는 방법론을 제안하였습니다.
현재 Document Understanding 분야에서의 Key Information Extraction task는 언어 모델 기반의 모델에 visual feature를 활용하는 방법론들이 주류를 이루고 있는데, 직관적으로 생각을 해봐도 문서 내의 entity 관계를 잘 표현하기 위해 Graph를 사용하는 것이 도움이 될 것이라고 생각했었습니다.
이러한 의미에서 현재까지 Graph를 활용하는 방법론들에 대해 공부해본적이 없어 이 논문을 스터디해보았습니다.
References
- GNN, GCN 개념정리 : https://ganghee-lee.tistory.com/27
- NER의 현재와 미래(BIO 태깅 사용 이유) : https://www.letr.ai/explore/tech-20210723
- norm 정리 : http://taewan.kim/post/norm/
- norm 및 프로베니우스 norm 정리 : https://be-favorite.tistory.com/36
Share article