- vừa được xem lúc

[Paper Reading] ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

0 0 14

Người đăng: Viblo AI

Theo Viblo Asia

Giới thiệu chung

Các mô hình Vision-and-Language pretraining (VLP) tỏ ra hiệu quả trong việc cải thiện các downstream task liên quan đến sự kết hợp thông tin cả ngôn ngữ và hình ảnh. Để đưa vào mô hình VLP, các pixel ảnh cần được embed cùng với các language token. Với bước embed ảnh thì không còn xa lạ rồi, ta có thể sử dụng những mạng CNN phổ biến 😄

Cho đến nay, hầu hết các nghiên cứu VLP đều tập trung vào việc cải thiện hiệu suất bằng cách cải thiện bước embed hình ảnh. Tuy nhiên bước embed này có những hạn chế trong thế giới thực do sử dụng mô hình thường rất nặng, dẫn đến tốc độ chậm khi thực hiện truy vấn trong thế giới thực. Vì vậy, nhóm tác giả tập chung chuyển hướng nghiên cứu sang việc thiết kế một trình visual embedding nhanh, nhẹ, ngon 😄 Những nghiên cứu gần đây chứng minh rằng sử dụng một linear projection đơn giản cho mỗi patch mang lại sự hiệu quả cho việc embed các pixel ảnh trước khi đưa chúng vào mô hình transformer 😃. Mặc dù thường sử dụng cho văn bản nhưng mô hình transformer gần đây tỏ ra hiệu quả với các dữ liệu hình ảnh. Việc áp dụng transformer cho hình ảnh trong mô hình VLP giúp thay thế cho các mô hình CNN truyền thống.

Trong bài báo, nhóm tác giả đề xuất mô hình Vision-and-Language Transformer (ViLT) xử lý 2 phương thức (vision và language) theo một cách thống nhất. Điểm khác biệt nhất so với các mô hình VLP trước đây là tính "nông" của mô hình được đề xuất, ở đây là ảnh đầu vào sẽ không phải đi qua một mạng CNN riêng biệt 😃 Việc loại bỏ bước embedding visual sử dụng mô hình học sâu này giúp giảm đáng kể kích thước và thời gian chạy của mô hình tổng (xem hình dưới)

Đây cũng là một trong những ý tưởng hay ho trong bài báo. Cùng tìm hiểu sâu hơn ở các phần dưới nhé 😄

Phương pháp

Phân loại mô hình Vision-and-Language

Nhóm tác giả đề xuất phân loại các mô hình vision-and-language dựa trên 2 thông tin sau:

  • So sánh 2 phương thức về mặt tham số và tài nguyên tính toán
  • 2 phương thức có tương tác trong một mạng học sâu hay không

Dựa vào 2 thông tin trên ta có 4 trường hợp như hình dưới. Độ cao của hình chữ nhật biểu thị cho tài nguyên tính toán tương đối của module đó.

Ta có thấy một số ví dụ cho 4 trường hợp này như sau:

  • Với hình (a) ta có model VSE++ và SCAN. 2 model này sử dụng các embedder riêng biệt cho ảnh và văn bản (với ảnh thì nặng hơn 😄) Sau đó mô hình biểu diễn sự tương đồng giữa các embedded feature từ 2 mô hình với phép nhân vô hướng đơn giản hoặc các lớp shallow attention.
  • Với hình (b) ta có model CLIP sử dụng transformer embedder cho 2 phương thức riêng biệt với độ phức tạp tương đồng. Tương tác giữa pooled image vector và text vector vẫn là "nông" (sử dụng tích vô hướng). Tuy nhiên, việc sử dụng các embedder mạnh cho từng phương thức không đảm bảo rằng mô hình sẽ học hiệu quả các task vision-and-language phức tạp. Điển hình như nếu ta fine-tuning MLP head trên NLVR2 thay cho dot product của CLIP thì độ chính xác chỉ khoảng 50.99 vì vậy các biểu diễn không có khả năng học task này. Vì vậy điều này thúc đẩy việc cần xây dựng một cấu trúc tương tác giữa các phương thức chặt chẽ hơn 😄
  • Với hình (c), các mô hình VLP gần đây sử dụng một deep transformer để mô hình hóa tương tác các feature ảnh và văn bản. CNN vẫn sử dụng để trích xuất và embed image feature. Điều này làm cho mô hình có kích thước lớn, yêu cầu nhiều hơn và tài nguyên tính toán.
  • ViLT chính là mô hình kinh điển đầu tiên cho hình (d). Trong đó lớp embedding nông, nhẹ. Do đó, kiến trúc này tập trung hầu hết các tính toán vào việc mô hình hóa các tương tác giữa các phương thức 😄

