← 전체 해설 목록  ·  week-01 · 2강

2강 — AI는 텍스트를 어떻게 이해하는가 (임베딩)

수학 공식은 없으니 안심하세요.

🎯 학습 목표

📖 해설

1. 오늘의 핵심 질문

"좋아요"와 "최고예요"는 공통 글자가 하나도 없는데 뜻은 비슷하죠. AI는 이걸 어떻게 알까요? 세 가지로 생각해 봅시다. - 사전을 찾아본다? — 안 됩니다. 사전엔 "좋다"의 정의는 있어도 "최고와 비슷하다"는 안 적혀 있어요. 신조어·줄임말(갓겜·레전드·존잼)은 사전에 아예 없고요. - 규칙을 만들어 둔다? ("좋아요=긍정, 굿=긍정…") — 이것도 안 됩니다. 사람이 긍정을 표현하는 방법은 수천·수만 가지인 데다 오타·줄임말·이모티콘까지 있어요. 규칙으로는 다 못 덮습니다. - 완전히 다른 방법이 있다. — 네, 맞아요. 이게 오늘의 핵심입니다.

2. AI는 단어를 "숫자 좌표"로 바꿉니다 — 임베딩

컴퓨터는 글자를 모릅니다. 숫자만 알아요. 그래서 단어를 숫자 좌표로 바꿉니다. - 지도를 떠올려 보세요. "서울이 어디야?"를 말로 설명하면 장황하지만, 좌표로 말하면 위도 37.5, 경도 127 끝이죠. 숫자 두 개로 위치가 정확히 정해집니다. - AI도 똑같이 "게임"이라는 단어를 0.8, 0.3, 0.5 … 같은 숫자들로 바꿉니다. 이렇게 단어를 숫자 좌표로 바꾸는 걸 임베딩(embedding) 이라고 해요. (embed = 끼워 넣다 → 단어를 숫자 공간에 끼워 넣는 거죠.) - 숫자로 보면 감이 와요. 예컨대 (간단히 3개로 줄여서) 게임 (0.82, 0.31, 0.50)과 플레이 (0.79, 0.38, …)는 숫자 패턴이 비슷해서 가깝고, 사과 (0.11, 0.89, …)는 패턴이 확 달라서 멀어요. 비슷한 맥락에 쓰이는 단어는 비슷한 숫자가 되는 겁니다.

핵심은 이게 전부입니다: AI는 단어를 인식할 때 숫자로 바꿔서 인식한다. 그리고 이 숫자는 사람이 정해주는 게 아니라, AI가 수억 개의 문장을 학습하면서 스스로 정합니다. 그래서 같이 자주 등장하는 단어(게임 ↔ 플레이)는 자연스럽게 가까운 숫자가 돼요.

3. 거리를 잽니다 — 유사도 (코사인 유사도)

숫자 좌표로 바꿨으면 이제 거리를 잴 수 있습니다. 가까우면 비슷하고, 멀면 다른 거예요. 대표적인 방법이 코사인 유사도인데, 두 좌표가 얼마나 같은 방향을 보는지를 잽니다. (삼각함수의 cos를 쓰지만, 공식을 직접 다룰 일은 없어요.)

서울역에서 출발한다고 해볼게요. - 둘 다 북쪽으로 가면 → 같은 방향 → 유사도 1 (매우 비슷) - 한 명은 북쪽, 한 명은 동쪽 → 0.5쯤 (좀 다름) - 한 명은 북쪽, 한 명은 남쪽 → 음수 (정반대)

정리하면 — 1에 가까우면 매우 비슷 / 0에 가까우면 무관 / 음수면 반대입니다.

실제로 이런 식이에요(예시 값).

두 단어 유사도 판단
좋아요 ↔ 최고예요 0.92 둘 다 긍정 → 같이 분류
좋아요 ↔ 화나요 0.21 둘 다 감정이지만 긍/부정이 달라 거의 무관
좋아요 ↔ 별로예요 -0.15 긍정 vs 부정, 반대 방향(음수)

직접 예측해 볼까요? 단어쌍의 유사도를 먼저 어림해 본 뒤 실제 값과 맞춰 보면 감이 잡혀요.

단어쌍 실제 유사도 판정 왜 그럴까요
재미있다 ↔ 즐겁다 0.87 높음 둘 다 긍정 감정, 비슷한 맥락
재미있다 ↔ 지루하다 0.23 낮음 뜻은 반대지만 같은 '재미' 축 위의 단어
게임 ↔ 플레이 0.72 관련 있음 품사가 달라도 의미적 연결이 강함
게임 ↔ 음식 0.15 관련 없음 다른 분야지만 약간의 연관은 존재

특히 재미있다 ↔ 지루하다(0.23)가 흥미로워요. 뜻은 정반대인데 유사도가 음수가 아니라 낮은 양수죠? 둘 다 '재미'라는 같은 축을 다루는 단어라서 그렇습니다(이건 아래 '흔한 오해'에서 더 짚을게요).

직접 어림한 값과 실제 값을 맞춰 보면, 오차가 좀 있더라도 높다/낮다의 큰 방향은 대체로 일치할 거예요. 즉 우리가 직관적으로 느끼는 "비슷한 정도"를 AI도 비슷하게 숫자로 잡아낸다는 뜻입니다. 임베딩이 사람의 감각과 동떨어진 신비한 계산이 아니라, 우리 직관을 숫자로 옮겨 놓은 것에 가깝다는 걸 여기서 체감할 수 있어요.

