임베딩 (embedding)

컴퓨터과학·AI
한 줄 정의: 단어, 이미지, 문장 같은 복잡한 데이터를 컴퓨터가 계산할 수 있도록 숫자로 이루어진 벡터(좌표)로 바꾼 표현입니다.

쉽게 풀면

지도 위의 도시들을 생각해보세요. "서울"과 "인천"은 지도에서 가까이 있고, "서울"과 "부산"은 지도에서 멀리 떨어져 있습니다. 이 위치(좌표)만 봐도 두 도시가 얼마나 가까운 관계인지 알 수 있죠. 임베딩은 이런 지도를 단어나 문장, 이미지에 대해 만드는 것입니다. 컴퓨터는 원래 "고양이"와 "강아지"라는 글자만 봐서는 이 둘이 비슷한 의미인지 전혀 알 수 없습니다. 그런데 이 단어들을 수백 개의 숫자로 이루어진 좌표(벡터)로 바꿔주면, 의미가 비슷한 단어일수록 좌표상에서 가까운 위치에 놓이게 만들 수 있습니다. 이렇게 만들어진 숫자 좌표가 임베딩입니다.

왜 중요한가

임베딩은 텍스트, 이미지, 음성 같은 비정형 데이터를 딥러닝 모델이 처리할 수 있는 형태로 바꿔주는 관문 역할을 하기 때문에, 자연어처리와 컴퓨터비전 전반의 거의 모든 최신 연구가 임베딩 표현 위에서 이루어집니다. 검색엔진의 문서 검색, 추천시스템의 아이템-사용자 매칭, 대규모 언어모델의 입력 처리에 이르기까지 핵심 인프라로 쓰이기 때문에, 더 나은 임베딩을 학습하는 방법 자체가 하나의 독립된 연구 주제로 다뤄집니다.

논문에서는 이렇게 쓰입니다

"각 문서를 사전 학습된 언어 모델을 통해 768차원의 임베딩으로 변환한 뒤, 코사인 유사도를 이용해 문서 간 유사성을 계산하였다."

이 문장은 "문서 하나하나를 숫자 벡터로 바꾸고, 그 벡터들이 얼마나 비슷한 방향을 가리키는지를 계산해서 문서들이 서로 얼마나 비슷한지 판단했다"는 뜻입니다.

"추천시스템에서는 사용자와 아이템을 동일한 잠재 공간의 임베딩으로 학습시켜, 두 벡터 간 내적을 선호도 점수로 활용하였다."

추천시스템 분야에서 서로 다른 종류의 개체(사용자와 상품)를 같은 벡터 공간에 배치해 관계를 계산하는 데 임베딩이 쓰이는 예입니다.

"이미지와 텍스트를 동일한 임베딩 공간에 정렬하는 대조학습 방식을 통해 제로샷 이미지 분류 성능을 향상시켰다."

서로 다른 데이터 형태(이미지, 텍스트)를 하나의 공통 임베딩 공간으로 결합하는 멀티모달 학습 맥락을 보여주는 예문입니다.

조금 더 깊게 보면

임베딩을 다루는 논문을 읽을 때는 벡터의 차원 수, 학습 목적함수(대조학습, 다음 단어 예측 등), 그리고 임베딩 공간의 구조를 평가하는 방법을 함께 살펴보는 것이 중요합니다. 코사인 유사도나 유클리드 거리처럼 벡터 간 거리를 재는 방식에 따라 "비슷하다"의 기준이 달라지며, 최근에는 임베딩을 빠르게 검색하기 위한 근사 최근접 이웃(ANN) 탐색 기법이나 벡터 데이터베이스와 결합해 활용하는 연구도 활발합니다. 또한 정적 임베딩(같은 단어는 항상 같은 벡터)과 문맥에 따라 벡터가 달라지는 문맥 임베딩(contextual embedding)의 차이를 구분하는 것도 최신 논문 이해에 도움이 됩니다.

주의할 점

임베딩은 원본 데이터의 "의미"를 근사적으로 담을 뿐, 완벽하게 보존하는 것은 아닙니다. 어떤 모델과 어떤 데이터로 임베딩을 학습시켰는지에 따라 결과가 달라지며, 학습 데이터에 존재하던 편향이 그대로 임베딩에 반영될 수도 있습니다. 이는 알고리즘편향 문제와도 연결됩니다. 또한 임베딩은 그 자체로 예측을 하는 것이 아니라, 트랜스포머와 같은 모델의 입력이나 자연어처리 작업의 중간 결과물로 흔히 사용됩니다.

관련 용어