稀疏向量是人工智能、机器学习、自然语言处理(NLP)和深度学习中常见的一类向量表示。它与稠密向量相对,用来表示大部分元素为 0,仅少数维度有非零值的向量。稀疏向量适合表示离散特征、分类特征、词袋(Bag-of-Words)和(One-Hot Encoding)。
如果说稠密向量像连续坐标,稀疏向量就像一个勾选表或开关面板,大多数维度关闭,只有少数维度被激活。稀疏向量常用于传统机器学习特征表示、文本数据向量化、推荐系统、信息检索等场景。
一、基本概念:什么是稀疏向量
稀疏向量(Sparse Vector)可以表示为 n 维向量:
大 多 数
特点:
• 大部分元素为 0:仅少数维度非零
• 信息离散:每个非零元素通常对应某个特定特征或事件
• 适合高维数据:避免存储大量冗余信息
• 便于存储和计算:可用稀疏矩阵格式(CSR、CSC)提高效率
通俗理解:
• 每个维度像一个开关
• 只有特定位置“开”,其余位置“关”
• 适合表示类别、标签或离散事件
例如,一个词袋模型中,句子 “猫喜欢鱼” 可以用稀疏向量表示:
["猫","狗","鱼","鸟","老鼠"] → [1,0,1,0,0]其中:
• 1 表示该词出现
• 0 表示该词未出现
二、稀疏向量的优势
1、节省存储空间
高维特征中大部分为 0,只存储非零元素可以显著降低存储需求。
2、计算效率高
稀疏矩阵运算只处理非零元素,减少冗余计算。
3、易于特征解释
每个非零维度对应实际特征,便于理解模型决策。
4、适合离散数据
分类特征、词袋模型、独热编码等天然产生稀疏向量。
三、稀疏向量与稠密向量对比
特性
稀疏向量
稠密向量
元素
大部分为 0
绝大多数非零
信息
离散、显式
紧凑、连续
存储
支持稀疏矩阵存储
普通数组 / 矩阵
应用
词袋模型、独热编码、索引特征
词向量、隐藏层输出、图像特征
通俗理解:
• 稀疏向量:开关面板,大部分开关关着
• 稠密向量:旋钮面板,每个旋钮都有数值
四、稀疏向量的常见应用
1、文本表示
• 词袋模型(Bag-of-Words)
• TF-IDF 特征向量
2、独热编码
• 推荐系统
• 用户-物品评分矩阵,绝大多数未评分项为 0
3、分类与机器学习特征
• 离散类别特征
• 高维稀疏指标,例如网页点击、购物行为
4、信息检索
• 文档索引、倒排表
• 高维稀疏向量用于快速相似度搜索
五、Python 示例
下面示例展示如何在 Python 中表示和使用稀疏向量。
示例 1:
• dense_vec 是普通 numpy 数组,包含 0 和 1
• csr_matrix 是稀疏向量表示,只存储非零元素
稀疏向量在大规模文本、推荐系统中能节省存储和计算。
示例 2:多条句子生成稀疏矩阵
输出示例:
(2, 1) 1小结
稀疏向量是大部分元素为 0、少数元素非零的向量表示。它适合高维、离散数据,如词袋模型、独热编码和用户-物品矩阵。稀疏向量节省存储、计算高效,并便于解释特征。理解稀疏向量与稠密向量的区别,是掌握现代 AI 表示学习和特征工程的基础。
“点赞有美意,赞赏是鼓励”
热门跟贴