
Graph Neural Network là gì?

Graph Neural Network (GNN) là lớp mạng nơ-ron nhân tạo được thiết kế chuyên biệt để xử lý dữ liệu dạng đồ thị. Khác với mạng nơ-ron truyền thống hoạt động trên dữ liệu dạng lưới (grid) như ảnh hay chuỗi văn bản, GNN khai thác cấu trúc quan hệ giữa các đối tượng — tức các đỉnh (node) và cạnh (edge) trong đồ thị.
Trong thực tế, dữ liệu dạng đồ thị xuất hiện ở khắp nơi: mạng xã hội, phân tử hóa học, hệ thống giao thông, đồ thị tri thức, và đặc biệt là blockchain. Mỗi giao dịch trên blockchain có thể được mô tả như một đồ thị, trong đó đỉnh là địa chỉ ví và cạnh là các giao dịch.
GNN giải quyết bài toán “học trên đồ thị” bằng cơ chế message passing — mỗi node cập nhật biểu diễn của mình bằng cách tổng hợp thông tin từ các node lân cận. Quá trình này lặp lại qua nhiều lớp GNN, cho phép mỗi node “nhìn thấy” thêm nhiều bước kề trong đồ thị.
Các kiến trúc GNN phổ biến
GCN — Graph Convolutional Network
Được giới thiệu bởi Kipf & Welling năm 2017, GCN là nền tảng của hầu hết kiến trúc GNN hiện đại. GCN thực hiện phép convolutive trên đồ thị bằng cách tính trung bình có trọng số các đặc trưng từ node lân cận:
Với mỗi node v, đặc trưng tại lớp tiếp theo được tính bằng:
H^(l+1) = σ(D̃^(-1/2) Ã D̃^(-1/2) H^(l) W^(l))
Trong đó Ã là ma trận kề cộng thêm ma trận đơn vị, D̃ là ma trận bậc, W^(l) là ma trận trọng số cần học. GCN đạt 81.5% accuracy trên benchmark Cora citation network — mức baseline vững cho các kiến trúc sau này.
GraphSAGE — Sampling and Aggregating
Được đề xuất bởi Hamilton và cộng sự năm 2017, GraphSAGE cải thiện khả năng khái quát hóa (generalize) của GNN bằng cách:
- Thay vì học embedding cố định cho từng node, GraphSAGE học hàm khái quát hóa (aggregation function)
- Hỗ trợ unsupervised và semi-supervised learning
- Sử dụng sampling để giảm chi phí tính toán — phù hợp với đồ thị lớn
- Đạt 78.9% accuracy trên benchmark Cora
GAT — Graph Attention Network
GAT (Veličković và cộng sự, 2017) giới thiệu cơ chế attention vào GNN. Thay vì gán trọng số cố định cho mỗi node lân cận, GAT tự học trọng số attention — cho phép mô hình “tập trung” vào các node quan trọng nhất.
GAT đạt 83.0% accuracy trên Cora — mức cao nhất trong các kiến trúc GNN cơ bản. Cơ chế attention giúp GAT xử lý tốt các đồ thị có node quan trọng bất đối xứng.
GIN — Graph Isomorphism Network
GIN (Xu và cộng sự, 2018) chứng minh rằng hàm sum pooling có sức biểu diễn mạnh nhất trong các hàm aggregation. GIN đạt 80.2% accuracy trên Cora và đặc biệt mạnh trong phân biệt cấu trúc đồ thị.
| Kiến trúc | Năm | Accuracy (Cora) | Đặc điểm chính |
|---|---|---|---|
| GCN | 2017 | 81.5% | Cơ sở, convolution trên đồ thị |
| GraphSAGE | 2017 | 78.9% | Sampling + aggregation function |
| GAT | 2017 | 83.0% | Attention-based aggregation |
| GIN | 2018 | 80.2% | Sum pooling tối ưu biểu diễn |
Ứng dụng thực tế của GNN
Phát hiện phân tử thuốc
Một trong những ứng dụng đột phá nhất của GNN là trong lĩnh vực phát triển thuốc. Phân tử hóa học tự nhiên là một đồ thị — nguyên tử là node, liên kết hóa học là edge. GNN học biểu diễn phân tử từ cấu trúc đồ thị, từ đó dự đoán tính chất hóa học và sinh học.
DeepMind và nhiều công ty dược phẩm lớn đã sử dụng GNN để giảm thời gian sàng lọc phân tử từ hàng năm xuống còn vài tuần.
Gian lận tài chính và blockchain
GNN cực kỳ hiệu quả trong phát hiện gian lận vì mô hình quan hệ giữa các tài khoản. Một tài khoản bất thường không chỉ có hành vi riêng lẻ mà còn có xu hướng kết nối với nhóm gian lận. GNN khai thác chính cấu trúc mối quan hệ này để xác định các nhóm gian lận.
Hệ thống gợi ý
Thay vì collaborative filtering truyền thống, GNN mô hình hóa toàn bộ đồ thị người dùng-sản phẩm và học embedding trực tiếp trên đồ thị. Các công ty như Pinterest đã áp dụng GNN (PinSage) với hàng tỷ nodes.
Phân tích mạng xã hội
GNN được sử dụng để dự đoán link (các kết nối mới), phân loại node (nhóm người dùng), và phát hiện cộng đồng trong mạng xã hội.
Thư viện GNN mã nguồn mở

