Giới thiệu dự án

Trong kỷ nguyên bùng nổ dữ liệu số, hơn 80% dữ liệu thực tế tồn tại dưới dạng phi cấu trúc và có liên kết phức tạp như mạng xã hội, mạng lưới giao dịch tài chính, mạng tương tác sinh học (protein-protein) và đồ thị tri thức (knowledge graphs). Các mô hình học sâu truyền thống (như CNN trên lưới ảnh hay RNN/Transformer trên chuỗi tuần tự) gặp phải rào cản nền tảng khi tiếp cận không gian phi Euclide (non-Euclidean space). Điều này dẫn đến sự ra đời của Graph Neural Network (GNN) – kiến trúc mạng nơ-ron chuyên biệt cho cấu trúc đồ thị.

Đồ án tốt nghiệp ngành Kỹ thuật Dữ liệu của sinh viên Nguyễn Thanh Bình và Nguyễn Nhật Triều (Trường Đại học Sư phạm Kỹ thuật TP.HCM, dưới sự hướng dẫn của ThS. Quách Đình Hoàng) tập trung nghiên cứu chuyên sâu về lý thuyết GNN và hiện thực hóa bài toán Dự đoán liên kết (Link Prediction) trên mạng đồ thị thực tế.

                           +------------------------+
                           |  Graph Data (V, E, X)  |
                           +-----------+------------+
                                       |
                   +-------------------+-------------------+
                   |                                       |
                   v                                       v
        +---------------------+                 +---------------------+
        |   SEAL Framework    |                 |      2-WL GNN       |
        |  (Subgraph + DRNL)  |                 | (Higher-Order Pair) |
        +----------+----------+                 +----------+----------+
                   |                                       |
                   +-------------------+-------------------+
                                       |
                                       v
                           +------------------------+
                           |  Link Existence (0/1)  |
                           |   AUC Score / Predict  |
                           +------------------------+

Vấn đề cốt lõi (Problem Statement)

Bài toán dự đoán liên kết tìm cách xác định xác suất tồn tại của một cạnh $e = (u, v)$ trong tương lai giữa hai đỉnh $u$ và $v$, khi biết trạng thái đồ thị hiện tại chưa có liên kết trực tiếp giữa chúng. Các phương pháp truyền thống bộc lộ nhiều hạn chế nghiêm trọng:

  • Heuristic Methods (Common Neighbors, Adamic-Adar, Katz Index): Dựa trên giả định cố định về cấu trúc hình học cục bộ hoặc toàn cục, thiếu khả năng học tham số thích nghi theo ngữ cảnh cụ thể.
  • Latent-Feature Methods (Matrix Factorization, Node2vec): Tách rời quá trình học biểu diễn (node embedding) và tối ưu bài toán xuôi dòng, dễ mất mát đặc trưng topo khi cấu trúc mạng thay đổi (transductive, kém tổng quát quy nạp - inductive).
  • 1-WL GNNs tiêu chuẩn (GCN, GraphSAGE): Bị giới hạn bởi bài kiểm tra đẳng cấu đồ thị 1-Weisfeiler-Lehman, không thể phân biệt được các nút đối xứng hoặc các cặp đỉnh có cấu trúc lân cận tương đồng nhưng vai trò vị trí khác nhau.

Mục tiêu đề tài (Project Objectives)

  1. Nghiên cứu nền tảng lý thuyết: Hệ thống hóa lý thuyết đồ thị, mạng nơ-ron cơ bản, biểu diễn học đồ thị (Graph Representation Learning), và các biến thể GNN cốt lõi (GCN, GraphSAGE, GAT).
  2. Phân tích thuật toán dự đoán liên kết: Đánh giá từ phương pháp heuristic (Local/Global Heuristics) đến phương pháp học sâu biểu diễn nút (GAE, VGAE), phương pháp dựa trên tiểu đồ thị (SEAL Framework), và phương pháp bậc cao (2-WL GNN).
  3. Xây dựng quy trình xử lý dữ liệu chuẩn hóa: Triển khai tiền xử lý, gán nhãn nút DRNL (Double Radius Node Labeling), trích xuất $h$-hop subgraph, và cân bằng mẫu (positive/negative link sampling).
  4. Hiện thực hóa và huấn luyện mô hình: Cài đặt mô hình SEAL kết hợp GCN/SortPooling và 2-WL GNN bằng Python, TensorFlow/Keras và Scikit-learn.
  5. Thực nghiệm và trực quan hóa: Đánh giá hiệu năng trên tập dữ liệu thực tế fb-pages-food (620 nút, 2.102 liên kết), xây dựng ứng dụng web tương tác trực quan bằng Streamlit.

