読み方 : とくいちぶんかい

特異値分解【SVD】Singular Value Decomposition

概要

特異値分解とは、線形代数の行列計算の手法の一つで、任意の行列を3つの特別な行列に分解し、その構造を理解しやすくするもの。行列の性質を明らかにする基礎技術としてデータ解析や機械学習で広く利用されている方法である。
特異値分解のイメージ画像

基本的な形は、任意の m×n 行列 A を、A=UΣV という3つの行列の積に分解することである。ここで、Um×r の行列で、データの行方向の構造を捉える。Vr×n の行列であり、データの列方向の構造を捉えている。rはmとnのうち小さい方である。

最も重要なのが中央の Σ で、r×r の対角行列である。対角成分には「特異値」と呼ばれる非負の値が大きい順に並んでいる。特異値は行列が持つ変換の強さや特徴量の重要度を示す尺度として扱われる。特異値が大きいほどデータの広がりや情報量が大きい方向を表し、小さい特異値は寄与の小さな方向を示すとされる。

特異値分解の用途

統計解析や機械学習では、次元削減の一種である主成分分析PCA)の基礎として利用されることがある。主成分分析ではデータの分散が大きい方向を抽出するが、この方向を求める計算に特異値分解が用いられることが多い。特異値を基準に重要度の低い成分を削減することで、データの本質を保ちながら次元を圧縮できるため、機械学習モデルの前処理としても有効である。

画像や自然言語など高次元データ圧縮にも応用され、画像を行列として扱い、特異値の大きい成分のみを残すことで情報の大部分を保ちつつデータ量を削減する方法として知られている。また、レコメンデーションシステムでは利用者とアイテムの行列を特異値分解で分解し、少ない特異値で近似することで、潜在的な好みの要因を抽出し、まだ評価していないアイテムのスコアを予測するために利用されている。

(2025.11.26更新)