Bootstrap

15.向量点乘

点乘就是把两个向量“按位置相乘再相加”,用来快速判断它们“有多像”或者“一个向量在另一个向量身上投影了多长”。


具体意义拆解:

  1. 判断方向相似性(像不像?)

    • 结果 > 0:两向量方向大致相同(比如箭头朝右上方和右下方)。

    • 结果 = 0:两向量垂直(完全无关)。

    • 结果 < 0:两向量方向相反(比如一个朝东,一个朝西)。
      例子

    • 推荐系统中,用点乘判断用户喜好和商品特征的匹配度(值越大越推荐)。

    • 向量 [喜欢猫, 喜欢狗] 和 [猫粮广告, 狗粮广告] 点乘高 → 适合推荐。

  2. 算投影长度(影子有多长?)
    物理中计算“力在某个方向做了多少功”,或者图形学中算光照强度,本质都是投影。
    例子

    • 推箱子时,斜着用力,实际水平移动箱子的“有效分力”就是投影。

    • 点乘公式:a·b = |a||b|cosθ,其中 |a|cosθ 就是投影长度(如下图👇)。

  3. 快速算夹角(间接用)
    如果先把向量归一化(长度变成1),点乘直接等于夹角的余弦值:
    a·b = cosθ → θ = arccos(a·b)
    例子

    • 机器学习中,用余弦相似度(归一化后的点乘)判断两段文本的语义相似度。


总结成人话版:
点乘像两向量的“默契打分器”

  • 分高 → 方向一致,合作效果好(比如推荐匹配)。

  • 分低 → 无关或互相拆台(比如力没用在刀刃上)。
    核心作用:把方向+长度信息压缩成一个数,方便快速比较和计算!

用坐标算点乘,就是**“按位置配对相乘再相加”,本质上是一种“多维度匹配打分”,能快速量化两个向量在同一个坐标系下的“合作效果”“一致性”**。


坐标计算的意义拆解:

  1. 现实版“配方打分器”
    假设你调配一杯饮料,配方是向量 [糖量, 酸度, 冰量] = [3, 2, 5],实际做出来的向量是 [2, 3, 4]
    点乘结果:3×2 + 2×3 + 5×4 = 6+6+20=32 → 总分32,直接反映配方和成品的匹配度(分数越高越接近理想配方)。

  2. 物理中的“有效做功”
    推箱子时,用力方向是 [水平力, 垂直力] = [10, 2](单位:牛顿),箱子移动方向是 [3, 1](单位:米)。
    点乘结果:10×3 + 2×1 = 32焦耳 → 直接算出了实际做的功(水平和垂直方向的分力各自贡献)。

  3. 机器学习中的“特征加权组合”
    比如判断是否推荐电影,用户喜好向量是 [恐怖片权重, 喜剧片权重] = [0.8, 0.3],某电影的特征向量是 [恐怖元素, 喜剧元素] = [1, 0]
    点乘结果:0.8×1 + 0.3×0 = 0.8 → 推荐分数0.8(精准匹配恐怖片爱好者)。

  4. 图形学中的“坐标级操作”
    游戏里角色的位置是 [x, y, z],用矩阵和点乘可以一步算出旋转或缩放后的新坐标,不用手动画图。


为什么用坐标算更香?

  • 告别几何想象:不用画图、不用算夹角,直接按坐标硬算,适合计算机暴力处理。

  • 高维也能用:现实中数据常是几十维的(比如用户画像、像素颜色),坐标点乘直接扩展到N维,毫无压力。

  • 公式统一:无论2D、3D还是100D,算法代码完全一样,改改数字就能复用。


总结成人话版:
坐标点乘就是**“多维度合作效果的快算公式”**:

  • 按位置配对 → 每个维度的贡献单独算(比如糖、酸、冰各自配比)。

  • 相加总分 → 整体效果一目了然(高分=匹配度高/合作有效)。
    核心意义:把复杂的方向、长度关系,变成小学生都能按计算器算的加减乘除!