Kết quả kỳ vọng và Phạm vi nghiên cứu

  • Chỉ số đo lường: Tối ưu hóa diện tích dưới đường cong ROC (AUC - Area Under Curve) đạt trên 85% trên tập kiểm thử phân loại nhị phân liên kết.
  • Phạm vi dữ liệu: Đồ thị vô hướng tĩnh fb-pages-food từ nguồn Network Repository, đại diện cho các trang Facebook ẩm thực có tích xanh xác thực.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Phương pháp Nhóm tiếp cận Ưu điểm cốt lõi Hạn chế lớn Độ phức tạp tính toán
Common Neighbors (CN) Local Heuristic Đơn giản, tính toán nhanh: $f_{CN}(x,y) = |F(x) \cap F(y)|$ Bỏ qua đặc trưng nút và khoảng cách $>2$ $\mathcal{O}(d_x + d_y)$
Katz Index Global Heuristic Khảo sát mọi đường đi: $f_{Katz} = \sum \beta^l |walks^l|$ Cần biết toàn bộ ma trận kề, chi phí lớn $\mathcal{O}(N^3)$
Node2vec / Skip-gram Latent-Feature Tự động học embedding liên tục qua Random Walk Không tối ưu trực tiếp end-to-end cho liên kết $\mathcal{O}(N \cdot \text{walk_len})$
Graph AutoEncoder (GAE) Node-based GNN Tận dụng tích chập đồ thị GCN: $Z = GCN(X, A)$ Chỉ tích tụ vector đơn lẻ của từng nút $z_i^T z_j$ $\mathcal{O}(|E| \cdot F)$
SEAL Framework Subgraph-based GNN Trích xuất $h$-hop enclosing subgraph + nhãn DRNL Tốn tài nguyên trích xuất đồ thị con $\mathcal{O}(|E_{sub}| \cdot F)$
2-WL GNN Higher-Order GNN Vượt giới hạn 1-WL, học quan hệ trực tiếp trên cặp nút Chi phí tính toán trên 2-tuple $\mathcal{O}(N^2 \cdot d)$

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must-Have: Module trích xuất $h$-hop subgraph tự động; Thuật toán gán nhãn nút DRNL; Lớp tích chập GCN tùy chỉnh; Hàm đánh giá AUC metric; Giao diện demo Streamlit nạp và dự đoán liên kết.
  • Should-Have: Cơ chế nhúng kết hợp Node2vec bổ trợ; Bộ tạo mẫu âm (negative sampling) cân bằng 1:1; Lưu trữ checkpoint mô hình tối ưu.
  • Could-Have: Hỗ trợ biểu diễn trực quan tương tác đồ thị dạng 2D/3D trên giao diện web.
  • Won't-Have: Huấn luyện đồ thị phân tán đa máy (distributed graph training) thời gian thực trên quy mô tỷ nút.

Thiết kế hệ thống

+-----------------------------------------------------------------------------------+
|                               HỆ THỐNG DỰ ĐOÁN LIÊN KẾT                           |
+-----------------------------------------------------------------------------------+
| [1. Data Layer]       Network Repository (fb-pages-food: 620 nodes, 2102 edges)   |
|                                       │                                           |
| [2. Preprocessing]    Negative Sampling (1:1) ──> Subgraph Extraction (h-hop)     |
|                                       │                                           |
| [3. Feature Eng.]     DRNL Labeling (d(i,x), d(i,y)) ──> One-hot / Embedding      |
|                                       │                                           |
| [4. Model Engine]     GCN Layers (A_tilde) ──> SortPooling/Threshold ──> Conv1D   |
|                                       │                                           |
| [5. Evaluation]       Binary Cross-Entropy Loss ──> Backpropagation ──> AUC Metric|
|                                       │                                           |
| [6. Presentation]     Streamlit Web Dashboard (Upload, Predict, Metric Visuals)   |
+-----------------------------------------------------------------------------------+

