λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT/AI, λ”₯λŸ¬λ‹

코사인 μœ μ‚¬λ„λž€? λ”₯λŸ¬λ‹μ—μ„œ 벑터 κ°„ 의미 μœ μ‚¬λ„ κ³„μ‚°ν•˜κΈ°

by πŸ”₯κΉ‘ λ‹€ κ³ ! 2025. 4. 14.

λ”₯λŸ¬λ‹κ³Ό λ¨Έμ‹ λŸ¬λ‹μ—μ„œλŠ” '벑터 κ°„μ˜ μœ μ‚¬λ„'λ₯Ό μΈ‘μ •ν•΄μ•Ό ν•˜λŠ” 일이 맀우 λ§ŽμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 자주 μ‚¬μš©λ˜λŠ” μ§€ν‘œ 쀑 ν•˜λ‚˜κ°€ λ°”λ‘œ 코사인 μœ μ‚¬λ„(Cosine Similarity)μž…λ‹ˆλ‹€.

특히 μžμ—°μ–΄ 처리(NLP), μΆ”μ²œ μ‹œμŠ€ν…œ, μž„λ² λ”© 비ꡐ λ“±μ—μ„œλŠ” μœ ν΄λ¦¬λ””μ•ˆ 거리보닀 λ°©ν–₯성에 μ΄ˆμ μ„ 맞좘 코사인 μœ μ‚¬λ„κ°€ 더 μ ν•©ν•œ κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” 코사인 μœ μ‚¬λ„μ˜ κ°œλ…, μˆ˜ν•™μ  μ •μ˜, λ”₯λŸ¬λ‹ ν™œμš© 사둀 그리고 μœ ν΄λ¦¬λ””μ•ˆ κ±°λ¦¬μ™€μ˜ μ°¨μ΄κΉŒμ§€ ν•œ λ²ˆμ— μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.


1. 코사인 μœ μ‚¬λ„λž€?

코사인 μœ μ‚¬λ„(Cosine Similarity)λŠ” 두 벑터 μ‚¬μ΄μ˜ ‘각도’λ₯Ό κΈ°μ€€μœΌλ‘œ μœ μ‚¬λ„λ₯Ό μΈ‘μ •ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 두 벑터가 μ–Όλ§ˆλ‚˜ μœ μ‚¬ν•œ λ°©ν–₯을 κ°€μ‘ŒλŠ”μ§€λ₯Ό 수치둜 λ‚˜νƒ€λ‚΄λ©°, λ²‘ν„°μ˜ 크기(길이)λŠ” λ¬΄μ‹œν•˜κ³  λ°©ν–₯μ„±λ§Œ κ³ λ €ν•©λ‹ˆλ‹€.

주둜 벑터 κ°„ λ°©ν–₯ 비ꡐ가 μ€‘μš”ν•œ λ¬Έμ„œ μœ μ‚¬λ„, λ¬Έμž₯ μž„λ² λ”©, μΆ”μ²œ μ‹œμŠ€ν…œ λ“±μ—μ„œ 널리 μ“°μž…λ‹ˆλ‹€.


2. μˆ˜ν•™μ  μ •μ˜μ™€ 계산 곡식

두 벑터 A와 Bκ°€ μžˆμ„ λ•Œ, 코사인 μœ μ‚¬λ„λŠ” λ‹€μŒκ³Ό 같이 κ³„μ‚°ν•©λ‹ˆλ‹€:

Cosine Similarity = (A · B) / (||A|| × ||B||)

- A · B : 두 λ²‘ν„°μ˜ 내적 - ||A||, ||B|| : 각 λ²‘ν„°μ˜ 크기(노름, norm)
→ 결과값은 **-1 ~ 1 μ‚¬μ΄μ˜ κ°’**을 κ°€μ§€λ©°, 1에 κ°€κΉŒμšΈμˆ˜λ‘ μœ μ‚¬λ„κ°€ λ†’κ³ , -1에 κ°€κΉŒμšΈμˆ˜λ‘ λ°˜λŒ€ λ°©ν–₯을 μ˜λ―Έν•©λ‹ˆλ‹€.


