稀疏矩阵点乘如何提升计算速度

我们在数值计算中遇到的稀疏矩阵,一般都是维数很多,有值的位置却很少的矩阵,一个很典型的例子就是文本的one-hot向量化之后的矩阵,极度稀疏,如果我们面临这样的问题,一组文本与另一组文本计算交叉余弦相似度,那么我们面临的问题就变成了两个巨大的稀疏矩阵的点乘问题,这种情况下,最大的问题有2个,一个是内存占用,二个是计算速度。

scipy中的sparse模块提供了稀疏矩阵的表示方法,将稀疏矩阵用sparse中的几种特殊表示方法进行转化之后,不仅占用内存小,而且点乘运算速度得到了极大地提升:

《稀疏矩阵点乘如何提升计算速度》
《稀疏矩阵点乘如何提升计算速度》
《稀疏矩阵点乘如何提升计算速度》
《稀疏矩阵点乘如何提升计算速度》

如上图所示,计算速度相差几十倍。

    原文作者:bnuxuliang
    原文地址: https://zhuanlan.zhihu.com/p/52497385
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