AI VIDEO BRIEFING
임베딩이란? word2vec 신경망으로 보는 단어 벡터 학습 원리와 스킵그램 개념 정리
구글이 설명하는 word2vec 신경망으로 단어 임베딩이 어떻게 학습되는지, 원-핫 입력층·투영(임베딩)층·소프트맥스 출력층 구조와 스킵그램, 임베딩 행렬, 비슷한 단어의 벡터 근접성 개념까지 쉽게 정리했습니다.

핵심 메시지
쉽게 이해하기
신경망은 단어를 임베딩이라는 벡터로 표현한다. 그렇다면 그 임베딩은 어디에서 오는 것일까? 구글의 설명 영상은 단어를 고차원 벡터로 표현하도록 학습하는 word2vec 신경망을 예로 들어 그 과정을 단계별로 보여준다. 임베딩을 만드는 방법은 여러 가지가 있으며, 이는 그중 하나의 예시다.
구조를 보면, 입력층은 원-핫 인코딩을 써서 어휘의 각 단어마다 노드를 하나씩 둔다. 이 입력층을 원하는 임베딩 차원 수만큼의 노드에 완전 연결한다. 예를 들어 10차원 임베딩을 원하면 다음 층은 10개의 노드를 갖는다. 이 층을 흔히 투영층 또는 임베딩층이라 부르며, 바로 여기에서 임베딩을 학습한다. 이 층에는 활성화 함수가 필요하지 않다.
임베딩층 뒤에는 활성화 함수를 가진 완전 연결 은닉층을 두어 데이터를 한 번 더 처리한다. 마지막 출력층은 입력층과 똑같이 어휘의 각 단어마다 노드를 하나씩 두며, 소프트맥스 함수로 출력을 정규화한다.
학습 방법은 이렇다. 한 단어가 주어지면 같은 문맥에 함께 등장하는 다른 단어를 예측하도록 한다. 프로젝트 구텐베르크의 소설이나 영어 위키백과 문서처럼 큰 텍스트 뭉치를 입력-출력 쌍으로 가공하는데, 입력은 텍스트 속 한 단어이고 출력은 같은 문장 안 가까운 단어다. 이 입력-출력 쌍을 스킵그램이라 부른다. 스킵그램을 많이 만들수록 모델은 좋아지지만 학습 시간은 길어진다.
학습이 끝나면 신경망의 첫 층과 둘째 층 사이 가중치가 곧 임베딩 행렬이 된다. 어떤 단어의 임베딩을 구하려면 그 단어에 해당하는 가중치들을 벡터로 쌓으면 된다. 이렇게 얻은 벡터는 원-핫 표현보다 차원이 적으면서 단어의 의미 정보를 담는다. 그 결과 비슷한 단어일수록 벡터 공간에서 서로 가까이 위치한다. 다만 이 예시 신경망은 성능을 위해 설계된 것이 아니어서 학습에 많은 시간과 메모리가 든다.
주요 인사이트
- 임베딩의 핵심 아이디어는 ‘같은 문맥에 등장하는 단어끼리 비슷한 표현을 갖게 한다’는 데 있다.
- 임베딩층에 활성화 함수를 두지 않는다는 세부는, 이 층이 표현을 ‘저장·학습’하는 역할임을 보여준다.
- 학습이 끝난 뒤에는 출력층이 아니라 첫 층과 둘째 층 사이의 가중치 자체가 우리가 쓰는 임베딩이 된다는 점이 흥미롭다.
- 스킵그램 수와 모델 품질·학습 시간이 맞바꿈 관계라는 점은 실제 임베딩 학습의 비용을 이해하는 데 도움이 된다.
자주 묻는 질문
스킵그램(skip-gram)이란 무엇인가요?
한 단어를 입력으로, 같은 문장 안 가까운 단어를 출력으로 삼아 만든 입력-출력 쌍입니다. 이 쌍을 많이 만들수록 모델은 좋아지지만 학습 시간은 길어집니다.
학습이 끝난 뒤 임베딩은 어디에서 얻나요?
신경망의 첫 층과 둘째 층 사이 가중치가 임베딩 행렬이 됩니다. 특정 단어의 가중치들을 벡터로 쌓으면 그 단어의 임베딩이 됩니다.
임베딩 벡터는 어떤 특성을 갖나요?
원-핫 표현보다 차원이 적으면서 단어의 의미 정보를 담습니다. 그 결과 비슷한 단어일수록 벡터 공간에서 서로 가까이 위치하게 됩니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