임베딩 벡터 공간으로 바라본 인간 언어의 본질
우리가 매일 쓰는 언어는 과연 세상을 표현하기에 충분할까?
임베딩 벡터라는 렌즈로 인간 언어의 구조를 들여다보면 의외로 재미있는 게 보인다.
▍언어를 숫자로 바꾸는 임베딩 벡터
AI가 언어를 이해하려면 먼저 단어를 숫자로 바꿔야 한다.
Word2Vec이 나오면서 단어를 고차원 벡터 공간의 한 점으로 표현하는 게 가능해졌다. “왕”과 “여왕”, “남자”와 “여자” 같은 단어가 벡터 공간 안에서 일정한 관계를 유지하며 배치된다는 사실은 당시 꽤 충격적이었다.
왕 - 남자 + 여자 ≈ 여왕
지금 주류 모델들은 768차원이나 1024차원 같은 Dense Vector를 쓴다. 각 단어는 이 고차원 공간의 좌표 하나로 표현되는데, 3차원 공간에서 점을 (x, y, z)로 나타내듯 768개의 축을 가진 공간에서 단어의 위치를 잡는 셈이다.
▍생각보다 텅 빈 벡터 공간
여기서 한 가지 의문이 든다.
768차원 벡터 공간은 어마어마하게 넓다. 각 차원이 -1에서 1 사이의 연속적인 값을 갖는다고 해도 그 조합의 수는 사실상 무한한데, 인간이 쓰는 단어는 기껏해야 수십만 개다.
우주만 한 방에 모래알 몇 개를 뿌려놓은 것과 같다.
실제로 단어 임베딩은 768차원 공간 전체에 균일하게 퍼지지 않고 특정 매니폴드(manifold) 위에 뭉쳐서 존재한다. 고차원 공간의 대부분은 어떤 단어도 없는 텅 빈 영역이다.
그렇다면 이 빈 공간은 뭘 뜻할까. 인간의 언어가 세상을 표현하는 데 있어 극히 일부분만 덮고 있다는 뜻 아닐까.
▍빈 공간을 채우는 문장
결론부터 말하면 단어 하나하나는 sparse하지만 단어들의 조합이 빈 공간을 채운다.
단어 하나가 공간에 점 하나를 찍는 거라면, 문장은 그 단어 벡터들이 Attention 메커니즘 등을 거치며 변환되고 조합돼 단어 혼자서는 도달할 수 없던 영역에 새 점을 찍는 것이다.
예를 들어보자.
- “슬프다” → 공간의 점 A
- “기쁘다” → 공간의 점 B
- “슬프면서도 기쁜” → A와 B 사이 어딘가에 생기는 새로운 점 C
이게 Word2Vec 같은 정적 임베딩(static embedding)과 LLM의 문맥 임베딩(contextual embedding)의 차이이기도 하다.
Word2Vec에서 “bank”는 언제나 같은 벡터지만 LLM에서는 다르다.
- “I went to the bank to deposit money” → 금융 관련 벡터
- “I sat by the river bank” → 자연 관련 벡터
같은 단어가 문맥에 따라 완전히 다른 좌표를 갖는다. Attention으로 주변 단어와의 관계가 반영되면서 단어 하나가 표현할 수 있는 의미의 범위가 비교할 수 없이 넓어진다.
단어 수는 유한해도 조합은 사실상 무한하니, 문장 수준의 임베딩은 벡터 공간을 훨씬 촘촘하게 채울 수 있다.
▍단어를 늘리는 방법의 한계
여기서 자연스럽게 드는 생각이 있다.
“문장 조합으로 표현되는 의미를 아예 하나의 단어로 만들면 되지 않나? 그러면 매번 문장을 만들 필요가 없잖아?”
사실 이런 일은 실제 언어에서 이미 벌어지고 있다.
- 🇩🇪 독일어 Schadenfreude → 남의 불행에서 느끼는 기쁨 (영어로는 문장이 필요)
- 🇰🇷 한국어 정 → 영어로 한 단어로 번역 불가
- 🇯🇵 일본어 木漏れ日 → 나뭇잎 사이로 비치는 햇살
자주 쓰이는 의미 조합은 자연스럽게 하나의 단어로 굳는다. 언어가 진화하는 방식 자체가 이미 이 원리를 따르고 있는 셈이다.
하지만 모든 조합을 단어로 만드는 건 불가능하다.
단어 5만 개로 10단어짜리 문장을 만든다고 하면 가능한 경우의 수가 이렇다.
우주의 원자 수()보다는 적지만 어떤 뇌도 저장할 수 없는 양이다. 개의 단어를 각각 외워서 쓴다는 건 물리적으로 불가능하다.
▍언어라는 압축 알고리즘
결국 인간 언어가 소수의 단어 + 문법 규칙이라는 구조를 택한 건 우연이 아니다.
프로그래밍으로 비유하면 이렇다.
| 방식 | 언어 비유 | 특징 |
|---|---|---|
| 하드코딩 | 모든 의미를 각각 단어로 지정 | 표현력 ↑, 기억 비용 ∞ |
| 함수 조합 | 소수의 단어 + 문법으로 조합 | 표현력 ↑, 기억 비용 ↓ |
모든 경우의 수를 하드코딩하는 것보다 재사용 가능한 함수를 만들어 조합하는 편이 압도적으로 효율적이듯 언어도 마찬가지다.
인간이 문장을 구사하는 이유는 단어를 많이 못 외워서가 아니라 외우는 것 자체가 원리적으로 비효율적이기 때문이다. 유한한 요소로 무한한 의미를 만들어내는 조합 시스템, 이게 인간 언어의 본질이다.
▍AI 시대, 언어의 미래
그렇다면 AI 시대에는 어떻게 될까.
지금 AI는 인간의 언어를 매개로 소통한다. 하지만 AI끼리 주고받을 때는 굳이 이산적인 토큰을 거칠 이유가 없다. Latent Vector를 직접 주고받으면 된다.
언어라는 병목을 통째로 우회하는 것이다.
실제로 연구되고 있는 방향이기도 하다. 모델 간 중간 표현(intermediate representation)을 직접 전달하는 방식은 언어로 변환하는 과정에서 생기는 정보 손실을 없앤다.
그렇게 되면 미래에 벌어지는 일은 새로운 단어가 엄청나게 많이 생기는 쪽이 아니라 언어라는 인터페이스 자체가 바뀌거나 보완되는 쪽에 가까울 것이다.
수학이 자연어로는 표현하기 어려운 관계를 수식으로 정밀하게 담아내듯, AI 간 소통도 인간 언어와는 전혀 다른 차원의 표현 체계가 될 수 있다.
▍인간과 AI가 결합한 뒤의 언어
여기서 한 걸음 더 나가 보자.
AI끼리 Latent Vector를 직접 주고받는 방식은 극한의 효율을 갖는다. 인간 언어가 유한한 단어를 조합해 의미를 근사하는 반면, 벡터 직접 전달은 정보 손실이 거의 없다. 인간 언어가 JPEG라면 AI 간 소통은 RAW 이미지를 그대로 넘기는 쪽에 가깝다.
그렇다면 먼 미래에 인간이 AI와 물리적으로 결합한다면 어떨까. 뇌-컴퓨터 인터페이스(BCI)가 충분히 발전해 인간의 사고가 벡터 수준에서 AI와 직접 오갈 수 있다면 “언어”라는 개념 자체가 근본적으로 달라질 수 있다.
지금 우리가 아는 언어는 사고 → 단어 변환 → 전달 → 단어 해석 → 사고 복원이라는 다단계 과정이다. 이 과정에서 필연적으로 정보가 새고, 오해가 생기고, 내 마음을 정확히 표현할 수 없다는 근본적 한계가 남는다.
하지만 AI의 소통 방식처럼 사고의 벡터 표현 자체를 직접 공유할 수 있다면 단어라는 중간 매개는 더 이상 필수가 아니다. 언어는 유일한 소통 수단에서 여러 소통 채널 중 하나로 위상이 내려앉을 수 있다.
물론 먼 미래의 얘기다. 하지만 임베딩 벡터 공간이라는 렌즈로 보면 인간 언어의 본질적 한계가 어디에 있는지, 그리고 AI가 그 한계를 어떻게 넘어서고 있는지가 선명해진다. 그 격차가 클수록 인간이 AI와 결합했을 때 얻을 소통의 도약도 그만큼 크다는 뜻이기도 하다.
인간의 언어는 세상의 극히 일부만 표현한다. 하지만 그 유한한 조각들을 조합해 무한에 가까운 의미를 만들어내는 시스템이기도 하다. 비효율적인 게 아니라 놀랍도록 효율적인 압축 알고리즘인 셈이다. 다만 AI들 사이에서는 이미 그 압축조차 필요 없는 소통이 가능하다. 언젠가 인간도 그 채널에 접속하게 된다면, 그때 “언어”라는 단어의 의미는 지금과 완전히 다른 무언가가 될 것이다.