Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Graph Neural Network (GNN)

Mạng nơ-ron đồ thị (GNN) học từ các nút và cạnh bằng cách truyền thông điệp giữa các nút lân cận. Nội dung bao gồm truyền thông điệp, GCN, GAT, ứng dụng thực tế và code.

Mạng nơ-ron đồ thị (GNN) là một mạng nơ-ron hoạt động trực tiếp trên đồ thị: tập hợp các nút được nối với nhau bằng cạnh, trong đó cả nút và cạnh đều có thể mang đặc trưng. Phân tử (nguyên tử và liên kết), mạng xã hội (người dùng và quan hệ theo dõi), mạng lưới đường bộ (giao lộ và đoạn đường), lưới 3D và khớp của bộ xương người đều là đồ thị. Đồ thị không có lưới hoặc thứ tự cố định, còn mỗi nút có số lượng láng giềng khác nhau; vì vậy, các bộ lọc trượt của mạng nơ-ron tích chập (CNN) và cách đọc tuần tự của mạng nơ-ron hồi tiếp (RNN) không thể áp dụng trực tiếp. GNN xử lý đặc điểm này bằng truyền thông điệp: mỗi nút liên tục cập nhật vector đặc trưng của nó dựa trên đặc trưng của các nút lân cận, tạo ra embedding nút mã hóa cả thuộc tính riêng của nút lẫn vị trí của nút trong đồ thị.

Truyền thông điệp hoạt động như thế nào#

Một layer GNN cập nhật mọi node qua ba bước. Mỗi neighbor gửi một message, thường là phép biến đổi được học từ các feature của node đó. Node tổng hợp các message nhận được bằng một hàm không phụ thuộc vào thứ tự, chẳng hạn tổng, trung bình hoặc giá trị lớn nhất. Sau đó, node kết hợp kết quả tổng hợp với các feature của chính nó để tạo representation mới. Vì phép tổng hợp không phụ thuộc vào thứ tự nên kết quả không bị ảnh hưởng bởi cách đánh số các node. Năm 2017, Justin Gilmer và các cộng sự mô tả nhiều GNN như những trường hợp cụ thể của framework message passing neural network này. Sau layer cuối cùng, một head dành riêng cho tác vụ sử dụng các embedding của node để gán nhãn node, dự đoán cạnh bị thiếu hoặc phân loại toàn bộ graph:

Mỗi layer mở rộng phạm vi quan sát của một node thêm một hop, vì vậy sau k layer, embedding của node phụ thuộc vào mọi node cách nó không quá k cạnh — tức receptive field của node đó trong graph. Đoạn mã PyTorch dưới đây tạo graph đường đi gồm sáu node, áp dụng ba layer tích chập graph với phép chuẩn hóa trong GCN của Thomas Kipf và Max Welling, rồi dùng autograd để liệt kê những node đầu vào ảnh hưởng đến node 0 sau mỗi layer:

import torch
from torch import nn

# A path graph 0-1-2-3-4-5 as an adjacency matrix with self-loops
A = torch.eye(6)
for i in range(5):
    A[i, i + 1] = A[i + 1, i] = 1
deg = A.sum(dim=1)
A_hat = A / torch.sqrt(deg[:, None] * deg[None, :])  # GCN normalization D^-1/2 (A + I) D^-1/2

torch.manual_seed(0)
x = torch.randn(6, 4, requires_grad=True)  # 4 input features per node
layers = [nn.Linear(4, 4) for _ in range(3)]

h = x
for k, layer in enumerate(layers, start=1):
    h = torch.tanh(A_hat @ layer(h))  # each node mixes in its neighbors' transformed features
    grad = torch.autograd.grad(h[0].sum(), x, retain_graph=True)[0]
    print(f"After layer {k}, node 0 depends on nodes {grad.abs().sum(dim=1).nonzero().flatten().tolist()}")

Đoạn mã in ra [0, 1], [0, 1, 2] và [0, 1, 2, 3]: receptive field của node 0 tăng chính xác một hop sau mỗi layer.

