seegongsik
인공지능

어떻게 단어를 숫자로, 임베딩

앞 레슨에서 CNN은 사진을 숫자 격자로 받아 특징을 찾았다. 사진은 처음부터 밝기 숫자로 되어 있지만 단어는 사정이 다르다. 고양이라는 글자를 아무리 들여다봐도 그 안에 뜻을 나타내는 숫자는 없어요. 컴퓨터에 단어의 뜻을 건네려면 단어마다 숫자 좌표를 붙이되, 뜻이 비슷한 단어끼리 가까이 놓이도록 해야 한다. 단어를 이런 의미 좌표로 바꾸는 일을 임베딩이라고 한다.

01

단어마다 좌표를 붙여요

컴퓨터는 숫자로만 계산한다. 그런데 우리는 단어로 말하고 생각하니, 단어를 어떻게든 숫자로 바꿔야 해요. 가장 쉬운 방법은 단어에 번호를 매기는 것이지만, 번호만으로는 고양이가 자동차보다 개와 더 닮았다는 사실을 담을 수 없다.
그래서 단어마다 지도 위의 한 점처럼 좌표를 붙인다. cat은 이쪽, dog는 저쪽, 이렇게 단어마다 자기 자리가 생긴다.

단어를 눌러 의미 공간에 놓아요

단어를 하나씩 눌러 보자. 글자였던 단어가 의미 공간의 한 점이 되고, 그 점의 위치가 숫자 좌표로 나타나요.

단어를 누르자 점이 찍히고 그 옆에 숫자 두 개가 붙었다. 가로 위치와 세로 위치, 이 숫자 묶음이 좌표다. 단어가 숫자가 됐으니 이제 컴퓨터가 다룰 수 있어요.
위젯은 보기 쉽게 숫자 두 개로 그렸지만, 실제 임베딩은 단어 하나에 숫자를 수백 개씩 붙인다. 다만 점을 아무 데나 찍으면 좌표에 아무 뜻이 없다. 그래서 약속을 하나 더 둔다. 뜻이 비슷한 단어는 가까이 놓는다는 약속이다.

02

비슷한 뜻은 가까이 모여요

이 약속을 지키면 cat과 dog는 둘 다 동물이라 가까이 놓이고, king과 queen도 둘 다 왕족이라 가까이 놓인다. 반대로 cat과 car는 철자가 한 글자밖에 다르지 않지만 뜻이 전혀 달라서 멀리 떨어져요.
이 의미 공간에서는 거리가 곧 뜻이 닮은 정도다. 가까우면 비슷하고, 멀면 다르다.

catdogkingqueenapplepear
● 동물● 왕족● 과일
단어들이 마구 흩어져 있어요

뜻끼리 정렬 버튼을 눌러 보자. 흩어져 있던 단어가 동물, 왕족, 과일 묶음으로 모이고, 다른 묶음과는 멀어져요.

단어들이 묶음별로 모였다. 묶음 안에서는 가깝고, 다른 묶음과는 멀다. 그렇다면 이 좌표는 누가 정할까? 사람이 단어마다 손으로 정하지 않는다. 컴퓨터는 cat이 동물이라는 사실을 글자로는 전혀 모르고, 엄청난 양의 글에서 단어가 어떻게 쓰이는지만 본다.
고양이와 개는 '먹이를 준다', '털이 빠진다' 같은 비슷한 말 옆에 자주 나온다. 이렇게 비슷한 문맥에 나오는 단어끼리 좌표가 가까워지도록 학습하면, 거리만으로 뜻의 닮음을 잴 수 있게 돼요.

03

좌표로 계산하면 뜻이 움직여요

단어가 좌표가 되니 재미있는 일이 생긴다. 좌표는 숫자라서 더하고 뺄 수 있는데, 그 계산이 뜻을 띤다. king의 좌표에서 man 방향을 빼면 왕족이라는 느낌만 남고, 거기에 woman 방향을 더하면 놀랍게도 queen 근처에 도착해요.
왕에서 남자를 빼고 여자를 더하니 여왕이 된 셈이다. 좌표 위의 길 찾기가 뜻의 길 찾기가 된다.

kingmanwomanqueen
king 위치에서 출발해요

단계 버튼을 차례로 눌러 보자. king에서 man을 빼고 woman을 더하는 길을 따라가면 화살표가 queen 근처에 도착해요.

