#106 임베딩만 보고, 원래 텍스트를 유추할 수 있다면?

#106 위클리 딥 다이브 | 2025년 8월 27일

💡
이번주 뉴스레터에는 이런 내용을 담았어요!
  • 벡터만 보고도 텍스트를 복원하는 Zero-Shot Inversion 기법을 설명합니다.
  • 서로 다른 모델의 임베딩이 하나의 의미 공간으로 수렴한다는 가설을 소개합니다.
  • 보편적 의미 공간으로 수렴함이 시사하는 바를 설명합니다.

임베딩만으로도 텍스트를 복원하는 방법

 

🤔 임베딩만 보고, 원래 텍스트를 유추할 수 있다면?

안녕하세요. 새롭게 뉴스레터 에디터로 합류하게 된 쏘입니다!😊
 
텍스트를 벡터로 바꾼 임베딩(Embedding), 이 임베딩을 다시 텍스트로 되돌리는 방법은 없을까요?
최근 공개된 Universal Zero-Shot Embedding Inversion (Zhang et al., 2025)은 원문 텍스트를 몰라도, 임베딩만으로 원문에 가까운 문장을 복원할 수 있다는 결과를 내놓았습니다.
 
과연 어떻게 임베딩으로부터 텍스트를 복원할 수 있는 것일까요? 이번 뉴스레터에서는 임베딩을 텍스트로 복원하는 ZSInvert 모델을 기반으로, 어떻게 복원할 수 있고 어디까지 복원이 가능한지, 그리고 임베딩을 복원하면서 발생할 수 있는 보안 문제까지 살펴봅니다
 

왜 예전엔 안 됐을까? : 의미 비교의 어려움

임베딩은 텍스트를 특정한 의미 공간 안에 표상(Representation)한 것입니다. 너무 어렵다면, 마인드 맵을 그리는 과정을 떠올려봅시다. 마인드 맵을 다 그리고 나면, 비슷한 의미를 갖는 개념끼리 가까운 곳에 뭉쳐 있게 되죠. 이처럼 임베딩도 숫자로 표현된 의미 공간 안에 비슷한 의미를 갖는 단어나 문장은 비슷한 곳에 위치하게 됩니다. 하지만 임베딩은 학습한 방식이나 데이터에 따라 의미의 상대적인 위치는 유지되더라도, 절대적인 위치는 달라질 수 있습니다. 마치 마인드맵을 어떻게 그리느냐에 따라 순서나 위치가 달라질 수는 있지만 여전히 유사한 것들은 비슷한 곳에 위치하는 것처럼요. 때문에 임베딩만 본다면 무작위한 숫자 행렬처럼 보입니다. 그러나 분명 무작위한 숫자가 아니라 '의미를 갖는다'는 점에서 충분히 복원 가능성은 존재했죠.
임베딩에서 원문을 복원하려는 시도는 이번이 처음은 아닙니다. 과거에도 vec2text 같은 기법이 존재했지만, 치명적인 한계가 있었습니다. 각 임베딩 모델, 즉 인코더마다 복원 모델을 따로 학습해야 한다는 점입니다. 예를 들어 GPT 계열 모델이 만든 임베딩을 복원하려면 GPT 전용 복원 모델을, BERT 계열은 또 다른 복원 모델을 학습해야 했습니다. 하지만 문제는 임베딩이 어떤 모델로 만들어졌는지 모른다는 것이죠.
뿐만 아니라, 이런 복원 모델을 만들기 위해서는 원문과 임베딩이 짝지어진 쌍 데이터가 대량으로 필요합니다. 서로 다른 임베딩 모델은 사용한 데이터와 학습 방식이 모두 다르기 때문입니다. 그 차이로 인해 같은 문장을 임베딩하더라도 그 벡터 결과는 서로 전혀 다른 공간에 존재합니다. 따라서 복원 모델을 만들기 위해서는 둘을 연결하는 쌍 데이터가 필요합니다. 하지만 실제 벡터 DB에는 그런 쌍이 없고, 문서와 인코더 정보 없이, 순수한 벡터만 있는 경우가 대부분이기 때문에, 이전의 텍스트 복원 방법에는 한계가 있었습니다.
 

임베딩에서 텍스트를 복원하는 방법 : ZSInvert

