임베딩: 임베딩 획득하기

임베딩을 획득하는 방법은 Google에서 만든 최첨단 알고리즘을 포함하여 여러 가지 방법이 있습니다.

표준 차원 축소 기법

저차원 공간에서 고차원 공간의 중요한 구조를 캡처할 수 있는 여러 가지 수학적 기법이 존재합니다. 이론상 이 기법들은 어느 것이든 머신러닝 시스템용 임베딩을 만드는 데 사용할 수 있습니다.

예를 들어 주성분 분석(PCA)은 단어 임베딩을 만드는 데 사용되어 왔습니다. BOW 벡터와 같은 인스턴스의 집합이 주어지면 PCA는 단일 차원으로 축소할 수 있는 높은 상관도를 갖는 차원을 찾습니다.

Word2vec

Word2vec은 단어 임베딩 학습을 위해 Google에서 개발한 알고리즘입니다. Word2vec은 분포 가설에 기반하여 의미론적으로 유사한 단어를 기하학적으로 가까운 임베딩 벡터로 매핑합니다.

분포 가설은 주로 같은 단어가 인접하는 단어 간에는 의미론적으로 유사한 경향이 있다고 봅니다. 예를 들어 '개'와 '고양이'가 '수의사'라는 단어에 자주 인접한다는 사실은 이 두 단어 간에 의미론적 유사성이 있다는 것을 보여줍니다. 1957년 언어학자 John Firth가 '단어를 알려면 같이 다니는 친구 단어들을 알아야 해(You shall know a word by the company it keeps)'라고 말한 것처럼 말입니다.

Word2Vec은 실제로 함께 등장하는 단어 그룹과 무작위로 그룹화된 단어를 구분하도록 신경망을 학습시켜 이와 같은 문맥상의 정보를 활용합니다. 입력 레이어는 하나 이상의 문맥 단어와 함께 대상 단어의 희소 표현을 취합니다. 이 입력은 더 작은 히든 레이어 하나에 연결됩니다.

이 알고리즘의 한 버전에서는 시스템이 대상 단어 대신 무작위의 노이즈 단어를 취하여 음의 예를 만듭니다. 양의 예로 '비행기가 난다'가 있으면 시스템은 '조깅'을 대신 넣어 대조되는 음의 예인 '조깅이 난다'를 만들 수 있습니다.

다른 알고리즘 버전에서는 실제 대상 단어와 무작위로 선택한 문맥 단어를 짝지어 음의 예를 만듭니다. 이를 통해 시스템은 양의 예인 (비행기, 가) (난다, 비행기)와 음의 예인 (편찬하다, 비행기) (누가, 비행기)를 취하여 어느 쌍이 텍스트에 실제로 함께 표시되었는지 구분하는 법을 학습합니다.

하지만 두 버전 모두 분류자가 진짜 목표인 것은 아닙니다. 모델을 학습한 후에야 임베딩을 획득하게 됩니다. 입력 레이어와 히든 레이어를 연결하는 가중치를 사용하여 단어의 희소 표현을 더 작은 벡터에 매핑할 수 있습니다. 이 임베딩은 다른 분류자에서 재사용할 수 있습니다.

word2vec의 자세한 내용은 tensorflow.org의 가이드를 참조하세요.

더 큰 모델의 일부로서 임베딩 학습

임베딩을 대상 작업을 위한 신경망의 일부로서 학습할 수도 있습니다. 이 접근법은 특정 시스템에 맞게 임베딩을 효과적으로 맞춤화할 수 있지만 임베딩을 별도로 학습하는 것보다 시간이 오래 걸릴 수 있습니다.

일반적으로, 희소 데이터 또는 임베딩하려는 밀집 데이터가 있는 경우 크기가 d인 특수 유형의 은닉 단위인 임베딩 단위를 만들 수 있습니다. 이 임베딩 레이어는 다른 특성 및 히든 레이어와 결합할 수 있습니다. 모든 DNN(심층신경망)이 그러하듯, 최종 레이어는 최적화 중인 손실입니다. 예를 들어, 다른 사용자의 관심분야를 바탕으로 특정 사용자의 관심분야를 예측하기 위한 협업 필터링 작업을 한다고 가정합니다. 이 작업에서 사용자가 시청한 소수의 영화를 양의 라벨로 무작위로 따로 분류하여 지도 학습 문제로 모델링한 다음 소프트맥스 손실을 최적화할 수 있습니다.

그림 5. 협업 필터링 데이터에서 영화 임베딩을 학습하는 샘플 DNN 아키텍처

또 다른 예로, DNN의 일부로서 부동산 광고에 나온 단어에 관해 임베딩 레이어를 만들어 주택 가격을 평가하려 할 때, 학습 데이터에 있는 알려진 주택 판매가를 라벨로 사용하여 L2 손실을 최적화할 수 있습니다.

d차원 임베딩을 학습할 때, 각 항목은 d차원 공간의 지점에 매핑되어 유사한 항목이 이 공간에서 서로 가까이 위치하게 됩니다. 그림 6은 임베딩 레이어에서 학습한 가중치와 기하학적 보기 간의 관계를 보여줍니다. 입력 노드와 d차원 임베딩 레이어에 있는 노드 간의 에지 가중치는 d개 축 각각의 좌표 값과 일치합니다.

임베딩 레이어 가중치와 임베딩의 기하학적 보기 간의 관계를 보여주는 그림입니다.

그림 6. 임베딩 레이어 가중치의 기하학적 보기