Trước khi đến với bài viết, bạn đọc nên có kiến thức trước đó về một số góc nhìn khác nhau của phép nhân ma trận. Nếu chưa biết hoặc đã quên, bạn có thể tham khảo bài viết này: https://eli.thegreenplace.net/2015/visualizing-matrix-multiplication-as-a-linear-combination/.
Tổ hợp tuyến tính của tập hợp đặc trưng
Chú ý rằng, như ở biểu diễn ở hình trên, trong bài này các vector đặc trưng sẽ được thể hiện là vector hàng.
Tuỳ vào giá trị của vector trọng số, ta có thể phân loại ra các mẫu hình sau:
- Chọn cứng nếu vector trọng số là vector one-hot.
- Chọn mềm nếu vector trọng số có tất cả các phần từ dương và tổng của tất cả các phần tử bằng 1.
- Vector trọng số có các phần tử không âm, có thể có các phần tử bằng 0.
Ví dụ
- Ví dụ của chọn cứng là lớp Embedding(https://pytorch.org/docs/stable/generated/torch.nn.Embedding.html) thường sử dụng ở những mạng neuron xử lý dữ liệu văn bản. Ở đây, ma trận là tham số cần học còn vector trọng số lại là đặc trưng của dữ liệu.
- Ví dụ của chọn mềm là self-attention của kiến trúc Transformer(https://arxiv.org/abs/1706.03762). . Ở đây, ma trận đặc trưng là ma trận value V, còn vector trọng số được tính toán từ các ma trận query Q và key K. Hình dưới đây là ví dụ cho lớp attention của Transformer, đầu vào là một điểm dữ liệu có 4 từ.
- Mẫu hình vector trọng số thứ ba có những phần tử bằng 0, có thể coi là những phần tử này bị đàn áp về 0 do áp dụng một luật rời rạc, ví dụ như luật kề cận trong dữ liệu đồ thị hay luật không được nhìn về các từ ở tương lai (look-ahead) trong thành phần decoder của Transformer. Một ví dụ là kiến trúc mạng neuron đồ thị Graph Isomorphism Network(GIN)(https://arxiv.org/abs/1810.00826):
Hình dưới mô tả phép kết tập đồ thị của GIN tại đỉnh thứ 2 của đồ thị hữu hướng:
Khi thể hiện công thức kết tập đồ thị GIN dưới dạng ma trận, ta có thể thấy rõ sự xuất hiện của mẫu hình vector trọng số thứ ba (epsilon có thể là hằng số hoặc là tham số mô hình):
Quay lại một chút với mẫu hình chọn mềm. Giả sử như thay attention score, ta sử dụng một đại lượng d_i tương ứng cho đơn vị thứ i, điểm số giữa đơn vị thứ i và j được tính là d_i * d_j. Ta có ma trận sau đây thay cho softmax(QK^T/sqrt(d)): Áp dụng ma trận điểm số này cho kiểu dữ liệu đồ thị, ta sẽ đàn áp đi những điểm số giữa những đỉnh không có quan hệ hàng xóm, tức thực hiện phép tích Hadamard sau:
Trước khi tiếp tục, ta sẽ chứng minh bổ đề sau đây. Để cho ngắn gọn, tôi sẽ không trình bày hình thức bổ đề đó ra, và chứng minh cho bổ đề này là không khó, xin nhường lại cho bạn đọc.
Như vậy, phép tích Hadamard ở trên có thể được viết lại thành tích của hai ma trận đường chéo với một ma trận vuông. Đó chính là công thức của mạng neuron đồ thị Graph Convolutional Network(https://arxiv.org/abs/1609.02907). Trong đó, đại lượng cụ thể mà d đại diện là bậc của đỉnh.
Dot product similarity giữa tập hợp đặc trưng này và tập hợp đặc trưng khác
Ví dụ là self-attention của Transformer