スパースデータとは、大部分の値がゼロまたは無効値であるようなデータ構造のことです。機械学習や自然言語処理において頻繁に現れ、メモリの無駄遣いやモデルの過学習を引き起こす原因となるため、適切な前処理や次元削減などの工夫が必要です。
スパースデータとは
一言でいうと、情報の大部分が「空(ゼロ)」で占められているデータの状態のことです。
詳しく解説
スパースデータ(疎データ)は、データ行列の中で有効な値を持つ要素が非常に少なく、大半の要素がゼロや欠損値である状態を指します。例えば、膨大な商品数を持つECサイトのユーザー購入履歴において、個々のユーザーが購入した商品は全体のほんのごく一部にすぎません。このようなデータを表形式にすると、行列のほとんどがゼロで埋め尽くされます。AIや機械学習の分野では、自然言語処理の単語ベクトル表現やレコメンドシステムなどで日常的に遭遇します。通常の密なデータと比べてそのままでは計算効率が悪いため、専用のデータ構造やアルゴリズムを用いて効率的に処理することが重要です。
具体例・使われ方
具体的な例として、テキストマイニングにおけるBoW(Bag of Words)表現があげられます。辞書にある数万〜数百万の単語のうち、一つの文章に含まれる単語はごくわずかであるため、文章を表現するベクトルはほとんどの要素がゼロになります。また、映画のレコメンドシステムにおけるユーザーと映画の評価マトリクスも、全ユーザーが全作品を評価するわけではないため、典型的なスパースデータとなります。
似た用語との違い
密なデータであるデンスデータ(Dense Data)と対比されます。デンスデータは、ほとんどの要素に意味のある有効な数値が入っている状態を指し、画像データなどがその代表例です。
注意点
スパースデータをそのまま通常のニューラルネットワークに入力すると、計算量が膨大になるだけでなく、メモリ効率が著しく低下します。また、ゼロの多さによってモデルがノイズを学習しやすくなり、過学習を招くおそれがあるため、次元削減やスパースモデリングを活用するなどの注意が必要です。