はじめに
本記事では、ベクトル間の類似度を測るために広く利用されている「コサイン類似度」について解説します。コサイン類似度は、主に情報検索や文書分類などの分野で使用され、特に自然言語処理や機械学習で重要な役割を果たす指標の一つです。
コサイン類似度を使うことで、二つのベクトル(たとえば異なる文書やアイテムの特徴量)がどの程度同じ方向性を持つかを数値化できます。
コサイン類似度は、データ間の類似度を算出する際に非常に便利な技術となります。これらについて理解が難しい場合は、経験豊富な方とマンツーマンで学習していくのもオススメです。
コサイン類似度
コサイン類似度は異なるベクトル間の類似度を測る指標となります。一般的には以下式で表されます。
コサイン類似度指標としても使われますが、類似度を使ったネットワーク分析などにより、視覚的に見やすくなることもあります。
コサイン類似度の例
下記のデータを考えます。映画1~4についてA~Cさんが5点満点で評価をしてみます。
| 映画1 | 映画2 | 映画3 | 映画4 | |
| Aさん | 5.0 | 4.5 | 2.5 | 5.0 |
| Bさん | 3.5 | 3.5 | 5.0 | 2.5 |
| Cさん | 4.5 | 5.0 | 2.5 | 4.5 |
この場合のそれぞれの人のコサイン類似度を考えてみます。
A = [5.0, 4.5, 2.5, 5.0]
B = [3.5, 3.5, 5.0, 2.5]
C = [4.5, 5.0, 2.5, 4.5]
cosine_similarity(A, B) = 0.892
cosine_similarity(B, C) = 0.901
cosine_similarity(C, A) = 0.995
結果として、AさんとCさんのコサイン類似度が高く、似ているということが分かりました。
テーブルから見ても、確かに似てそうです。
コサイン類似度の使い方
コサイン類似度は、文書の類似度を求める際によく利用されます。具体的には、以下のような場面で使用されます。
情報検索
情報検索では、ユーザーが検索クエリを入力すると、それに最も近い文書を検索結果として返します。このとき、検索クエリと文書をベクトル化して、コサイン類似度を計算することで、検索結果を決定することができます。
文書分類
文書分類では、あらかじめカテゴリごとに分類された文書を学習データとして利用し、未知の文書がどのカテゴリに属するかを予測します。このとき、学習データをベクトル化して、コサイン類似度を計算することで、未知の文書がどのカテゴリに属するかを判定することができます。
まとめ
コサイン類似度は、文書の類似度を求める際によく利用される手法の一つです。ベクトル空間モデルを利用して、2つの文書の類似度を計算することができます。情報検索や文書分類など、さまざまな分野で活用されています。
類似度の方かにもユークリッド距離などの距離指標があり、これらと今回の類似度指標を合わせて学び活用方法を検討することが良いでしょう。
コサイン類似度を学ぶ際にオススメの方法
書籍:Python自然言語処理101本ノック:: ~基礎からBERTまで~
こちらの書籍は自然言語処理の学習本になりますが、その中でコサイン類似度を用いた実装例などが示されています。言語を用いた処理に興味がある方には特におススメです。
実践的な分析を学ぶにはスクールもオススメ
コサイン類似度は様々な場面で活用される便利な指標です。実際のビジネスに活用するには現役のデータサイエンティストなどが教えてくれるスクールに通い、実践的な知識を得ることをオススメします。




コメント