임베딩
텍스트의 의미를 인코딩하는 조밀한 수치 벡터인 임베딩과 의미 검색, Google 순위, RAG가 키워드 대신 의미로 콘텐츠를 매칭하는 방식을 설명합니다.
언어
임베딩은 고차원 공간에서 단어, 문장 또는 문서의 의미를 인코딩하는 숫자 목록, 즉 조밀한 벡터이며 의미가 비슷한 텍스트가 서로 가까이 놓이게 합니다. 생성형 LLM이 아니라 인코더 모델이 임베딩을 만들고, 유사성은 코사인 유사도로 측정합니다. 임베딩은 의미 검색과 클러스터링, RAG의 검색 계층을 구동하며 Google은 키워드 색인과 함께 임베딩 기반 검색(Neural Matching / RankEmbed, RankEmbedBERT)을 사용합니다. SEO 관점에서 임베딩은 조정할 수 있는 손잡이가 아닙니다. Danny Sullivan은 BERT에 대해 *'there's nothing to optimize for'* _(번역)_ 「최적화할 것은 없습니다」라고 말했습니다. 대신 주제적으로 일관된 콘텐츠는 답해야 할 검색어 가까이에 깔끔하게 모입니다.
TL;DR — 임베딩은 텍스트를 거대한 공간의 좌표인 숫자 목록으로 바꿉니다. 그곳에서는 의미가 비슷한 것들이 서로 가까이 놓입니다. 이것이 AI 검색과 최신 검색 엔진이 단순히 키워드를 매칭하는 대신 의미로 콘텐츠와 검색어를 매칭하는 방식입니다. 페이지에 임베딩을 “추가”할 수는 없습니다. 임베딩은 기계가 이미 있는 콘텐츠를 읽는 방식입니다.
임베딩이란 무엇인가
임베딩은 의미적 유사성과 같은 작업에 유용한 관계를 보존하도록 입력을 수치 벡터로 표현합니다. Evidence for this claim Embeddings represent inputs as numerical vectors that can be compared for relatedness and used for search, clustering, and classification. Scope: OpenAI embedding models and documented uses; vector dimensions and behavior vary by model. Confidence: high · Verified: OpenAI: Embeddings guide 기하와 차원은 모델마다 다르며 각 좌표에 보편적인 의미가 붙어 있는 것은 아닙니다. Evidence for this claim Learned vector representations can encode useful distributional relationships between words. Scope: Word2vec-era language representations; observed vector relationships are model- and training-data-specific, not ground truth. Confidence: high · Verified: Mikolov et al.: Efficient Estimation of Word Representations
컴퓨터는 단어를 이해하지 못하고 숫자를 이해합니다. 임베딩은 그 사이를 잇는 다리입니다. 모델이 텍스트를 읽고 의미를 담은 숫자 목록(이를 벡터라고 함)으로 바꿉니다. 지도에서의 위치처럼 생각해 보세요. 의미가 비슷한 두 텍스트는 가까이 배치되고, 관련 없는 텍스트는 멀리 놓입니다.
따라서 “laptop for gaming”과 “high-performance laptop for games”는 단어를 거의 공유하지 않아도 서로 가까이 놓입니다. “Banana bread recipe”는 완전히 다른 곳에 놓입니다. 모델은 방대한 텍스트를 읽으며 어떤 단어와 구가 비슷한 맥락에 나타나는지 관찰하여 이를 학습했습니다.
검색에서 중요한 이유
기존 검색은 키워드를 매칭했습니다. 단어를 입력하면 엔진이 그 단어를 포함한 페이지를 찾았습니다. 임베딩은 검색이 의미를 매칭하게 합니다. 그래서 Google은 가장 좋은 페이지가 질문에 사용한 정확한 단어를 쓰지 않아도 길고 대화체인 질문에 답할 수 있습니다. 출처를 읽고 답을 작성하는 AI 검색 도구가 어떤 구절을 가져올 만큼 관련성이 높은지 판단하는 방식이기도 합니다.
AI 답변 뒤에 있는 파이프라인을 짧게 정리하면 다음과 같습니다.
- 콘텐츠를 청크(구절)로 나눕니다.
- 각 청크를 임베딩(벡터)으로 바꿉니다.
- 질문도 임베딩으로 바꿉니다.
- 시스템이 질문의 벡터와 가장 가까운 벡터를 가진 청크를 찾습니다.
- 그 청크가 AI가 답을 작성할 때 사용하는 원천 자료가 됩니다.
콘텐츠에 미치는 의미
사람들이 과장하는 부분이므로 분명히 하겠습니다. Google에 제출하는 “embedding optimization” (번역) 「임베딩 최적화」는 없습니다. Google의 Danny Sullivan은 BERT(Google의 임베딩 기반 시스템 중 하나)에 관해 정확히 이렇게 말했습니다. “There’s nothing to optimize for.” (번역) 「최적화할 것은 없습니다」.
실제로 도움이 되는 조언은 언제나 같지만 그 이유가 더 분명해졌습니다. 주제를 진정성 있고 철저하게 다루는 콘텐츠를 작성하세요. 일관되고 집중된 콘텐츠는 답해야 할 질문 가까이에 놓이는 깨끗하고 일관된 임베딩을 만듭니다. 키워드를 채우고 흩어진 콘텐츠는 더 흐릿한 신호를 만듭니다. 공식을 입력하는 것이 아니라 모델과 사람이 명확히 이해할 수 있는 것을 쓰는 것입니다.
차원, 코사인 유사도, word2vec에서 BERT로 이어진 역사, Google이 실제로 순위에 임베딩을 사용하는 방식을 보려면 Advanced 탭으로 전환하세요.
TL;DR — 임베딩은 의미를 인코딩하는 부동소수점 숫자의 조밀한 벡터입니다(일반적으로 수백에서 수천 차원). 생성형 LLM이 아니라 인코더 모델이 만들며, 비슷한 의미는 코사인 유사도로 측정했을 때 가까운 벡터가 됩니다. 분야는 정적 단어 임베딩(word2vec, GloVe)에서 문맥 임베딩(BERT), 문장 수준과 최신 API 임베딩으로 발전했습니다. Google은 키워드 색인과 함께 임베딩 기반 검색(Neural Matching / RankEmbed, RankEmbedBERT)을 사용합니다. 대체가 아니라 하이브리드 방식입니다. 임베딩은 RAG의 검색 기반이기도 합니다. 조정할 임베딩 손잡이는 없으며, 주제 일관성이 콘텐츠를 올바른 검색어 근처에 모이게 합니다.
실제 임베딩이란 무엇인가
임베딩은 유사성과 검색을 지원하지만 진실성, 품질 또는 순위 가치를 직접 측정하는 값은 아닙니다. Evidence for this claim Embeddings represent inputs as numerical vectors that can be compared for relatedness and used for search, clustering, and classification. Scope: OpenAI embedding models and documented uses; vector dimensions and behavior vary by model. Confidence: high · Verified: OpenAI: Embeddings guide 연구 결과는 학습된 모델과 평가 설정에 따라 달라집니다. Evidence for this claim Learned vector representations can encode useful distributional relationships between words. Scope: Word2vec-era language representations; observed vector relationships are model- and training-data-specific, not ground truth. Confidence: high · Verified: Mikolov et al.: Efficient Estimation of Word Representations
임베딩은 조밀한 수치 벡터입니다. 부동소수점 숫자의 목록으로 텍스트(또는 이미지, 오디오, 비디오)를 고차원 공간의 한 점으로 나타냅니다. OpenAI 문서는 이를 간단히 설명합니다. “An embedding is a vector (list) of floating point numbers.” (번역) 「임베딩은 부동소수점 숫자의 벡터(목록)입니다」.
정의하는 속성은 기하입니다. 의미가 비슷한 콘텐츠는 비슷한 벡터를 가집니다. 대략 같은 의미의 텍스트는 대략 같은 방향을 가리키고 관련 없는 텍스트는 다른 곳을 가리킵니다. 우연이 아니라 모델이 비슷한 맥락에서 쓰이는 단어와 구가 비슷한 벡터를 갖도록 학습되었기 때문입니다. 의미가 위치가 됩니다.
A conceptual semantic space places the query reset my password near documents titled Forgot-password guide, Account recovery steps, and Cannot log in. The unrelated document Enterprise pricing sits farther away. Near means more semantically similar; far means less similar. Actual embedding spaces have many more dimensions and model-specific geometry.
© Patrick Stox LLC · CC BY 4.0 ·
정확히 이해할 만한 몇 가지가 있습니다.
- 생성기가 아니라 인코더. 임베딩은 의미를 고정 크기 벡터로 압축하는 것이 목표인 인코더 모델에서 나옵니다. 다음 토큰을 예측하는 생성형 LLM과는 아키텍처와 목적이 다릅니다. (내부 임베딩과 API 임베딩의 차이는 아래에서 더 설명합니다.)
- 희소하지 않고 조밀함. 대부분이 0이고 어휘의 단어마다 한 칸이 있는 원-핫 또는 bag-of-words 표현과 달리 임베딩은 모든 차원에 의미를 담습니다. Google의 ML 용어집은 임베딩을 저차원의 조밀한 표현으로 설명하며, 원-핫 인코딩으로는 표현할 수 없는 관계를 포착한다고 말합니다. 모델이 “hot dogs and shawarmas are more related than hot dogs and salads.” (번역) 「핫도그와 샤와르마가 핫도그와 샐러드보다 더 관련성이 높다고 인식할 수 있습니다」라는 관계를 이해하게 합니다.
- 차원이 높다고 항상 더 좋은 것은 아님. 차원이 많으면 더 많은 뉘앙스를 포착할 수 있지만 저장·계산 비용이 커지고 이득은 작업에 따라 달라집니다. “bigger is better” (번역) 「클수록 좋다」는 다이얼이 아니라 절충입니다.
유사성 측정: 코사인 유사도
두 임베딩을 비교할 때 거리를, 더 정확히는 각도를 측정합니다. 표준 지표는 코사인 유사도입니다. 벡터의 길이와 관계없이 두 벡터 사이의 각도를 측정하여 −1(반대 방향)부터 0(무관/직교)을 거쳐 1(동일 방향)까지 점수를 매깁니다. 거리가 짧을수록 더 관련성이 높습니다.
많은 임베딩 API는 벡터를 단위 길이로 정규화하므로 코사인 유사도와 내적이 같은 순위를 만듭니다. OpenAI는 코사인이 일반적이고 약간 더 저렴한 선택이라고 설명합니다. Anthropic이 권장하는 임베딩 제공업체인 Voyage AI도 직관을 이렇게 정리합니다. “the cosine similarity between two embeddings captures the semantic relatedness of the corresponding original passages.” (번역) 「두 임베딩의 코사인 유사도는 대응하는 원문 구절의 의미적 관련성을 포착합니다」. 이를 대규모로 최근접 이웃과 비교하는 것은 별도 문제이며, 그 역할이 벡터 검색입니다.
여기까지의 발전
이 이야기는 단일 단어에서 전체 구절로, 고정된 의미에서 문맥을 인식하는 의미로 이어집니다.
- word2vec(Google, 2013). Mikolov 등은 거대한 말뭉치에서 조밀한 단어 벡터를 학습하는 두 아키텍처(CBOW와 Skip-Gram)를 소개했습니다. 유명한 결과는 “King” − “Man” + “Woman” 벡터가 *“Queen”*에 가장 가까워진다는 것으로, 벡터 연산이 의미 관계를 포착한다는 증거입니다. (주의: 이 비유가 매번 보장되는 것은 아니며 모델에 따라 “kings”나 “monarch”에 도착할 수 있습니다.) 이는 정적 임베딩입니다. 단어마다 하나의 고정 벡터가 있어 “river bank”와 “bank account”에서 “bank”가 같은 벡터를 갖습니다.
- GloVe(Stanford, 2014). 예측 네트워크가 아니라 전역 동시 발생 통계에 기반한 빈도 기반 대안입니다. 목적은 다르지만 유용한 임베딩을 만들며 역시 정적입니다.
- Universal Sentence Encoder(Google, 2018). 단어만이 아니라 전체 문장을 위한 임베딩입니다. 핵심 아이디어는 “Sentences are semantically similar if they have a similar distribution of responses.” (번역) 「응답 분포가 비슷하면 문장도 의미적으로 유사합니다」라는 것입니다. “How old are you?”와 “What is your age?”는 같은 답을 유도하므로 서로 가깝게 임베딩됩니다.
- BERT(Google, 2018; Search 배포 2019년 10월). 큰 변화는 문맥 임베딩입니다. BERT는 양방향으로 토큰 앞뒤의 단어를 읽어 의미를 정하므로 같은 단어가 주변 문장에 따라 다른 벡터를 갖습니다. 따라서 “river bank”와 “bank account”의 “bank”가 마침내 다른 벡터를 갖습니다.
- Sentence-BERT(2019). 유사성 검색에서 BERT의 규모 문제를 해결했습니다. 일반 BERT는 두 문장을 함께 넣어야 해서 대규모 계산 비용이 매우 크지만, SBERT는 코사인 유사도로 비교할 수 있는 고정 크기 문장 임베딩을 만들어 큰 말뭉치에서 가장 비슷한 쌍을 찾는 비용을 몇 시간에서 몇 초로 줄입니다.
- 최신 임베딩 API(2024–현재). OpenAI의 text-embedding-3 제품군, Google의 Gemini 임베딩, Voyage, Cohere의 embed-v4.0은 다국어를 지원하고 점점 멀티모달화되며, Matryoshka Representation Learning으로 크기를 조정할 수 있습니다. 재학습 없이 벡터를 더 적은 차원으로 잘라 저장 공간과 속도를 위해 정확도를 조금 절충합니다.
Google은 검색에서 임베딩을 어떻게 사용하는가
Google의 순위 파이프라인은 순수하게 의미 기반이거나 순수하게 키워드 기반이 아니라 하이브리드입니다. 임베딩 구성 요소는 기존 역색인을 대체하지 않고 보완합니다. Google의 순위 시스템 문서와 Pandu Nayak의 DOJ 반독점 재판 증언에 따르면 명시적으로 이름이 언급되는 시스템은 다음과 같습니다.
- BERT — Google의 문맥 속 단어 시스템입니다. 출시 당시 영어 미국 검색의 10개 중 1개를 “better understand one in 10 searches in the U.S. in English,” (번역) 「미국에서 영어로 이루어지는 검색 10건 중 1건을 더 잘 이해」하는 데 도움을 주었으며, 특히 “for”와 “to” 같은 전치사가 의미를 바꾸는 긴 대화형 검색어에서 효과가 있었습니다.
- Neural Matching / RankEmbed — 쿼리와 문서를 같은 벡터 공간으로 변환하여 공통 키워드가 없어도 개념적으로 일치하는 결과를 노출하는 임베딩 기반 검색입니다. Nayak은 이를 전통적인 검색을 보완하는 기능으로 설명했습니다. “RankEmbed identifies a few more documents to add to those identified by the traditional retrieval.” (번역) 「RankEmbed는 전통적인 검색으로 식별된 문서에 몇 개의 문서를 더 추가합니다」. 여기서 검색은 임베딩 공간의 내적/거리 측정에 기반합니다.
- RankEmbedBERT — RankEmbed 검색과 BERT의 언어 이해를 결합한 이후 발전입니다. 품질 평가자 점수와 검색 로그로 학습했으며 복잡하고 긴 꼬리 검색어에서 특히 더 좋습니다.
실무적으로는 키워드가 여전히 중요합니다. 어휘 검색(역색인, BM25 방식)이 여전히 1차 범위를 좁히기 때문입니다. 임베딩 시스템은 개념적으로 관련된 후보를 추가하고 순위를 다시 매깁니다. 두 신호가 모두 작동합니다. 따라서 “BERT killed keywords” (번역) 「BERT가 키워드를 없앴다」는 말은 틀렸습니다.
AI 검색의 임베딩(RAG 파이프라인)
임베딩이 AI Overviews와 AI 검색 도우미에 가장 직접적으로 닿는 부분입니다. **검색 증강 생성(RAG)**은 임베딩을 검색 계층으로 사용합니다.
- 색인: 콘텐츠를 구절로 청크화하고 각 구절을 임베딩한 뒤 벡터를 벡터 데이터베이스에 넣습니다.
- 검색: 사용자의 쿼리를 임베딩하고 최근접 이웃 검색으로 가장 가까운 청크를 찾은 뒤(벡터 검색), 상위 K개 청크를 LLM에 문맥으로 전달합니다.
- 생성: LLM이 검색된 청크에 근거한 답을 작성합니다.
구조가 중요한 이유는 각 청크가 독립적으로 검색되기 때문입니다. Dan Petrovic의 연구(Ahrefs의 LLM 검색 최적화에 대해 실제로 아는 것에 인용됨)에 따르면 Chrome은 임베딩을 위해 페이지의 첫 약 30개 구절만 처리하고, 청크 간 문맥을 보존하기 위해 대략 200단어 구절로 겹치게 나눕니다. 페이지에서 꺼내졌을 때 한 섹션이 혼자 설 수 없다면 콘텐츠를 제대로 나타내지 못합니다.
토큰 임베딩과 텍스트 임베딩 API
사람들이 자주 혼동하는 차이가 있습니다. LLM 내부의 임베딩과 API에서 받는 임베딩은 같은 것이 아닙니다.
- 토큰 임베딩은 모델의 내부 표현입니다. 각 토큰이 벡터를 받고 생성 중에 계층별로 변환됩니다. 다음 토큰을 만드는 기계 장치입니다.
- 텍스트 임베딩 API(OpenAI, Google, Voyage, Cohere)는 전체 입력 문자열을 위한 하나의 고정 크기 벡터를 만들며 검색과 유사성에 맞게 설계되었습니다. 다른 학습 목적을 가진 별도 모델인 경우가 많습니다.
SEO 담당자가 “embedding a page” (번역) 「페이지를 임베딩한다」거나 내부 연결 또는 키워드 클러스터링을 위해 코사인 유사도를 실행한다고 말할 때는 API 방식의 임베딩을 뜻합니다.
SEO에 미치는 의미
- 의미 일관성이 키워드 밀도보다 중요합니다. 모델이 문맥을 이해하므로 “laptop for gaming”과 “high-performance laptop”은 이미 가깝습니다. 키워드를 채우는 것은 도움이 되지 않고 주제적으로 흩어진 더 흐릿한 임베딩을 만듭니다.
- 청크 검색을 위한 구조. 구절은 각각 임베딩되고 검색됩니다. 중요한 콘텐츠를 앞에 두고 섹션을 독립적으로 이해할 수 있게 하며 명확한 의미론적 HTML을 사용하세요.
- 주제의 포괄성. 주제를 진정성 있게 다루는 콘텐츠는 벡터 공간에서 더 많은 관련 검색어 근처에 놓입니다. 이것이 “build topical authority.” (번역) 「주제 권위를 구축한다」는 말의 작동 방식입니다.
- 임베딩 손잡이는 없습니다. BERT에 관해 Danny Sullivan은 “There’s nothing to optimize for… The fundamentals of us seeking to reward great content remain unchanged.” (번역) 「최적화할 것은 없습니다. 훌륭한 콘텐츠에 보상하려는 기본 원칙은 변하지 않습니다」라고 말했습니다. 도구에서 얻는 코사인 유사도 점수는 분석 보조 자료이지 Google에 제출하는 입력이 아닙니다.
임베딩은 이 클러스터 대부분을 잇는 조직입니다. 의미 검색이 실행되는 기반이고 벡터 검색이 비교하는 대상이며, 청킹이 텍스트를 준비하는 방식이고 RAG의 검색 기반입니다. 크롤링이 여전히 먼저 중요한 이유이기도 합니다. 어떤 시스템이든 임베딩하기 전에 콘텐츠를 가져와야 합니다.
AI 요약
Advanced 버전의 압축 요약입니다.
- 임베딩 = 의미를 인코딩하는 부동소수점 숫자의 조밀한 벡터이며 의미가 비슷하면 벡터도 가까워집니다. OpenAI: “An embedding is a vector (list) of floating point numbers.” (번역) 「임베딩은 부동소수점 숫자의 벡터(목록)입니다」.
- 생성형 LLM이 아니라 인코더 모델이 만듭니다. 아키텍처와 목적이 다르며 조밀하지 희소하지 않습니다.
- 유사성은 코사인 유사도로 측정합니다. 벡터 사이의 각도이며 −1에서 1까지입니다. 정규화된 벡터에서는 순위를 매길 때 코사인과 내적이 동등합니다.
- 발전: word2vec(2013)와 GloVe(2014)가 정적 단어 벡터를 만들었고 → USE(2018)가 전체 문장을 임베딩했으며 → BERT(2018)가 임베딩을 문맥화했고(같은 단어도 문맥에 따라 다른 벡터) → Sentence-BERT(2019)가 유사성 검색을 빠르게 했고 → 최신 멀티모달·크기 조정 가능 API 모델(2024–현재)로 이어졌습니다.
- Google은 하이브리드 파이프라인에서 임베딩을 사용합니다. BERT(문맥 속 단어), Neural Matching / RankEmbed(키워드 색인을 보완하는 임베딩 검색), RankEmbedBERT가 있습니다. 키워드는 여전히 1차 검색을 수행하고 임베딩은 후보를 추가하고 재순위화합니다.
- RAG 파이프라인: 청크 → 임베딩 → 벡터 DB 저장 → 쿼리 임베딩 → 가까운 청크 검색 → LLM이 근거 있는 답 생성. 각 청크가 독립적으로 검색되므로 구조가 중요합니다.
- SEO 결론: “embedding optimization” (번역) 「임베딩 최적화」는 존재하지 않습니다. Danny Sullivan은 BERT에 대해 “There’s nothing to optimize for” (번역) 「최적화할 것은 없습니다」라고 말했습니다. 주제적으로 일관되고 독립적인 철저한 콘텐츠가 답해야 할 검색어 근처에 모입니다.
공식 문서
Google과 주요 임베딩 제공업체의 1차 출처 문서입니다.
- Machine Learning Glossary — Embeddings — 조밀함과 희소함의 정의, 원-핫 인코딩으로 관계를 표현할 수 없는 이유.
- A guide to Google Search ranking systems — BERT, Neural Matching, RankBrain, Passage Ranking, MUM을 Google의 말로 설명하는 안내.
- Understanding searches better than ever before (BERT) — 2019년 10월 Search에 BERT를 도입한 발표.
- Advances in Semantic Textual Similarity — Universal Sentence Encoder(2018)와 “similar distribution of responses” 아이디어.
- Gemini API — Embeddings — Google의 최신 멀티모달 임베딩 모델, 차원 및 RAG·의미 검색·재순위화·클러스터링 사용 사례.
OpenAI
- 벡터 임베딩 가이드 — “An embedding is a vector (list) of floating point numbers” (번역) 「임베딩은 부동소수점 숫자의 벡터(목록)입니다」와 코사인 유사도 안내.
- 새 임베딩 모델과 API 업데이트 — text-embedding-3 제품군과 Matryoshka 차원 축소(2024년 1월).
기타 제공업체
- Cohere — 임베딩 — 다국어 embed-v4.0, 쿼리/문서 입력 유형 분리, 압축 옵션.
- Voyage AI — 빠른 시작 — Anthropic이 권장하는 제공업체이며 “the cosine similarity between two embeddings captures the semantic relatedness of the corresponding original passages.” (번역) 「두 임베딩의 코사인 유사도는 대응하는 원문 구절의 의미적 관련성을 포착합니다」라고 설명합니다.
기초 논문
- word2vec — Mikolov et al., 2013 — 최초의 조밀한 단어 벡터와 king−man+woman 비유.
- GloVe — Pennington, Socher, Manning, 2014 — 전역 동시 발생 단어 벡터.
- BERT — Devlin et al., 2018 — 양방향 문맥 임베딩.
- Sentence-BERT — Reimers & Gurevych, 2019 — 유사성 검색을 위한 빠른 문장 임베딩.
출처의 인용문
Google과 임베딩 제공업체의 공식 발언입니다. 각 링크는 출처 페이지의 인용 위치로 바로 이동하는 딥 링크입니다.
임베딩이란 무엇인가
- “An embedding is a vector (list) of floating point numbers.” (번역) 「임베딩은 부동소수점 숫자의 벡터(목록)입니다」 — OpenAI, 벡터 임베딩 가이드. 인용문으로 이동
Google — BERT와 언어 이해
- “At its core, Search is about understanding language.” (번역) 「검색의 핵심은 언어를 이해하는 것입니다」 — Pandu Nayak, Google Search 부사장(BERT 발표, 2019년 10월). 인용문으로 이동
- “BERT will help Search better understand one in 10 searches in the U.S. in English.” (번역) 「BERT는 미국에서 영어로 이루어지는 검색 10건 중 1건을 검색이 더 잘 이해하도록 돕습니다」 — Google Search Blog, 2019년 10월. 인용문으로 이동
Google — BERT 최적화에 관해
- “There’s nothing to optimize for with BERT… The fundamentals of us seeking to reward great content remain unchanged.” (번역) 「BERT를 위해 최적화할 것은 없습니다. 훌륭한 콘텐츠에 보상하려는 기본 원칙은 변하지 않습니다」 — Google Search Liaison Danny Sullivan. 인용문으로 이동
Google — 의미 유사성(Universal Sentence Encoder)
- “Sentences are semantically similar if they have a similar distribution of responses.” (번역) 「응답 분포가 비슷하면 문장도 의미적으로 유사합니다」 — Google Research, “Advances in Semantic Textual Similarity”(2018년 5월). Read the source
Voyage AI(Anthropic 권장 제공업체) — 코사인 유사도
- “The cosine similarity between two embeddings captures the semantic relatedness of the corresponding original passages.” (번역) 「두 임베딩의 코사인 유사도는 대응하는 원문 구절의 의미적 관련성을 포착합니다」 — Voyage AI 빠른 시작. 출처 읽기
Pandu Nayak(DOJ 반독점 증언) — RankEmbed
- “RankEmbed identifies a few more documents to add to those identified by the traditional retrieval.” (번역) 「RankEmbed는 전통적인 검색으로 식별된 문서에 몇 개의 문서를 더 추가합니다」 — Pandu Nayak의 증언에 대한 보도, DOJ v. Google. Read the coverage
사고 모델
1. 의미가 위치가 됩니다. 임베딩은 텍스트를 좌표로 바꿉니다. 가까우면 의미가 비슷하고 멀면 관련이 없습니다. 그 밖의 모든 것, 즉 의미 검색, 클러스터링, RAG 검색은 그 공간의 거리를 측정하는 일입니다.
2. 정적과 문맥. word2vec과 GloVe는 단어마다 고정 벡터 하나를 줍니다(“bank”는 항상 같음). BERT와 후속 모델은 각 등장에 문맥에 따른 벡터를 줍니다(“river bank” ≠ “bank account”). word2vec에 기반한 오래된 키워드 유사성 도구는 이를 구분하지 못하지만 BERT 기반 도구는 할 수 있습니다.
3. 토큰 임베딩 ≠ 텍스트 임베딩 API. LLM 내부에서 토큰 임베딩은 다음 토큰을 생성하는 작업 장치입니다. 텍스트 임베딩 API는 검색과 유사성을 위해 문자열마다 하나의 압축된 벡터를 출력합니다. 모델도 다르고 작업도 다릅니다. SEO 담당자가 “embed a page,” (번역) 「페이지를 임베딩한다」고 할 때는 API 방식을 뜻합니다.
4. 대체가 아닌 하이브리드 검색. Google은 어휘 검색(키워드 역색인)과 임베딩 기반 검색(Neural Matching / RankEmbed)을 모두 실행합니다. 키워드가 먼저 범위를 좁히고 임베딩이 개념적으로 관련된 후보를 추가하고 재순위화합니다. 어느 하나만으로 전체 시스템이 되지는 않습니다.
5. RAG 순환. 청크화 → 임베딩 → 저장 → 쿼리 임베딩 → 가까운 청크 검색 → 근거 있는 답 생성. 각 청크가 독립적으로 검색되므로 독립적으로 이해할 수 있는 구절을 쓰고 중요한 내용을 앞에 두세요.
6. 콘텐츠를 위한 판단 규칙. 최적화할 임베딩은 없습니다. 대신 이 구절이 주장하는 내용을 명확하고 철저하게 다루는지 물으세요. 일관된 콘텐츠는 올바른 검색어 근처에 모이고 흩어지거나 키워드를 채운 콘텐츠는 그렇지 않습니다.
임베딩 — 치트 시트
한 줄 정의 의미를 인코딩하는 부동소수점 숫자의 조밀한 벡터 목록입니다. 의미가 비슷하면 벡터도 가까우며 코사인 유사도로 비교합니다.
코사인 유사도 척도
| 점수 | 의미 |
|---|---|
| 1 | 동일한 방향 — 매우 유사 |
| ~0 | 직교 — 무관 |
| −1 | 반대 방향 |
정규화된(단위 길이) 벡터에서는 코사인 유사도와 내적이 같은 순위를 만듭니다.
한눈에 보는 발전
| 시대 | 모델 | 달라진 점 |
|---|---|---|
| 2013–2014 | word2vec, GloVe | 조밀한 단어 벡터 — 하지만 정적(단어마다 하나의 벡터) |
| 2018 | Universal Sentence Encoder | 전체 문장 임베딩 |
| 2018(Search: 2019) | BERT | 문맥적 — 단어의 벡터가 문장에 따라 달라짐 |
| 2019 | Sentence-BERT | 대규모 유사성 검색을 위한 빠른 문장 임베딩 |
| 2024–현재 | OpenAI / Gemini / Voyage / Cohere | 다국어, 멀티모달, 크기 조정 가능(Matryoshka) |
Google이 이름 붙인 임베딩 시스템
| 시스템 | 역할 |
|---|---|
| BERT | 문맥 속 단어 이해(쿼리 해석) |
| Neural Matching / RankEmbed | 키워드 색인을 보완하는 임베딩 기반 검색 |
| RankEmbedBERT | RankEmbed + BERT; 복잡한 긴 꼬리 검색어에 강함 |
| Passage Ranking | 페이지의 관련 개별 구절을 노출 |
RAG 검색 순환
- 콘텐츠를 구절로 청크화
- 각 청크를 임베딩 → 벡터
- 벡터를 벡터 데이터베이스에 저장
- 들어오는 쿼리를 임베딩
- 최근접 이웃(벡터) 검색 → 상위 K개 청크
- LLM이 청크에 근거한 답 생성
빠른 사실
- 차원: 일반적으로 수백에서 수천 — 뉘앙스, 저장 공간, 계산량이 함께 늘며 항상 더 좋은 것은 아님.
- 생성형 LLM이 아니라 인코더 모델이 생성.
- Matryoshka를 사용하면 재학습 없이 더 적은 차원으로 잘라낼 수 있음.
- 임베딩 모델을 바꾸면 모든 것을 다시 임베딩해야 함. 서로 다른 모델의 공간은 호환되지 않음.
- Google에 제출할 “embedding optimization” (번역) 「임베딩 최적화」는 없음 — Danny Sullivan: “There’s nothing to optimize for” (번역) 「최적화할 것은 없습니다」(BERT).
직접 테스트: 임베딩
시간을 들일 가치가 있는 리소스
관련 글과 강연
- LLM 검색 최적화에 대해 실제로 아는 것 — Chrome이 페이지 구절을 청크화하고 임베딩하는 방식(약 30개 구절 한도, 200단어 청크)에 관한 제 연구와 Dan Petrovic의 결과를 인용한 Ahrefs 글.
- GEO? AEO? LLMO? — AI 검색 웨비나 — 검색 파이프라인과 임베딩이 AI 검색에 들어가는 위치.
기초 논문(역사)
- word2vec — Mikolov et al., 2013 — 조밀한 단어 벡터와 벡터 연산.
- GloVe — Pennington, Socher, Manning, 2014 — 전역 동시 발생 단어 벡터.
- BERT — Devlin et al., 2018 — 문맥적 양방향 임베딩.
- Sentence-BERT — Reimers & Gurevych, 2019 — 빠른 문장 수준 유사성.
다른 자료
- 의미론적 SEO로의 전환: 벡터가 전략에 의미하는 것 — Search Engine Land의 Ann Robison: “Vectors are to AI what structured data is to search engines.” (번역) 「벡터는 AI에서 구조화 데이터가 검색 엔진에서 하는 역할과 같습니다」.
- 이커머스 SEO에 코사인 유사도를 활용하는 방법 — 실제 SEO 워크플로에 코사인 유사도를 적용하는 방법을 다루는 Search Engine Land 실무자 가이드.
- 벡터 데이터베이스 소개와 SEO에 AI를 사용하는 방법 — 벡터 데이터베이스와 SEO의 연결을 설명하는 Search Engine Journal 개요.
- Screaming Frog로 웹을 벡터화하는 SEO 활용 사례 — SEO에서 임베딩을 사용하는 iPullRank 실무 설명.
- 의미 검색 설명: 오늘날 SEO에 미치는 벡터 모델의 영향 — 조밀함과 희소함, 코사인 유사도, 하이브리드 검색을 다루는 Lumar 자료.
- 임베딩 설명: SEO의 미래 열기 — 키워드 클러스터링과 내부 연결의 실용적 사용 사례를 다루는 Edd Dawson의 SEO 설명.
- Google 검색 작동 방식(역색인, RankBrain, RankEmbed, DeepRank) — Google 임베딩 시스템에 관한 DOJ 증언 관점.
- sbert.net — 직접 임베딩을 생성하려면 사용하는 Sentence Transformers 라이브러리.
변경 내역
2026년 8월 6일에 업데이트됨.
편집 요약 및 기록된 변경 세부 정보입니다.변경 세부 정보
-
변경 세부 정보는 현재 영어로 제공됩니다.
전체 비교를 사용할 수 없음 — 이 수정에 대한 이전 스냅샷이 보관되지 않았습니다.