PyTorch Geometric (PyG)
Là thư viện GNN phổ biến nhất trên GitHub với hơn 24,100 stars. PyG xây dựng trên PyTorch, cung cấp API trực quan cho việc xây dựng và huấn luyện mô hình GNN. Thư viện hỗ trợ hơn 30 cấu trúc GNN khác nhau và nhiều dataset benchmark.
Deep Graph Library (DGL)
Phát triển bởi Amazon, DGL đạt 14,300 stars trên GitHub. DGL hỗ trợ cả PyTorch và TensorFlow, tối ưu hiệu năng cho đồ thị lớn với cơ chế message passinghiệu quả cao.
Spektral
Thư viện GNN cho TensorFlow/Keras với hơn 2,400 stars. Spektral đặc biệt phù hợp cho người mới bắt đầu vì API giống Keras — trực quan và dễ tiếp cận.
Mỗi thư viện có thế mạnh riêng: PyG mạnh về đa dạng kiến trúc, DGL mạnh về hiệu năng đồ thị lớn, Spektral mạnh về ease-of-use.
Hướng dẫn bắt đầu với GNN
Bước đầu tiên để xây dựng mô hình GNN là xử lý dữ liệu đồ thị. Với PyTorch Geometric, quy trình cơ bản gồm:
- Định nghĩa đồ thị: Biến đổi dữ liệu thành dạng node features (ma trận N x F) và edge index (ma trận 2 x E)
- Xây dựng kiến trúc: Chọn lớp GNN phù hợp (GCNConv, GATConv, SAGEConv)
- Training loop: Forward pass trên đồ thị, tính loss, backpropagation
- Đánh giá: Kiểm tra accuracy, F1-score trên test set
Với PyG, một mô hình GCN cơ bản chỉ cần khoảng 20 dòng code Python. Thư viện đã tích hợp sẵn nhiều dataset benchmark (Cora, CiteSeer, PubMed, OGB) để nghiên cứu viên có thể bắt đầu ngay.
Thách thức và tương lai
GNN vẫnđối mặt với nhiều thách thức quan trọng. Over-squashing — vấn đề thông tin bị nén quá nhiều khi truyền qua nhiều lớp — giới hạn khoảng cách truyền tin hiệu quả. Scalability với đồ thị hàng tỷ nodes vẫn là bài toán mở. Và heterogeneous graph (đồ thị đa loại node/cạnh) đòi hỏi kiến trúc phức tạp hơn.
Tuy nhiên, sự phát triển nhanh chóng của GNN trong cả nghiên cứu và ứng dụng công nghiệp cho thấy đây là hướng đi đầy hứa hẹn. Với sự kết hợp giữa GNN và LLM (Language Model) trong graph-augmented retrieval, tương lai của học trên đồ thị rất rộng mở.
Xem thêm về các kiến trúc GNN tại paper gốc Kipf & Welling — Semi-Supervised Classification with Graph Convolutional Networks và PyTorch Geometric documentation.
