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

Local Attention trong Mô hình Học Sâu

0 0 3

Người đăng: Trần Minh

Theo Viblo Asia

Local Attention là gì?

Local Attention (chú ý cục bộ) là một biến thể của cơ chế attention truyền thống, được thiết kế để giảm chi phí tính toán và tối ưu hóa hiệu suất khi làm việc với dữ liệu có độ dài lớn như văn bản dài hoặc hình ảnh độ phân giải cao.

Thay vì để mỗi phần tử trong chuỗi đầu vào chú ý đến toàn bộ các phần tử còn lại như trong Global Attention, Local Attention giới hạn phạm vi chú ý trong một cửa sổ cục bộ — thường là một số lượng token (hoặc pixel) lân cận được định nghĩa trước.

Cơ chế hoạt động chi tiết của Local Attention

Bước 1: Xác định cửa sổ chú ý (Attention Window)

Với mỗi token trong chuỗi đầu vào, chỉ một tập con các token gần kề (gọi là cửa sổ chú ý) được xét đến.

Kích thước cửa sổ được định nghĩa trước, thường ký hiệu là k.

Ví dụ, nếu k = 3, mỗi token sẽ chú ý đến chính nó và 1 token bên trái, 1 token bên phải.

Ví dụ:

Với chuỗi: (h₁, h₂, h₃, h₄, h₅)

Nếu token trung tâm là h₃ và k = 3, thì cửa sổ chú ý là: (h₂, h₃, h₄)

Bước 2: Tính toán Attention trong cửa sổ

Trong mỗi cửa sổ, attention được tính như thông thường, sử dụng các ma trận Query (Q), Key (K) và Value (V).

Tuy nhiên, ma trận tích QKᵀ chỉ được tính trong phạm vi cửa sổ, giúp giảm độ phức tạp tính toán từ O(n²) xuống O(n·k).

Bước 3: Tạo vector ngữ cảnh (Context Vector)

Vector ngữ cảnh của mỗi token là tổng có trọng số của các trạng thái ẩn trong cửa sổ:

ContextVector=w.h+w.h+w.hContext Vector = w₂.h₂ + w₃.h₃ + w₄.h₄

Các token ngoài cửa sổ (ví dụ: h1, h5) không ảnh hưởng đến vector ngữ cảnh của h3

Bước 4: Di chuyển cửa sổ (Sliding Window)

Để bao phủ toàn bộ chuỗi, cửa sổ được di chuyển trượt dọc theo chuỗi – mỗi token lần lượt làm trung tâm.

Ví dụ:

Bước 1: Trung tâm là h₂ → cửa sổ: (h1, h2, h3)

Bước 2: Trung tâm là h₃ → cửa sổ: (h₂, h3, h4)

Các biến thể của Local Attention

Dilated Attention (Attention giãn cách)

Ý tưởng: Thay vì chú ý liên tục đến các token liền kề, mỗi token sẽ chọn lọc chú ý đến các token cách nhau một khoảng cố định (gọi là dilation factor).

Lợi ích: Mở rộng phạm vi nhận thông tin mà không làm tăng số lượng tham số hay chi phí tính toán quá nhiều.

Ví dụ:

Với chuỗi (h₁, h₂, h₃, h₄, h₅) và dilation = 2, token h₁ sẽ chú ý đến → (h₁, h₃, h₅)

Shifted Window Attention (Cửa sổ dịch chuyển)

Ứng dụng tiêu biểu: Mô hình Swin Transformer.

Cách hoạt động:

Ở mỗi lớp attention, các token được chia thành các cửa sổ cục bộ không chồng lấn.

Ở lớp kế tiếp, cửa sổ sẽ dịch chuyển (shift) so với trước để các token có thể tương tác với vùng lân cận khác nhau.

Lợi ích: Tăng cường kết nối chéo giữa các vùng, từ đó cải thiện khả năng mô hình hóa ngữ cảnh mà vẫn giữ được tính chất local.

Hierarchical Attention (Chú ý phân cấp)

Ý tưởng: Thông tin từ các cửa sổ local ở tầng thấp được tổng hợp và gom lại ở các tầng cao hơn.

Quy trình:

Tầng thấp: attention trong các cửa sổ nhỏ (local).

Tầng cao: thực hiện attention giữa các đại diện vùng (region representations) đã được tóm tắt từ tầng dưới.

Lợi ích:

Mô hình vừa học được thông tin chi tiết (local), vừa hiểu được ngữ cảnh tổng quát (global) theo kiểu phân cấp.

Phù hợp với các bài toán cần hiểu cấu trúc ngữ nghĩa lớn (như phân tích văn bản dài, ảnh độ phân giải cao,...).

Sơ đồ hoạt động của Global attention và Local attention

Global attention

Local attention

Ưu điểm của Local Attention

Hiệu quả tính toán cao:

Local Attention giảm độ phức tạp tính toán từ O(n2n^2) (trong Full Attention) xuống còn O(nkn⋅k), với k là kích thước cửa sổ chú ý. Điều này giúp xử lý chuỗi dài hoặc dữ liệu lớn hiệu quả hơn.