Sự tương tác giữa 2 phương thức

Cốt lõi của các mô hình VLP hiện đại là Transformer (đi đâu cũng thấy Transformer nhỉ 😃). Mô hình nhận đầu vào là các embedding của hình ảnh, văn bản, mô hình hóa giữa các phương thức và tương tác giữa các phương thức qua các lớp, sau đó xuất ra một chuỗi feature được ngữ cảnh hóa. Trong mô hình này, nhóm tác giả sử dụng cách tiếp cận single-stream tức là các layer sẽ thực hiện các thao tác với đầu vào là concat embed của ảnh và văn bản. Cách tiếp cận này đảm bảo không phải bổ sung các tham số như dual-stream.

Visual Embedding

Thay vì sử dụng Region feature và Grid Feature, nhóm tác giả giới thiệu Patch projection cho module trích xuất, cụ thể là linear project cho các image patch. Patch projection không còn xa lạ nếu như bạn đã đọc paper về mô hình ViT. Nhóm tác giả sử dụng một 32×3232 \times 32 patch projection chỉ yêu cầu 2.4M tham số.

Vision-and-Language Transformer

Tổng quan mô hình

Kiến trúc của ViLT khá đơn giản như trên hình. Một điểm hay là nhóm tác giả khởi tạo trọng số của mô hình tương tác transformer từ pretrained ViT thay vì BERT. Việc khởi tạo này làm "tăng sức mạnh" của interaction layer để xử lý visual feature, điều này bù đắp vào việc ta đã bỏ đi một deep visual embedder riêng biệt. 😃 Nhóm tác giả cũng đã thực nghiệm khởi tạo trọng số cho các lớp từ BERT pretrained và sử dụng pretrained patch project từ ViT nhưng cách này không hiệu quả.

Mô hình hoạt động như sau: Input text tRL×Vt \in \mathbb{R}^{L \times|V|} được embed thành tˉRL×H\bar{t} \in \mathbb{R}^{L \times H} với 1 ma trận word embedding TRV×HT \in \mathbb{R}^{|V| \times H} và 1 ma trận position embedding Tpos R(L+1)×HT^{\text {pos }} \in \mathbb{R}^{(L+1) \times H}.

Ảnh đầu vào IRC×H×WI \in \mathbb{R}^{C \times H \times W} được cắt thành các patch và flatten thành vRN×(P2C)v \in \mathbb{R}^{N \times\left(P^2 \cdot C\right)} trong đó (P,P)(P, P) là patch resolution và N=HW/P2N=H W / P^2. Tiếp theo là linear projection VR(P2C)×HV \in \mathbb{R}^{\left(P^2 \cdot C\right) \times H} và position embedding Vpos R(N+1)×H,vV^{\text {pos }} \in \mathbb{R}^{(N+1) \times H}, v được embed thành vˉRN×H\bar{v} \in \mathbb{R}^{N \times H}.

Text và image embeddings được cộng với modal-type embedding tương ứng vectors ttype,vtypeRHt^{\mathrm{type}}, v^{\mathrm{type}} \in \mathbb{R}^H, sau đó được concat thành một chuỗi tổng hợp z0z^0. Contextualized vector zz được cập nhật thông qua DD depth transformer layers.

Pre-training Objectives

2 mục tiêu chính và phổ biến khi train mô hình VLP model là Image text matching (ITM) và masked language modeling (MLM)

Image Text Matching

Nhóm tác giả ngẫu nhiên thay ảnh đã căn chỉnh bằng một ảnh khác với xác suất là 0.5. Ngoài ra, kiến trúc bổ sung thêm 1 lớp ITM có nhiệm vụ chiếu pooled output feature pp qua binary class. Sau đó nhóm tác giả thực hiện tính toán negative log-likelihood loss đại diện cho ITM loss.

Một điểm hay nữa là nhóm tác giả thiết kế word patch alignment (WPA) dùng đế tính toán alignment score giữa 2 tập con zD:zDtz^D : z^D | t (textual subset) và zDvz^D|v (visual subset) sử dụng inexact proximal point method for optimal transports (IPOT). Phần này mình để nguyên tiếng Anh nha 😄 vì dịch ra tiếng Việt có thể không được gần nghĩa. Bạn đọc có thể tìm hiểu cách implement tại đây https://github.com/xieyujia/IPOT