하지만 논문에서 소개된 Zero-Shot Embedding Inversion(ZSInvert)은 인코더 종류를 몰라도, 심지어 한 번도 본 적 없는 모델의 임베딩이라도 복원이 가능합니다. 그래서 Zero-Shot이라고 부릅니다. 복원 과정은 두 단계로 이뤄져 있습니다.
첫 번째는 생성형 LLM의 후보 탐색 단계입니다. 이 단계의 목표는 복원하고 싶은 타깃 임베딩과 의미가 최대한 가까운 후보 문장을 찾는 것입니다. LLM에 “Tell me a story”와 같은 임의의 시드 프롬프트를 사용하여 하나의 문장을 먼저 생성합니다. 이 문장 자체가 정답 문장과 닮을 필요는 없습니다. 중요한 건 이후의 과정입니다. 생성된 한 문장을 바탕으로 “위 문장과 유사한 문장을 써줘”라고 프롬프트를 입력한 뒤 다양한 후보 문장을 만듭니다. 그리고 사용하고 싶은 특정한 인코더 하나만을 사용해, 후보 문장들을 임베딩으로 변환합니다. 이렇게 변환된 후보 임베딩과 타깃 임베딩을 비교해, 코사인 유사도가 높은 문장들만 추립니다. 이 과정을 반복하면 점점 유사도가 높은 후보들이 생성되고, 그 임베딩들이 모여드는 의미의 공간(Semantic Space)이 형성됩니다. 이는 타깃 임베딩의 의미와 가장 가까운 후보군이 집결한 공간입니다.
두 번째는 Correction Model을 활용한 보정 단계입니다. 앞서 추려낸 후보 문장들은 원문과 의미는 가깝지만, 표현이 어색하거나 원문에 있던 핵심 정보가 누락되어 있을 수 있습니다. Correction Model은 이런 후보 문장을 받아, 더 정확하고 매끄러운 최종 문장으로 다듬습니다. 이 모델은 다양한 인코더에서 생성된 임베딩과, 그 임베딩을 기반으로 LLM이 만든 후보 문장들, 그리고 정답 원문을 쌍으로 묶어 학습합니다. 즉, 여러 후보 중 정답에 가장 가까운 문장을 골라내는 방법을 학습하는 것입니다. 이렇게 한 번 학습해둔 Correction Model은 인코더 종류와 관계없이 재활용할 수 있습니다.
 

안심할 수 없는 임베딩 보안

엔론 이메일 복원 예시
출처: Universal Zero-shot Embedding Inversion (Zhang et al., 2025)
엔론 이메일 복원 예시 출처: Universal Zero-shot Embedding Inversion (Zhang et al., 2025)
논문에서는 엔론(Enron)이라는 과거 에너지 기업의 사내 이메일로 ZSInvert의 성능을 검증했습니다. 이 데이터에는 이메일 본문뿐 아니라 발신, 수신 정보부터 다양한 내부 업무 논의까지 민감 정보가 포함되어 있습니다. 임베딩만으로 복원한 결과, 복원된 문장에서 민감 정보의 최대 92%가 원문과 일치했으며, ‘MD’, ‘St. Lucie’, ‘picture making money’ 처럼 핵심 주제와 객체를 복원해냅니다.
그래서 우리는 임베딩 보안에도 신경써야 한다는 것을 알 수 있습니다. 그리고 LLM과 함께 자주 쓰이는 RAG(Retrieval-Augmented Generation)에서 사용되는 임베딩 저장 방식도 다시 생각해볼 필요가 있습니다. RAG에서는 임베딩과 원문 텍스트 쌍이 필요하기 때문에 이를 저장해둘 공간인 VectorDB가 필요합니다. 이 둘을 함께 저장하기도 하지만, 보안을 위해 임베딩과 원문 텍스트를 찾을 수 있는 ID값만 저장해두고 원문 텍스트는 암호화해서 별도로 저장하는 방법을 씁니다. 그러나 논문에서는 임베딩으로부터 텍스트의 중요 정보를 복원할 수 있음을 증명하며 VectorDB에 임베딩만 저장하면 안전할 것이라는 통념에 의문을 제기합니다.
 

임베딩을 다시 텍스트로 바꾼다는 것의 의미

