本文へスキップ

スパース行列とは?

すぱーすぎょうれつ

パース行列とは、行列の要素の大部分がゼロである行列のことで、非ゼロ要素だけを効率的に格納・計算するデータ構造や手法が広く活用されています。

パース行列(Sparse Matrix)とは、行列を構成する要素の多くがゼロ値である行列のことです。「スパース」は「まばら」を意味する英語で、ゼロでない要素がまばらに存在することを表しています。反対に、大部分の要素が非ゼロである行列は「密な行列(Dense Matrix)」と呼ばれます。

現実世界のデータには、スパース行列として表現できるものが数多く存在します。例えば、ウェブページ間のリンク関係を表す行列や、ユーザーと商品の購買行動を表す行列などは、膨大なサイズを持ちながらも大半の要素がゼロになります。

スパース行列を通常の二次元配列として扱うと、ゼロを格納するために多大なメモリを浪費し、計算も非効率になります。そのため、非ゼロ要素の値・行インデックス・列インデックスだけを記録する特殊な格納形式が使われます。代表的なものとして以下があります。

  • CSR(Compressed Sparse Row):行方向に圧縮した形式。行方向の演算に効率的
  • CSC(Compressed Sparse Column):列方向に圧縮した形式
  • COO(Coordinate Format):行・列・値の三つ組で格納するシンプルな形式

スパース行列は、機械学習(自然言語処理のBoW表現など)、グラフ理論、有限要素法による工学シミュレーション、推薦システムなど幅広い分野で重要な役割を担っています。

使い方・例文

Eコマースサイトの協調フィルタリング推薦システムでは、数百万ユーザーと数十万商品の購買行列はほぼゼロで埋まるスパース行列となり、専用のスパース行列ライブラリで効率的に処理されます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語