Page 79 - 인공지능 수학 교과서
P. 79
여러 벡터의 유사도를 쉽게 알아보게 할 수 있을까?
텍스트 자료를 표현하는 여러 개의 벡터들이 있을 때, 이들 사이의 코사인 유사도
를 나타내는
는 행렬을 이용하면 쉽게 알아볼 수 있다. 예를 들어 세 단어 A 1 , A 2 , A 3
벡터가 각각 a_1=(1, 2), a_2=(1, 1), a_3=(3, 1)일 때, 코사인 유사도를 계산하면 다음
과 같다.
1×1+2×1 310
C a_1, a_2 = =
1^2+2^2 1^2+1^2 10
1×3+1×1 25
C a_2, a_3 = =
1^2+1^2 3^2+1^2 5
3×1+1×2 2
C a_3, a_1 = =
3^2+1^2 1^2+2^2 2
위의 세 벡터들 사이의 코사인 유사도를 표로 나타낼 수 있으므로 행렬로 표현해 볼
수 있다.
a_1 a_2 a_3
310 2 3 10 2 ▶ 왼쪽 행렬의 대각선 위에
a_1 1 1 있는 성분의 값은 1이고,
10 2 10 2
대각선을 기준으로 대칭
310 25 3 10 1 2 5 인 값을 가진다.
a_2 1 10 5
10 5
2 25 2 2 5 1
a_3 1 2 5
2 5
벡터 사이의 유사도를 나타낸 표와 행렬
이때 코사인 유사도를 소수점 아래 셋째 자리에서 반올림하여 구하면
310 25 2
≒ 0.95, ≒ 0.89, =0.71
10 5 2
이므로 가장 유사한 단어를 나타내는 벡터는 a_1와 a_2이고, 가장 유사하지 않은 단어를
나타내는 벡터는 a_1와 a_3이다.
여기서 벡터 사이의 코사인 유사도를 나타내는 행렬의 (i, j) 성분은 두 단어 A_i와
Aj 의 코사인 유사도를 나타낸다.
여러 벡터 사이의 코사인 유사도를 행렬로 표현하면 원하는 값을 찾아내기 쉽다.
1. 자료의 분류 77