포스트

딥러닝 기초 (12) - 시퀀스와 임베딩

문장·시계열 같은 시퀀스 데이터가 이미지와 무엇이 다른지(가변 길이·순서), 그리고 단어 같은 이산 토큰을 원-핫이 아니라 의미를 담은 밀집 벡터로 바꾸는 워드 임베딩의 개념을 정리한 딥러닝 기초 (12)편입니다.

딥러닝 기초 (12) - 시퀀스와 임베딩

딥러닝 기초 시리즈의 12편입니다. 전체 목차는 0편에 있습니다. 여기서부터 이미지가 아닌 시퀀스 데이터로 넘어갑니다. 그 첫걸음으로 시퀀스의 성질과, 단어를 벡터로 바꾸는 임베딩을 다룹니다.

시퀀스는 무엇이 다른가

문장, 음성, 주가, 센서 로그 같은 데이터는 이미지와 성질이 다릅니다.

  • 길이가 제각각이다 — 어떤 문장은 세 단어, 어떤 문장은 서른 단어입니다. 고정 크기 입력을 전제하는 MLP나 CNN에는 바로 들어맞지 않습니다.
  • 순서가 의미다 — “개가 사람을 물었다”와 “사람이 개를 물었다”는 같은 단어로 이루어졌지만 뜻이 반대입니다. 앞의 정보가 뒤의 해석에 영향을 줍니다.

이 성질에 맞춘 구조가 다음 편의 RNN인데, 그 전에 먼저 풀어야 할 문제가 있습니다. 단어 같은 이산적인 토큰을 어떻게 숫자로 표현할 것인가입니다.

원-핫의 한계

가장 단순한 방법은 원-핫 인코딩입니다. 어휘가 1만 개면, 각 단어를 그중 한 자리만 1인 1만 차원 벡터로 표현합니다. 두 가지 문제가 있습니다.

  • 너무 크고 희소하다 — 단어 하나에 1만 차원. 대부분이 0입니다.
  • 의미가 없다 — “고양이”와 “고양잇과”는 뜻이 가깝지만, 원-핫에서는 “고양이”와 “자동차”만큼이나 서로 무관한(직교하는) 벡터입니다. 모든 단어 쌍의 거리가 똑같습니다.

워드 임베딩: 의미를 담은 밀집 벡터

임베딩(embedding)은 각 단어를 저차원(예: 300차원)의 밀집 벡터로 표현하고, 이 벡터를 학습으로 얻습니다. 학습이 끝나면 비슷한 맥락에서 쓰이는 단어들이 벡터 공간에서 서로 가까이 놓입니다. “왕–남자+여자 ≈ 여왕” 같은 의미 연산이 성립하는 것으로 유명한, 바로 그 표현입니다.

구현은 단순합니다. 어휘 크기 × 임베딩 차원짜리 임베딩 테이블을 하나 두고, 단어의 인덱스로 해당 행을 꺼내 씁니다. 이 테이블 자체가 학습 가능한 파라미터라, 역전파로 함께 학습됩니다.

1
"cat" → 인덱스 42 → 임베딩 테이블의 42번째 행 → [0.2, -1.1, 0.8, ...]  (300차원)

정리하면, 시퀀스 모델의 입력은 대개 이렇게 흐릅니다. 토큰 → 인덱스 → 임베딩 벡터 → (RNN/Transformer). 이산적인 단어를 연속적인 벡터로 바꿔야 신경망이 다룰 수 있고, 그 벡터가 의미까지 담고 있으면 학습이 훨씬 수월해집니다.

정리

개념한 줄 요약
시퀀스의 성질가변 길이 + 순서가 의미
원-핫의 한계크고 희소하며, 단어 간 의미 관계가 없음
임베딩단어를 학습된 저차원 밀집 벡터로. 의미가 거리에 반영
임베딩 테이블인덱스로 행을 꺼내는 학습 가능한 파라미터

이제 이 벡터열을 순서대로 읽어 처리하는 구조가 필요합니다. 다음 편, RNN입니다.

다음 글: 딥러닝 기초 (13) - RNN: 순환 구조와 BPTT

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.