Ngăn xếp công nghệ (Technology Stack)

  • Ngôn ngữ nền tảng: Python 3.10+
  • Deep Learning Framework: TensorFlow 2.15.0 / Keras
  • Tính toán khoa học & Dữ liệu: NumPy 1.24.3, Pandas 2.1.4, SciPy 1.11.4
  • Thực nghiệm Machine Learning & Đánh giá: Scikit-learn 1.3.2
  • Xử lý Đồ thị: NetworkX 3.1
  • Giao diện người dùng: Streamlit 1.30.0
  • Môi trường phát triển: Visual Studio Code 1.16+ trên nền tảng Windows 10/Linux

Nền tảng toán học và Thuật toán cốt lõi

1. Quy tắc lan truyền tích chập đồ thị (GCN Layer)

Mô hình triển khai công thức lan truyền quang phổ xấp xỉ bậc nhất qua đa thức Chebyshev: $$H^{(l+1)} = \sigma \left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right)$$

Trong đó:

  • $\tilde{A} = A + I_N$ là ma trận kề bổ sung khuyên tự lặp (self-loops).
  • $\tilde{D}{ii} = \sum_j \tilde{A}{ij}$ là ma trận bậc đường chéo tương ứng.
  • $W^{(l)}$ là ma trận trọng số khả vi cần học tại tầng $l$.
  • $\sigma(\cdot)$ là hàm kích hoạt phi tuyến tính (ReLU / Leaky ReLU).

2. Kỹ thuật gán nhãn nút theo bán kính đôi (DRNL - Double Radius Node Labeling)

Trong khung làm việc SEAL, nhãn số nguyên $f_l(i)$ của nút $i$ trong đồ thị con cục bộ quanh cặp nút mục tiêu $(x, y)$ được xác định dựa trên khoảng cách trắc địa $d(i, x)$ và $d(i, y)$: $$f_l(i) = 1 + \min(d(i, x), d(i, y)) + (d/2)[(d/2) + (d%2) - 1]$$ với $d = d(i, x) + d(i, y)$. Kỹ thuật này đánh số duy nhất $f_l(x) = f_l(y) = 1$, giúp mạng nơ-ron nhận thức được vai trò hình học tương đối của các đỉnh lân cận đối với liên kết cần dự đoán.


Implementation và kết quả

Development Process & Pipeline triển khai

Dự án được thực hiện theo tiến độ chuẩn 14 tuần (từ tháng 03/2024 đến tháng 06/2024) chia thành 4 giai đoạn chính:

  1. Tuần 1–4: Nghiên cứu cơ sở lý thuyết Machine Learning, Deep Learning, Graph Representation Learning và cơ chế Message Passing trong GNN.
  2. Tuần 5–8: Thiết kế kiến trúc giải thuật Link Prediction, nghiên cứu sâu SEAL Framework và lý thuyết đẳng cấu đồ thị 2-WL (Weisfeiler-Lehman).
  3. Tuần 9–12: Tiền xử lý tập dữ liệu fb-pages-food, lập trình trích xuất đồ thị con, cài đặt pipeline huấn luyện mô hình trên TensorFlow.
  4. Tuần 13–14: Tối ưu hóa siêu tham số, thực nghiệm đối sánh chỉ số AUC, xây dựng giao diện Streamlit và hoàn thiện tài liệu khóa luận.
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, Model

def compute_normalized_laplacian(adj_matrix: np.ndarray) -> np.ndarray:
    """
    Tính toán ma trận Laplacian chuẩn hóa đối xứng: D^(-1/2) * (A + I) * D^(-1/2)
    """
    adj_tilde = adj_matrix + np.eye(adj_matrix.shape[0])
    row_sum = np.sum(adj_tilde, axis=1)
    d_inv_sqrt = np.power(row_sum, -0.5, where=row_sum > 0)
    d_inv_sqrt[row_sum == 0] = 0.0
    d_mat_inv_sqrt = np.diag(d_inv_sqrt)
    return d_mat_inv_sqrt.dot(adj_tilde).dot(d_mat_inv_sqrt)

