データ分析 において、コサイン類似度は、 内積空間 で定義された2つの非ゼロベクトル間の類似度を測る尺度 です。コサイン類似度は、ベクトル間の角度のコサイン、つまり、ベクトルの 内積をベクトルの長さの積で割った値 です。したがって、コサイン類似度はベクトルの大きさには依存せず、角度のみに依存します。コサイン類似度は常に の区間に属します。[ − 1 、 + 1 ] 。 {\displaystyle [-1,+1].} 例えば、2つの比例ベクトル はコサイン類似度が+1、2つの直交ベクトル は類似度が0、2つの反対 ベクトルは類似度が-1となります。場合によっては、ベクトルの成分値が負になることはなく、その場合、コサイン類似度は制限されます。[ 0 、 1 ] {\displaystyle [0,1]} 。
例えば、情報検索 やテキストマイニング では、各単語に異なる座標が割り当てられ、文書は文書内の各単語の出現回数のベクトルで表されます。コサイン類似度は、文書の長さに関係なく、主題に関して2つの文書がどの程度類似しているかを測る有用な尺度となります。[ 1 ]
この手法は、データマイニング の分野におけるクラスター内の凝集度を測定するためにも使用されます。[ 2 ]
コサイン類似度の利点の1つは、特に疎ベクトルにおいて 計算量が少ないこと です。非ゼロ座標のみを考慮すればよいからです。
コサイン類似度の別名には、オルチニ類似度 やタッカー合同係数 などがある。大塚-落合類似度 (下記参照)は、バイナリデータ に適用されたコサイン類似度である。[ 3 ]
意味 2つの非ゼロベクトルのコサインは、ユークリッドのドット積の 公式を用いて求めることができる。
A ⋅ B = ‖ A ‖ ‖ B ‖ コス θ {\displaystyle \mathbf {A} \cdot \mathbf {B} =\left\|\mathbf {A} \right\|\left\|\mathbf {B} \right\|\cos \theta } 2 つのn 次元属性ベクトル A とB が与えられた場合、コサイン類似度cos(θ) は、 ドット積 と大きさを 用いて次のように表されます。
コサイン類似度 = S C ( A 、 B ) := コス ( θ ) = A ⋅ B ‖ A ‖ ‖ B ‖ = ∑ 私 = 1 n A 私 B 私 ∑ 私 = 1 n A 私 2 ⋅ ∑ 私 = 1 n B 私 2 、 {\displaystyle {\text{コサイン類似度}}=S_{C}(A,B):=\cos(\theta )={\mathbf {A} \cdot \mathbf {B} \over \|\mathbf {A} \|\|\mathbf {B} \|}={\frac {\sum \limits _{i=1}^{n}{A_{i}B_{i}}}{{\sqrt {\sum \limits _{i=1}^{n}{A_{i}^{2}}}}\cdot {\sqrt {\sum \limits _{i=1}^{n}{B_{i}^{2}}}}}},} どこA 私 {\displaystyle A_{i}} そしてB 私 {\displaystyle B_{i}} は私 {\displaystyle i} ベクトルの番目の成分 A {\displaystyle \mathbf {A} } そしてB {\displaystyle \mathbf {B} } 、 それぞれ。
結果として得られる類似度は、-1(完全に反対)から+1(完全に同じ)までの範囲で表され、0は直交性 (相関 なし)を示し、中間の値は中程度の類似性または非類似性を示します。
テキストマッチング の場合、属性ベクトルA とB は通常、文書の単語頻度ベクトルです。コサイン類似度は、比較時に文書の長さを 正規化する方法として考えることができます。 情報検索 の場合、2つの文書のコサイン類似度は、0 → 1 {\displaystyle 0\to 1} 用語頻度は負の値をとることができないため、これはTF-IDF 重みを使用する場合でも同様です。2つの用語頻度ベクトル間の角度は 90°を超えることはできません。
属性ベクトルがベクトル平均を減算することによって正規化されている場合(例:A − A ¯ {\displaystyle A-{\bar {A}}} )、この尺度は中心化コサイン類似度と呼ばれ、ピアソン相関係数 に相当します。中心化の例については、
もし A = [ A 1 、 A 2 ] T 、 それから A ¯ = [ ( A 1 + A 2 ) 2 、 ( A 1 + A 2 ) 2 ] T 、 {\displaystyle {\text{if}}\,A=[A_{1},A_{2}]^{T},{\text{ then }}{\bar {A}}=\left[{\frac {(A_{1}+A_{2})}{2}},{\frac {(A_{1}+A_{2})}{2}}\right]^{T},} それで A − A ¯ = [ ( A 1 − A 2 ) 2 、 ( − A 1 + A 2 ) 2 ] T 。 {\displaystyle {\text{ so }}A-{\bar {A}}=\left[{\frac {(A_{1}-A_{2})}{2}},{\frac {(-A_{1}+A_{2})}{2}}\right]^{T}.}
コサイン距離 2 つの単位長さベクトル間の距離をそれらのベクトルの差の長さとして定義すると、 距離 ( A 、 B ) = ( A − B ) ⋅ ( A − B ) = A ⋅ A − 2 ( A ⋅ B ) + B ⋅ B = 2 ( 1 − S C ( A 、 B ) ) 。 {\displaystyle \operatorname {dist} (\mathbf {A} ,\mathbf {B} )={\sqrt {(\mathbf {A} -\mathbf {B} )\cdot (\mathbf {A} -\mathbf {B} )}}={\sqrt {\mathbf {A} \cdot \mathbf {A} -2(\mathbf {A} \cdot \mathbf {B} )+\mathbf {B} \cdot \mathbf {B} }}={\sqrt {2(1-S_{C}(\mathbf {A} ,\mathbf {B} ))}}\,.}
それにもかかわらず、コサイン距離 [ 4 ] は平方根や2の係数なしで定義されることが多い。
コサイン距離 = D C ( A 、 B ) := 1 − S C ( A 、 B ) 。 {\displaystyle {\text{cosine distance}}=D_{C}(A,B):=1-S_{C}(A,B)\,.} コサイン距離はユークリッド距離の二乗に比例するため、真の距離尺度ではありません。 三角 不等式(より厳密にはシュワルツの不等式 )を満たさず、一致公理にも違反します。同じ順序を維持しつつ三角不等式を満たすには、ユークリッド距離に変換すればよいのです。 2 ( 1 − S C ( A 、 B ) ) {\textstyle {\sqrt {2(1-S_{C}(A,B))}}} または角度距離θ = arccos( S C ( A , B )) 。あるいは、角度距離に適用される三角不等式は、コサインを用いて直接表現することもできます。以下を 参照してください。
角度距離と類似性 任意の2つのベクトル間の正規化された角度(角度距離と呼ばれる) A {\displaystyle A} そしてB {\displaystyle B} は正式な距離尺度 であり、コサイン類似度から計算できます。[ 5 ] 角度距離尺度の補数を使用して、 0 から 1 までの範囲の角度類似度 関数を定義できます。
ベクトル要素が正または負になる場合:
角度距離 = D θ := アルコス ( コサイン類似度 ) π = θ π {\displaystyle {\text{angular distance}}=D_{\theta }:={\frac {\arccos({\text{cosine similarity}})}{\pi }}={\frac {\theta }{\pi }}} 角度相似性 = S θ := 1 − 角度距離 = 1 − θ π {\displaystyle {\text{angular similarity}}=S_{\theta }:=1-{\text{angular distance}}=1-{\frac {\theta }{\pi }}} または、ベクトルの要素が常に正である場合:
角度距離 = D θ := 2 ⋅ アルコス ( コサイン類似度 ) π = 2 θ π {\displaystyle {\text{angular distance}}=D_{\theta }:={\frac {2\cdot \arccos({\text{cosine similarity}})}{\pi }}={\frac {2\theta }{\pi }}} 角度相似性 = S θ := 1 − 角度距離 = 1 − 2 θ π {\displaystyle {\text{angular similarity}}=S_{\theta }:=1-{\text{angular distance}}=1-{\frac {2\theta }{\pi }}} 残念ながら、逆余弦関数(arccos )の計算は時間がかかるため、角度距離を使用する方が、上記で説明したより一般的な(ただしメートル法ではない)余弦距離を使用するよりも計算コストが高くなります。
大塚-落合係数生物学では、大塚弥之助 (大塚弥之助[6] 日本語:大塚弥之助 [ 6 ] 日本語 : 落合明) [ 7 ] および落合明 (日本語 : 落合明 ) [ 8 ] にちなんで名付けられた、大塚-落合係数として知られる同様の概念があり、落合-バークマン[ 9 ] または落合係数[ 10 ] としても知られ、次のように表すことができます。
K = | A ∩ B | | A | × | B | {\displaystyle K={\frac {|A\cap B|}{\sqrt {|A|\times |B|}}}} ここ、A {\displaystyle A} そしてB {\displaystyle B} は集合 であり、| A | {\displaystyle |A|} は、A {\displaystyle A} セットがビットベクトルとして表現される場合、大塚-落合係数はコサイン類似度と同じであることがわかります。これは、ゴッドフリー・トムソン によって導入されたスコアと同一です。[ 11 ]
最近の書籍[ 12 ] では、この係数は、大塚という姓の別の日本人研究者に暫定的に誤って帰属されている。この混乱は、1957年に落合明が浜井生三[13]の論文を引用して、この係数を大塚(名字は記載なし)のみに帰属させていることに起因 する。 浜井生 三 [ 7]は、大塚 矢之助 に よる1936年の原著 論文 を 引用している。
コサイン類似度に関する三角形の不等式 角度(つまり単位超球上の弧長)に関する通常の三角形の不等式から、次のことが得られます。
| ∠ A C − ∠ C B | ≤ ∠ A B ≤ ∠ A C + ∠ C B 。 {\displaystyle |~\angle {AC}-\angle {CB}~|\leq ~\angle {AB}~\leq ~\angle {AC}~+~\angle {CB}~.} コサイン関数は[0, π ] ラジアンの角度が増加するにつれて減少するため、各値のコサインを取ると、これらの不等式の向きが逆になります。
コス ( ∠ A C − ∠ C B ) ≥ コス ( ∠ A B ) ≥ コス ( ∠ A C + ∠ C B ) 。 {\displaystyle \cos(\angle {AC}-\angle {CB})\geq \cos(\angle {AB})\geq \cos(\angle {AC}+\angle {CB}).} コサインの加算と減算の公式を用いると、これら2つの不等式は元のコサインを用いて次のように表すことができる。
コス ( A 、 C ) ⋅ コス ( C 、 B ) + ( 1 − コス ( A 、 C ) 2 ) ⋅ ( 1 − コス ( C 、 B ) 2 ) ≥ コス ( A 、 B ) 、 {\displaystyle \cos(A,C)\cdot \cos(C,B)+{\sqrt {\left(1-\cos(A,C)^{2}\right)\cdot \left(1-\cos(C,B)^{2}\right)}}\geq \cos(A,B),} コス ( A 、 B ) ≥ コス ( A 、 C ) ⋅ コス ( C 、 B ) − ( 1 − コス ( A 、 C ) 2 ) ⋅ ( 1 − コス ( C 、 B ) 2 ) 。 {\displaystyle \cos(A,B)\geq \cos(A,C)\cdot \cos(C,B)-{\sqrt {\left(1-\cos(A,C)^{2}\right)\cdot \left(1-\cos(C,B)^{2}\right)}}.} この形式の三角不等式は、参照オブジェクト C との類似性が既知である場合に、2 つのオブジェクト A と B の最小および最大の類似性を制限するために使用できます。これは、たとえばメトリック データ インデックス作成で使用されますが、通常の k-means を高速化するためにユークリッド三角不等式が使用されているのと同様に、球面k-means クラスタリングを 高速化するためにも使用されています[ 18 ] 。
ソフトコサイン尺度 2 つのベクトル間のソフト コサインまたは (「ソフト」類似度) は、特徴のペア間の類似性を考慮します。[ 19 ] 従来のコサイン類似度は、ベクトル空間モデル (VSM) の特徴を独立または完全に異なるものとして考慮しますが、ソフト コサイン尺度は、VSM の特徴の類似性を考慮することを提案しており、コサイン (およびソフト コサイン) の概念と (ソフト) 類似性のアイデアを一般化するのに役立ちます。
例えば、自然言語処理 (NLP)の分野では、特徴間の類似性は非常に直感的です。単語、n- グラム 、構文n- グラム[ 20 ] などの特徴は、形式的にはVSMで異なる特徴として扱われますが、非常に類似している場合があります。例えば、「play」と「game」は異なる単語であり、VSMでは異なる点にマッピングされますが、意味的には関連しています。n-グラム や構文n- グラムの場合、レーベンシュタイン距離 を適用できます(実際、レーベンシュタイン距離は単語にも適用できます)。
ソフトコサインを計算する際、特徴間の類似性を示すために行列sを 使用します。この行列sは、レーベンシュタイン距離、 WordNet 類似度、またはその他の類似度尺度 を用いて計算できます。そして、この行列を乗算するだけです。
2つのN 次元ベクトルが与えられた場合1 {\displaystyle a} そしてb {\displaystyle b} ソフトコサイン類似度は次のように計算されます。
s o f t _ c o s 私 n e 1 ( 1 、 b ) = ∑ 私 、 j N s 私 j 1 私 b j ∑ 私 、 j N s 私 j 1 私 1 j ∑ 私 、 j N s 私 j b 私 b j 、 {\displaystyle {\begin{aligned}\operatorname {soft\_cosine} _{1}(a,b)={\frac {\sum \nolimits _{i,j}^{N}s_{ij}a_{i}b_{j}}{{\sqrt {\sum \nolimits _{i,j}^{N}s_{ij}a_{i}a_{j}}}{\sqrt {\sum \nolimits _{i,j}^{N}s_{ij}b_{i}b_{j}}}}},\end{aligned}}} ここで、s ij = similarity(特徴i 、特徴j ) です。
特徴間に類似性がない場合(s ii = 1 、s ij = 0 、i ≠ j )、与えられた式は従来のコサイン類似度式と同等です。
この尺度の時間計算量 は2次であり、実世界のタスクに適用可能です。なお、計算量は2次未満に削減できます。[ 21 ] このようなソフトコサイン類似度の効率的な実装は、オープンソースライブラリGensim に含まれています。
参考文献 ↑ Singhal, Amit (2001). "現代の情報検索:概要". IEEEコンピュータソサエティデータエンジニアリング技術委員会会報 24(4):35–43.↑ P.-N. Tan、M. Steinbach、V. Kumar、『データマイニング入門』 、Addison-Wesley (2005)、 ISBN 0-321-32136-7 第8章、500ページ。 ↑ "cosine_similarity: コサイン類似度を計算する関数" . rDrr.io . 2024年 11月18日 取得 . ↑ Wolfram Research (2007). "CosineDistance – Wolfram Language & System Documentation Center" . wolfram.com . {{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)↑ 「コサイン距離、コサイン類似度、角度コサイン距離、角度コサイン類似度」 。www.itl.nist.gov 。 2020年7月11日 取得 。 ↑ 大森正恵 (2004)。 「ネオテクトニクスの基礎を築いた大塚弥之助の地質学的思想(地球科学者) 」 地球科学 。 58 (4): 256–259 . 土井 : 10.15080/agcjchikyukaraku.58.4_256 。 1 2 大塚矢之助(1936)「日本の更新世海産軟体動物の動物相の特徴―更新世における日本の気候が寒冷化した証拠として」 日本 生物地理学会報 6 (16): 165-170 。 1 2 落合明(1957) 「日本および周辺地域に生息するヒラメ科魚類の動物地理学的研究-II」 日本水産 学会誌 22 ( 9): 526-530 . doi : 10.2331/suisan.22.526 . ↑ Barkman, Jan J. (1958). Phytosociology and Ecology of Cryptogamic Epiphytes: Including a Taxonomic Survey and Description of Their Vegetation Units in Europe . Assen: Van Gorcum. ↑ Romesburg, H. Charles (1984). Cluster Analysis for Researchers . Belmont, California: Lifetime Learning Publications. p. 149. ↑ トムソン、ゴッドフリー (1916)。 「一般因子を持たない階層構造」 (PDF) 。英国心理 学 ジャーナル 。8 : 271–281 。 ↑ Howarth, Richard J. (2017). Dictionary of Mathematical Geosciences: With Historical Notes . Cham: Springer. p. 421. Bibcode : 2017dmgh.book.....H . doi : 10.1007/978-3-319-57315-1 . ISBN 978-3-319-57314-4 . S2CID 67081034 . […] 彼によって「大塚」[東北大学水産学科の大塚A]に帰属された。 ↑ 浜井育曽(1955) 「群集係数による群集の階層化(続き)」 日本 生態学会誌 5 ( 1): 41–45 . doi : 10.18960/seitai.5.1_41 . ↑ Connor, Richard (2016). A Tale of Four Metrics . Similarity Search and Applications. Tokyo: Springer. doi : 10.1007/978-3-319-46759-7_16 . ↑ Spruill, Marcus C. (2007). "高次元球面上の座標の漸近分布" . Electronic Communications in Probability . 12 : 234– 247. doi : 10.1214/ECP.v12-1294 . ↑ 「RDにおける2つ の ランダムな単位ベクトル間のドット積の分布」 。CrossValidated 。 ↑ Graham L. Giller (2012). "ランダムビットストリームの統計的特性とコサイン類似度のサンプリング分布". Giller Investments Research Notes (20121024/1). doi : 10.2139/ssrn.2167044 . S2CID 123332455 . ↑ Schubert, Erich; Lang, Andreas; Feher, Gloria (2021). "球面k-平均法の高速化" . Reyes, Nora; Connor, Richard; Kriege, Nils; Kazempour, Daniyal; Bartolini, Ilaria; Schubert, Erich; Chen, Jian-Jia (編)『 類似性検索と応用 』Lecture Notes in Computer Science. Vol. 13058. Cham: Springer International Publishing. pp. 217–231 . arXiv : 2107.04074 . doi : 10.1007/978-3-030-89657-7_17 . ISBN 978-3-030-89657-7 . S2CID 235790358 . ↑ シドロフ、グリゴリ。アレクサンダー・ゲルブク。ゴメス・アドルノ、ヘレナ。デヴィッド・ピント(2014年9月29日)。 「ソフト類似性とソフトコサイン測定: ベクトル空間モデルにおける特徴の類似性」 。 計算とシステム 。 18 (3): 491–504 。 土井 : 10.13053/CyS-18-3-2043 。 2014 年 10 月 7 日 に取得 。 ↑ シドロフ、グリゴリ。ベラスケス、フランシスコ。スタマタトス、エフスタティオス。アレクサンダー・ゲルブク。チャノナ・エルナンデス、リリアナ(2013)。 計算知能の進歩 。コンピューターサイエンスの講義ノート。 Vol. 7630. LNAI 7630. pp. 1–11 . doi : 10.1007/978-3-642-37798-3_1 。 ISBN 978-3-642-37798-3 。↑ Novotný, Vít (2018). ソフトコサイン尺度の実装ノート . 第27回ACM国際情報知識管理会議. イタリア、トルン: Association for Computing Machinery. pp. 1639–1642 . arXiv : 1808.09407 . doi : 10.1145/3269206.3269317 . ISBN 978-1-4503-6014-2 。