機械学習アルゴリズム(k-NN、k-means、推薦システム、検索エンジンなど)では、データ点(ベクトル)間の類似性や乖離度を定量化するための距離尺度(Distance Metric)を使用します。
距離尺度はデータ特性(高次元性・疎密・スケール)やドメインに応じて選択します。

主な距離尺度の分類と参照

距離尺度 主な用途・特徴 参照ページ
ユークリッド距離 ($L_2$) 低次元〜中次元の連続値データ。直線距離 ノルム(L2)
マンハッタン距離 ($L_1$) 格子状データ、高次元・ノイズ耐性が必要な場合 ノルム(L1)
コサイン距離 テキスト(TF-IDF 等の疎ベクトル)や Embedding(密ベクトル)など、高次元ベクトルの向きの近さを測る場合。ベクトルの長さ(ノルム)を無視する コサイン類似度
Lp距離 ユークリッド距離・マンハッタン距離を一般化した距離。$p$ で各次元の差の扱い方を調整する ノルム
マハラノビス距離 データの分布(スケール・相関)を考慮した距離。外れ値検知や判別分析 多変量正規分布

コサイン距離

コサイン類似度 $S$ とコサイン距離 $D$ の関係は以下の通りです。

\[D(\boldsymbol{x}, \boldsymbol{y}) = 1 - \text{CosineSimilarity}(\boldsymbol{x}, \boldsymbol{y}) = 1 - \frac{\langle{\boldsymbol{x}}, {\boldsymbol{y}}\rangle}{\lVert \boldsymbol{x} \rVert_2 \lVert \boldsymbol{y} \rVert_2}\]
  • 範囲: $0 \le D \le 2$ (要素が非負のデータセットでは $0 \le D \le 1$)
  • 向きが全く同じベクトル同士の距離は $0$、真逆の向きの距離は $2$ となります。
  • 詳細な導出や行列積での解釈については コサイン類似度 を参照してください。

Lp距離(Lpノルムに基づく距離)

ユークリッド距離($L_2$)とマンハッタン距離($L_1$)を一般化した距離尺度です。2点 $\boldsymbol{x}, \boldsymbol{y} \in \mathbb{R}^n$ に対して、次式で定義されます。

\[L_p(\boldsymbol{x}, \boldsymbol{y}) = \left( \sum_{i=1}^{n} |x_i - y_i|^p \right)^{\frac{1}{p}}\]

$p$ の値を変えることで、以下のようにさまざまな距離尺度を統一的に表現できます。

$p$ の値 名称 式
$p=1$ マンハッタン距離($L_1$) $\sum_i \lvert x_i - y_i \rvert$
$p=2$ ユークリッド距離($L_2$) $\sqrt{\sum_i (x_i - y_i)^2}$
$p \to \infty$ チェビシェフ距離($L_\infty$) $\max_i \lvert x_i - y_i \rvert$(各次元の差の最大値)

直感的なイメージ

  • $p$ が小さいほど、各次元の差を「均等に」足し合わせる方向に近づく($L_1$)
  • $p$ が大きいほど、最も差が大きい次元の影響が支配的になっていく($L_\infty$ では最大値だけで決まる)
  • ユークリッド距離・マンハッタン距離は、この連続的なパラメータ $p$ の両端にある特殊ケースとして位置づけられる

マハラノビス距離(Mahalanobis Distance)

ユークリッド距離が「各次元を対等に、かつ独立に」扱うのに対し、マハラノビス距離はデータの分布(共分散)を考慮して距離を測る尺度です。
平均ベクトル $\boldsymbol{\mu}$、共分散行列 $\Sigma$ を持つ分布に対して、データ点 $\boldsymbol{x}$ との距離は次式で定義されます。

$\Sigma^{-1}$ は共分散行列の逆行列で精度行列と呼ばれることもあります。

\[D_M(\boldsymbol{x}) = \sqrt{(\boldsymbol{x} - \boldsymbol{\mu})^\top \Sigma^{-1} (\boldsymbol{x} - \boldsymbol{\mu})}\]

$\boldsymbol{x}-\boldsymbol{\mu}$ を列ベクトル($n\times1$)とすると、$(\boldsymbol{x}-\boldsymbol{\mu})^\top$ は行ベクトル($1\times n$)になります。

\[\underbrace{(\boldsymbol{x}-\boldsymbol{\mu})^\top}_{1\times n}\ \underbrace{\Sigma^{-1}}_{n\times n}\ \underbrace{(\boldsymbol{x}-\boldsymbol{\mu})}_{n\times1} = \text{スカラー}\]

同様に 2 点間の距離は以下の式で定義されます。

\[D_M(\boldsymbol{x}, \boldsymbol{y}) = \sqrt{(\boldsymbol{x} - \boldsymbol{y})^\top \Sigma^{-1} (\boldsymbol{x} - \boldsymbol{y})}\]

なぜ共分散行列 $\Sigma^{-1}$ が必要か

  • 各特徴量のスケール(単位・分散)が異なる場合、ユークリッド距離はスケールの大きい特徴量に引きずられてしまう
  • 特徴量同士に相関がある場合、ユークリッド距離はその相関構造を無視してしまう
  • $\Sigma^{-1}$ を挟むことで、分散で正規化(スケールの違いを吸収)し、かつ相関を取り除いたうえで距離を測ることができる
  • 共分散行列が単位行列 $I$(=すべての特徴量が無相関かつ分散1に標準化されている)のとき、マハラノビス距離はユークリッド距離と一致する
