内积、夹角与余弦相似度
层级:A|必学
1. 一个运算连接代数与几何
内积把两个同维向量变成一个标量。代数上它是对应分量乘积之和;几何上它同时编码长度与夹角;机器学习中它是线性打分、相似度、投影、核函数和注意力机制的基本运算。
2. Euclidean 内积
对 x,y∈Rd:
⟨x,y⟩=xTy=j=1∑dxjyj.
例如
(1,2,−1)⋅(3,0,4)=1×3+2×0−1×4=−1.
输入是两个 d 维向量,输出是标量。内积满足:
- 对称:⟨x,y⟩=⟨y,x⟩;
- 线性:⟨ax+bz,y⟩=a⟨x,y⟩+b⟨z,y⟩;
- 正定:⟨x,x⟩≥0,且等于 0 当且仅当 x=0。
3. 内积与长度
向量的 Euclidean 长度为
∥x∥2=xTx.
因此自身内积是长度平方:
xTx=∥x∥22.
平方长度常比长度更方便求导,并且排序相同,因此最小二乘直接使用平方误差。
4. 内积与夹角
非零向量夹角 θ∈[0,π] 满足
xTy=∥x∥2∥y∥2cosθ.
所以:
- 内积 >0:夹角小于 90∘,方向总体相近;
- 内积 =0:夹角为 90∘,两向量正交;
- 内积 <0:夹角大于 90∘,方向总体相反。
零向量没有方向,因此与其他向量的夹角未定义,尽管它与任何向量的内积都是 0。
5. 余弦相似度
cosSim(x,y)=∥x∥2∥y∥2xTy.
它等于夹角余弦,范围为 [−1,1]。若数据分量非负,通常落在 [0,1]。
余弦相似度忽略整体尺度。例如 (1,2) 与 (10,20) 余弦相似度为 1,因为方向完全相同;Euclidean 距离却很大。文本词频、embedding 检索常更关心模式方向而非长度。
若先把向量 L2 归一化为单位向量,则余弦相似度就等于普通内积。
6. Cauchy–Schwarz 不等式
∣xTy∣≤∥x∥2∥y∥2.
它保证余弦相似度不会超出 [−1,1]。等号当且仅当两个向量线性相关,即一个是另一个的标量倍数。
一种直觉证明来自平方非负:对任意 t,
∥x−ty∥22≥0.
把它看成关于 t 的二次式,要求判别式不为正,就能得到不等式。
7. 投影系数
把 x 投影到非零方向 u 上:
proju(x)=uTuuTxu.
若 u 是单位向量,系数简化为 uTx。内积在这里测量 x 沿方向 u 有多少分量。线性回归、PCA 和正交分解都依赖投影。
8. 线性分类器中的内积
f(x)=wTx+b.
wTx 衡量样本在权重方向上的投影强度。w 同时是决策超平面的法向量。若不含偏置,f(x)=0 是所有与 w 正交的向量集合。
特征缩放会改变内积。如果一个特征的数值范围极大,它的乘积项可能支配总分,所以标准化和权重正则化很重要。
9. Gram 矩阵
设列向量集合组成 V=[v1,…,vk],Gram 矩阵为
G=VTV,Gij=viTvj.
它保存所有向量两两内积。G 对称且半正定。核方法不用显式写出高维特征,只计算类似的内积矩阵。
10. 更一般的内积
给定对称正定矩阵 M,可以定义
⟨x,y⟩M=xTMy.
它相当于重新缩放和旋转空间,产生不同的角度与距离。Mahalanobis 距离和度量学习使用这类结构。并非任何形如 xTAy 的式子都构成合法内积;必须满足相应的对称与正定条件。
易错点
- 内积输出标量,外积输出矩阵。
- 内积为零只表示正交,不表示随机变量独立。
- 余弦相似度不考虑长度,可能忽略有用的强度信息。
- 零向量不能计算余弦相似度。
- 未归一化点积会随向量长度增大,不是纯方向相似度。
常见问答
Q1:点积越大是否一定越相似?
不一定。点积同时受方向和长度影响;两个长向量即使夹角不小也可能点积很大。是否合适取决于任务。
Q2:为什么 attention 要除以 d?
若向量各分量近似独立且方差相当,点积方差随维度 d 增长。除以 d 可控制尺度,避免 Softmax 过早饱和。
Q3:余弦距离一定是严格度量吗?
1−cosSim 常被称为余弦距离,但通常不满足三角不等式,不是严格数学度量。角距离可在合适条件下形成度量。
练习
- 计算 (1,2)T 与 (3,−1)T 的内积。
- 两个非零向量内积为负,夹角属于什么范围?
- 求 (1,0)T 与 (1,1)T 的余弦相似度。
- 把 x=(3,4)T 投影到 u=(1,0)T。
- 证明单位向量的内积等于其夹角余弦。
- 比较 (1,2) 与 (10,20) 的余弦相似度和 Euclidean 距离。
答案与提示
- 1。
- (90∘,180∘];严格负值排除 90∘。
- 1/2。
- (3,0)T。
- 将两向量范数 1 代入夹角公式。
- 余弦相似度为 1;距离为 95。