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ổ:
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() (trong Full Attention) xuống còn O(), 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.