이 원리가 리뷰 분석에 그대로 쓰입니다. "이 게임 진짜 재밌어요"라는 리뷰가 들어오면, AI는 이 문장의 임베딩을 만들고 → "긍정" 개념의 임베딩과 "부정" 개념의 임베딩 중 어느 쪽에 더 가까운지 거리를 재서 분류해요. 수천·수만 개도 똑같은 원리로 처리합니다.

4. 왜 숫자가 수백 개나 필요할까요? — 차원

앞 예시는 설명을 위해 숫자 5개로 줄인 거고, 실제 모델은 768개, 1536개씩 씁니다. 이 숫자의 개수가 "차원"이에요. 왜 이렇게 많이 쓸까요? - 지도의 숫자 2개(위도·경도)는 위치만 표현합니다. "서울은 인구가 많다, 집값이 비싸다, 역사가 깊다" 같은 정보는 못 담죠. - 단어도 마찬가지예요. "게임"이라는 단어 하나에 긍정/부정, 혼자/같이, 온라인/오프라인, 경쟁/협력, 아동용/성인용… 수많은 특성이 동시에 담깁니다. 숫자 하나가 특성 하나를 맡는 셈이라 많이 필요해요. - 차원을 늘릴수록 담는 정보가 늘어요. 2차원이면 위치만, 3차원이면 높이(산이냐 바다냐)까지 표현하듯, 차원이 커질수록 더 풍부한 특성을 담습니다. 768·1536차원이면 단어의 수백 가지 특성을 한꺼번에 표현하는 셈이에요. - 그래서 "좋아요 ↔ 최고예요"가 768개 숫자 중 대부분이 비슷하다면, 둘 다 긍정이고, 둘 다 감정 표현이고, 둘 다 비격식이고, 둘 다 칭찬에 쓰인다는 걸 세밀하게 비슷하다고 보는 겁니다.

어렵게 느껴지면 한 줄로 기억하세요 — "특성을 풍부하게 담으려고 숫자가 많다."

5. 왜 이걸 알아야 할까요? — AI는 틀릴 수 있습니다

현장에서 이런 일이 생길 수 있어요. AI가 "이 게임 쓰레기 같다"를 긍정으로 분류하는 거죠. 왜 그럴까요? - AI의 임베딩은 수억 개 문서로 학습된 결과라, "쓰레기"라는 단어가 우리(게임 도메인)가 생각하는 의미와 다르게 학습됐을 수 있어요. 학습 데이터에서 그 단어가 부정 맥락으로 충분히 안 나왔거나, 다른 의미로 쓰였을 수 있거든요. - 원리를 모르면 "버그인가?" 하고 끝나버립니다. 하지만 알면 "아, 이 단어 임베딩이 우리 도메인과 다르게 학습됐구나" 하고 진단하고 → 프롬프트로 규칙을 줘서 교정할 수 있어요. (예: "게임 리뷰 맥락에서 '쓰레기'는 부정으로 판단해줘.") - 우리가 쓸 모델은 대부분 빅테크가 만든 거라 임베딩 자체는 바꿀 수 없습니다. 그래서 가장 현실적인 해결책이 프롬프트로 규칙을 주는 것이에요.

AI는 100% 완벽하지 않습니다(화면에 늘 "AI는 실수할 수 있다"고 적혀 있죠). 그래서 우리는 결과를 모니터링하고 관리·감독해야 합니다.

🔑 핵심 용어

용어 쉬운 설명
임베딩(embedding) 단어/문장을 숫자 좌표로 바꾸는 것
코사인 유사도 두 좌표가 얼마나 같은 방향인지(1=비슷, 0=무관, 음수=반대)
차원(dimension) 임베딩 숫자의 개수. 많을수록 풍부한 의미 표현(768·1536 등)
룰 베이스 사람이 일일이 규칙을 정해 처리하는 방식(한계가 큼)

🎮 게임 기획자 시점

게임판 은어(갓겜·핵노잼·존잼·사기캐·똥겜·갓업데)는 일반 LLM이 학습한 의미와 어긋나기 쉽습니다. "쓰레기 같다" 사례가 게임 리뷰에서 실제로 터질 함정이에요. 그래서 감성 분석 단계에서 게임 도메인 용어 가이드(프롬프트)를 따로 만들어주면 정확도가 올라갑니다 — 게임을 아는 기획자가 분석 품질을 끌어올리는 바로 그 지점이죠.

⚠️ 흔한 오해 / 짚고 갈 점

✅ 30초 정리

  1. AI는 단어를 숫자 좌표(임베딩)로 바꿉니다 — 사전·규칙이 아니라요.
  2. 좌표 사이 거리(유사도)를 재서 의미의 비슷함을 판단합니다. 가까우면 비슷해요.
  3. 의미가 풍부해서 숫자가 많이 필요한 게 차원입니다. AI는 틀릴 수 있고, 그땐 프롬프트로 교정해요.

▶️ 다음 강 연결

개념은 충분히 봤으니, 이제 직접 손으로 확인해 봅시다 → 3강: 개발 환경(Google Colab) 세팅 + 임베딩 코드 실습.

전체📚 강의 목록