向量 与语义空间

理解 AI 的数学基础

什么是向量?

向量就是一串数字,用来描述事物的特征

例子:人物特征

  • 身高: 175cm
  • 体重: 70kg
  • 年龄: 25岁

→ 向量表示: [175, 70, 25]

欧式距离:计算相似度

就像地图上两点之间的直线距离

距离 = √[(x₁-x₂)² + (y₁-y₂)²]

例子:

  • 小明: [175, 70, 25]
  • 小红: [165, 55, 23]
  • 距离越小 = 越相似

余弦相似度:看方向

不看距离,只看方向是否一致

cos(θ) = (A·B) / (|A|×|B|) 取值范围: -1 到 1 1 = 完全相同 0 = 垂直(无关) -1 = 完全相反

💡 AI 中常用余弦相似度!

Embedding:把文字变成向量

让计算机理解文字的含义

转换过程:

"苹果" → [0.2, 0.8, 0.1, 0.5, ...] 768 维向量(BERT) 1536 维向量(OpenAI)
捕捉语义

相似的词向量接近

数学运算

可以加减乘除

语义空间:词语的世界地图

相似的词在空间中聚在一起

水果区

苹果、香蕉、橙子

动物区

狗、猫、鸟

国家区

中国、美国、日本

情感区

开心、快乐、喜悦

实际应用:向量无处不在

  • 搜索引擎:理解你的查询意图
  • 推荐系统:找到你喜欢的内容
  • ChatGPT:理解对话上下文
  • 图片识别:理解图片内容
  • 语音助手:理解你的语音指令

动手练习:Python 代码

# 计算余弦相似度 import numpy as np def cosine_similarity(a, b): dot = np.dot(a, b) norm_a = np.linalg.norm(a) norm_b = np.linalg.norm(b) return dot / (norm_a * norm_b) # 例子 vec_apple = [1, 2, 3] vec_banana = [1, 2, 2] similarity = cosine_similarity( vec_apple, vec_banana ) print(f"相似度: {similarity}")

小结:核心要点

  • 向量 = 数字列表,描述事物特征
  • 欧式距离 = 直线距离
  • 余弦相似度 = 方向相似
  • Embedding = 文字转向量
  • 语义空间 = 词语的世界地图
  • 应用 = AI 的数学基础