Masked Language Modeling

Mục tiêu chính là dự đoán label của các masked text token tmaskedt_{masked} từ contextualized vector zmaskedDtz_{masked}^D|t. Nhóm tác giả che ngẫu nhiên tt với xác suất là 0.15. MLM loss ở đây là negative log-likelihood loss cho các masked token.

Whole Word Masking

Đây là một kĩ thuật masking (che) mà ta sẽ mask tất cả chữ cái trong một từ. Cách này thể hiện sự hiệu quả trên các downstream task khi ứng dụng BERT.

Ý tưởng của phương pháp này như sau. Ví dụ, cho từ "giraffe" đã được token hóa thành 3 thành phần sau ["gi", "##raf", "##fe"], cách token hóa này sử dụng bert-base-uncased tokenizer. Nếu như không phải toàn bộ token được gán nhãn, ví dụ như , ["gi", "[MASK]", "##fe"], mô hinh sẽ chỉ phụ thuộc vào các token lân cận ["gi", "##fe"] để dự đoán ra từ bị mask là "##raf" mà không phải dựa vào thông tin từ ảnh. 😄

Image Augmentation

Nhóm tác giả sử dụng RandAugment trong quá trình fine-tuning. Tuy nhiên có 2 phương pháp augment sau bị loại bỏ là color inversion bởi vì văn bản đầu vào có thể có thông tin về màu tại phần nào đó trong ảnh. Tiếp đó, cutout cũng được loại bỏ do việc này có thể làm mất một số object quan trọng có kích thước nhỏ trong ảnh.

Kết luận

Trong bài báo, nhóm tác giả đã đóng góp kiến trúc VLP ViLT hỗ trợ giải quyết các bài toán về Visual - Language một cách hiệu quả. Bên cạnh đó là một số kĩ thuật được áp dụng như Augmentation, Masking làm tăng hiệu suất của mô hình. Đây là một mô hình bạn có thể thử trong một số bài toán như Image Caption hoặc Visual Question Answering. 😄

Tài liệu tham khảo

[1] ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

[2] Các mô hình logit và probit

[3] https://github.com/dandelin/ViLT

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hành trình AI của một sinh viên tồi

Mình ngồi gõ những dòng này vào lúc 2h sáng (chính xác là 2h 2 phút), quả là một đêm khó ngủ. Có lẽ vì lúc chiều đã uống cốc nâu đá mà giờ mắt mình tỉnh như sáo, cũng có thể là vì những trăn trở về lý thuyết chồng chất ánh xạ mình đọc ban sáng khiến không tài nào chợp mắt được hoặc cũng có thể do mì

0 0 131

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 204

- vừa được xem lúc

Tìm hiểu về YOLO trong bài toán real-time object detection

1.Yolo là gì. . Họ các mô hình RCNN ( Region-Based Convolutional Neural Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.

0 0 272

- vừa được xem lúc

Encoding categorical features in Machine learning

Khi tiếp cận với một bài toán machine learning, khả năng cao là chúng ta sẽ phải đối mặt với dữ liệu dạng phân loại (categorical data). Khác với các dữ liệu dạng số, máy tính sẽ không thể hiểu và làm việc trực tiếp với categorical variable.

0 0 244

- vừa được xem lúc

TF Lite with Android Mobile

Như các bạn đã biết việc đưa ứng dụng đến với người sử dụng thực tế là một thành công lớn trong Machine Learning.Việc làm AI nó không chỉ dừng lại ở mức nghiên cứu, tìm ra giải pháp, chứng minh một giải pháp mới,... mà quan trọng là đưa được những nghiên cứu đó vào ứng dụng thực tế, được sử dụng để

0 0 55

- vừa được xem lúc

Xây dựng hệ thống Real-time Multi-person Tracking với YOLOv3 và DeepSORT

Trong bài này chúng ta sẽ xây dựng một hệ thống sử dụng YOLOv3 kết hợp với DeepSORT để tracking được các đối tượng trên camera, YOLO là một thuật toán deep learning ra đời vào tháng 5 năm 2016 và nó nhanh chóng trở nên phổ biến vì nó quá nhanh so với thuật toán deep learning trước đó, sử dụng YOLO t

0 0 303