이 섹션에서는 임베딩을 가져오는 두 가지 일반적인 기법에 중점을 둡니다.
- 차원 축소
- 더 큰 신경망 모델에서 임베딩 추출
차원 축소 기법
고차원 공간의 중요한 구조를 저차원 공간에서 포착하는 수학적 기법은 다양합니다. 이론적으로는 이러한 기술 중 하나를 사용하여 머신러닝 시스템의 임베딩을 만들 수 있습니다.
예를 들어 주성분 분석 (PCA)은 단어 임베딩을 만드는 데 사용되어 왔습니다. 단어 그룹 벡터와 같은 일련의 인스턴스가 주어지면 PCA는 단일 측정기준으로 축소할 수 있는 상관성이 높은 측정기준을 찾으려고 시도합니다.
신경망의 일부로 임베딩 학습
대상 작업의 신경망을 학습하면서 임베딩을 만들 수 있습니다. 이 접근 방식을 사용하면 특정 시스템에 맞게 잘 맞춤설정된 임베딩을 얻을 수 있지만 임베딩을 별도로 학습하는 것보다 시간이 더 오래 걸릴 수 있습니다.
일반적으로 신경망에서 임베딩 레이어로 지정된 크기가 d인 히든 레이어를 만들 수 있습니다. 여기서 d는 히든 레이어의 노드 수와 임베딩 공간의 차원 수를 모두 나타냅니다. 이 임베딩 레이어는 다른 모든 기능 및 숨겨진 레이어와 결합할 수 있습니다. 다른 심층신경망과 마찬가지로 네트워크의 출력 레이어에 있는 노드의 손실을 최소화하도록 학습 중에 매개변수가 최적화됩니다.
음식 추천 예시로 돌아가면, 목표는 현재 좋아하는 식사를 바탕으로 사용자가 좋아할 만한 새로운 식사를 예측하는 것입니다. 먼저 사용자의 가장 좋아하는 음식 5가지에 관한 추가 데이터를 수집할 수 있습니다. 그런 다음 이 작업을 지도 학습 문제로 모델링할 수 있습니다. 이 중 상위 5개 음식 중 4개를 특성 데이터로 설정한 다음, 5번째 음식을 모델이 예측하려는 긍정 라벨로 무작위로 설정하고 softmax 손실을 사용하여 모델의 예측을 최적화합니다.
학습 중에 신경망 모델은 임베딩 레이어 역할을 하는 첫 번째 히든 레이어에 있는 노드의 최적 가중치를 학습합니다. 예를 들어 모델의 첫 번째 숨겨진 레이어에 노드가 3개 포함되어 있으면 음식 품목과 가장 관련성이 높은 세 가지 측정기준이 샌드위치, 디저트, 액체라고 결정할 수 있습니다. 그림 12는 '핫도그'의 원-핫 인코딩된 입력 값을 3차원 벡터로 변환한 것을 보여줍니다.
학습 과정에서 임베딩 레이어의 가중치는 유사한 예의 임베딩 벡터가 서로 더 가까워지도록 최적화됩니다. 임베딩 레이어의 개별 차원 (임베딩 레이어의 각 노드가 나타내는 항목)은 '디저트' 또는 '유동성'만큼 이해하기가 거의 없습니다. '의미'를 추론할 수 있는 경우도 있지만 항상 그런 것은 아닙니다.
임베딩은 일반적으로 작업에 따라 다르며 작업이 다를 때 서로 다릅니다. 예를 들어 채식 대 비채식주의 분류 모델에 의해 생성된 임베딩은 육류 콘텐츠와 유제품 콘텐츠라는 2가지 차원을 가질 수 있습니다. 한편 미국 요리의 아침 및 저녁 분류 기준에서 생성된 임베딩은 칼로리 함량, 곡물 함량, 육류 함량 등 약간 다른 측정기준을 가질 수 있습니다. '시리얼'과 '계란 베이컨 샌드위치'는 아침 식사 분류기와 저녁 식사 분류기의 임베딩 공간에서는 가까울 수 있지만 채식주의자 분류기와 비채식주의자 분류기의 임베딩 공간에서는 멀리 떨어져 있을 수 있습니다.
단어 임베딩 학습
이전 섹션에서는 word2vec 임베딩 공간에서의 시맨틱 관계 시각화를 살펴봤습니다.
Word2vec은 단어 임베딩을 학습하는 데 사용되는 여러 알고리즘 중 하나입니다. 분포 가설을 사용하여 의미적으로 유사한 단어를 기하학적으로 가까운 임베딩 벡터에 매핑합니다. 분포 가설에 따르면 자주 같은 이웃 단어가 있는 단어는 의미적으로 유사한 경향이 있습니다. 'dog'와 'cat' 모두 '수의사'라는 단어에 가깝게 나타나는 경우가 많으며, 이는 두 단어의 의미상 유사성을 나타냅니다. 언어학자 존 피르스는 1957년에 '단어는 그 단어를 사용하는 집단을 통해 알 수 있다'고 말했습니다.
다음 동영상에서는 더 간단한 모델을 사용하여 신경망 학습 프로세스의 일부로 단어 임베딩을 만드는 다른 방법을 설명합니다.
정적 임베딩과 문맥 임베딩 비교
위 동영상에서 설명한 것과 같은 단어 임베딩의 한 가지 제한사항은 정적이라는 것입니다. 각 단어는 벡터 공간에서 단일 점으로 표현되지만, 문장에서 사용되는 방식에 따라 의미가 다를 수 있습니다. 마지막 연습에서는 색이나 과일의 한 종류를 나타낼 수 있는 오렌지라는 단어의 의미론적 유사성을 매핑하는 것이 얼마나 어렵다는 것을 발견했습니다.
이러한 단점을 해결하기 위해 문맥 임베딩이 개발되었습니다. 문맥 임베딩을 사용하면 단어가 사용되는 맥락에 관한 정보를 각각 통합하여 동일한 단어를 여러 번 표현할 수 있습니다. 문맥 임베딩에서 오렌지라는 단어는 두 가지 별도의 표현을 가질 수 있습니다. 하나는 '색상' 용어를 포착하는 표현(예: '제일 좋아하는 스웨터에 오렌지색 줄무늬가 있어요'와 같은 문장)이고, 다른 하나는 '과일' 용어를 포착하는 표현(예: '오렌지는 완전히 익기 전에 나무에서 따왔습니다.'와 같은 문장)입니다.