NL-059, CV-004, ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Data (2020.01.22-Arxiv)
■ Comment
- Pre-trained 모델을 언어, 영상 각각 쓰지 말고 한꺼번에 처리하자
- 각각 쓰면 fine-tuning task에서 데이터가 많이 필요하기 때문
- 이 모델을 사용하면 이미지 검색(image retrieval), 텍스트 검색에서 SoTA가 달성한다고 한다.
- 이 외에 VQA, VCR, image captiong 등에서도 성능이 향상될 것으로 기대된다.
- 모델은 Transformer 구조를 띄며, 영상이 들어갔기 때문에 추가적인 학습 방식이 들어감
- MOC, MRFR, ITM
0. Abstract
- 이 논문에서는 새로운 vision-language pre-trained model을 소개한다. (ImageBERT)
- 모델 Transformer 기반이며 입력의 방식이 다르며 그들의 관계를 학습한다.
- 학습 방법은 다음의 4가지 task을 이용한다.
- Masked Language Modeling (MLM)
- Masked Object Classification (MOC)
- Masked Region Feature Regression (MRFR)
- Image Text Matching (ITM)
- Pre-training 퀄리티를 강화하기 위하여 Large-scale weAk-supervised Image-Text 데이터를 웹에서 수집하였다.
- 첫 번째로 이 데이터세트로 pre-train을 하고 두 번째로 Conceptual Captions, SBU Captions으로 pre-train 하였다.
- 이렇게 multi-stage pre-training 전략이 single-stage pre-training보다 성능이 좋음을 보여준다.
- 이렇게 학습한 pre-trained ImageBERT을 image retrieval과 text retrieval tasks에 fine-tune하고 evaluate을 하였다. (데이터세트: MSCOCO, Flickr30k)
1. Introduction
- NLP와 CV에서 많은 attention이 흥미로운 결과를 보여주고 있다.
- Text-Image Retreival은 주어진 텍스트와 가장 관련있는 이미지를 검색하는 것이다.(그 반대도 마찬가지)
- Vision Question Answering (VQA)는 주어진 이미지에 대해 관련있는 질문을 할 때 답변을 예측하는 것이다.
- Visual Commonsense Reasoning (VCR)은 모델이 commonsense question 답변만 하는 것이 아니라 정답을 서포트할 근거를 선택해야한다.
- Image Captioning은 이미지를 설명한 natural language description을 생성하는 것이다.
- 언어와 비전에 각각 pre-trained model을 기반으로 대부분의 이전 방법들은 late fusion 방법으로 downstream tasks에서 multi-modal 입력을 융합하였다.
- 그러나 이러한 late fusion layers은 보통 task-specific labeld data을 학습과정에서 필요로하게 되지만 많은 multi-modal tasks에서 충분한 annotation 데이터를 얻는 것은 비싸고 챌린지하다.
- NLP 분야에서 성공을 한 pre-trained 모델들인 BERT, XLNet, RoBERTa으로 영감을 받아 cross-modal pre-training은 핫한 연구분야가 되었다.
- 이러한 모델은 대규모 코퍼스를 기반으로 초기 단계에서 언어 및 비전에 관한 joint representation을 학습할 수 있고 그 다음 downstream task에 task-specific fine-tuning을 적용할 수 있다.
- 여기서 제안한 ImageBERT은 cross-modal pre-training의 강력한 베이스라인이 될 것이고 text-to-image and image-to-text retrieval tasks on MSCOCO[5] and Flicker30k[6]에서 SoTA 성능을 보여준다.
- 여기서 만든 새로운 코퍼스는 웹에서 얻은 10M text-image 쌍이다.
2. Related Work
- Model architecture
- BERT
- ViLBERT
- LXMERT
- visualBERT
- B2T2
- Unicoder-VL
- VL-BERT
- Unified VLP
- UNITER
- Image visual tokens
- 영상에서 RoI을 언어 토큰으로 간주하는 식
- VL-BERT trained the detection network together with its image-text joint embedding network, and it also added global image features into model training.
- Pre-train data
- Conceptual Captions[2], SBU Captions[3], Visual Genome[22] and MSCOCO[5]
3. Large-Scale Weak-supervised Image-Text Data Collection
- 데이터 수집하는 과정에 대한 설명인데 자세한 부분은 패스하자..
- Web-page Collection.
- Image Content Based Filtering.
- Sentence Detection & Cleaning.
- Image-Text Semantic Scoring.
- Image-Text Aggregation.
4. ImageBERT Model
- 위 그림이 구조이며 BERT와 비슷하게 Transformer을 사용한다.
- 그러나 이미지 viasual tokens와 textual tokens을 함께 입력으로 사용한다.
- 이미지 비주얼 토큰이란 것은 RoI 특징들을 Faster-RCNN에서 추출하여 넣게 된다.
- 이러한 embeddings은 multi-layer bidirectional self-attention Transformer으로 들어가서 cross-modality Transformer을 배워서 visual region과 linguistic tokens 사이의 모델링을 한다.
4.1 Embedding Modeling
- Linguistic embedding
- 논문은 BERT의 word pre-processing 방법과 유사한 것을 적용했다.
- 입력 문장은 n개의 sub-word tokens 으로 Wordpiece로 tokenizing을 한다.
- [CLS]와 [SEP]와 같은 special tokens들이 토크나이즈된 text 문장에 추가가 된다.
- sub-word token의 최종 embedding은 original word embedding, segment embedding, sequence position embedding 과 결합되어 생성이 된다.
- 이러한 모든 embeddings은 public pre-trained BERT 모델을 초기값으로 사용한다.
- Image embedding
- linguistic embedding과 유사하게 image embedding은 또한 visual 입력으로부터 생성이 된다.
- Faster-RCNN 모델은 o RoIs 을 visual content의 표현으로부터 추출하는데 사용된다.
- 검출된 objects은 linguistic part을 위한 전체 이미지의 visual contexts을 제공할 뿐만 아니라 detailed region infromation을 통하여 specific terms와도 연관이 있다.
- 논문은 또한 global image에 관한 object location을 encodings하여 position embeddings을 image embeddings에 5-D vectors을 추가하였다.
- 마지막 5번째 텀은 the proportional area with respect to the whole image을 가리킨다.
- object features와 location embeddings은 linguistic embeddings과 같은 차원으로 embedding이 된다.
- 최종 representation은 다음과 같다.
- 여기서 v는 ImageEmbed, s는 segment embeddings, p_img는 image position embedding, p_seq는 sequence position embedding이다.
- v는 RoI 영역을 pre-trained 모델을 (ex. ResNet) 통과시켜 얻은 것
- p_img = PositionEmbed(c) 이다.
- 즉 일반 언어모델에서 추가적으로 image position embedding이 들어가는 것
- 각각 embedding은 Transformer sub-layers의 hidden size의 embedding size에 project되고 Layer Normalization (LN)을 거친다.
- 또한 분류 레이블로 검출된 모델의 영역을 사용한다.
- ablation 연구에서 global image features을 추가하고 region features을 추가하는 실험을 한다.
- Sequence position and segment embedding
- 각 토큰의 sequence position embedding은 입력 토큰의 순서를 나타내는데 사용된다.
- 모든 비주얼 토큰에서 고정된 dummy position을 사용한다.
- 왜냐하면 검출된 RoI는 순서가 없기 때문이고 객체의 coordinates는 이미 image embeddings에 사용되기 때문이다.
- 언어 부분에서는 ascending sequence가 단어의 순서를 나타내는데 사용된다.
- 추가적으로 segment embedding이 각 입력 토큰에 추가되어 다른 모듈임을 나타낸다. (언어 / 영상)
4.2 Multi-stage Pre-training
- 다른 데이터세트가 다른 소스로부터 얻어졌기 때문에 퀄리티 레벨과 noise 분포가 다르게 된다.
- 이러한 데이터들을 pre-train에 잘 사용하기 위해서 multi-stage pre-training 프레임워크를 제안한다.
- 첫 번째로는 large-sacle out-of-domain 데이터들로 pre-train을 하여 모델이 final tasks에 잘 수렴이 되도록 한다.
- Multi-stage pre-training에서는 여러 번의 (k+2) pre-train stages을 거친다.
- 다른 종류의 데이터세트를 일련적으로 적용하는 것이다.
- LM fine-tuning과 classifier fine-tuning만 있는 single-stage와는 다르게 논문의 multi-stage는 pre-training으로 heterogeneous out-of-domain 데이터세트를 더욱 잘 활용할 수 있다.
- 구체적으로 ImageBERT 모델은 two pre-training 전략을 사용한다.
- 첫 번째 pre-training 에서는 LAIT 데이터세트를 사용하고 두 번째 stage에서는 public 데이터세트를 (Conceptual Captions and SBU Captions) 사용한다.
- 각 pre-training에서는 4개의 task을 가지고 있다.
- 또한 논문의 방법과 비교하기 위해 일반적인 single-stage pre-training (두 데이터를 섞어서 동시에 학습하는 것)을 하지만 multi-stage pre-training에 비해 잘 작동하지 않는다.
- final fine-tuning에서는 masaked terms과 masked objects을 버리고 사용하게 된다.
4.3 Pre-training tasks
- Task 1: Masked Language Modeling (MLM)
- BERT training에 있던 task와 똑같다.
- n개의 sub-word tokens:
- 여기서 랜덤하게 masking을 15%한다.
- 그 토큰 위치를 , masked word는 으로, non-masked word는 으로 푯기한다.
- masked token은 [MASK]으로 대체되며 random token 혹은 reamain unchanged 토큰은 확률이 각각 80%, 10%, 10%이다. (Mask가 80%)
- prediction은 textual tokens와 주변의 visual features 사이의 cross-attention을 통하여 이루어진다.
- visual tokens:
- 이 loss 식은 데이터세트 D의 (v,w) 쌍으로부터 학습이 된다.
- Task 2: Masked Object Classification (MOC)
- 이것은 MLM task의 확장으로 LM과 비슷하게 visual object tokens으로 수행하는 것이다. (selfie와 비슷한 느낌?)
- 랜덤으로 object token을 15% 선택하는데 zero masking은 90%, 원본은 10%으로 가져간다.
- masked 위치는 , masked token은 으로 ,non-maksed token은 표기한다.
- i번째 M maksed 입력 토큰은 으로 표기한다.
- M masked object tokens을 예측하기 위해 Faster-RCNN 모델의 ground truth labels 으로부터 labeld classification 카테고리로 다룬다.
- masked token의 output vector은 이다.
- 마지막에는 fully-connected layer 으로 K개의 object class을 예측하는 것으로 cross-entropy loss을 다음과 같이 계산한다.
- (selfie와 다르게 순서가 label이 아니고 Faster-RCNN을 이용한다.)
- Task 3: Masked Region Feature Regression (MRFR)
- MOC와 비슷하게 MRFR 또한 visual content을 만든다.
- 그러나 이것은 object feature prediction의 좀 더 정확한 job이다.
- 이 task는 each masked object의 embedding feature을 regress하는 것을 목표로 하고 로 표기한다.
- output feature vector에 fully-connected layer을 연결하여 pooled input RoI object feature과 차원이 같게 한다.
- RoI object feature은 으로 표기하고 loss는 다음과 같이 계산한다.
- 즉 RoI visual tokens과 output feature vector을 같은 차원으로 만들어서 같은 값을 가지게 한다?
- Task 4: Image-Text Matching (ITM)
- LM과 visual content modeling을 추가하여 ITM으로 image-text alignment을 배운다.
- 각 이미지에서 negative sentences을 랜덤으로 샘플링하고 각 문장에서 랜덤하게 negative images을 샘플링해서 negative training data을 만든다.
- (v,w) 쌍에 대한 ground truth label y는 0또는 1이고 이미지와 텍스트가 유사한지를 의미한다.
- BERT와 비슷하게 ImageBERT에서의 [CLS] 토큰을 추가하여 fully-connected layer을 넣어서 image-text similarity score 을 계산하게 만들어 다음의 loss 식을 계산한다.
4.4 Fine-tuning tasks
- Image-Text retrieval task에서 fine-tune하고 evaluate을 한다.
- 이 task는 두 가지 sub-tasks가 있다.
- image retreival
- text retrieval
- Image retrieval targets to retrieve the correct images given an input caption sentence describing the content of image.
- Text retrieval does a similar task in the opposite direction.
- 데이터세트는 MSCOCO와 Flickr30k 데이터세트를 사용했다.
- fine-tune할 때 입력은 pre-training과 똑같이 사용했으며 mask 부분은 없다.
- 다른 negative 샘플링 방법에 따른 objectives로 fine-tuning 하였다.
- image-to-text (sample negative sentences for each image)
- text-to-image (sample negative images for each text)
- loss는 다음의 3가지로 학습하여 best 모델을 선정하였다.
- Binary classification Loss
- image-text 쌍 (v,w)은 ground truth label y (0 or 1)을 가지고 있다.
- 첫 번째 token 의 Transformer 출력은 이며 loss는 다음의 식이다.
- pre-training ITM과 똑같은 것 같은데..?
- Multi-class Classification Loss
- 이것은 positive와 negative 샘플사이의 margin을 크게 하기 위해 자주 쓰이는 loss이다.
- positive pair 에 대해 P-1 negative pairs 을 샘플링한다. (captions or images가 다름)
- 그리고 correct label 을 예측하기 위해 모든 P pairs' first tokens 에 대해 scoring function을 추가하여 다음의 loss식을 구성한다.
- 즉 원래는 이미지-텍스트가 관련있는지 없는지를 판별할 때 score 값이 0~1로 하는 것은 binary classification loss이다.
- (내 생각엔) 여기서는 출력이 [0,1] 혹은 [1,0]을 가지도록 two-class을 가지는 score 함수를 이용하였다는 것이다.
- 따라서 CE loss을 사용했다는 것이고 이렇게 하면 positive와 negative 샘플 사이의 score 차이를 (margin) 크게 가져갈 수 있다고 한다.
- Triplet Loss
- 이것은 모든 negative smaples 중에 hardest negative sample을 선정하겠다는 것이다.
- 즉 가장 어려운 samples보다 실제 positive sample이 더 높은 score을 가지게 하는 loss이다.
- 최종 loss는 위의 loss들을 combination을 하는 것이고 뒤에 실험 결과로 설명을 한다.
5. Experiments
- Image-Text retrieval task에서 pre-trained model의 퀄리티를 zero-shot 결과로 평가할 뿐 아니라 fine-tuning 후에 결과도 평가한다.
- image-retrieval과 text-retrieval task에서 SoTA인 모델과도 비교를 한다.
5.1 Evaluation for the Pre-trained Model
- Pre-train data
- BERT-base 모델로 파라미터 초기화후, LAIT로 학습하고 public 데이터세트 (Conceptual, SBU Captions)으로 학습했다.
- Experiment settings
- 12-layer Transformer with 768 hidden units
- 3072 intermediate units, and 12 attention heads
- Dropout: 0.1
- GELU 활성함수
- max length는 144 (100 visual tokens 포함)
- visual tokens은 Faster-RCNN에서 뽑은 것
- Genome dataset with 1600 카테고리로부터 학습한 Faster-RCNN임
- linguistic tokens와 special tokens도 포함
- Zero-shot result of pre-train model
- 이러한 세팅에서 Flickr30k와 MSCOCO에서 pre-train model을 평가하였다. (w/o fine-tunning)
- MSCOCO에서는 SoTA이지만, Flick30k에서는 UNITER보다 안좋다.
- 여기서의 ImageBERT는 두 단계 pre-training을 거친 것이고 1-stage pre-training을 한 모델은 Table 3에 있다.
- 이 논문 모델말고도 몇 개의 연구만이 zero-shot 결과를 보여주었고 table 1에 있는 모델들이 리포트한 모델들이다. (즉 table 1은 zere-shot 끼리 비교한 것)
- Unicoder-VL[18] only contains one pre-training stage using public out-of-domain dataset (Conceptual Caption and SBU Captions).
- UNITER[21] added partial in-domain datasets (VG and MSCOCO) during pre-training stage, thus getting the highest zero-shot results.
- 여기서 말하길 multi-stage pre-training 전략이 one pre-training 전략보다 더욱 좋은 결과를 보여주고 유용한 지식들을 배운다고 한다.
- 또한 이것이 downstream task의 fine-tuning에 더욱 기여하는 바가 크다고 한다.
5.2 Evaluation for the Fine-tuned Model
- Experiment settings
- LAIT와 public 데이터세트로 pre-training 한 후, fine-tuning을 ITM task에서 하였다.
- Flick30k와 MSCOCO 데이터세트를 사용했고 배치는 24, lr은 5e-5, 130 epochs, 4 V100 GPUs을 사용하였다.
- Fine-tuned results
5.3 Ablation Studies
- Pre-train dataset
- Global image features
- 검출된 RoI가 전체 이미지의 정보를 담고있지 않는 것에 주목할 필요가 있다.
- 그래서 global image features을 visual part에 추가하려고 시도하였다.
- 따라서 입력 사진에서 3개의 다른 CNN 모델 (DenseNet, Resnet, GoogleNet)으로부터 global visual featrues을 뽑아서 사용했다.
- 그러나 성능 향상이 없었고 Table 4의 part1이 그것에 대한 결과이다.
- Pre-train loss
- MRFR은 UNITER에서부터 고안한 loss이다.
- Table4의 part2를 보면 zero-shot에서 큰 성능 효과를 보여준다.
- This implies that adding a harder task for better modeling the visual content can contribute to visual-textual joint learning.
- Number of objects (RoIs) from image
- visual part의 중요성을 이해하기 위해 object 수를 조절해본다.
- 위의 모든 실험은 100 objects을 기준으로 한 것이다.
- 만약 36 objects 수로 줄인다면, table 4의 part3에서 보듯이 성능이 떨어진다.
- 여기서 기본적으로 물체의 bounding box는 겹칠 수가 있기 때문에 중복되는 정보를 제거하기 위해 실험할 때는, 다른 obejcts 수의 영향을 확인하면서 실험했다고 한다. (즉 RoI가 계속커져도 일정 부분에서는 수렴할 것으로 생각됨)
- Fine-tune loss
- section 4.4에서 언급한 듯이 3개의 loss가 있다.
- 다른 방식으로 학습해보았는데 Table 4의 part4에서 보듯이 binary only가 성능이 가장 좋았다.
6. Conclusion
- Transformer 기반으로 vision과 language을 joint embedding을 하였다.
- 또한 supervised 방법으로 Web으로부터 LAIT training 코퍼스를 모았고 이는 현재 가장 큰 vision language 데이터세트이다.
- 이 데이터세트의 효과는 multi-stage pre-training을 통해 입증하였다.
- 이것은 human labels이 부족하지만 large-scale out-of-domain data을 통하여 pre-trained model의 품질을 높이고 downstream tasks에도 효과적임을 보여준다.
- ImageBERT는 MSCOCO와 Flickr30k을 이용한 image retrieval and sentence retrieval에서 SoTA을 달성했다.
- Future work로는 VQA와 VCR, Image captioning와 같은 연구로 확장하려고 한다.
Reference
댓글
댓글 쓰기