我们在数值计算中遇到的稀疏矩阵,一般都是维数很多,有值的位置却很少的矩阵,一个很典型的例子就是文本的one-hot向量化之后的矩阵,极度稀疏,如果我们面临这样的问题,一组文本与另一组文本计算交叉余弦相似度,那么我们面临的问题就变成了两个巨大的稀疏矩阵的点乘问题,这种情况下,最大的问题有2个,一个是内存占用,二个是计算速度。
scipy中的sparse模块提供了稀疏矩阵的表示方法,将稀疏矩阵用sparse中的几种特殊表示方法进行转化之后,不仅占用内存小,而且点乘运算速度得到了极大地提升:
如上图所示,计算速度相差几十倍。