特異値分解(SVD)とは、行列を3つの特別な行列の積に分解する線形代数の手法です。任意の長方形行列に適用できる柔軟性を持ち、データの特徴抽出や次元削減、ノイズ除去に広く利用されます。AIや機械学習の分野では、推薦システムにおける潜在意味解析や画像圧縮、協調フィルタリングなどの基礎技術として重要な役割を果たしています。
特異値分解とは
特異値分解(SVD)とは、任意の行列を3つの行列の積に分解することで、データの本質的な構造や特徴を抽出しやすくする線形代数の数学的手法です。
詳しく解説
特異値分解は、正方形ではない一般的な長方形行列に対しても適用できる汎用的な分解方法です。元の行列を、直交行列、対角行列、直交行列の3つの積として表現します。対角行列の成分である「特異値」は、データに含まれる情報の重要度を表しており、数値が大きい特異値ほど元のデータを大きく反映しています。AIの分野では、重要度の低い特異値を切り捨てることで高次元のデータを低次元に圧縮する次元削減の手法として活用されています。また、データの潜在的なパターンを明らかにする潜在意味解析の基盤としても極めて重要です。
具体例・使われ方
例えば、映画のレビューデータ(ユーザー×映画の評価行列)に特異値分解を適用すると、ユーザーの好みや映画のジャンルといった隠れた特徴(潜在トピック)を抽出できます。これを応用した手法がECサイトや動画配信サービスで使われる協調フィルタリングです。また、画像データを特異値分解し、小さな特異値を0にして復元することで、画質を保ちながらデータ量を減らす画像圧縮やノイズ除去の処理を行うこともできます。
似た用語との違い
特異値分解と混同されやすい手法に固有値分解があります。固有値分解は正方行列(縦と横のサイズが同じ行列)にしか適用できませんが、特異値分解はあらゆるサイズの長方形行列に適用可能です。また、データ解析の手法である主成分分析(PCA)は、データの分散を最大化する方向を見つける手法ですが、数学的には共分散行列に対して特異値分解を行っていることと同等であり、密接に関連しています。
注意点
特異値分解は元の行列のサイズが大きい場合、計算コストが非常に高くなるという課題があります。大規模なデータセットに対して直接適用すると、メモリ消費量や計算時間が膨大になるため、近似的なアルゴリズムが用いられることがあります。また、データに含まれる欠損値に対して弱いため、事前に適切な前処理を行う必要があります。