결론부터 말하면, 반대 의미의 단어일지라도 비슷한 공간에 위치한다.
“의미적으로 반대인데, 벡터 공간에서는 이웃이다”
들어가며
LLM 임베딩을 분석하다 보면 자주 마주치는 장면이 있다.
- 남자 ↔ 여자
- 기혼 ↔ 미혼
- 구매 ↔ 미구매
- 찬성 ↔ 반대
의미적으로는 정반대인데, 코사인 유사도는 surprisingly 높다.
“이거 임베딩이 잘못된 거 아닌가요?”
아니다. 오히려 LLM 임베딩의 ‘특성’에 가깝다.
핵심 요약 (한 줄)
LLM 임베딩은 ‘의미의 방향’보다 ‘맥락의 공유’를 더 강하게 반영한다.
1.LLM은 ‘차이’보다 ‘공통 맥락’을 먼저 배운다
LLM은 다음과 같은 데이터로 학습된다.
- 문서
- 대화
- 질문–답변
- 비교 문장
이때 반대 개념은 항상 같은 문맥에서 함께 등장한다.
예시:
- “남성과 여성의 소비 패턴 차이”
- “기혼자와 미혼자의 라이프스타일 비교”
- “찬성과 반대 의견이 대립했다”
모델 입장에서는
남자, 여자, 기혼, 미혼, 찬성, 반대이 단어들은
‘같은 토픽, 같은 문장 구조, 같은 질문’에 묶인 단어들이다.
2.임베딩 공간은 ‘축(axis)’이 아니라 ‘영역(region)’이다
우리는 종종 이렇게 기대한다.
←──────── 반대 ────────→하지만 실제 LLM 임베딩 공간은 이렇다.
- 개념은 선(line) 이 아니라 덩어리(region) 로 존재
- 반대 개념은 같은 영역의 서로 다른 방향 성분
즉,
- 기혼과 미혼은→ “결혼 상태”라는 같은 의미 영역에 속함
- 방향은 다르지만, 원점에서의 각도는 작을 수 있다
이것이 코사인 유사도가 높아지는 이유
3.LLM 임베딩은 ‘분류용’이 아니라 ‘이해용’이다
LLM 임베딩의 목적은 이것이다.
“이 입력은 어떤 주제/맥락에 속하는가?
(X) “이 둘을 명확히 구분해라”
(O) “이 둘이 무엇에 관한 이야기인가?”
그래서 모델은 이렇게 판단한다.
- 남자 vs 여자 → 성별 이야기
- 찬성 vs 반대 → 의견 대립
- 구매 vs 미구매 → 구매 의사
→ 상위 의미(latent topic)가 동일하면 가깝다
4. 행동·고객 임베딩에서 특히 더 가까워진다
행동 시퀀스를 생각해보자.
A: 냉장고 검색 → 가격 비교 → 구매
B: 냉장고 검색 → 가격 비교 → 미구매차이는 마지막 한 행동뿐이다.
임베딩 관점에서는:
- 전체 시퀀스의 80~90%는 동일
- 따라서 벡터도 매우 유사
→ 구매 고객과 비구매 고객 임베딩이 가깝게 나오는 것은 자연스러운 결과
5.“그럼 반대 개념은 어떻게 구분하나?”
중요한 실무 질문이다.
방법 1. 방향 벡터 사용 (Difference Vector)
v(결혼) = v(기혼) - v(미혼)
v(구매의사) = v(구매) - v(미구매)→ 의미 축(axis)을 먼저 추출
- 각 임베딩을 이 축에 projection
→ 상대적 위치로 해석
방법 2. 분류 헤드 추가 (Downstream Task)
- 임베딩은 그대로 두고
- 얕은 분류 모델로 분리
→ 임베딩 자체를 바꾸려 하지 않는 게 중요
6.흔한 오해 정리
(X) “반대 개념이 가까우면 임베딩이 잘못됐다”
(X) “코사인 유사도가 높으면 같은 의미다”
(O) “가깝다 = 같은 맥락안에 있다”
(O) “구분은 속성축을 생성한 후 프로젝션해보거나, downstream task를 통해 구별 한다”
실무 체크포인트
- 반대 개념이 가까운가? → 정상
- 완전히 무관한 개념도 가까운가? → 이러면 문제
- downstream task에서 분리가 되는가? → 가장 중요
마치며
LLM 임베딩은 논리의 벡터가 아니라 이해의 지형도다.
반대 의미가 가깝다는 것은
모델이 “헷갈렸다”는 뜻이 아니라,
“이 둘은 같은 질문에 대한 다른 답이다”
라고 이해했다는 신호다.