ZSInvert의 실험은 임베딩이 단순한 숫자 배열이 아님을 보여줍니다. 그 안에는 주제, 핵심 키워드, 문장 구조, 심지어 문체까지 살아 있습니다. ‘임베딩은 의미를 압축한 표현’이라고 말하는 게 단순한 비유가 아니라는 뜻입니다.
이번 연구에서 흥미로운 점은, 복원 모델을 단 한 번만 학습해도 전혀 다른 모델의 임베딩을 그대로 해석할 수 있다는 사실입니다. 법률 문서에서 뽑은 임베딩이든, 짧은 SNS 문장에서 뽑은 임베딩이든, 심지어 어떤 인코더에서 나왔는지 몰라도 복원이 가능합니다.
이것은 서로 다른 모델의 임베딩이 겉보기에는 전혀 다른 공간에 있더라도, 그 벡터 공간의 기하학적 구조(geometry of the vector space)에는 공통된 의미 틀이 존재할 수 있음을 시사합니다. 즉, 좌표계나 수치 표현은 달라도, 임베딩 벡터들이 이루는 기하학적 구조 속에서는 보편적인 의미 패턴이 드러난다는 뜻입니다.
이는 The Platonic Representation Hypothesis (Huh et al., 2024)에서 주장한 가설에 기반합니다.
"같은 목적과 Modality로 학습된 신경망은, 구조나 학습 데이터가 다르더라도 결국 보편적인 의미 공간(Latent Space)으로 수렴한다." - Platonic Representation Hypothesis
여기서 말하는 Latent Space는 원본 데이터가 의미적으로 표현된 공간입니다. 임베딩은 이 공간 속의 한 점(좌표)이고, 점 사이의 거리는 의미적 유사도를 반영합니다. 이 가설은 서로 다른 모델이 만든 임베딩이라도, 그 깊은 구조에는 공통된 의미 틀이 존재한다고 주장합니다.
플라톤은 우리가 보는 현실 세계는 불완전한 그림자에 불과하며, 진짜 실체는 '이데아'라는 보편적이고 완전한 형상이라고 주장했습니다. 마찬가지로, 각 모델의 임베딩이 수치적으로는 다르더라도, 그 바탕에는 공통된 의미의 본질(이데아)이 존재한다고 본 것이죠. 벡터의 수치적 차이 너머에는 보편적 의미 공간이라는 공유된 구조가 숨어 있다는 뜻입니다.
 
vec2vec
출처: Harnessing the Universal Geometry of Embeddings (Jha et al., 2025)
vec2vec 출처: Harnessing the Universal Geometry of Embeddings (Jha et al., 2025)
그리고 이 가설을 실험적으로 검증한 것이 Harnessing the Universal Geometry of Embeddings (Jha et al., 2025)이라는 논문입니다.
이 논문에서는 임베딩 A → 공통 의미 공간 → 임베딩 B 처럼 변환은 가능하면서도, 의미는 잃지 않게 하는 vec2vec이라는 모델을 제시합니다. 이는 ‘쌍 정보’가 없어도, 어떤 모델로 인코딩했는지 몰라도, 다른 모델의 임베딩끼리 의미를 보존한 채 번역하거나 교환하는 것이 가능하다는 것을 실험적으로 보여줍니다.
 

보편적 의미 공간으로의 수렴이 의미하는 것

‘보편적 의미 공간으로 수렴한다는 것’은 모델 사이의 경계가 흐릿해진다는 것을 의미합니다. LLM과 컴퓨터 비전 모델의 표현 공간 역시 점점 더 유사해지고 있습니다. 둘 다 세상의 패턴을 배우고 있기 때문이죠. 다른 언어끼리도 마찬가지입니다. 영어와 한국어처럼 전혀 다른 언어라도 잘 학습된 임베딩의 의미 구조는 닮아 있습니다. Meta AI의 ImageBind 연구는 나아가 이미지, 소리, 문자, 깊이 정보, 온도 등 6개 모달리티를 하나의 공유 공간에 연결하는 데 성공하여, 서로 다른 모달 데이터를 연결할 수 있음을 보여주었습니다.
또한 지식 증류(Knowledge Distillation)나 모델 압축과도 연관됩니다. 대형 모델 A의 임베딩 공간이 작은 모델 B와 비슷하다면 A의 풍부한 표현을 B가 흉내내도록 학습시키기가 용이합니다. 잘 만든 모델들의 표현은 결국 같은 공간에 수렴하므로, 대규모 모델의 의미 표현소규모 모델에 이전하는 것이 원리적으로 가능하다는 것이죠.
보편적 의미 공간으로 수렴한다는 건, AI의 내부 표현이 인간이 이해할 수 있는 객관적 지식 구조에 접근하고 있다는 뜻이 아닐까요?
그래서 이번에 다룬 임베딩에서 텍스트를 복원하는 기술은 단순히 임베딩 보안에 주의해야 한다는 교훈에서 그치지 않습니다. AI가 서로의 내부 언어를 이해하고 전혀 다른 모델과도 의미를 공유하는 거대한 흐름 속에 있다는 하나의 징후를 보여주는 게 아닐까요?