Graph Neural Networks (GNN) trong Machine Learning – Khi dữ liệu không còn là dạng bảng
1. Giới thiệu
Trong nhiều bài toán Machine Learning truyền thống, dữ liệu thường được biểu diễn dưới dạng vector (tabular data), chuỗi (text, time-series) hoặc lưới (image). Tuy nhiên, trong thế giới thực, rất nhiều dữ liệu có cấu trúc quan hệ phức tạp, ví dụ:
-
Mạng xã hội (người dùng – bạn bè)
-
Mạng máy tính
-
Phân tử hóa học (nguyên tử – liên kết)
-
Chương trình nguồn (hàm – biến – lời gọi)
Những dữ liệu này tự nhiên được biểu diễn dưới dạng đồ thị (graph). Để học hiệu quả trên loại dữ liệu này, Graph Neural Networks (GNN) đã ra đời.
2. Dữ liệu đồ thị là gì?
Một đồ thị thường được định nghĩa bởi:
-
Node (đỉnh): biểu diễn thực thể (user, atom, function…)
-
Edge (cạnh): biểu diễn mối quan hệ giữa các node
-
Node features: thuộc tính của node
-
Edge features (tùy chọn): thuộc tính của cạnh
Ví dụ:
-
Trong mạng xã hội: node = người dùng, edge = quan hệ bạn bè
-
Trong hóa học: node = nguyên tử, edge = liên kết hóa học
3. Vì sao Neural Network truyền thống không phù hợp?
Các mô hình như:
-
Logistic Regression
-
MLP (Feedforward NN)
-
CNN
-
RNN
đều giả định cấu trúc dữ liệu cố định (vector, grid, sequence).
Trong khi đó, đồ thị có các đặc điểm:
-
Số node thay đổi
-
Không có thứ tự cố định
-
Quan hệ giữa các node rất quan trọng
👉 Do đó, ta cần một mô hình bất biến theo thứ tự (permutation-invariant) và học được quan hệ giữa các node → GNN.
4. ý tưởng cốt lõi của Graph Neural Networks
🔹 Message Passing (Lan truyền thông tin)
Hầu hết các GNN đều dựa trên cơ chế message passing:
Mỗi node sẽ thu thập thông tin từ các node lân cận, sau đó cập nhật biểu diễn của chính nó.
Quy trình cơ bản:
-
Aggregate: gom thông tin từ các neighbor
-
Update: cập nhật embedding của node
-
Repeat: lặp lại nhiều layer → mở rộng phạm vi (k-hop neighbors)
Công thức tổng quát:
5. Các kiến trúc GNN phổ biến
🔹 GCN – Graph Convolutional Network
-
Tổng hợp trung bình (mean) thông tin từ neighbor
-
Đơn giản, hiệu quả
-
Phù hợp cho node classification
🔹 GraphSAGE
-
Lấy mẫu neighbor (sampling)
-
Mở rộng tốt cho đồ thị lớn
-
Học embedding cho node chưa xuất hiện (inductive learning)
🔹 GAT – Graph Attention Network
-
Sử dụng Attention
-
Mỗi neighbor có trọng số khác nhau
-
Hiệu quả khi đồ thị có nhiễu
🔹 Message Passing Neural Network (MPNN)
-
Khung tổng quát cho nhiều GNN
-
Phổ biến trong hóa học và vật lý
6. Các bài toán điển hình với GNN
📌 Node Classification
-
Dự đoán nhãn cho từng node
→ Ví dụ: phân loại người dùng gian lận
📌 Edge Prediction (Link Prediction)
-
Dự đoán xem có cạnh giữa hai node hay không
→ Gợi ý bạn bè, gợi ý kết nối
📌 Graph Classification
-
Phân loại toàn bộ đồ thị
→ Dự đoán tính chất phân tử
7. Ứng dụng thực tế của GNN
-
🔐 An toàn phần mềm: phát hiện lỗ hổng mã nguồn (Code Graph + GNN)
-
🌐 Mạng xã hội: recommendation, community detection
-
🧪 Hóa học – sinh học: drug discovery
-
🚗 Giao thông: dự đoán lưu lượng
-
🧠 AI system reasoning: knowledge graph
8. Thách thức của Graph Neural Networks
-
Đồ thị lớn → tốn bộ nhớ
-
Over-smoothing khi quá nhiều layer
-
Khó huấn luyện trên graph động
-
Thiếu dữ liệu gán nhãn
👉 Đây là lý do nhiều nghiên cứu kết hợp GNN với:
-
Sampling
-
Attention
-
Diffusion Model
-
Transformer
9. Kết luận
Graph Neural Networks mở ra khả năng học trực tiếp trên dữ liệu quan hệ, điều mà các mô hình truyền thống gặp nhiều hạn chế. Khi dữ liệu ngày càng mang tính kết nối và ngữ cảnh, GNN trở thành một trụ cột quan trọng của Machine Learning hiện đại.
Nếu CNN là chìa khóa cho dữ liệu hình ảnh, thì GNN chính là chìa khóa cho dữ liệu quan hệ.