ベクトルのなす角:幾何学から抽象空間へ
ベクトルのなす角は、幾何学的には
平面や
空間上の二つのベクトルの間の
角度として直感的に理解できます。しかし、ベクトルの概念は
図形にとらわれず、より抽象的な
空間へと拡張されます。この抽象的なベクトル
空間においても、二つのベクトルのなす角を定義し、計算することが可能です。その際に用いられるのが、ベクトルの
内積と
ノルム(長さ)です。
なす角の定義
零ベクトルでない任意の二つのベクトル
xと
y のなす角θは、以下の式で定義されます。
θ = Arccos(⟨
x,
y⟩ / (||
x|| ||
y||))
ここで、⟨
x,
y⟩ はベクトル
x と
y の
内積、||
x|| と ||
y|| はそれぞれベクトル
x と
y の
ノルム(長さ)を表します。一般的には、0 ≤ θ ≤ π の範囲で主値をとります。
θが0であれば、二つのベクトルは同じ方向を向いており、一次従属の関係にあります。一方、θがπ/2であれば、二つのベクトルは直交しています。
ベクトルの類似度:コサイン類似度
ベクトルのなす角の余弦、cos θ は、二つのベクトルの類似度を表す指標として用いられます。
cos θ = ⟨
x,
y⟩ / (||
x|| ||
y||)
この値は 0 から 1 の間の値を取り、cos θ が1に近いほど、二つのベクトルの向きが一致し、類似していることを示します。逆に、cos θ が0に近いほど、二つのベクトルは直交しており、類似度が低いことを示します。
この類似度の概念は、様々な分野で応用されています。例えば、n個の要素を持つデータをn次元ベクトル
空間に表現し、それらのベクトルのコサイン類似度を計算することで、データ間の類似性を定量的に評価することができます。この手法は、特にコサイン類似度(Cosine Similarity)と呼ばれ、文書間の類似度判定などに広く利用されています。
コサイン類似度の高速計算と応用
大量のデータに対してコサイン類似度を高速に計算するアルゴリズムとして、MinHashなどが知られています。MinHashは、高次元のベクトルデータに対するコサイン類似度を効率的に近似計算できるため、大規模なデータセット(例えば、膨大な数の文書)における類似度検索などに効果を発揮します。このように、ベクトルのなす角とコサイン類似度は、
情報検索や機械学習など、様々な分野で重要な役割を果たしています。文章間の類似度判定は、検索エンジンのランキングアルゴリズムや、文書の自動分類などに活用されています。
まとめ
ベクトルのなす角は、幾何学的な直感から出発して、抽象的なベクトル
空間へと拡張できる重要な概念です。その拡張された概念と、
内積や
ノルムといった数学的ツールを用いることで、ベクトルの類似度を定量的に評価することが可能になります。コサイン類似度はその代表的な指標であり、
情報検索や機械学習など、幅広い分野で活用されています。MinHashのような効率的な計算アルゴリズムも開発されており、大規模データへの適用も容易になっています。