---
title: "圖神經網路（Graph Neural Network）"
slug: graph-neural-network
language: zh-TW
source: https://aiterms.tw/terms/graph-neural-network
updated_at: 2026-07-29
tags: [機器學習, 深度學習, 神經網路, 推薦系統, 知識圖譜, AI應用]
ipas_term: false
---

# 圖神經網路（Graph Neural Network）

> **你有沒有想過，朋友關係、分子結構這種「點和線」資料要怎麼給 AI 看？**
>
> 你可以把 GNN 想成專門讀關係網的模型。
> 它不只看每個點本身，還會把鄰居之間的連結一起學進去，所以很適合社群、推薦和分子分析。
>
> 你可以把它想成一個把抽象概念拉回日常判斷的提示，先知道它解決什麼問題，再看技術細節。

### 容易混淆

> **GNN vs CNN**
> CNN 擅長格狀資料，例如圖片
> GNN 擅長圖結構資料，例如社群或分子
> 最關鍵的區別是網格，還是任意關係網
>
> **GNN vs 一般嵌入表示**
> 一般嵌入主要把物件向量化
> GNN 會把鄰居關係也一起納入
> 最關鍵的區別是只看自己，還是連鄰居一起看
>
### 記住這句就好

> 點和線一起學。

### 實際案例

> **推薦系統**
> 如果你想根據朋友關係或商品關聯推薦內容，GNN 可以把節點和邊的資訊一起用上。
>
> **藥物分子分析**
> 化學分子本身就是圖，GNN 很適合拿來預測分子的性質或反應結果。
>
### 算法與應用

> 常見做法是訊息傳遞，也就是讓每個節點從鄰居聚合資訊。
> 圖一大就會很吃資源，所以抽樣、分層和分散式訓練都很重要。

### GNN 是怎麼運算的

> 幾乎所有 GNN 都走同一套流程，叫做訊息傳遞（message passing），每一層做三件事。
>
> **第一步，收訊息。** 每個節點去拿它所有鄰居目前的向量。
>
> **第二步，聚合。** 把拿到的一堆鄰居向量壓成一個向量，常見做法是取平均、取總和或取最大值。取總和能分辨鄰居數量，取平均對節點度數比較穩定。
>
> **第三步，更新。** 把聚合結果和節點自己原本的向量一起丟進一個小型神經網路，算出這個節點的新向量。
>
> 疊 K 層，等於讓每個節點看到 K 步以內的鄰居。所以層數不是越多越好，疊太深會讓所有節點的向量收斂到同一個值，這個現象叫過度平滑（over-smoothing），實務上多數任務疊 2 到 3 層就夠。

### 三種最常見的 GNN 架構

> **GCN（Graph Convolutional Network，圖卷積網路）**
> 聚合方式是對鄰居取加權平均，權重由節點度數決定。最單純，也最常當基準線。缺點是它是 transductive 的，訓練時沒看過的節點不好處理。
>
> **GraphSAGE（Graph Sample and Aggregate）**
> 不聚合全部鄰居，而是每次抽樣固定數量的鄰居再聚合。這讓它能處理超大的圖，而且是 inductive 的，新節點進來也算得出向量，工業界的大規模推薦系統常用這一路。
>
> **GAT（Graph Attention Network，圖注意力網路）**
> 用注意力機制學每條邊的權重，讓模型自己決定哪個鄰居比較重要，而不是靠度數決定。表現通常較好，代價是計算量比 GCN 大。
>
> 選型的判斷很直接：圖不大先用 GCN 當基準，圖很大或會長新節點用 GraphSAGE，鄰居重要性明顯不均就用 GAT。

### 情境判斷

> **Q1：** 你要找「朋友的朋友也常買什麼」，會想到什麼模型？
> → GNN 很合適，因為它能把關係鏈一起學進去。
>
> **Q2：** 你只有單張商品圖和標籤，沒有關係資料，還適合直接上 GNN 嗎？
> → 通常不適合，因為 GNN 的優勢建立在關係結構上。
>
### 常見問題

> **Q：GNN 一定比 CNN 強嗎？**
> 不是，資料型態不同，適用場景也不同。
>
> **Q：大圖一定能直接跑嗎？**
> 不一定，常要先採樣或分塊。
>
> **Q：GNN 只能做分類嗎？**
> 不是，也能做連結預測和圖分類。
>
### 相關術語

> - **機器學習**：先看 GNN 在整體 ML 裡的位置
> - **深度學習**：GNN 是深度學習的一支
> - **卷積神經網路**：對照看，能更快抓住資料結構差異
> - **注意力機制**：有些 GNN 會結合注意力，提升鄰居加權能力
> - **嵌入表示**：節點和邊最後都會落到向量表示上

---

來源：https://aiterms.tw/terms/graph-neural-network
快查頁：https://aiterms.tw/terms/graph-neural-network
最後更新：2026/07/29
深度解說：https://aiterms.tw/learning/what-is-graph-neural-network