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         310
                                  
                               
                           C  a_1, a_2  =          =
                                      1^2+2^2 1^2+1^2  10

                                        1×3+1×1         25
                                                          
                                  
                               
                           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 

                                         310       2                3 10     2             ▶ 왼쪽 행렬의 대각선 위에
                       a_1     1                                   1                            있는 성분의 값은 1이고,
                                          10         2                    10     2
                                                                                                 대각선을 기준으로 대칭
                              310                 25          3 10    1    2 5               인 값을 가진다.
                       a_2                1                       10            5
                               10                    5
                               2        25                      2    2 5     1
                       a_3                          1              2     5
                                2          5
                                           벡터 사이의 유사도를 나타낸 표와 행렬


                 이때 코사인 유사도를 소수점 아래 셋째 자리에서 반올림하여 구하면



                           310           25          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
   74   75   76   77   78   79   80   81   82   83   84