\[\Sigma = I \implies D_M(\boldsymbol{x}, \boldsymbol{y}) = \sqrt{(\boldsymbol{x}-\boldsymbol{y})^\top (\boldsymbol{x}-\boldsymbol{y})} = \lVert \boldsymbol{x} - \boldsymbol{y} \rVert_2\]

多変量正規分布 の確率密度関数の指数部分 $(\boldsymbol{x}-\boldsymbol{\mu})^\top \Sigma^{-1} (\boldsymbol{x}-\boldsymbol{\mu})$ がまさにマハラノビス距離の2乗にあたり、分布の「等高線(等確率密度の線)」はマハラノビス距離が等しい点の集合(楕円)になります。

距離尺度の利用場面

機械学習の実務における距離尺度の選定基準は以下の通りです。

距離尺度の選択

1. ユークリッド距離 vs マンハッタン距離

次元の呪い(Curse of Dimensionality)

次元数 $d$ が非常に大きくなると、空間内の任意の 2 点間のユークリッド距離の差が相対的に小さくなり、距離の分別力が低下します。高次元空間では、相対的にマンハッタン距離($L_1$)の方が識別力を保ちやすい傾向があります

外れ値への耐性:$L_1$ と $L_2$ の違い

$L_2$ 距離は各次元の差を 2 乗するため、外れ値の影響を過剰に受けます。
外れ値(ノイズ)が多いデータセットには $L_1$ 距離が適しています。

外れ値の意味

ここでいう外れ値は、ベクトル全体がではなく、ある次元だけ値が極端にずれている状態を指します。
$a_i = |x_i - y_i|$ とおくと、外れ値とは特定の $i$ で $a_i$ だけが大きい状況です。

総和の中での寄与
  • $L_1 = \sum_i a_i$:各次元の寄与は $a_i$
  • $L_2 = \sqrt{\sum_i a_i^2}$:根を取る前の総和での各次元の寄与は $a_i^2$

根を取るのは総和した後なので、各次元の重みづけは元に戻りません。

寄与の比
\[\frac{a_i^2}{a_i} = a_i\]
  • $a_i > 1$:2 乗で拡大される(大きい差ほど強く強調される)
  • $a_i < 1$:2 乗で縮小される(小さい差はさらに目立たなくなる)
  • $a_i = 1$:倍率 1 でちょうど差が消える(特殊なケース)

つまり、$a_i$ が大きい次元ほど相対的に強調され、小さい次元ほど抑えられるという重みづけの差が、$a_i$ の値によらず常に生じます。$a_i = 1$ のときに差が見えないのは、倍率がたまたま 1 になるためです。

具体例($a_i \neq 1$)
  各次元の差 $L_1$ $L_2$
A(均等) (2, 2, 2, 2) 8 $\sqrt{16}=4$
B(1次元だけ大) (8, 0, 0, 0) 8 $\sqrt{64}=8$
  • $L_1$:A と B は同じ距離(8)
  • $L_2$:B は A の 2 倍

1 つの次元の大きなズレが $L_2$ では距離全体を大きく押し上げるため、外れ値の影響を受けやすくなります。

スケールを変えても結論は同じ

すべての差を 0.5 倍にして (1, 1, 1, 1) と (4, 0, 0, 0) にしても、$L_1$ は等しく、$L_2$ は B が A の 2 倍のままです。距離全体が定数倍されるだけで、A と B の比は変わりません。

2. ユークリッド距離 vs コサイン距離

  • 文書・Embedding 表現:自然言語処理(NLP)や推薦システムのベクトル(TF-IDF や Word2Vec/OpenAI Embedding など)では、どのような単語・特徴が含まれるか(ベクトルの方向)が重要になるため、コサイン距離(またはコサイン類似度)が使用されます
  • 正規化(L2 Normalize)と高速化: ベクトル $\boldsymbol{x}, \boldsymbol{y}$ がともに $L_2$ 正規化($\lVert\boldsymbol{x}\rVert_2 = 1, \lVert\boldsymbol{y}\rVert_2 = 1$)されている場合、ユークリッド距離の 2 乗とコサイン類似度には以下の関係が成り立ちます
\[\lVert \boldsymbol{x} - \boldsymbol{y} \rVert_2^2 = 2 (1 - \cos\theta)\]

このため、あらかじめベクトルを正規化しておけば、コサイン距離の計算を単純な内積(ドット積)の計算に置き換えることができ、大規模ベクトル検索(FAISS など)で大幅な高速化が図れます。

3. ユークリッド距離 vs マハラノビス距離

主な用途

  • 外れ値検知:分布の形(相関・分散の偏り)を考慮した上で「どれだけ異常か」を測れるため、単純なユークリッド距離より外れ値検知に適している
  • 判別分析:複数クラスのデータがある場合に、各クラスの分布(平均・共分散)からの距離でどのクラスに近いかを判定する

ユークリッド距離との比較

  ユークリッド距離 マハラノビス距離
スケールの違い 考慮しない 考慮する(分散で正規化)
特徴量間の相関 考慮しない 考慮する(共分散行列で補正)
必要な情報 2点の座標のみ 2点の座標 + データ分布の共分散行列
計算コスト 低い 共分散行列の逆行列計算が必要でやや高い

まとめ