數學基礎

點積(dot product)

/ DOT PROD-ukt /

點積是這樣一種做法:拿來兩串數字,把它們濃縮成一個數,用來說明這兩串「有多一致」。配方很簡單:把兩串數對齊,逐項相乘,再把所有乘積加起來。如果一串是 [3, 0, 2],另一串是 [1, 4, 5],那麼點積就是 3×1 + 0×4 + 2×5 = 13。這一個數,就概括了整次配對。

從幾何上看,它衡量的是「方向是否一致」。兩個朝同一方向的向量,點積是個很大的正數;朝相反方向,點積為負;而成直角時(彼此毫不相關),點積恰好為零。所以你可以把它讀作一個相似度分數:越大表示越同步,為零表示垂直,為負表示彼此背離。

這個不起眼的運算,是現代機器學習的「原子」。一個人工神經元會把它的輸入和權重做點積,再據此決定要多強烈地「激活」。搜尋引擎和推薦系統,則按查詢向量與每個候選向量之間的點積來給條目排序。而支撐神經網路的矩陣乘法,說到底不過是成千上萬個點積並行地一起算。把這一個概念吃透,一大片數學就不再顯得神秘了。

用 [動作, 愛情, 喜劇] 給一部電影打分 [5, 1, 2],再用同樣三項給你的口味打分 [4, 0, 1]。它們的點積是 5×4 + 1×0 + 2×1 = 22——分數很高,因為這部電影動作戲很重,而你也偏愛動作。一部打分為 [0, 5, 0] 的催淚愛情片,點積只有 0×4 + 5×0 + 0×1 = 0:毫無重疊,也就毫不匹配。

推薦系統的心跳:把對應的特徵相乘再相加,一個數就告訴你兩樣東西有多合拍。

做點積要求兩串數等長,而且它的結果永遠是一個數,絕不會是一串數。它的絕對大小還會隨向量的長短而變,所以若只想衡量方向,人們常把長度除掉,得到取值在 -1 到 1 之間的餘弦相似度。

又稱
点积點積内积內積inner productscalar product数量积