화살표가 정말 queen 근처에 닿았다. 한 일은 좌표를 더하고 뺀 것뿐인데 결과가 뜻과 맞아떨어진다. man에서 woman으로 가는 화살표와 king에서 queen으로 가는 화살표가 방향도 길이도 거의 같기 때문이에요.
잘 학습된 임베딩에서는 이런 방향이 성별, 나라와 수도 같은 관계를 담는다. 물론 늘 정확히 들어맞지는 않아서 도착점이 정답 바로 옆일 때가 많다. 그래도 아무도 가르쳐 주지 않은 관계가 좌표 안에 저절로 생긴다는 점이 놀랍다.

04

단어만 좌표가 되는 게 아니에요

좌표로 바꾸는 방법은 단어에만 쓰이지 않는다. 사진 한 장도 좌표로 바꿀 수 있고, 그러면 닮은 사진끼리 가까이 모인다. 목소리나 노래 한 곡도 좌표가 되고, 어떤 노래를 즐겨 듣는지로 사람의 취향까지 좌표로 나타낼 수 있어요.
무엇이든 좌표로 바꾸고 가까움을 재면 컴퓨터가 비슷함을 다룰 수 있다. 앞 레슨의 CNN이 사진에서 뽑은 특징도 이런 좌표로 쓰인다.

단어도 똑같이 점 하나의 좌표가 되고, 비슷한 것끼리 가까이 모여요

종류 버튼을 바꿔 눌러 보자. 단어든 이미지든 음성이든 사용자든 똑같이 점이 되고, 비슷한 것끼리 가까이 모여요.

종류를 바꿔도 그림은 같았다. 점이 찍히고, 비슷한 것끼리 가까이 모인다. 음악 앱이 비슷한 노래를 추천하고 사진 앱이 닮은 사진을 찾는 것도 속을 보면 좌표 사이의 거리를 재는 일이에요.
서로 다른 종류를 한 공간에 함께 두도록 학습하면 글로 사진을 찾는 일도 된다. '바닷가의 강아지'라는 글의 좌표와 가장 가까운 사진을 고르면 되기 때문이다.

05

정리

정리하면 이렇다. 컴퓨터는 숫자만 다루니, 단어를 좌표라는 숫자 묶음으로 바꾼다. 이것이 임베딩이다. 핵심 약속은 뜻이 비슷한 단어를 가까이 두는 것이고, 좌표는 많은 글에서 단어가 쓰이는 모습을 보고 배워요.
그래서 거리가 곧 뜻의 닮음이 되고, 좌표를 더하고 빼는 계산도 뜻을 띤다. 단어뿐 아니라 이미지, 음성, 사용자도 같은 방식으로 다룬다.

핵심을 차례로 눌러요

핵심을 차례로 눌러 되짚어 보자. (단어를 좌표로 → 비슷한 뜻은 가까이 → 좌표 계산이 뜻을 띰 → 이미지·음성까지 같은 방식)

이제 컴퓨터가 단어의 뜻을 어떻게 다루기 시작하는지 알았다. 단어를 좌표로 바꾸고 비슷한 것을 가까이 모으는 단순한 생각이 검색, 번역, 추천, 그림과 글을 잇는 일까지 받치고 있어요.
그런데 단어 하나에 좌표가 하나뿐이면 곤란할 때가 있다. 영어 apple은 과일일 수도 있고 회사 이름일 수도 있다. 문장 속 다른 단어를 살펴 그 자리의 뜻을 정하는 방법인 어텐션을 다음 레슨에서 다룬다.

한 줄 정리임베딩은 단어를 의미 좌표로 바꾸는 일이다. 좌표는 숫자 묶음이라 컴퓨터가 계산할 수 있고, 실제로는 단어 하나에 숫자를 수백 개씩 붙인다. 핵심 약속은 뜻이 비슷한 단어를 가까이 두는 것이다. 좌표는 사람이 정하지 않고, 엄청난 양의 글에서 비슷한 문맥에 나오는 단어끼리 가까워지도록 배운다. 그래서 왕과 여왕, 개와 고양이는 가까이 모이고 관계없는 단어는 멀리 떨어져요. 좌표라서 더하고 뺄 수도 있는데, 왕에서 남자를 빼고 여자를 더하면 여왕 근처에 도착하듯 그 계산이 뜻을 띤다. 같은 방법으로 이미지, 음성, 사용자도 좌표로 바꾸면 비슷한 것을 거리로 잴 수 있어요. 단어를 좌표로 바꾸는 이 첫걸음이 컴퓨터가 뜻을 다루는 바탕이 된다.
← 인공지능
이 페이지가 도움 됐다면 후원하기