본문 바로가기
개발일지/스텔레모 - 당신의 생각이 별이 되는 공간

컴퓨터가 "비슷하다"를 아는 방법

by daco2020 2026. 8. 23.

지난 3월, 메모끼리 연결선을 그으려면 먼저 풀어야 할 문제가 하나 있었습니다. 컴퓨터에게 "두 메모가 비슷하다"는 걸 어떻게 알려줄 수 있을까요.

 

사람은 두 문장을 읽으면 바로 압니다. 컴퓨터는 글자를 읽지 못합니다. 숫자만 다룰 수 있습니다.

 

문장을 숫자 목록으로 바꿉니다

 

문장 하나를 숫자 여러 개로 바꾸는 작업을 임베딩이라고 부릅니다. "고양이가 귀엽다"라는 문장을 넣으면 [0.12, -0.34, 0.56, ...] 같은 숫자 목록이 나옵니다. 이 프로젝트에서는 숫자 1536개짜리 목록이 나왔습니다.

 

이 숫자들 하나하나가 무슨 뜻인지는 사람이 알 수 없습니다. 그런데 신기하게도, 뜻이 비슷한 문장을 넣으면 비슷한 숫자 목록이 나옵니다.

 

숫자 목록 두 개를 비교합니다

 

숫자 목록이 두 개 있으면, 그 둘이 얼마나 같은 방향을 가리키는지 계산하는 방법이 있습니다. 코사인 유사도라고 부릅니다.

 

계산 결과는 -1부터 1 사이의 숫자 하나로 나옵니다. 1에 가까울수록 두 문장이 비슷하다는 뜻이고, 0에 가까우면 관련이 없다는 뜻입니다.

 

 

문장 두 개를 각각 숫자로 바꾼 다음, 그 둘을 비교해 하나의 숫자를 얻습니다

 

이 숫자 하나가 화면의 선이 됩니다

 

메모를 저장할 때마다 이 숫자 목록을 만들어 메모와 함께 저장해뒀습니다. 화면에 메모 두 개를 띄울 때는, 저장해둔 숫자 목록을 꺼내 유사도를 계산합니다.

 

계산한 값이 미리 정해둔 기준을 넘으면 두 메모 사이에 선을 긋습니다. 넘지 않으면 아무것도 하지 않습니다. 검색할 때 어떤 메모를 먼저 보여줄지, 어떤 부분을 강조할지도 같은 숫자로 정합니다.

 

제가 배운 것

 

컴퓨터는 뜻을 모릅니다. 문장을 숫자로 바꾸고, 그 숫자를 비교하는 것뿐입니다. 그런데 그 비교만으로도 뜻이 비슷한 문장을 꽤 정확히 찾아냅니다.

 

이 구조를 알고 나면 비슷한 문제에도 같은 방법을 떠올릴 수 있습니다. 두 대상이 얼마나 비슷한지 컴퓨터로 판단하고 싶다면, 그 대상을 숫자로 바꾸는 방법부터 찾으시길 바랍니다. 비교는 그다음 문제입니다.

 

이 서비스가 궁금하다면?

 

 

Stellemo - The moment your thoughts shine

Notes pile up but never connect. Stellemo places your thoughts as stars in a 3D universe and uses AI to surface links you hadn't noticed.

stellemo.com