class GCNLayer(layers.Layer):
    """
    Triển khai tùy biến một tầng Graph Convolutional Network (GCN)
    """
    def __init__(self, units: int, activation=tf.nn.relu, **kwargs):
        super(GCNLayer, self).__init__(**kwargs)
        self.units = units
        self.activation = activation

    def build(self, input_shape):
        feature_dim = input_shape[0][-1]
        self.kernel = self.add_weight(
            name='kernel',
            shape=(feature_dim, self.units),
            initializer='glorot_uniform',
            trainable=True
        )
        super(GCNLayer, self).build(input_shape)

    def call(self, inputs):
        # inputs gồm danh sách [feature_matrix, normalized_adj]
        features, norm_adj = inputs
        # Thực hiện biến đổi tuyến tính: H * W
        hw = tf.matmul(features, self.kernel)
        # Lan truyền thông điệp qua lân cận: A_norm * (H * W)
        output = tf.matmul(norm_adj, hw)
        if self.activation is not None:
            output = self.activation(output)
        return output

Mã nguồn tiếp theo minh họa cấu trúc mô hình phân loại đồ thị con trong SEAL, kết hợp GCN và mạng tích chập 1 chiều (1D-CNN) sau lớp SortPooling:

def build_seal_classifier(max_nodes: int, feature_dim: int, num_classes: int = 2) -> Model:
    """
    Khởi tạo kiến trúc phân loại nhị phân liên kết dựa trên đồ thị con
    """
    feat_input = layers.Input(shape=(max_nodes, feature_dim), name="node_features")
    adj_input = layers.Input(shape=(max_nodes, max_nodes), name="norm_adj_matrix")

    # Tầng GCN thứ nhất và thứ hai
    h1 = GCNLayer(units=32, activation=tf.nn.tanh)([feat_input, adj_input])
    h2 = GCNLayer(units=32, activation=tf.nn.tanh)([h1, adj_input])
    h_concat = layers.Concatenate(axis=-1)([h1, h2]) # Trích xuất đa tầng (Multi-scale)

    # 1D-CNN trên biểu diễn nút đã trích xuất
    conv1d = layers.Conv1D(filters=16, kernel_size=2, strides=1, activation='relu')(h_concat)
    pool = layers.MaxPooling1D(pool_size=2)(conv1d)
    flat = layers.Flatten()(pool)

    # Fully Connected Layers
    dense = layers.Dense(64, activation='relu')(flat)
    drop = layers.Dropout(0.5)(dense)
    output = layers.Dense(num_classes, activation='softmax', name="prediction")(drop)

    model = Model(inputs=[feat_input, adj_input], outputs=output)
    model.compile(
        optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
        loss='sparse_categorical_crossentropy',
        metrics=['accuracy']
    )
    return model

Testing và Validation

Thực nghiệm được tiến hành trên tập dữ liệu chuẩn fb-pages-food:

  • Tổng số đỉnh ($|V|$): 620 trang Facebook thực phẩm.
  • Tổng số liên kết dương ($|E_{pos}|$): 2.102 cạnh thực tế.
  • Tập mẫu âm ($|E_{neg}|$): Trích xuất ngẫu nhiên 2.102 cặp đỉnh không tồn tại cạnh nối, đảm bảo cân bằng tỷ lệ mẫu $1:1$.
  • Phân chia dữ liệu: 80% cho tập huấn luyện (Training Set: 3.364 liên kết) và 20% cho tập kiểm thử (Testing Set: 840 liên kết).
                      +-----------------------------+
                      |   fb-pages-food (N=620)     |
                      +--------------+--------------+
                                     |
                     +---------------+---------------+
                     |                               |
                     v                               v
          +--------------------+           +--------------------+
          | Positives: 2,102   |           | Negatives: 2,102   |
          +----------+---------+           +---------+----------+
                     |                               |
                     +---------------+---------------+
                                     |
                     +---------------+---------------+
                     |                               |
                     v                               v
         +-----------------------+       +-----------------------+
         | Train Set: 80% (3364) |       | Test Set:  20% (840)  |
         +-----------------------+       +-----------------------+

Kết quả đạt được (Benchmark Performance)

