Nội dung text [Exercise] Multi-Head Self-Attention
BÀI TẬP Multi-Headed Self Attention Giả sử chúng ta có câu: "X Y Z W" gồm 4 từ. Mỗi từ được biểu diễn bằng một vector có kích thước 6, và chúng ta sử dụng 2 head. Mỗi head sẽ làm việc với vector có kích thước 3. Cho các ma trận Query (Q), Key (K), và Value (V) cho mỗi từ như sau: Từ Query (Q) Key (K) Value (V) X [1, 0, 1, 0, 2, 1] [0, 1, 0, 1, 1, 0] [1, 0, 2, 1, 0, 1] Y [0, 1, 0, 2, 0, 1] [1, 0, 1, 0, 1, 1] [0, 2, 1, 0, 2, 0] Z [1, 1, 0, 1, 0, 0] [0, 0, 1, 1, 0, 1] [2, 1, 0, 2, 1, 0] W [0, 0, 1, 0, 1, 1] [1, 1, 0, 0, 1, 0] [1, 2, 3, 0, 1, 2] Yêu cầu: 1. Chia các vector Query, Key, và Value của mỗi từ thành 2 head (mỗi head sẽ có kích thước 3). 2. Tính toán dot product giữa Query của từ X và Key của tất cả các từ trong từng head riêng biệt (head 1 và head 2). 3. Chia tỷ lệ (scaled) điểm attention trong mỗi head. 4. Áp dụng hàm Softmax để chuẩn hóa các điểm attention thành xác suất cho từng head. 5. Tính tổng có trọng số (weighted sum) của các vector Value dựa trên trọng số attention cho từng head. 6. Gộp kết quả của các head lại để tính ra đại diện ngữ cảnh mới cho từ X. Hướng dẫn từng bước: Bước 1: Chia vector Query, Key, và Value thành 2 head Chia các vector Query, Key và Value thành 2 head, mỗi head sẽ chứa 3 phần tử. ● Head 1 sẽ lấy 3 phần tử đầu của mỗi vector. ● Head 2 sẽ lấy 3 phần tử cuối của mỗi vector.