Tổng quan về Strided Attention
Strided Attention là một cơ chế chú ý thưa (sparse attention) được đề xuất trong bài báo "Generating Long Sequences with Sparse Transformers" (Child et al., 2019). Nó được thiết kế để giảm độ phức tạp tính toán của cơ chế chú ý đầy đủ (full attention) trong Transformer, đặc biệt khi xử lý các chuỗi dài.
Ý tưởng chính:
Thay vì mỗi token chú ý đến tất cả các token khác (độ phức tạp 𝑂()), Strided Attention giới hạn tập hợp chú ý () của mỗi token 𝑖 chỉ bao gồm một số token được chọn theo hai thành phần:
Chú ý cục bộ (Local Attention): Chú ý đến các token gần (trong một cửa sổ cục bộ).
Chú ý bước nhảy (Strided Attention): Chú ý đến các token cách xa 𝑖 với khoảng cách là bội của một stride .
Độ phức tạp giảm xuống còn () (với )
Cơ chế hoạt động của Strided Attention
Tự chú ý đầy đủ (Full Self-Attention)
Để hiểu Strided Attention, trước tiên cần nắm cơ chế tự chú ý đầy đủ trong Transformer:
Trong tự chú ý, mỗi vị trí đầu ra (output position) chú ý đến tất cả các vị trí đầu vào (input positions) trong chuỗi.
Ma trận chú ý (attention matrix) có kích thước , trong đó mỗi phần tử biểu thị mức độ chú ý của vị trí đầu ra đến vị trí đầu vào .
Chú ý thưa (Sparse Attention)
Chú ý thưa giảm độ phức tạp bằng cách chỉ cho phép mỗi vị trí đầu ra chú ý đến một tập hợp con các vị trí đầu vào, thay vì toàn bộ chuỗi. Strided Attention là một dạng chú ý thưa có cấu trúc (structured), nghĩa là các vị trí được chọn theo một mẫu cố định, không phụ thuộc vào nội dung của chuỗi (content-agnostic).
Các thành phần chính của Strided Attention
Strided Attention chia các kết nối chú ý thành hai tập hợp chính cho mỗi vị trí đầu ra :
Tập hợp cục bộ (local attention):
Chú ý đến các vị trí ngay trước trong một cửa sổ có độ dài cố định .
Ý nghĩa:
Chú ý cục bộ giúp token học các mối quan hệ ngắn hạn với các token gần nó, ví dụ: các đặc trưng không gian cục bộ trong hình ảnh (như cạnh, màu sắc) hoặc ngữ cảnh gần trong văn bản.
Tập hợp bước nhảy (strided attention):
Chú ý đến các vị trí cách một khoảng là bội số của (stride).
Ý nghĩa:
Chú ý bước nhảy cho phép token học các mối quan hệ dài hạn, kết nối với các token cách xa nhưng có vị trí tương ứng với stride .
Trong dữ liệu không gian (2D, 3D), điều này giúp học các mối quan hệ dọc theo các trục (hàng, cột, chiều sâu).
Tổng hợp tập hợp chú ý ()
Ý nghĩa:
Kết hợp cả ngữ cảnh cục bộ và dài hạn, Strided Attention cho phép token học các mối quan hệ không gian hiệu quả, phù hợp với dữ liệu có cấu trúc (1D, 2D, 3D).
Ví dụ:
Văn bản có độ dài =16, =4 tại =7
Bước 1: Local attention
= {3,4,5,6,7}
Bước 1: Local attention
= {3, 7, 11, 15}
Bước 3: Tổng hợp
= {3, 4, 5, 6, 7, 11, 15}
Ví dụ:
Hình ảnh có =36, =4 tại =8 ( vì và = 17 ( vì
Tại
Bước 1: Local attention
= {4,5,6,7, 8}
Ánh xạ ngược:
Công thức : = ,
toạ độ:
Bước 2: Local attention
tìm sao cho
=> Các giá trị của : {}
=> Các giá trị của : {}
=> Toạ độ tương ứng:
Bước 3: Tổng hợp
= {}
Toạ độ tổng hợp:
Tương tự với
=> ta thu được kết quả tổng hợp = {}
Toạ độ tổng hợp:
Ý nghĩa:
Strided Attention tận dụng cấu trúc không gian của lưới 2D, cho phép học các đặc trưng cục bộ (như cạnh, màu sắc) và các mẫu dài hạn (như đường thẳng dọc).
Việc chọn hai điểm và thể hiện sự đa dạng trong không gian 2D:
gần mép trên, học các mối quan hệ ở khu vực phía trên và trung tâm.
ở giữa lưới, học các mối quan hệ ngang và dọc ở khu vực mép phải.
Ưu điểm của Strided Attention
Hiệu quả tính toán cao Trong cơ chế chú ý đầy đủ (Full Attention), độ phức tạp là , không khả thi với chuỗi rất dài.
Strided Attention chỉ chú ý đến một số vị trí được chọn theo bước nhảy (stride), giảm độ phức tạp xuống khoảng , tiết kiệm đáng kể tài nguyên tính toán.
Phù hợp cho các bài toán với chuỗi dài hoặc dữ liệu lớn như văn bản, hình ảnh kích thước lớn hoặc dữ liệu 3D.
Kết hợp hiệu quả ngữ cảnh cục bộ và dài hạn Kết hợp hai loại ngữ cảnh:
Ngữ cảnh cục bộ: học các đặc trưng ngắn hạn như biên, họa tiết,...
Ngữ cảnh dài hạn: học các mối liên hệ xa, phát hiện mẫu lặp lại hoặc cấu trúc toàn cục.
Giúp mô hình cân bằng giữa việc hiểu chi tiết nhỏ và thông tin tổng thể.
Tận dụng cấu trúc không gian
Khi áp dụng cho dữ liệu 2D/3D (hình ảnh, voxel), Strided Attention vẫn giữ được khả năng học các mối quan hệ không gian (theo hàng, cột, trục), ngay cả sau khi dữ liệu được tuyến tính hóa.
Hữu ích trong việc phát hiện các mẫu không gian có cấu trúc, như đường thẳng, cạnh, hoặc khối.
Khả năng mở rộng cho dữ liệu đa chiều
Có thể áp dụng linh hoạt cho:
Chuỗi 1D (văn bản)
Dữ liệu 2D (hình ảnh)
Dữ liệu 3D (thể tích)
Chỉ cần tuyến tính hóa dữ liệu đầu vào, không yêu cầu thay đổi lớn về kiến trúc.
Nhược điểm của Strided Attention
Mất mát thông tin từ các token không được chú ý
Chỉ một phần nhỏ các token được chọn vào tập chú ý , các token còn lại bị bỏ qua.
Dễ dẫn đến việc bỏ lỡ các mối quan hệ quan trọng, đặc biệt khi yêu cầu nắm bắt ngữ cảnh toàn cục.
Kém hiệu quả hơn so với chú ý đầy đủ trong các bài toán đòi hỏi tổng hợp thông tin từ toàn bộ chuỗi đầu vào.
Phụ thuộc vào tham số stride
Việc chọn giá trị không hợp lý có thể ảnh hưởng tiêu cực đến hiệu quả của mô hình:
quá nhỏ → tập chú ý cục bộ nhỏ, giảm khả năng nắm bắt ngữ cảnh gần.
quá lớn → giảm khả năng nắm bắt ngữ cảnh dài hạn, hoặc tăng chi phí tính toán.
Cần thử nghiệm và điều chỉnh tham số
phù hợp với từng loại dữ liệu và bài toán → tốn thời gian và tài nguyên.
Hạn chế trong việc học các mối quan hệ phức tạp
Cơ chế stride cố định khiến mô hình chỉ học được các quan hệ tuyến tính theo hướng cụ thể (hàng, cột, trục).
Không linh hoạt với các mẫu không gian phức tạp, chẳng hạn như cấu trúc chéo, cong, hoặc không thẳng hàng.
Giảm hiệu quả trong các bài toán yêu cầu phát hiện quan hệ phi tuyến tính trong không gian dữ liệu.
Khó áp dụng cho dữ liệu không tuần hoàn
Giả định các token cách đều có mối quan hệ ý nghĩa, phù hợp với dữ liệu có cấu trúc đều đặn (như ảnh).
Không phù hợp với dữ liệu không tuần hoàn như văn bản, nơi mối quan hệ giữa các token không phụ thuộc vào khoảng cách đều đặn.
Dễ dẫn đến suy giảm hiệu quả trong các bài toán NLP hoặc dữ liệu phi cấu trúc.