Web教科書

特異値分解(SVD)

特異値分解 (SVD: Singular Value Decomposition)

解説

特異値分解(SVD)とは、ある行列(データ)を、3つの行列の積に分解する線形代数の手法です。これにより、データの中に隠れている「本質的なパターン(潜在的な特徴)」を取り出すことができます。

行列を「ユーザー」「重要度」「アイテム」に分解する

最も有名な応用例は、動画配信サイトなどのレコメンドシステム協調フィルタリング)」です。
例えば、「ユーザー × 映画の評価」という巨大な行列 A があるとします。SVDを使うと、これを以下の3つに分解できます。

A = U Σ VT

  • U(左特異ベクトル):ユーザーの「潜在的な好み」(例:アクション好き、ロマンス好き…)。
  • Σ(特異値行列):そのパターンの「重要度」(対角成分に大きい順に並ぶ)。
  • VT(右特異ベクトル):映画の「潜在的な特徴」(例:爆発シーンが多い、感動的…)。

特異値による「次元圧縮」

真ん中の行列(Σ)にある「特異値」は、情報の重要度を表しています。
小さい特異値(重要でない情報=ノイズ)を切り捨てて、「上位の大きな特異値だけ」を残して元の行列を復元すると、データ量は劇的に減りますが、本質的な情報は残ります。これを「低ランク近似」と呼び、画像の圧縮やノイズ除去などに利用されます。

特異値分解(SVD)の概念図


G検定対策

出題ポイント

  • 定義:任意の行列を「3つの行列の積」に分解する手法。
  • 応用分野:
    • 自然言語処理:LSI(潜在的意味インデックス)によるトピック分析。
    • 推薦システム:ユーザーとアイテムの潜在的な関係性を見つける。
    • 次元削減主成分分析(PCA)の計算アルゴリズムとしても使われる。
  • 特徴:正方行列でなくても(どんな形の行列でも)分解できる。

よくあるひっかけ問題

  • × 特異値分解は、正方行列に対してのみ適用可能である
    (解説)これが「固有値分解」との最大の違いです。SVDは長方形の行列(ユーザー数とアイテム数が違うなど)でも計算できます。
  • × 特異値をすべて使うことで、最も効率的な次元削減ができる
    (解説)逆です。小さい特異値を「捨てる(0にする)」ことで、ノイズを除去し、効率的な次元削減(低ランク近似)が可能になります。
タイトルとURLをコピーしました