コサイン類似度の限界: 埋め込みベクトルの類似度計算の最前線

現代のAI技術、特に自然言語処理(NLP)や画像処理の分野において、埋め込みベクトルは意味情報を表現するための強力なツールとして不可欠です。テキスト、画像、その他多様なモダリティのデータは、このベクトル空間において数値化され、その意味的な近さを計算することで、様々なタスクに応用されています。そして、これらの埋め込みベクトル間の類似度を測る標準的な指標として、広く用いられてきたのがコサイン類似度です。
コサイン類似度は、ベクトルの方向のみに着目し、その角度に基づいて類似度を評価するという特性から、スケールやノルムの影響を受けにくいという利点があります。初期の情報検索システムから、Word2Vecのような単語埋め込み、そして近年の対照学習(Contrastive Learning)を用いたモデルに至るまで、コサイン類似度はその有効性を示してきました。
しかしながら、埋め込み技術の進化と応用範囲の拡大に伴い、コサイン類似度の限界も明らかになってきています。ベクトルのノルム(大きさ)が、情報量、確信度、特異性といった重要な意味情報を含んでいる場合、コサイン類似度はこれを無視してしまうため、かえって不適切な類似度評価につながる可能性があります。
本記事では、コサイン類似度がなぜこれほどまでに普及し、有効に機能してきたのか解説します。その上で、コサイン類似度が抱える限界とその背景にある問題点を具体的に指摘します。最後に、これらの限界を克服し、より豊かな意味的類似性を捉えるための新しい指標や研究動向について紹介します。
コサイン類似度とは何か?
現代のAIシステム、特に自然言語処理や画像処理においては、テキストや画像などのデータは、意味情報を捉えた数値のベクトル、すなわち埋め込みベクトルとして表現されることが一般的です。この埋め込みベクトルの重要な概念は、意味的に近いデータほど、ベクトル空間上での距離が近く配置されるという点にあります。このようなベクトル表現を用いることで、コンピュータは言葉や画像の意味合いを数値的に比較し、類似度を計算することが可能になります。
そして、この埋め込みベクトル間の類似度を測るための重要な指標の一つが、コサイン類似度です。コサイン類似度は、二つのベクトルの間の角度に基づいて類似度を評価するものであり、ベクトルの大きさ(ノルム、magnitude)は考慮せず、方向のみに着目するという特徴を持ちます。
コサイン類似度の定義
二つのベクトル \(\boldsymbol{u}\) と \(\boldsymbol{v}\) が与えられたとき、コサイン類似度 (cosine similarity) は以下の数式によって定義されます:
$$
\text{cos_sim}(\boldsymbol{u},\boldsymbol{v}) = \frac{\boldsymbol{u}^{\top}\boldsymbol{v}}{|\boldsymbol{u}||\boldsymbol{v}|}
$$
ここで、\(\boldsymbol{u}^{\top}\boldsymbol{v}\) はベクトル \(\boldsymbol{u}\) と \(\boldsymbol{v}\) の内積 (dot product) を表し、\(|\boldsymbol{u}|\) と \(|\boldsymbol{v}|\) はそれぞれベクトル \(\boldsymbol{u}\) と \(\boldsymbol{v}\) のL2ノルム(ユークリッドノルム、magnitude)を表します。この式は、二つのベクトルの内積を、それぞれのベクトルのノルムの積で割ることで計算され、その結果として得られる値は\(-1\)から\(1\)の範囲を取ります。
コサイン類似度の直感的な理解
コサイン類似度の値は、二つのベクトルの方向関係を直感的に捉えることができます:
- 値が1に近い場合: 二つのベクトルの方向が非常に近いことを意味します。完全に同じ方向を向いている場合は、コサイン類似度は1(完全に類似)となります。
- 値が0の場合: 二つのベクトルが直交していることを意味します。この場合、ベクトル間には関連性がないと解釈されます (無関係)。
- 値が-1に近い場合: 二つのベクトルの方向がほぼ正反対であることを意味します。完全に反対の方向を向いている場合は、コサイン類似度は-1(完全に反対)となります。
なぜスケール不変性が重要なのか
コサイン類似度の重要な特性の一つに、スケール不変性 (scale invariance) が挙げられます。これは、ベクトルの大きさ(ノルム)が類似度の計算に影響を与えないという性質です。この特性は、特に初期の情報検索システムにおいて、文書の長さや単語の頻度といった、意味内容と直接関係のないベクトルの大きさの違いを無視できるため非常に重要でした。
例えば、同じトピックについて書かれた二つの文書があったとしても、一方の文書が長く、同じ単語が多く出現する可能性があります。このような場合、単純なユークリッド距離では、文書の長さの違いが類似度に大きな影響を与えてしまい、意味的な類似性を正しく評価できないことがあります。しかし、コサイン類似度を用いることで、ベクトルの方向のみが評価されるため、文書の長さや単語の頻度に左右されず、本質的な意味の類似性を捉えることができるのです。
現代の埋め込みベクトルにおいても、ベクトルのノルムが意味情報と無関係な要因で変動する場合があります。例えば、異なるモデルや学習方法で得られた埋め込みベクトルは、同じ意味を持つ単語や文でもノルムが大きく異なることがあります。このような状況においても、コサイン類似度はベクトルの方向という、より安定した意味情報を捉え、一貫性のある類似度評価を可能にするため、広く利用されてきたのです。
コサイン類似度が「これまで」有効に機能していた理由
コサイン類似度が現代の機械学習、特に埋め込みベクトルの比較において標準的な指標となった背景には、いくつかの重要な要因が挙げられます。その普及と成功は、情報検索(IR)の初期の発展、Word2VecやGloVeといった単語埋め込みモデルの登場、そして近年の対照学習フレームワークの広範な採用といった、AI技術の進化の各段階と深く結びついています。
情報検索(IR)の分野での初期の成功
コサイン類似度が最初に注目を集めたのは、1970年代の情報検索(IR)の分野におけるベクトル空間モデルの利用でした。このモデルでは、ドキュメントやクエリは、含まれる単語の頻度を要素とする高次元のベクトルとして表現されました。そして、文書間の関連性は、これらのベクトル間のコサイン類似度によって評価されました。
このアプローチの有効性の鍵は、単語の絶対的な頻度ではなく、文書間での単語の分布の類似性に着目できた点にありました。文書の長さや特定の単語の出現回数が異なっていても、それらの単語の相対的な重要度や出現パターンが似ていれば、コサイン類似度は高い値を返し、意味的に関連性の高い文書として適切にランク付けすることができました。ベクトルの大きさ(文書の長さなど)に影響を受けにくいスケール不変性が、この初期のテキストベースのシステムにおいて、コサイン類似度がユークリッド距離などの他の指標よりも自然でロバストな類似度測定を提供した理由です。
Word2VecやGloVeといった単語埋め込みの時代
2010年代に入り、Word2VecやGloVeといった密な単語埋め込みモデルが登場すると、コサイン類似度の重要性はさらに高まりました。これらのモデルは、単語の意味的な関係性を、連続的なベクトル空間における幾何学的な関係として捉えることを可能にしました。特に、単語間の意味的な類似性やアナロジー関係(例: king – man + woman ≈ queen)が、ベクトル間の方向の類似性として捉えられ、コサイン類似度がこれらの関係性を評価する上で自然な指標となったのです。
有名なアナロジーの例がうまく機能したのは、コサイン類似度がベクトルの方向性、すなわち意味的な関係性を捉え、ベクトルの大きさの違いに左右されないという特性を持っていたからです。これにより、コサイン類似度は単なる比較関数としてだけでなく、ベクトル空間における「意味」を測るプロキシ(代理)としての役割を確立しました。人間の類似性判断とも高い相関を示すことが示され、単語の類似性評価やアナロジー課題において、コサイン類似度は主要な評価指標として広く採用されました。
対照学習の普及
近年では、SimCLR、MoCo、CLIPといった対照学習(Contrastive Learning)を基盤とするモデルが目覚ましい成果を上げています。これらのモデルでは、正例(意味的に近いペア)の埋め込みベクトル間のコサイン類似度を最大化し、負例(意味的に遠いペア)のコサイン類似度を最小化するという学習戦略が一般的に採用されています。
多くの場合、学習の際には埋め込みベクトルはL2ノルムで正規化され、損失関数には正規化されたベクトルの内積(これはコサイン類似度に等しい)が直接組み込まれます。例えば、InfoNCE損失関数は、正例ペアのコサイン類似度を分母とする指数関数の値を最大化するように設計されています。このような学習パラダイムにおいては、学習の目的関数と評価指標が自然とコサイン類似度で整合するため、ダウンストリームの評価においてもコサイン類似度がデファクトスタンダードとして用いられるようになりました。
対照学習は、埋め込み空間において、意味的に近いものは角度的に近く、遠いものは角度的に遠くなるように学習を進めます。コサイン類似度は、まさにこの角度的な近さを捉えるのに適した指標であるため、対照学習の成功とともに、その地位を不動のものとしたと言えます。
コサイン類似度の限界
コサイン類似度は、そのスケール不変性や計算効率性から、埋め込みベクトルの比較において広く用いられてきました。しかし、近年、より高性能で多様な埋め込みモデルが登場するにつれて、その限界も明らかになってきています。特に、埋め込み空間の特性、単語の頻度、高次元空間の性質、そしてベクトルノルムが持つ意味情報を無視する点において、問題が生じることが指摘されています。
埋め込み空間の異方性(Anisotropy)
事前学習済み言語モデル、特にBERTなどは、生成する埋め込みベクトルがベクトル空間内で異方性(Anisotropy)を示す傾向があります。これは、多くのベクトルが空間内の狭い円錐状の範囲に集中し、ほとんどのペア間でコサイン類似度が非常に高い値を示す現象です。その結果、意味的に大きく異なるテキスト間でも高い類似度が得られてしまい、コサイン類似度による意味の弁別が困難になる場合があります。先行研究では、無関係な文の埋め込みペアの平均コサイン類似度が\(0.9\)近くになることが示されています。
この問題への対策として、平均中心化(Mean-Centering)、白色化(Whitening)、主成分除去(Principal Component Removal)などの後処理手法が提案されています。これらの手法は、埋め込み空間の等方性(Isotropy)を回復させ、意味的な類似性をより適切に反映させることを目的としています。
頻度バイアス
トークンレベルの埋め込みにおいて、高頻度語の埋め込みベクトルは原点近くに位置する傾向があります。その結果、高頻度語と低頻度語間のコサイン類似度が低く評価されがちです。これは、意味的に近い高頻度語同士の類似度も低く見積もられる可能性を示唆しており、頻度バイアスとして知られています。過去の研究でもこの問題が実証されており、意味的な近さの評価においてコサイン類似度が頻度によって歪められることを示しています。このバイアスは、意味類似性タスクやクラスタリング、アナロジー解決など、正確な関係的近さが重要なタスクにおいて性能低下を引き起こす可能性があります。
高次元空間におけるハブネス(Hubness)
高次元の埋め込み空間では、ハブネス(Hubness)と呼ばれる現象が顕著になります。これは、少数のベクトル(ハブ)が、他の多くのベクトルと不自然に高いコサイン類似度を持つようになる現象です。このようなハブが存在すると、検索タスクや最近傍探索において、本来関連性の低いアイテムが上位にランク付けされる可能性が高まり、ランキングの信頼性が低下します。特にクロスモーダルな埋め込みにおいてコサイン類似度がハブネスを悪化させることが指摘されており、その対策としてQB-Norm(QueryBank Normalization)という、クエリと背景集合とのコサイン類似度の統計量に基づいて類似度スコアを正規化する手法が提案されています。
ノルム(ベクトルの大きさ)が持つ意味情報の無視
コサイン類似度の大きな限界の一つは、ベクトルのノルム(大きさ)を完全に無視する点です。これまで言及したように、ベクトルのノルムは、情報の豊富さ、予測の確信度、トークンの重要度(salience)など、潜在的に重要な意味情報を含んでいる可能性があります。例えば、CLIPモデルにおいては、ベクトル長がネットワークの確信度と関連していることが示唆されています。
しかし、コサイン類似度はベクトルの方向のみに着目するため、方向が類似していてもノルムが大きく異なるベクトルを同じ類似度と評価してしまいます。これは、ランキングのキャリブレーションや解釈可能性の低下につながる可能性があります。例えば、同じ方向を向いているものの、一方のベクトルが強い確信度を表し、もう一方が弱い確信度を表している場合でも、コサイン類似度はそれらを区別できません。
より良い埋め込みベクトルの類似度計算に向けて
前章で述べたように、コサイン類似度は多くの場面で有効である一方で、埋め込み空間の異方性、頻度バイアス、高次元空間におけるハブネス、そしてノルムが持つ意味情報の無視といった限界があります。これらの課題に対処するため、近年では、より高度な埋め込みベクトルの類似度計算手法が提案されています。
ノルムを考慮した類似度関数
コサイン類似度がベクトルのノルムを捨象してしまうのに対し、ノルムが情報量、確信度、重要度などの意味情報を持つ可能性が指摘されています。そこで、コサイン類似度にノルムの情報を組み込む試みがなされています。
例えば、スケーリングされた類似度関数は、角度の類似度(コサイン類似度)とノルムの大きさを組み合わせた指標です。論文中では、角度成分とノルム成分のトレードオフを調整するパラメータ \(\alpha\) を導入したスケーリングされた類似度が提案されています。
$$
\text{scaled_sim}(\boldsymbol{u},\boldsymbol{v}) = \alpha \cdot \frac{\boldsymbol{u}^{\top}\boldsymbol{v}}{|\boldsymbol{u}||\boldsymbol{v}|} + (1 – \alpha) \cdot (|\boldsymbol{u}| + |\boldsymbol{v}|)
$$
より原理的なアプローチとしては、Word Rotator’s Distance (WRD) が挙げられます。WRDは、二つの埋め込みベクトル間のノルムの差の絶対値と、角度の差(アークコサイン)の線形結合として定義され、角度と大きさの両方の違いを考慮します。パラメータ \(\lambda\) によって、角度とノルムの不一致のバランスを調整できます。WRDは、語彙の類似性や意味検索タスクにおいて、コサイン類似度よりも優れた性能を示すことが報告されています。
$$
\text{WRD}(\boldsymbol{u},\boldsymbol{v}) = ||\boldsymbol{u}| – |\boldsymbol{v}|| + \lambda \cdot \arccos\left( \frac{\boldsymbol{u}^{\top}\boldsymbol{v}}{|\boldsymbol{u}||\boldsymbol{v}|} \right)
$$
埋め込み空間の等方性を回復する手法
BERTなどの事前学習済み言語モデルの埋め込みベクトルに見られる異方性に対処するため、埋め込み空間の等方性(Isotropy)を回復するための後処理手法が研究されています。
一般的な手法としては、データセット全体の埋め込みベクトルの平均を減算する(平均中心化)、共分散行列を単位行列に近づける変換を適用する(白色化)、そして分散の大きい上位の主成分を除去する(主成分除去)などがあります。これらの手法は、埋め込みベクトルの分布をより均一にすることで、コサイン類似度がより意味的な関連性を捉えられるようにすることを目的としています。
検索タスクにおけるクエリ正規化
高次元空間におけるハブネスの問題を軽減するため、特に検索タスクにおいては、クエリ正規化の手法が提案されています。QB-Norm (QueryBank Normalization) は、クエリベクトルと背景となるベクトルの集合とのコサイン類似度の統計量(平均と標準偏差)に基づいて、クエリと候補ドキュメント間のコサイン類似度スコアを再評価(zスコア化)します。これにより、ハブとなるベクトルがランキング上位に過度に現れるのを防ぎ、検索結果の信頼性を向上させることが期待できます。
ハイブリッドな測度と角度-半径の分離
コサイン類似度の角度情報という利点を維持しつつ、ノルムが持つ情報を活用するためのハイブリッドな測度や、角度と半径(ノルム)の情報を分離して利用するアプローチも研究されています。
例えば、コサイン類似度にノルムに基づいた重みを乗じる半径方向に重み付けされた角度に基づく類似度関数が考えられます。また、埋め込みベクトルの正規化された方向ベクトル (\(\hat{\mathbf{x}}\)) とノルム (\(|\mathbf{x}|\)) を、下流のスコアリングモデルにおける別々の特徴量として結合(特徴量拡張)する手法もあります。
さらに、学習段階からノルム情報を考慮に入れるノルム感応型の学習目標も提案されています。
近年注目されているのは、最適輸送(Optimal Transport)の考え方を導入した距離測度です。OT-WRD や Sphere-OT は、ベクトルの方向構造と質量(ノルム)を同時に整列させることを目的とし、語彙の類似性評価などで有望な結果を示しています。
このように、コサイン類似度の限界を克服し、より忠実に意味的な類似性を捉えるための様々な試みがなされています。これらの新しい手法は、埋め込みベクトルの表現力を最大限に引き出し、より高度な自然言語処理タスクの実現に貢献することが期待されます。
おわりに
コサイン類似度は、そのシンプルさとスケール不変性により、長らく埋め込みベクトルの比較において主要な指標としての役割を果たしてきました。情報検索における初期の利用から、Word2VecやGloVeなどの単語埋め込み、そして近年の対照学習やマルチモーダルモデルに至るまで、その有効性が広く認識されてきました。
しかし、埋め込み技術の進歩と応用の多様化に伴い、コサイン類似度の限界も明らかになってきました。特に、埋め込みベクトルの大きさ(ノルム)が意味のある情報(確信度、情報量など)を持つ場合や、埋め込み空間が異方性を示す場合、高次元空間におけるハブネスの問題など、その課題が顕在化しています。
今後は、ベクトルの方向だけでなく、大きさが持つ意味情報も考慮した、より高度な類似度指標の開発と利用が重要になります。Word Rotator’s Distance (WRD) や QB-Norm など、ノルムを考慮したり、埋め込み空間の特性を調整したりする試みが始まっています。
機械学習を応用したアプリケーション開発においては、タスクの特性や埋め込みモデルの特性を理解した上で、コサイン類似度の適切な利用と、必要に応じた代替手法の検討を行うべきでしょう。コサイン類似度は依然として強力なツールですが、その限界を認識し、状況に応じてより適切な類似度指標を選択することが、より精度の高い、そして解釈可能なシステムの構築に繋がります。
More Information
- arXiv:2504.16318, Kisung You, 「Semantics at an Angle: When Cosine Similarity Works Until It Doesn’t」, https://arxiv.org/abs/2504.16318
- arXiv:2406.16468, Andrew Draganov et al., 「The Hidden Pitfalls of the Cosine Similarity Loss」, https://arxiv.org/abs/2406.16468
- arXiv:2403.05440, Harald Steck et al., 「Is Cosine-Similarity of Embeddings Really About Similarity?」, https://arxiv.org/abs/2403.05440