Mô hình / Thuật toán Loại kiến trúc Khả năng quy nạp (Inductive) AUC Score (%) Độ trễ suy luận (ms/cặp)
Common Neighbors (CN) Heuristic Không 74.21% 0.12 ms
Preferential Attachment (PA) Heuristic Không 68.45% 0.15 ms
Adamic-Adar (AA) Heuristic Không 79.13% 0.18 ms
Graph AutoEncoder (GAE) Node-based GNN 83.50% 1.45 ms
2-WL GNN Higher-Order GNN 88.76% 4.80 ms
SEAL Framework (GCN + DRNL) Subgraph-based GNN Có (Vượt trội) 91.24% 3.20 ms

[!NOTE] Kết quả thực nghiệm minh chứng rằng SEAL Framework đạt độ chính xác phân loại liên kết cao nhất với chỉ số AUC đạt 91.24%, tăng 12.11% so với giải pháp heuristic tốt nhất (Adamic-Adar: 79.13%) và vượt qua mô hình GAE cơ bản (83.50%).


Đổi mới và đóng góp

  1. Khắc phục triệt để hạn chế phân biệt cấu trúc của 1-WL GNN: Bằng việc kết hợp cơ chế gán nhãn đỉnh DRNL, hệ thống phá vỡ tính đối xứng giả định giữa các nút có bậc tương đương, cho phép mạng nơ-ron nhận diện chính xác vị trí tương đối của cặp nút mục tiêu trong không gian topo cục bộ.
  2. Khai phá tiềm năng của biểu diễn bậc cao (2-WL GNN): Triển khai thử nghiệm mô hình học biểu diễn trực tiếp trên không gian 2-tuple (cặp nút), tạo tiền đề cho các bài toán phân loại cạnh mà không làm mất thông tin lân cận chung (common neighborhood patterns).
  3. Quy trình kết hợp đa tầng đặc trưng (Feature Concat): Tích hợp linh hoạt giữa cấu trúc đồ thị con (DRNL one-hot), đặc trưng nội dung nút và vector nhúng topo toàn cục (Node2vec embeddings), giúp mô hình duy trì hiệu năng cao ngay cả trong kịch bản đồ thị thưa cạnh (sparse graphs).
  4. Cung cấp công cụ minh họa trực quan: Đóng gói toàn bộ pipeline thành ứng dụng mã nguồn mở trên nền Streamlit, hỗ trợ tải dữ liệu đồ thị tùy ý, tùy chỉnh tham số bán kính $h$-hop và xuất kết quả dự đoán kèm xác suất tin cậy.

Ứng dụng thực tế và triển khai

                     +---------------------------------------+
                     |        NGỮ CẢNH ỨNG DỤNG THỰC TẾ      |
                     +-------------------+-------------------+
                                         |
         +-------------------+-----------+-----------+-------------------+
         |                   |                       |                   |
         v                   v                       v                   v
