Bài nhập môn thân thiện về mạng nơ-ron đồ thị
(distill.pub)- Mạng nơ-ron đồ thị (GNN) là mô hình xử lý đồng thời node, edge, ngữ cảnh toàn cục và cấu trúc liên kết; phù hợp với dữ liệu mà cùng một đồ thị phải được hiểu như nhau dù thứ tự node thay đổi
- Không chỉ phân tử, mạng xã hội, mạng trích dẫn, mà cả lưới pixel của ảnh và chuỗi token văn bản cũng có thể xem là đồ thị; tuy nhiên đồ thị có kích thước và tính liên kết rất khác nhau nên khó xử lý như đầu vào mảng thông thường
- Bài toán dự đoán của GNN được chia thành mức toàn đồ thị, mức node và mức edge; cùng một họ mô hình có thể dự đoán nhãn ở các mức khác nhau trong khi vẫn bảo toàn cấu trúc đầu vào
- Phép toán cốt lõi là message passing, gom thông tin từ các node và edge lân cận rồi cập nhật; khi xếp chồng nhiều layer, thông tin từ các hàng xóm k-hop xa hơn cũng được đưa vào biểu diễn
- Hiệu năng thực tế phụ thuộc vào độ sâu layer, chiều embedding, hàm tổng hợp, và luồng message giữa các biểu diễn node, edge, toàn cục; tăng tham số hoặc độ sâu không phải lúc nào cũng cho kết quả tốt nhất
Dữ liệu đồ thị và khái niệm cơ bản của GNN
- Đồ thị gồm node là các thực thể và edge là quan hệ giữa các node
- Mỗi node, edge và toàn bộ đồ thị đều có thể lưu thêm thông tin
- Node có thể chứa các đặc trưng như loại nguyên tử, giá trị RGB của pixel, embedding tài liệu
- Edge có thể chứa thông tin như loại liên kết hoặc loại quan hệ
- Toàn bộ đồ thị có thể có ngữ cảnh toàn cục
- Edge có thể được biểu diễn là directed edge có hướng hoặc undirected edge vô hướng
- GNN biến đổi node, edge và ngữ cảnh toàn cục theo cách có thể học được, đồng thời phải xử lý cùng một cấu trúc đồ thị với cùng một ý nghĩa dù thứ tự node thay đổi
Dữ liệu có thể biểu diễn dưới dạng đồ thị
- Ảnh thường được biểu diễn dưới dạng mảng như 244×244×3, nhưng cũng có thể xem là đồ thị đều trong đó mỗi pixel là node và các pixel kề nhau được nối bằng edge
- Pixel không nằm ở biên có đúng 8 hàng xóm
- Mỗi node lưu một vector 3 chiều biểu thị giá trị RGB
- Văn bản có thể xem là đồ thị có hướng, trong đó ký tự, từ hoặc token là node và có edge hướng tới token tiếp theo
- Liên quan tới biểu diễn chuỗi token của RNN
- Transformer có thể xem là đồ thị kết nối đầy đủ học quan hệ giữa các token
- Ảnh và văn bản có cấu trúc rất đều nên biểu diễn đồ thị có thể bị dư thừa
- Ma trận kề của ảnh có cấu trúc dạng dải do liên kết dạng lưới
- Ma trận kề của văn bản gần với cấu trúc đường chéo vì mỗi từ chỉ nối với từ trước và sau nó
- Phân tử rất thuận tiện để biểu diễn bằng đồ thị, với nguyên tử là node và liên kết cộng hóa trị là edge
- Khoảng cách khác nhau tùy theo cặp nguyên tử và loại liên kết như liên kết đơn, liên kết đôi
- Mạng xã hội mô hình hóa người, cơ quan, tổ chức là node và quan hệ là edge
- Mạng trích dẫn biểu diễn bài báo là node, còn quan hệ một bài báo trích dẫn bài báo khác là edge có hướng
- Mỗi node bài báo có thể được bổ sung thông tin như embedding từ trong phần tóm tắt
- Các đối tượng cảnh trong thị giác máy tính, mô hình machine learning, mã lập trình, phương trình toán học cũng có thể được biểu diễn dưới dạng đồ thị, với biến hoặc đối tượng là node và phép toán hoặc quan hệ là edge
Ba cấp độ của bài toán dự đoán trên đồ thị
- Graph-level task dự đoán một thuộc tính cho toàn bộ đồ thị
- Ví dụ là dự đoán đồ thị phân tử có mùi gì, hoặc có gắn với thụ thể liên quan đến bệnh hay không
- Gắn một nhãn cho toàn bộ đầu vào, giống phân loại ảnh hoặc phân tích cảm xúc câu
- Node-level task dự đoán thuộc tính hoặc vai trò của từng node trong đồ thị
- Bộ dữ liệu karate club của Zach là bài toán phân loại node cá nhân sẽ trung thành với câu lạc bộ nào trong hai câu lạc bộ sau một xung đột chính trị
- Tương tự bài toán gán nhãn vai trò cho từng pixel trong image segmentation, hoặc dự đoán từ loại của từng từ trong câu
- Edge-level task dự đoán thuộc tính hoặc sự tồn tại của edge
- Ví dụ là bài toán trong hiểu cảnh ảnh, đặt các đối tượng làm node và dự đoán liệu có quan hệ giữa các đối tượng hay không
- Có thể đặt kết nối đầy đủ cho mọi cặp node, rồi loại bỏ edge dựa trên giá trị dự đoán để tạo đồ thị thưa
- Sinh đồ thị hoặc giải thích dự đoán trên đồ thị cũng thuộc các lĩnh vực nghiên cứu liên quan
Khó khăn khi đưa đồ thị làm đầu vào cho mạng nơ-ron
- Các mô hình machine learning thông thường được thiết kế cho đầu vào là mảng hình chữ nhật hoặc dạng lưới, nên khó đưa nguyên cấu trúc liên kết của đồ thị vào
- Đồ thị có tối đa bốn loại thông tin
- Node
- Edge
- Ngữ cảnh toàn cục
- Tính liên kết
- Node, edge và ngữ cảnh toàn cục có thể được chuyển thành ma trận đặc trưng, nhưng biểu diễn tính liên kết thì khó hơn
- Ma trận kề dễ tensor hóa nhưng có hạn chế
- Số node của đồ thị có thể lên tới hàng triệu
- Số edge trên mỗi node có thể khác nhau rất lớn
- Ma trận kề trở nên rất thưa, kém hiệu quả về không gian
- Nhiều ma trận kề có thể biểu diễn cùng một tính liên kết của đồ thị, nên không có bảo đảm mạng nơ-ron luôn cho cùng một kết quả
- Danh sách kề phù hợp hơn với đồ thị thưa
- Lưu thông tin edge
e_knối noden_ivàn_jdưới dạng tuple(i, j) - Có thể biểu diễn theo
O(n_edges), tỷ lệ với số edge, thay vìO(n_nodes^2)của ma trận kề
- Lưu thông tin edge
- Trong biểu diễn tensor thực tế, các giá trị node, edge, toàn cục không phải scalar mà là vector
- Tensor node có dạng
[n_nodes, node_dim]chứ không phải[n_nodes]
- Tensor node có dạng
Layer GNN và pooling
- GNN đơn giản nhất chưa dùng tính liên kết của đồ thị, mà áp dụng MLP riêng cho node, edge và ngữ cảnh toàn cục để học embedding mới
- Mỗi vector node được cập nhật theo cùng một cách
- Mỗi vector edge cũng được cập nhật
- Vector ngữ cảnh toàn cục cũng được cập nhật thành một embedding
- GNN không thay đổi tính liên kết của đồ thị đầu vào
- Đồ thị đầu ra giữ cùng danh sách kề và cùng số lượng vector đặc trưng
- Thứ thay đổi là embedding của node, edge và ngữ cảnh toàn cục
- Pooling được dùng cho dự đoán
- Gather các embedding của đối tượng cần gom và nối thành ma trận
- Các embedding đã gom thường được aggregate bằng phép toán như sum
- Trong dự đoán node, nếu thông tin node đã có sẵn, có thể áp dụng bộ phân loại tuyến tính lên từng embedding node
- Nếu thông tin cần cho dự đoán node chỉ nằm ở edge, cần pooling thông tin edge để truyền sang node
- Nếu thông tin cần cho dự đoán edge chỉ nằm ở node, gom thông tin node về phía edge để dùng cho dự đoán
- Trong dự đoán toàn đồ thị, gom toàn bộ thông tin node hoặc edge thành biểu diễn toàn cục
- Đóng vai trò tương tự Global Average Pooling trong CNN
- Ví dụ là dự đoán phân tử có độc tính hay có một mùi cụ thể hay không
Tận dụng cấu trúc liên kết bằng message passing
- GNN đơn giản không dùng tính liên kết của đồ thị bên trong layer, chỉ dùng tính liên kết ở bước pooling ngay trước dự đoán
- GNN mạnh hơn thực hiện message passing trong layer để đưa cấu trúc liên kết vào quá trình cập nhật embedding
- Message passing hoạt động qua ba bước
- Mỗi node gather embedding hoặc message từ các node lân cận
- Aggregate các message bằng hàm tổng hợp như sum
- Đưa các message đã gom qua một hàm cập nhật có thể học được
- Message passing tương tự tích chập tiêu chuẩn
- Trong ảnh, pixel gom thông tin từ số lượng pixel lân cận cố định
- Trong đồ thị, node gom thông tin từ số lượng node lân cận thay đổi
- Khi xếp chồng nhiều layer GNN, thông tin từ các node xa hơn được phản ánh
- Sau 3 layer, một node có thể bao gồm cả thông tin từ node cách nó 3 bước
- Message passing có thể được thực hiện không chỉ giữa các node mà còn giữa các edge, hoặc giữa node và edge
Biểu diễn edge và biểu diễn toàn cục
- Dataset không phải lúc nào cũng có đầy đủ thông tin node, edge và ngữ cảnh toàn cục
- Khi chỉ có thông tin edge nhưng cần dự đoán node, có thể pooling thông tin edge để truyền sang node
- Thông tin node và edge có thể khác nhau về kích thước hoặc hình dạng, nên cách kết hợp là một lựa chọn thiết kế
- Có thể học ánh xạ tuyến tính từ không gian edge sang không gian node, hoặc ngược lại
- Có thể nối hai biểu diễn rồi đưa vào hàm cập nhật
- Cập nhật thuộc tính nào của đồ thị theo thứ tự nào là một phần của thiết kế GNN
- Có thể cập nhật node trước rồi cập nhật edge
- Có thể cập nhật edge trước rồi cập nhật node
- Cũng có thể dùng cách weave kết hợp các biểu diễn node-to-node, edge-to-edge, node-to-edge, edge-to-node
- Các node ở xa nhau có thể khó trao đổi thông tin hiệu quả dù message passing nhiều lần
- Với k layer, thông tin chỉ lan truyền tối đa k-step
- Biểu diễn toàn cục
Ucó thể đóng vai trò như master node hoặc vector ngữ cảnh được kết nối với mọi node và edge- Đóng vai trò cầu nối truyền thông tin giữa các node và edge ở xa nhau
- Có thể tạo biểu diễn phong phú hơn cho toàn bộ đồ thị
- Embedding node mới có thể được điều kiện hóa bằng cách nối các node lân cận, edge kết nối, thông tin toàn cục, v.v.
- Cũng có thể dùng cách cộng sau ánh xạ tuyến tính hoặc áp dụng feature-wise modulation
GNN Playground và ví dụ dự đoán mùi phân tử
- GNN Playground xử lý bài toán dự đoán graph-level trên các đồ thị phân tử nhỏ
- Dữ liệu là Leffingwell Odor Dataset, gồm các phân tử và nhãn cảm nhận mùi
- Thử nghiệm phân loại đồ thị phân tử có mùi “pungent” hay không bằng một nhãn nhị phân duy nhất
- pungent nghĩa là mùi mạnh và nổi bật
- Ví dụ gồm tỏi và mù tạt có thể chứa allyl alcohol, cũng như piperitone dùng trong kẹo vị bạc hà
- Phân tử được biểu diễn với nguyên tử là node và liên kết là edge
- Node có định danh nguyên tử Carbon, Nitrogen, Oxygen, Fluorine bằng one-hot encoding
- Edge có loại liên kết single, double, triple, aromatic bằng one-hot encoding
- Template mô hình có cấu trúc gồm các layer GNN tuần tự, sau đó là mô hình tuyến tính với kích hoạt sigmoid
- Các lựa chọn thiết kế được điều khiển theo bốn trục
- Số layer GNN, tức độ sâu
- Chiều embedding của từng thuộc tính
- Hàm aggregate của pooling: max, mean, sum
- Thuộc tính nào trong các biểu diễn node, edge, toàn cục sẽ được cập nhật và message passing
- Playground chạy trong trình duyệt hoạt động trên tfjs
- Graph embedding chiều cao được giảm xuống 2D bằng PCA để trực quan hóa biểu diễn quanh ranh giới quyết định
Xu hướng thiết kế GNN quan sát được trong thí nghiệm
- Hiệu năng thay đổi theo dữ liệu, cách cấu thành đồ thị và cách đặc trưng hóa
- Số lượng tham số lớn hơn có tương quan với hiệu năng, nhưng GNN vẫn có thể tìm được mô hình hiệu năng cao với ít tham số
- Ngay cả khoảng 3k tham số cũng tìm thấy mô hình hiệu năng cao
- Chiều embedding cao hơn có xu hướng cải thiện hiệu năng trung bình và hiệu năng cận dưới, nhưng mô hình hiệu năng tốt nhất cũng xuất hiện ở chiều nhỏ
- Khi số layer tăng, hiệu năng trung bình có xu hướng tăng, nhưng mô hình hiệu năng tốt nhất xuất hiện ở 2 layer, không phải 3 hay 4 layer
- Với 4 layer, cận dưới hiệu năng giảm
- Nhiều layer giúp thông tin được phát tán xa hơn, nhưng biểu diễn node có nguy cơ bị pha loãng qua nhiều vòng lặp
- Trong các hàm aggregate, sum có vẻ nhỉnh hơn rất nhẹ về hiệu năng trung bình, nhưng max hoặc mean cũng có thể tạo ra mô hình tốt tương đương
- Càng có nhiều truyền message giữa các thuộc tính node, edge, toàn cục, hiệu năng trung bình của mô hình càng có xu hướng tốt hơn
- Tác vụ này tập trung vào biểu diễn toàn cục, nên học tường minh thuộc tính toàn cục có xu hướng cải thiện hiệu năng
- Biểu diễn node có vẻ hữu ích hơn biểu diễn edge, vì nhiều thông tin hơn nằm trong thuộc tính node
Đồ thị phức tạp hơn và học theo batch
- Framework message passing có thể áp dụng cho các cấu trúc đồ thị phức tạp hơn
- Trong Multigraph, cùng một cặp node có thể chia sẻ nhiều loại edge
- Trong mạng xã hội, các kiểu quan hệ như acquaintance, friend, family có thể được đặt làm loại edge
- Có thể có các bước message passing khác nhau cho từng loại edge
- Trong nested graph, một node có thể lại biểu diễn một đồ thị
- Trong mạng phân tử, node có thể là phân tử, còn edge biểu diễn phản ứng biến một phân tử thành phân tử khác
- Có thể học luân phiên GNN cấp phân tử và GNN cấp mạng phản ứng
- Trong hypergraph, edge có thể kết nối với nhiều node chứ không chỉ hai node
- Có thể nhận diện cộng đồng node và đặt hyper-edge kết nối với toàn bộ cộng đồng
- Đồ thị có số node và edge không cố định, nên việc học mini-batch kích thước cố định thông thường là khó
- Trọng tâm của học batch trên đồ thị là tạo subgraph bảo toàn các tính chất quan trọng của đồ thị lớn
- Trong citation network, lấy mẫu subgraph có thể là tự nhiên
- Với phân tử, subgraph có nghĩa là một phân tử mới nhỏ hơn, nên có thể là một thao tác mạnh
- Khi đồ thị lớn không vừa bộ nhớ, lấy mẫu đồ thị đặc biệt quan trọng
- Các kiến trúc và chiến lược học như Cluster-GCN và GraphSaint có liên quan
Quy nạp thiên kiến phù hợp với đồ thị
- Khi mô hình được thiết kế để tận dụng tính đối xứng và quy luật của dữ liệu, nó có thể cho hiệu năng dự đoán tốt hơn, thời gian học ngắn hơn, ít tham số hơn và khả năng khái quát tốt hơn
- Mô hình ảnh dùng tích chập có tính translation invariant để tận dụng tính chất cùng một vật thể dù nó nằm ở đâu trong ảnh
- Trong văn bản, thứ tự token là quan trọng nên RNN xử lý tuần tự, còn các mô hình họ Transformer có thể chú ý tới các phần khác nhau của câu
- Trong đồ thị, quan hệ giữa edge, node và yếu tố toàn cục là quan trọng, nên cần relational inductive bias
- Cần bảo toàn cấu trúc kề là quan hệ tường minh
- Cần bảo toàn tính bất biến hoán vị, tức tính đối xứng của đồ thị
- Cần hoạt động không phụ thuộc vào thứ tự node hoặc edge, và xử lý được đầu vào có số lượng biến đổi
Lựa chọn phép aggregate
- Pooling thông tin node và edge lân cận là một bước cốt lõi của kiến trúc GNN mạnh
- Mỗi node có số lượng hàng xóm khác nhau và phải không phụ thuộc vào thứ tự đầu vào, nên cần hàm aggregate khả vi và bất biến hoán vị
- Các ứng viên tiêu biểu là sum, mean, max
- Tất cả đều nhận đầu vào có số lượng biến đổi và tạo đầu ra không phụ thuộc vào thứ tự đầu vào
- Không có phép toán nào luôn là tốt nhất
- mean hữu ích khi số lượng hàng xóm khác nhau lớn hoặc khi cần góc nhìn đã chuẩn hóa về đặc trưng hàng xóm cục bộ
- max hữu ích khi muốn nhấn mạnh một đặc trưng đơn lẻ nổi bật trong hàng xóm cục bộ
- sum cho thấy phân bố đặc trưng cục bộ và không được chuẩn hóa, nên cũng có thể nhấn mạnh ngoại lệ
- Trên thực tế, sum thường được dùng
- Principal Neighborhood Aggregation nối nhiều phép aggregate và bổ sung scaling function thay đổi theo bậc kết nối
- Cũng có thể thiết kế các phép aggregate chuyên biệt theo miền như Tetrahedral Chirality
GCN, phép nhân ma trận và duyệt đồ thị
- GCN hoặc MPNN với k layer và truy vấn hàng xóm 1-degree có thể xem là mạng nơ-ron hoạt động trên embedding subgraph kích thước k
- Biểu diễn cập nhật của một node phản ánh một cách giới hạn thông tin hàng xóm trong phạm vi k-distance
- Biểu diễn edge cũng có thể được diễn giải theo cách tương tự
- Tích của ma trận kề
Avà ma trận đặc trưng nodeX, tứcAX, triển khai message passing đơn giản dùng aggregate sum- Trường hợp
A_i,klà số dương là khi có edge giữanode_ivànode_k - Phép nhân ma trận có thể xem là thao tác gom giá trị của một chiều đặc trưng cụ thể từ các node lân cận
- Trường hợp
- Với
Athưa, không cần cộng tất cả các hạng tử bằng 0 nên danh sách kề hiệu quả hơn - Cài đặt dựa trên danh sách kề cũng thuận lợi hơn khi dùng các phép aggregate ngoài sum
- Lũy thừa
A^Kcủa ma trận kề liên quan đến walk có độ dài KA^2_ijđếm số walk độ dài 2 từnode_iđếnnode_j- Trực giác này tiếp tục với
A^3đếnA^k
Attention, khả năng giải thích và mô hình sinh
- Graph Attention Networks gom thông tin hàng xóm bằng tổng có trọng số thay vì cộng đơn giản
- Hàm điểm số
f(node_i, node_j)tính mức liên quan giữa node trung tâm và node lân cận - Chuẩn hóa trọng số bằng softmax để có thể đặt trọng số lớn hơn cho hàng xóm quan trọng với tác vụ
- Tính điểm theo cặp bảo toàn tính bất biến hoán vị
- Hàm điểm số
- Transformer có thể xem là GNN có cơ chế attention
- Mô hình hóa các phần tử như token ký tự thành node của đồ thị kết nối đầy đủ
- Attention tính embedding và trọng số edge cho từng cặp node
- Khác biệt là GNN giả định mẫu kết nối thưa, còn Transformer mô hình hóa mọi kết nối
- Khả năng giải thích của GNN có thể quan trọng cho độ tin cậy mô hình, debugging và khám phá khoa học
- Trong phân tử, sự tồn tại của một subgraph cụ thể có thể quan trọng
- Trong mạng trích dẫn, mức độ kết nối của bài báo có thể quan trọng
- GNNExplainer tiếp cận bằng cách trích xuất subgraph liên quan quan trọng với tác vụ
- Kỹ thuật attribution gán thứ hạng độ quan trọng cho các phần của đồ thị
- Mô hình sinh đồ thị lấy mẫu đồ thị mới từ phân phối đã học hoặc hoàn thiện một đồ thị khi có điểm bắt đầu
- Có ứng dụng thiết kế đồ thị phân tử mới có thuộc tính cụ thể làm ứng viên thuốc
- Khó khăn cốt lõi của sinh đồ thị là mô hình hóa topology đồ thị
- Topology có kích thước thay đổi lớn và có thể có
N_nodes^2hạng tử - Có thể mô hình hóa trực tiếp ma trận kề như ảnh bằng autoencoder
- Có thể giảm gánh nặng
N_nodes^2bằng cách chỉ dự đoán các edge tồn tại và một phần edge không tồn tại - Một cách khác là tạo đồ thị tuần tự bằng cách lặp lại các hành động rời rạc như thêm hoặc xóa node và edge
- Topology có kích thước thay đổi lớn và có thể có
Tóm tắt
- Đồ thị là kiểu dữ liệu cấu trúc có điểm mạnh và ràng buộc khác với ảnh và văn bản
- GNN xử lý cấu trúc liên kết và tính bất biến hoán vị trong khi cập nhật node, edge và ngữ cảnh toàn cục của đồ thị
- Pooling, message passing, biểu diễn edge, biểu diễn toàn cục và lựa chọn hàm aggregate là các yếu tố cốt lõi trong thiết kế GNN
- Hiệu năng thực tế phụ thuộc mạnh không chỉ vào độ sâu, chiều, số tham số, mà còn vào các thuộc tính đồ thị nào trao đổi message với nhau và đồ thị được cấu thành như thế nào
1 bình luận
Ý kiến trên Hacker News
Có nhiều bài báo dùng GNN cho mô phỏng vật lý (ví dụ: động lực học chất lưu tính toán). Lý do là lưới phi cấu trúc dùng để rời rạc hóa miền bài toán trong các ứng dụng này rất khớp với cấu trúc đồ thị
Trên thực tế, mỗi lưới/đồ thị thường chỉ được dùng một lần để giải một bài toán cụ thể, nên việc huấn luyện GNN cho một đồ thị cụ thể không có nhiều ý nghĩa. Dù vậy, có vẻ lý do phần lớn các bài báo vẫn làm như thế là vì chúng ta vẫn chưa tìm ra cách tạo GNN thích nghi tốt với các lưới/đồ thị và tham số mô phỏng khác nhau. Tôi tò mò liệu sắp có đột phá nào cho phép kiểu khái quát hóa này không
Để đạt hiệu năng tối ưu có lẽ sẽ cần một tokenizer khác
Chất lượng bài viết rất cao, nên thật tiếc là distill.pub đã không tìm được con đường bền vững [1]
Một trong những lý do GNN ít được nhắc đến hơn có thể là thiếu dataset [2]. Đây cũng là vấn đề từng ảnh hưởng đến lĩnh vực semantic web
[1] https://distill.pub/2021/distill-hiatus/
[2] https://huggingface.co/datasets?task_categories=task_categor...
Nếu đó là lĩnh vực phổ biến, sẽ có nhiều người có động lực làm các video ngắn và cuốn hút, nên chất lượng thường khá tốt ngay cả ở mức toán học tương đối trừu tượng. Tư liệu trực quan thực sự giúp nắm bắt cảm giác về các khái niệm trừu tượng, và 3Blue1Brown đã chứng minh điều đó rồi. Với GNN, chỉ cần xem vài video hay dưới 10 phút cũng đủ có bệ phóng để bước vào tài liệu học thuật
Cá nhân tôi thấy GNN khá đáng thất vọng. Tôi đã thử áp dụng vài lần trong nghiên cứu nhưng chưa lần nào suôn sẻ
Trong một thời gian dài, GNN được giới thiệu như một sự khái quát hóa của CNN, nhưng CNN mạnh hơn vì “trọng số lân cận” có nhiều ý nghĩa hơn. Chúng học quan hệ vị trí tương đối. GNN thường dựa vào pooling như mô tả ở đây. CNN có thể xuất ra ảnh, nhưng xuất ra đồ thị bằng GNN thì không dễ. Topology vẫn phải được định sẵn, và đôi khi phải được định cả trong quá trình huấn luyện. Đòn quyết định là hiệu năng. GNN chậm đến khó tin so với CNN
Ngày nay, vì những lý do này, tôi có cảm giác attention đã thay thế GNN trong nhiều trường hợp. Có thể tạo GNN dùng attention thay cho pooling, nhưng điều đó không có nhiều ý nghĩa. Thường thì đồ thị chỉ được duyệt để tạo ma trận mask, phần còn lại là dùng transformer bình thường. Ngay từ đầu, nếu đã có một thước đo khoảng cách nào đó thì nhiều khi thậm chí không cần kề cận đồ thị
Chắc chắn GNN rất hữu ích với ai đó ở đâu đó, nhưng theo trải nghiệm của tôi thì nó giống một chiếc búa đi tìm đinh hơn
Trong hầu hết các trường hợp khác, có thể tận dụng cấu trúc bổ sung để làm hiệu quả hơn. Nếu có thể định nghĩa thứ tự thì dùng mô hình tuần tự; nếu là cấu trúc Euclid/Riemann thì dùng CNN hoặc mô hình nhận biết đa tạp; nếu không cần trạng thái toàn cục thì dùng mạng điểm mây; nếu có phân cấp tường minh thì dùng phiên bản U-Net cho modality đó, v.v.
GNN hay ở chỗ 1) nó mã hóa chính khái niệm quan hệ và 2) nó có liên hệ tốt với các phương trình vi phân đã rời rạc hóa hoàn toàn tổng quát. Với người làm về hệ phức hợp/hệ động lực như tôi thì điều này thú vị, nhưng nếu có thể chuyên biệt hóa thì vẫn có những cách dễ hơn
Vì những lý do bạn nói, tôi không nghĩ việc GNN chủ yếu phổ biến trong các lĩnh vực mà bản thân mô hình miền đã có cảm giác như đồ thị, chẳng hạn hệ gợi ý, là ngẫu nhiên. Ở những lĩnh vực đó, bước nhảy tới một topology hữu ích nhỏ hơn
Cá nhân tôi thấy bực hơn ở chỗ nhiều miền dạng đồ thị như vậy là dữ liệu máy/người dựa trên hành vi, kiểu log, và có rất nhiều chiều phân loại. Phần đồ thị có giúp ích, nhưng nắm bắt tốt các chiều phân loại cũng quan trọng không kém, và để làm tốt việc đó thì thường lại phải rẽ sang các phương pháp ngoài mô hình như random forest. Bắt đầu từ những thứ đó dễ hơn, còn phần GNN làm khối lượng công việc tăng lên rất nhiều chỉ để có “một cải thiện tốt hơn chút”
Tất nhiên nếu đây là hoạt động kinh doanh cốt lõi và có hàng triệu đô la đặt cược thì có thể biện minh được. Nhưng với phần lớn đội vận hành thì vẫn khó. Thực tế, tôi thường làm những thứ như xgboost + umap với người dùng pygraphistry rồi dừng ở đó. Chỉ riêng việc làm cho RGCN chạy tốt cũng đã rất tốn công
GNN có vẻ hoạt động trên topology cố định. Nếu muốn xấp xỉ một phép biến đổi nào đó của topology đồ thị thì phải làm sao? Ví dụ như học layout đồ thị, hoặc chuyển cây cú pháp trừu tượng của chương trình thành đồ thị luồng dữ liệu
Điểm cốt lõi của GNN là khái quát hóa sang topology tùy ý bằng cách điều kiện hóa rõ ràng khái niệm “lân cận” thông qua đồ thị chỉ định topology. Graph layout đã được thử nghiệm ở đây và https://github.com/limbo018/DREAMPlace đã thu hút nhiều chú ý, nhưng gần đây cũng có tranh cãi liên quan https://www.semanticscholar.org/paper/The-False-Dawn%3A-Reev...
Biến đổi đồ thị cũng đang được nghiên cứu https://arxiv.org/abs/2012.01470. Tuy nhiên đây là một bài toán khó vì về ngầm định phải giải bài toán khớp đồ thị
Mong distill quay trở lại
Thật tiếc là distill.pub không nhận bài gửi mới nữa
Tôi tò mò không biết phần mềm trực quan hóa tương tác đó là gì. Có phải D3.js không?
Tôi thấy mình thật ngốc. Trang đó có ví dụ 4 nút (a,b,c,d), và cho thấy tổng cộng có 24 tổ hợp khả dĩ
Khi biết số lượng nút, và còn phải xét cả cạnh nữa, tôi thắc mắc công thức tổng quát để tính là gì. Có vẻ bài viết không giải thích, và tôi nghĩ có lẽ là giai thừa
Nếu muốn làm quen hơn, trang này có vẻ cung cấp một phần tổng quan khá tốt: https://www.geeksforgeeks.org/mathematics-combinatorics-basi...
Vì mỗi cạnh có thể tồn tại hoặc không tồn tại, nên có thể cũng cần nhân hệ số nhị thức với 2