3. λ”₯λŸ¬λ‹μ—μ„œμ˜ ν™œμš© 사둀

  • 1. λ¬Έμ„œ/λ¬Έμž₯ μž„λ² λ”© 비ꡐ: BERT, Word2Vec λ“±μ—μ„œ μΆ”μΆœν•œ 벑터 κ°„ μœ μ‚¬λ„ 계산
  • 2. μΆ”μ²œ μ‹œμŠ€ν…œ: μ‚¬μš©μžμ™€ μ•„μ΄ν…œ κ°„ 벑터 μœ μ‚¬λ„ 기반 μΆ”μ²œ
  • 3. 챗봇/QA μ‹œμŠ€ν…œ: μž…λ ₯ λ¬Έμž₯κ³Ό DB λ¬Έμž₯ κ°„ 의미적 μœ μ‚¬λ„ μΈ‘μ •
  • 4. ν΄λŸ¬μŠ€ν„°λ§: ν…μŠ€νŠΈ 기반 K-meansμ—μ„œ 거리 λŒ€μ‹  μœ μ‚¬λ„λ‘œ ν™œμš©

특히 NLPμ—μ„œλŠ” λ¬Έμž₯의 κΈΈμ΄λ‚˜ 단어 μˆ˜λ³΄λ‹€ '의미의 λ°©ν–₯μ„±'이 μ€‘μš”ν•˜κΈ° λ•Œλ¬Έμ—, 코사인 μœ μ‚¬λ„κ°€ μœ ν΄λ¦¬λ””μ•ˆ 거리보닀 더 μ ν•©ν•œ κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.


4. μœ ν΄λ¦¬λ””μ•ˆ κ±°λ¦¬μ™€μ˜ 차이점

ν•­λͺ© 코사인 μœ μ‚¬λ„ μœ ν΄λ¦¬λ””μ•ˆ 거리
초점 λ²‘ν„°μ˜ λ°©ν–₯ 벑터 κ°„ 거리
벑터 크기 영ν–₯ λ¬΄μ‹œ (μ •κ·œν™”) 영ν–₯ 있음
μ‚¬μš© λΆ„μ•Ό NLP, μΆ”μ²œ μ‹œμŠ€ν…œ Siamese Network, KNN λ“±

→ 두 방식은 각각의 μž₯점이 있으며, **비ꡐ λŒ€μƒμ˜ νŠΉμ„±**에 따라 μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. ν…μŠ€νŠΈλ‚˜ 의미 쀑심 λΆ„μ„μ—λŠ” **코사인 μœ μ‚¬λ„**, 거리 기반 λΆ„λ₯˜λ‚˜ ν΄λŸ¬μŠ€ν„°λ§μ—λŠ” **μœ ν΄λ¦¬λ””μ•ˆ 거리**κ°€ 일반적으둜 더 μ ν•©ν•©λ‹ˆλ‹€.


5. 마무리 μš”μ•½

코사인 μœ μ‚¬λ„λŠ” λ”₯λŸ¬λ‹μ—μ„œ 벑터 κ°„ 의미적 μœ μ‚¬μ„±μ„ 비ꡐ할 λ•Œ ν•΅μ‹¬μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” κ°œλ…μž…λ‹ˆλ‹€.
특히 ν…μŠ€νŠΈ 기반 μž„λ² λ”© λ²‘ν„°μ—μ„œ 많이 ν™œμš©λ˜λ©°, λ°©ν–₯에 κΈ°λ°˜ν•œ 비ꡐ λ°©μ‹μ΄λΌλŠ” μ μ—μ„œ 거리 μ€‘μ‹¬μ˜ μœ ν΄λ¦¬λ””μ•ˆ κ±°λ¦¬μ™€λŠ” 근본적인 차이가 μžˆμŠ΅λ‹ˆλ‹€.

λ”₯λŸ¬λ‹μ„ κ³΅λΆ€ν•˜κ±°λ‚˜ μΆ”μ²œ μ‹œμŠ€ν…œ, λ¬Έμž₯ 뢄석 등을 κ°œλ°œν•˜κ³  μžˆλ‹€λ©΄ λ°˜λ“œμ‹œ μˆ™μ§€ν•΄μ•Ό ν•  μœ μ‚¬λ„ μ§€ν‘œμž…λ‹ˆλ‹€.