+-----------------+ +-----------------+     +-----------------+ +-----------------+
| Hệ gợi ý Mạng   | | Thương mại      |     | Phát hiện Gian  | | Y sinh & Hóa dược|
| Xã hội          | | điện tử         |     | lận Tài chính   | |                 |
| (Kết bạn, Page) | | (User - Item)   |     | (Rửa tiền, Vòng)| | (Thuốc - Protein|
+-----------------+ +-----------------+     +-----------------+ +-----------------+

Kịch bản ứng dụng trong doanh nghiệp

  • Hệ thống gợi ý mạng xã hội (Social Recommender Systems): Tự động phân tích đồ thị tương tác người dùng - trang (như fanpage thực phẩm, nhà hàng) để đưa ra đề xuất kết nối, theo dõi hoặc hợp tác kinh doanh có độ chính xác cao.
  • Thương mại điện tử & Bán lẻ: Dự đoán liên kết giữa người dùng và sản phẩm mới dựa trên đồ thị lưỡng phân (bipartite graph), giải quyết bài toán khởi động lạnh (cold-start problem).
  • Phát hiện gian lận và rửa tiền (Anti-Money Laundering - AML): Mô hình hóa các giao dịch ngân hàng thành đồ thị liên kết, dự đoán các mối quan hệ ngầm giữa các tài khoản nằm trong đường dây gian lận.
  • Tin sinh học và Dược học: Dự đoán tương tác giữa phân tử thuốc và protein mục tiêu (Drug-Target Interaction), rút ngắn thời gian và chi phí thử nghiệm lâm sàng.

Hướng dẫn triển khai hệ thống (Deployment Blueprint)

# 1. Khởi tạo môi trường ảo Python
python -m venv venv
source venv/bin/activate  # Trên Linux/macOS
# venv\Scripts\activate  # Trên Windows

# 2. Cài đặt các thư viện phụ thuộc
pip install numpy==1.24.3 pandas==2.1.4 scipy==1.11.4 scikit-learn==1.3.2 networkx==3.1 tensorflow==2.15.0 streamlit==1.30.0

# 3. Khởi chạy ứng dụng Web Demo Streamlit
streamlit run app.py --server.port 8501

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Chi phí trích xuất đồ thị con: Việc trích xuất $h$-hop subgraph và tính toán nhãn DRNL cho từng cặp nút đòi hỏi thời gian tiền xử lý lớn khi mở rộng lên đồ thị hàng triệu nút.
  • Đồ thị tĩnh: Mô hình hiện tại mới chỉ xử lý đồ thị tĩnh (static graphs), chưa tích hợp yếu tố thời gian (temporal/dynamic graphs) khi các liên kết liên tục xuất hiện và biến mất.
  • Đồ thị đồng nhất (Homogeneous Graph): Chưa tối ưu hóa cho đồ thị không đồng nhất (Heterogeneous Information Networks - HIN) chứa nhiều loại đỉnh và cạnh khác nhau.

Hướng nghiên cứu mở rộng

  • Tích hợp Dynamic Graph Neural Networks (DGNN): Nâng cấp mô hình với cơ chế mạng nơ-ron hồi quy thời gian (T-GNN, TGAT) để theo dõi sự biến đổi cấu trúc đồ thị theo thời gian thực.
  • Khử nhiễu đồ thị (Graph Structure Learning): Nghiên cứu các kỹ thuật tự động học và loại bỏ các cạnh gây nhiễu trước khi trích xuất tiểu đồ thị.
  • Tối ưu hóa tính toán phân tán: Ứng dụng thư viện PyTorch Geometric (PyG) hoặc DGL trên nền tảng GPU đa luồng và cụm Ray/Spark để xử lý tập dữ liệu cực lớn.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI DỰ ÁN                              |
+-----------------------------------------------------------------------------------+
| [Sinh viên & Học viên]   │ Tài liệu tham khảo toàn diện về GNN và Link Prediction |
| [Kỹ sư Dữ liệu & AI]    │ Pipeline hoàn chỉnh: Subgraph Extraction -> DRNL -> GCN|
| [Nhà nghiên cứu]         │ Nền tảng thực nghiệm đối soát giữa Heuristic & 2-WL    |
| [Doanh nghiệp số]        │ Giải pháp nâng cao độ chính xác hệ gợi ý (AUC > 91%)   |
+-----------------------------------------------------------------------------------+
  • Sinh viên & Học viên ngành Khoa học Dữ liệu/AI: Tiếp cận tài liệu học thuật bằng tiếng Việt chuẩn mực, chi tiết từ nền tảng toán học ma trận kề đến các kiến trúc GNN tiên tiến.
  • Kỹ sư Phần mềm & Machine Learning: Sở hữu mã nguồn mẫu có cấu trúc rõ ràng, áp dụng trực tiếp các phương pháp tiền xử lý dữ liệu đồ thị phức tạp vào sản phẩm.
  • Nhà nghiên cứu học thuật: Cung cấp cơ sở thực nghiệm rõ ràng, làm điểm tựa cho các đề tài mở rộng về đồ thị tri thức, hệ gợi ý ngữ cảnh hoặc mạng nơ-ron đồ thị bậc cao.
  • Doanh nghiệp và Tổ chức thương mại: Sở hữu phương pháp luận nâng cấp hệ thống khuyến nghị và phân tích rủi ro với mức cải thiện hiệu suất lên đến hơn 15% so với giải pháp truyền thống.

Câu hỏi thường gặp

1. Yêu cầu phần cứng và môi trường để triển khai mô hình là gì?

Hệ thống có thể chạy trên máy tính cá nhân cấu hình tiêu chuẩn: CPU 4 nhân (Intel Core i5 hoặc AMD Ryzen 5 trở lên), 8GB RAM, không bắt buộc GPU chuyên dụng cho tập dữ liệu quy mô vừa (dưới 10.000 đỉnh). Đối với tập dữ liệu đồ thị lớn (>100.000 nút), khuyến nghị trang bị GPU NVIDIA với tối thiểu 8GB VRAM và 16GB RAM hệ thống để tăng tốc tính toán ma trận.

2. SEAL Framework giải quyết vấn đề nghẽn cổ chai của 1-WL GNN như thế nào?

SEAL giải quyết hạn chế của 1-WL bằng cách không học nhúng đỉnh độc lập rồi nhân tích vô hướng thông thường, mà trích xuất đồ thị con cục bộ $h$-hop quanh liên kết mục tiêu và áp dụng kỹ thuật gán nhãn bán kính đôi DRNL. Kỹ thuật này gắn thông tin vị trí không gian tường minh vào từng nút lân cận, giúp mạng GCN phân biệt được các cấu trúc đối xứng mà mô hình 1-WL tiêu chuẩn bỏ qua.

3. Có thể tích hợp mô hình này vào cơ sở dữ liệu đồ thị hiện có (như Neo4j) không?

Hoàn toàn khả thi. Bạn có thể sử dụng các Cypher Query trong Neo4j để trích xuất $h$-hop subgraph xung quanh hai đỉnh cần dự đoán, sau đó chuyển cấu trúc đồ thị sang dạng ma trận kề thông qua thư viện NetworkX/Python và đưa vào mô hình GNN đã huấn luyện để nhận xác suất dự đoán liên kết.

4. Chi phí bảo trì và độ trễ khi vận hành thực tế ra sao?

Mô hình có chi phí bảo trì thấp nhờ khả năng quy nạp (inductive learning) – có thể dự đoán liên kết cho các nút mới phát sinh mà không cần huấn luyện lại toàn bộ mạng từ đầu. Độ trễ suy luận trung bình trên CPU đạt khoảng 3.20 ms/cặp liên kết, hoàn toàn đáp ứng tốt các yêu cầu phản hồi theo lô (batch prediction) hoặc gợi ý gần thời gian thực (near real-time recommendation).

5. Tại sao cần kết hợp lấy mẫu âm (Negative Sampling) theo tỷ lệ 1:1?

Trong đồ thị thực tế, số lượng liên kết không tồn tại ($N(N-1)/2 - |E|$) lớn hơn rất nhiều so với số liên kết thực sự có mặt ($|E|$), dẫn đến hiện tượng mất cân bằng lớp cực kỳ nghiêm trọng (imbalanced class). Việc lấy mẫu âm ngẫu nhiên theo tỷ lệ $1:1$ so với mẫu dương đảm bảo mô hình không bị thiên lệch (bias) về lớp đa số và đánh giá chính xác năng lực phân loại qua chỉ số AUC.


Kết luận

Đề tài tốt nghiệp "Tìm hiểu Graph Neural Network và xây dựng ứng dụng minh họa" của hai sinh viên Nguyễn Thanh Bình và Nguyễn Nhật Triều (Khoa CNTT - Trường ĐH Sư phạm Kỹ thuật TP.HCM) là một công trình nghiên cứu ứng dụng công phu, chuẩn mực và có giá trị thực tiễn cao trong chuyên ngành Kỹ thuật Dữ liệu.

Bằng việc hệ thống hóa toàn diện lý thuyết GNN, làm sáng tỏ các mô hình tiên tiến như GCN, GraphSAGE, GAT, SEAL Framework2-WL GNN, đề tài đã chứng minh sự vượt trội của học sâu đồ thị trong bài toán Dự đoán liên kết với chỉ số AUC ấn tượng 91.24% trên tập dữ liệu thực nghiệm fb-pages-food. Công trình không chỉ đóng góp một tài liệu học thuật giá trị cho cộng đồng nghiên cứu AI trong nước mà còn mở ra hướng ứng dụng rộng mở cho các bài toán công nghiệp từ mạng xã hội, thương mại điện tử đến bảo mật tài chính.