Các kiến trúc GNN phổ biến#

  • GCN: Mạng tích chập đồ thị tính H′ = σ(D̃^(−1/2) Ã D̃^(−1/2) H W), trong đó Ã là ma trận kề có self-loop và D̃ là ma trận bậc tương ứng: phép tính này lấy trung bình có trọng số theo bậc trên mỗi node cùng các neighbor của node đó, sau đó nhân với ma trận trọng số W dùng chung cho mọi node.
  • GraphSAGE: Lấy mẫu một số lượng neighbor cố định cho mỗi node và học hàm tổng hợp, nhờ đó có thể mở rộng cho các graph rất lớn và tạo embedding cho những node xuất hiện sau khi huấn luyện.
  • GAT: Mạng attention đồ thị gán trọng số cho mỗi neighbor bằng các điểm số attention được học, thay vì dùng trọng số cố định dựa trên bậc.
  • GIN: Mạng đẳng cấu đồ thị cộng các neighbor rồi áp dụng MLP. Keyulu Xu và các cộng sự đã chứng minh rằng cách này giúp mô hình phân biệt graph tốt ngang với phép kiểm tra Weisfeiler-Lehman, giới hạn trên của phương pháp message passing tiêu chuẩn.
  • Graph transformer: Áp dụng self-attention trên toàn bộ node và thêm positional encoding suy ra từ cấu trúc graph. Bản thân một transformer tiêu chuẩn cũng là một GNN trên graph đầy đủ kết nối gồm các token.

Việc xếp chồng nhiều layer gây ra hiện tượng over-smoothing: phép tính trung bình lặp đi lặp lại kéo các embedding node lại gần nhau cho đến khi chúng không còn phân biệt được. Vì vậy, nhiều GNN chỉ dùng hai hoặc ba layer, giống như GCN ban đầu với hai layer. PyTorch Geometric và Deep Graph Library (DGL) triển khai các layer này hiệu quả trên danh sách cạnh thưa.

Ứng dụng thực tế#

  • Dự báo thời tiết: GraphCast của Google DeepMind, được công bố trên Science năm 2023, thực hiện message passing trên mesh đa tỷ lệ bao phủ toàn cầu và tạo dự báo 10 ngày ở độ phân giải 0.25° trong chưa đầy một phút; mô hình vượt trội hơn các hệ thống xác định vận hành chính xác nhất trên 90% trong số 1.380 mục tiêu đánh giá.
  • Khám phá thuốc: Năm 2020, các nhà nghiên cứu MIT huấn luyện một mạng message passing có hướng để dự đoán hoạt tính kháng khuẩn từ graph phân tử, rồi dùng mạng này phát hiện halicin — một hợp chất có cấu trúc khác biệt với các kháng sinh đã biết và tiêu diệt được nhiều vi khuẩn kháng thuốc trong thử nghiệm phòng thí nghiệm.
  • Hệ thống gợi ý: PinSage của Pinterest học embedding cho pin từ graph gồm 3 tỷ pin và board cùng 18 tỷ cạnh, được huấn luyện trên 7,5 tỷ mẫu.
  • Nhận diện hành động dựa trên skeleton: ST-GCN xem các khớp cơ thể là node, nối chúng với nhau bằng xương trong mỗi frame và với cùng khớp đó ở các frame lân cận, rồi phân loại hành động từ graph không-thời gian thu được. Các model ước lượng pose YOLO26 trả về 17 keypoint COCO cho mỗi người trong từng frame; các tọa độ khớp này là dữ liệu dùng để xây dựng graph skeleton.
  • Knowledge graph: Cấu trúc dữ liệu lưu trữ sự kiện dưới dạng bộ ba thực thể-quan hệ-thực thể. GNN là một model có thể học từ knowledge graph, chẳng hạn để dự đoán các liên kết còn thiếu.
  • Học sâu hình học: Lĩnh vực rộng hơn, nghiên cứu các mạng được xây dựng dựa trên tính đối xứng của dữ liệu, bao gồm CNN trên lưới, GNN trên graph và model trên mesh cũng như đa tạp.
  • CNN: CNN áp dụng cho ảnh là một trường hợp đặc biệt của message passing trên graph dạng lưới. Mỗi pixel ở đó có cùng số neighbor nằm tại các vị trí tương đối cố định, vì vậy CNN có thể học trọng số riêng cho từng vị trí neighbor — điều mà GNN trên graph không đều không làm được.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning