1. AI中的向量是什么?
在人工智能(AI)领域,向量是表示数据的基本数学工具。它本质上是一个有序的数字列表,用于将现实世界中的对象(如单词、图片、用户)映射到一个多维的数学空间中。
1.1 向量的核心作用
- 数值化表示:将非结构化的文本、图像、声音转换为计算机可以处理的数字形式。
- 语义捕捉:在向量空间中,语义相近的对象(如“猫”和“狗”)距离更近。
- 计算基础:支持相似度计算、分类、聚类等核心AI任务。
1.2 一个简单示例
在自然语言处理中,单词“国王”可能被表示为:
[0.12, -0.45, 0.78, 0.03, -0.91, ..., 0.67] # 一个300维的向量而“王后”的向量可能与之非常接近,体现了语义上的相似性。
2. 什么是密集向量?
密集向量是指向量中绝大多数元素都是非零值的向量。每个维度通常都承载着特定的、有意义的语义信息。
2.1 关键特征
- 存储方式:使用数组或列表连续存储所有维度的值。
- 信息密度高:几乎每个维度都对最终表示有贡献。
- 适合深度学习:是现代神经网络(如Transformer)的标准输出格式。
2.2 典型应用
- 词嵌入:Word2Vec、GloVe、BERT生成的向量。
- 图像特征:卷积神经网络(CNN)从图片中提取的特征。
- 语音表征:音频信号经过模型处理后的编码。
- 推荐系统:用户和物品的嵌入向量。
2.3 代码示例
# 一个来自BERT模型的768维密集向量示例dense_embedding=[0.12,-0.23,0.45,0.67,-0.89,0.01,# 前6个维度# ... 总共768个浮点数]# 计算两个密集向量的余弦相似度similarity=np.dot(dense_embedding_A,dense_embedding_B)/(np.linalg.norm(dense_embedding_A)*np.linalg.norm(dense_embedding_B))3. 什么是稀疏向量?
稀疏向量是指向量中大部分元素为零(或接近零)的向量。它通常用于表示高维空间中的对象,其中只有少数几个特征被激活。
3.1 关键特征
- 存储方式:只存储非零元素的索引和值,极大节省空间。
- 维度极高:常见于万维甚至百万维的特征空间。
- 计算优化:专门的稀疏算法可以跳过零值,加速运算。
3.2 典型应用
- 文本表示:TF-IDF、词袋模型(每个单词是一个维度)。
- 推荐系统:用户-物品交互矩阵(用户可能只与极少物品交互)。
- 生物信息学:基因表达数据(大多数基因在特定样本中不表达)。
- 分类特征:经过One-Hot编码后的类别变量。
3.3 代码示例
# 一个10,000维的稀疏向量,表示一篇文档的TF-IDF特征# 只有“人工智能”、“机器学习”、“算法”三个词有显著权重sparse_tfidf={124:0.85,# 索引124对应“人工智能”567:0.72,# 索引567对应“机器学习”892:0.63# 索引892对应“算法”}# 其他9,997个维度值均为0,无需存储4. 密集向量 vs 稀疏向量:核心区别对比
| 对比维度 | 密集向量 | 稀疏向量 |
|---|---|---|
| 零值比例 | 很少(< 10%) | 极多(> 90%) |
| 典型维度 | 几十到几千维 | 几千到几百万维 |
| 存储开销 | 存储所有值,O(n) | 只存非零值,O(k),k << n |
| 语义解释 | 每个维度含义模糊(分布式表示) | 每个维度含义明确(如一个单词) |
| 计算方式 | 适合GPU并行矩阵运算 | 需要特殊的稀疏矩阵运算库 |
| 模型偏好 | 深度学习、神经网络 | 传统机器学习(如线性模型、SVM) |
| 更新影响 | 局部更新影响整个向量表示 | 局部更新只影响少数维度 |
4.1 存储效率直观对比
假设一个50,000维的向量(例如,一个包含5万个单词的词袋模型):
- 密集存储:需要保存 50,000 个浮点数 ≈400 KB内存。
- 稀疏存储:如果一篇文档只包含20个独特单词,只需保存 20 个(索引,值)对 ≈320 字节内存。
- 节省了超过 1000 倍的空间!
4.2 如何选择?
- 选密集向量:当特征维度可控(<1000),且需要捕捉复杂的、非线性的语义关系时(如BERT词向量)。
- 选稀疏向量:当特征维度爆炸性增长,且数据天然稀疏(如文本、推荐交互)时,优先考虑稀疏表示以节省资源。
5. 现代AI中的融合趋势
在实际的AI系统中,密集向量和稀疏向量经常结合使用,发挥各自优势:
5.1 混合检索系统(Hybrid Search)
# 1. 稀疏检索:基于关键词匹配(TF-IDF/BM25),保证召回率sparse_score=bm25(query,document)# 2. 密集检索:基于语义相似度(向量检索),保证准确性dense_score=cosine_similarity(bert_embedding(query),bert_embedding(document))# 3. 混合分数:加权结合两者优点final_score=α*sparse_score+(1-α)*dense_score5.2 特征工程流水线
- 原始数据:高维稀疏特征(如用户历史点击的百万级物品ID)。
- 嵌入层:通过嵌入表将稀疏ID映射为低维密集向量(如128维)。
- 神经网络:密集向量输入深度模型进行训练和预测。
6. 总结
- 向量是AI将现实世界数据“翻译”成机器语言的通用货币。
- 密集向量紧凑、语义丰富,是深度学习的基石,适合表示融合后的复杂特征。
- 稀疏向量高效、可解释,是处理高维、稀疏数据的利器,适合表示原始的、独立的特征。
- 核心区别在于信息存储的密度和方式,从而导致了不同的计算、存储和应用范式。
- 最佳实践是根据任务、数据和资源约束,灵活选择或组合两种表示方法。
理解这两种向量,是构建高效、可扩展AI系统的重要基础。