Ⅱ단원 · 5 / 5차시

코사인 유사도와 단원 정리

벡터의 방향을 이용하는 코사인 유사도를 배우고, 유클리드 유사도와 비교한 뒤 Ⅱ단원 전체를 정리합니다.

학습목표

  • 두 벡터가 이루는 각을 이용해 코사인 유사도를 구할 수 있다.
  • 유클리드 유사도와 코사인 유사도의 차이와 각각의 장단점을 설명할 수 있다.
  • Ⅱ단원에서 배운 텍스트 데이터 표현·분석 방법을 종합적으로 적용할 수 있다.

시간 배분

단계활동
도입코사인 유사도란?10분
활동1코사인 유사도로 리뷰 감성 분석하기15분
활동2유클리드 유사도 vs 코사인 유사도10분
활동3Ⅱ단원 정리 퀴즈15분
도입 · 10분

코사인 유사도란?

두 텍스트 데이터를 나타내는 벡터의 방향이 비슷한 정도를 코사인 유사도라고 합니다. 두 벡터 $\vec a=(a_1,\cdots,a_n), \vec b=(b_1,\cdots,b_n)$이 이루는 각의 크기를 $x°$라 할 때,

$C(\vec a,\vec b)=\cos x°=\dfrac{a_1b_1+a_2b_2+\cdots+a_nb_n}{\sqrt{a_1^2+\cdots+a_n^2}\sqrt{b_1^2+\cdots+b_n^2}}$

코사인 유사도 값이 1에 가까울수록 두 벡터의 각이 0°에 가까워 유사하고, 0에 가까울수록 각이 90°에 가까워 유사하지 않다고 판단합니다. 예를 들어 벡터 $\vec a=(1,0)$과 세 벡터 $\vec b=(3,0), \vec c=(3,2), \vec d=(0,2)$가 이루는 각과 코사인 유사도는 다음과 같습니다.

벡터두 벡터 사이의 각코사인 유사도
$\vec a$와 $\vec b$1
$\vec a$와 $\vec c$약 33.7°$\dfrac{3\sqrt{13}}{13}\approx0.83$
$\vec a$와 $\vec d$90°0
활동 1 · 15분

코사인 유사도로 리뷰 감성 분석하기

4차시와 같은 데이터 — 긍정 단어 $\vec p=(1,1,1,1,0,0,0,0)$, 부정 단어 $\vec n=(0,0,0,0,1,1,1,1)$, $U=\{$청결하다, 빠르다, 맛있다, 많다, 불편하다, 별로다, 불친절, 최악$\}$ — 로 리뷰 X의 코사인 유사도를 분석해 봅시다.

코사인 유사도 계산기 — U에서 리뷰 X의 단어를 선택하세요
C(p, x)
0
C(n, x)
0
-

$C(\vec p,\vec x)=\dfrac{2}{\sqrt4\sqrt5}\approx0.45$, $C(\vec n,\vec x)=\dfrac{3}{\sqrt4\sqrt5}\approx0.67$이므로 $\vec x$는 $\vec p$보다 $\vec n$과 이루는 각이 더 작습니다. 따라서 리뷰 X는 부정 리뷰로 분류합니다. (4차시의 유클리드 유사도 결과와 같습니다.)

활동 2 · 10분

유클리드 유사도 vs 코사인 유사도

우유와 주스에 대한 선호 정도를 (우유 선호도, 주스 선호도)의 벡터로 나타냈다고 합시다. '나'는 우유보다 주스를 더 좋아하고, '민서'는 나와 벡터의 크기(거리)는 비슷하지만 반대로 우유를 더 좋아하며, '민준'은 나와 같은 방향(우유보다 주스를 더 좋아하는 비율이 같음)이지만 훨씬 강하게 좋아합니다.

우유·주스 선호도 벡터 비교
비교유클리드 거리코사인 유사도
나 — 민서
나 — 민준

거리 기준(유클리드 유사도)으로는 나와 민서가 더 비슷하다고 판단하지만, 방향 기준(코사인 유사도)으로는 나와 민준이 더 비슷하다고 판단합니다. 실제로 나와 민준은 정도의 차이는 있지만 우유보다 주스를 더 좋아하는 경향이 같으므로, 이 경우 코사인 유사도의 판단이 더 합리적입니다.

유클리드 유사도코사인 유사도
장점거리로 직관적 해석 가능, 벡터 크기가 중요할 때 유용벡터의 차원이 늘어도 성능이 크게 저하되지 않음
단점차원이 커지면 신뢰성이 떨어지고, 방향이 비슷해도 멀면 유사하지 않다고 판단벡터의 크기 정보를 고려하지 않음, 직관적 해석이 어려움
활동 3 · 15분

Ⅱ단원 정리 퀴즈

단원 마무리 문제
맞힌 개수
0 / 5

Ⅱ단원을 마치며

텍스트 데이터를 집합·벡터로 표현하는 방법, TF-IDF로 중요한 단어를 찾는 방법, 자카드·유클리드·코사인 유사도로 텍스트의 감성을 분석하는 방법까지 살펴보았습니다. 수고 많았습니다!

← 4차시 — 자카드 유사도와 유클리드 유사도 텍스트 데이터 처리 목록으로 →