数学基础

点积(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数量积