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.
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
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.
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:
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
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)
Sử dụng Attention
Mỗi neighbor có trọng số khác nhau
Hiệu quả khi đồ thị có nhiễu
Khung tổng quát cho nhiều GNN
Phổ biến trong hóa học và vật lý
Dự đoán nhãn cho từng node
→ Ví dụ: phân loại người dùng gian lận
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
Phân loại toàn bộ đồ thị
→ Dự đoán tính chất phân tử
🔐 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
Đồ 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
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ệ.
» Các tin khác: