點積 是什麼?
Dot Product:點積 的完整解釋
兩個向量逐元素相乘後加總的純量值,衡量向量間的相似程度與方向一致性。
點積(Dot Product)是向量運算中的基礎操作,在機器學習與深度學習的各個環節都扮演著關鍵角色。理解點積的數學定義與幾何直覺,是掌握神經網路、注意力機制與相似度搜尋等技術的必要前提。
數學定義上,給定兩個 n 維向量 a = [a1, a2, ..., an] 與 b = [b1, b2, ..., bn],其點積定義為 a · b = a1b1 + a2b2 + ... + an*bn,結果是一個純量(scalar),不再是向量。以具體數字為例,若 a = [1, 2, 3],b = [4, 5, 6],則 a · b = 1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32。
幾何意義是點積最直覺的理解方式。點積等於 |a| × |b| × cos(θ),其中 |a| 與 |b| 分別是兩向量的模長,θ 是兩向量之間的夾角。這個公式揭示了幾個重要性質:當兩向量方向完全相同時(θ=0),cos(0)=1,點積等於兩模長的乘積,為最大正值;當兩向量互相垂直時(θ=90°),cos(90°)=0,點積為零,表示兩向量完全不相關;當兩向量方向相反時(θ=180°),cos(180°)=-1,點積為最大負值。
在深度學習中,點積的應用範圍極廣。全連接層(Fully Connected Layer)的核心計算就是輸入向量與權重矩陣的點積,即矩陣乘法的逐行內積,輸出每個神經元的加權和。卷積層在展開計算時本質上也涉及大量點積運算。
Transformer 架構中的縮放點積注意力(Scaled Dot-Product Attention)是當代大型語言模型的核心機制。其計算公式為 Attention(Q, K, V) = softmax(Q × K^T / sqrt(d_k)) × V,其中 Q(Query)與 K(Key)之間的點積衡量了每個查詢與各個鍵的相關程度。除以 sqrt(d_k) 是為了防止點積值在維度很高時過大,避免 softmax 函數進入飽和區導致梯度消失。這個設計讓模型能夠動態地決定在生成每個輸出詞元時應該「注意」輸入序列的哪些位置。
餘弦相似度(Cosine Similarity)是另一個與點積密切相關的概念。餘弦相似度的定義是 cos(θ) = (a · b) / (|a| × |b|),即先計算點積,再除以兩向量模長的乘積,將結果正規化到 -1 到 1 的範圍。這使得餘弦相似度只關注向量的方向,而不受向量絕對大小的影響。在文字嵌入(text embedding)的相似度搜尋中,如果所有向量都已正規化為單位向量(模長為 1),餘弦相似度就等於點積,因此可以用高效的矩陣乘法批量計算所有向量對之間的相似度。
向量資料庫(Vector Database)在執行近似最近鄰(Approximate Nearest Neighbor,ANN)搜尋時,核心操作之一就是大量的點積計算。現代 GPU 和專用 AI 加速晶片(如 Google TPU)都對矩陣乘法(本質上是批量點積)做了深度硬體優化,使得能夠在毫秒內完成數十億次點積運算。
點積與矩陣乘法的關係也值得理解。矩陣乘法 C = A × B 中,C 的每個元素 C[i][j] 等於 A 的第 i 列向量與 B 的第 j 欄向量的點積。因此矩陣乘法是點積的批量化版本,而深度學習框架(如 PyTorch 的 torch.matmul 或 NumPy 的 np.dot)的底層優化正是圍繞著如何在 GPU 上高效執行大規模矩陣乘法而設計的。
在 iPAS AI 應用規劃師考試中,點積相關考題通常測驗考生是否理解注意力機制的計算流程、向量相似度的計算方式、以及基本的線性代數直覺。建議重點掌握:點積的數學定義與計算步驟、幾何意義(夾角與相似度的關係)、以及在 Transformer 縮放點積注意力中的具體應用。