Tiết kiệm bộ nhớ:

Do chỉ tính toán và lưu trữ attention trong phạm vi một cửa sổ nhỏ, Local Attention giảm đáng kể nhu cầu về bộ nhớ, đặc biệt hữu ích khi làm việc với mô hình lớn hoặc thiết bị giới hạn tài nguyên.

Khả năng mở rộng:

Phù hợp với các tác vụ xử lý dữ liệu dài như văn bản dạng sách, tài liệu dài, hoặc ảnh độ phân giải cao (ví dụ ảnh y tế), nơi mà Full Attention thường gặp giới hạn.

Hỗ trợ tính song song tốt:

Các phép tính attention trong từng cửa sổ có thể được thực hiện độc lập và song song, tận dụng tối đa khả năng xử lý song song của GPU hoặc TPU.

Ứng dụng trong thời gian thực:

Nhờ vào hiệu suất cao và chi phí tài nguyên thấp, Local Attention phù hợp cho các hệ thống thời gian thực hoặc các thiết bị có tài nguyên hạn chế như điện thoại, thiết bị IoT.

Hạn chế của Local Attention

Mất ngữ cảnh toàn cục:

Do chỉ chú ý đến các token trong phạm vi cửa sổ, Local Attention dễ bỏ qua các mối quan hệ dài hạn (long-range dependencies).

Ví dụ: Trong một tài liệu dài, token đầu và token cuối có thể có liên kết quan trọng, nhưng nếu nằm ngoài cửa sổ chú ý, mô hình sẽ không thể nhận biết mối quan hệ này.

Phụ thuộc vào kích thước cửa sổ :

Cửa sổ quá nhỏ → Bỏ sót thông tin quan trọng.

Cửa sổ quá lớn → Tăng chi phí tính toán, làm mất đi ưu điểm về hiệu quả.

Thiết kế mô hình phức tạp hơn:

Để khắc phục hạn chế về ngữ cảnh toàn cục, Local Attention thường cần:

Kết hợp với Global Tokens.

Dilated Attention (chú ý giãn cách).

Multi-scale Attention hoặc kiến trúc lai.

Những kỹ thuật này có thể làm tăng độ phức tạp và khó khăn trong triển khai.

Kết luận

Local Attention là một giải pháp mạnh mẽ để tối ưu hóa cơ chế Attention trong các mô hình học sâu, đặc biệt hiệu quả khi xử lý dữ liệu lớn hoặc chuỗi dài. Bằng cách giới hạn phạm vi chú ý trong các cửa sổ cục bộ, nó giúp giảm chi phí tính toán và tiết kiệm bộ nhớ, đồng thời vẫn duy trì hiệu suất cao trong nhiều tác vụ thực tế.

Mặc dù Local Attention hạn chế trong việc nắm bắt ngữ cảnh toàn cục, các kỹ thuật như Dilated Attention, Shifted Windows và Hierarchical Attention đã được phát triển để khắc phục nhược điểm này.

Với các ứng dụng ngày càng mở rộng trong xử lý ngôn ngữ tự nhiên (NLP), thị giác máy tính (Computer Vision) và nhiều lĩnh vực khác, Local Attention đang ngày càng khẳng định vai trò quan trọng trong lĩnh vực học sâu. Trong tương lai, các nghiên cứu tiếp theo hứa hẹn sẽ nâng cao hơn nữa hiệu quả và khả năng áp dụng của Local Attention trong thực tiễn.

Tài liệu tham khảo

Two Minutes NLP — Visualizing Global vs Local Attention

Global-and-Local attention

Local Attention

Bình luận

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

- 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 290

- 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 318

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

Sơ lược về bài toán Person Re-identification

Với những công nghệ hiện đại của thế kỷ 21 chúng ta đã có những phần cứng cũng như phần mềm mạnh mẽ để giải quyết những vấn đề và bài toán nan giải như face recognition, object detection, NLP,... Một trong những vấn đề nan giải cũng được mọi người chú ý ko kém những chủ đề trên là Object Tracking, v

0 0 71

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

Bacteria classification bằng thư viện fastai

Giới thiệu. fastai là 1 thư viện deep learning hiện đại, cung cấp API bậc cao để giúp các lập trình viên AI cài đặt các mô hình deep learning cho các bài toán như classification, segmentation... và nhanh chóng đạt được kết quả tốt chỉ bằng vài dòng code. Bên cạnh đó, nhờ được phát triển trên nền tản

0 0 40

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

Xác định ý định câu hỏi trong hệ thống hỏi đáp

Mục tiêu bài viết. Phân tích câu hỏi là pha đầu tiên trong kiến trúc chung của một hệ thống hỏi đáp, có nhiệm vụ tìm ra các thông tin cần thiết làm đầu vào cho quá trình xử lý của các pha sau (trích c

0 0 95

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

Epoch, Batch size và Iterations

Khi mới học Machine Learning và sau này là Deep Learning chúng ta gặp phải các khái niệm như Epoch, Batch size và Iterations. Để khỏi nhầm lẫn mình xin chia sẻ với các bạn sự khác nhau giữa các khái n

0 0 52