이 섹션에서는 임베딩을 가져오는 일반적인 두 가지 기법을 중점적으로 설명합니다.
- 차원 축소
- 더 큰 신경망 모델에서 임베딩 추출
차원 축소 기법
인코더와 디코더의 중요 값을 포착하기 위한 저차원 공간에서 고차원 공간의 구조를 나타냅니다. 이론적으로는 이러한 기법 중 어느 것이든 기계에 대한 임베딩을 만드는 데 학습 시스템입니다.
예를 들어 주성분 분석 (PCA)은 단어 임베딩을 만드는 데 사용되었습니다. 다음과 같은 인스턴스 집합이 주어지면 Bag of Words 벡터로, PCA에서는 하나의 카테고리로 축소할 수 있고 상관관계가 높은 측정기준을 찾을 수 있습니다. 측정기준을 선택할 수 있습니다.
신경망의 일부로 임베딩 학습
임베딩을 생성하는 동안 신경망 살펴봤습니다 이 접근 방식을 사용하면 임베딩을 자신의 필요에 맞게 임베딩을 별도로 학습시키는 것보다 오래 걸릴 수 있습니다.
일반적으로 신경망에서 크기가 d인 히든 레이어를 만들 수 있습니다. '네트워크'란 임베딩 레이어, 여기서 d 히든 레이어의 노드 수와 임베딩 차원의 크기를 나타냅니다. 이 임베딩 레이어는 히든 레이어에 있습니다 다른 심층신경망에서처럼 학습 도중 노드의 손실을 최소화하기 위해 신경망의 출력 레이어입니다.
음식 추천 예시로 돌아가서, 우리의 목표는 사용자가 현재 좋아하는 음식을 바탕으로 사용자가 좋아할 만한 새로운 식사 예측 있습니다. 첫째, 사용자들의 행동 패턴에 대한 추가 데이터를 인기 Top 5 식품. 그런 다음 이 작업을 지도 학습 문제로 모델링할 수 있습니다. 우리는 이 상위 5개 음식 중 4개를 데이터 특성으로 만들고, 모델이 예측하려는 양성 라벨로 5번째 음식을 넣으면서 모델의 예측을 수행하며 소프트맥스를 손실이 발생할 수 있습니다.
학습 중에 신경망 모델은 임베딩 레이어 역할을 하는 첫 번째 히든 레이어의 노드를 생성합니다. 예를 들어 모델의 첫 번째 히든 레이어에 노드가 3개 포함된 경우 식품과 가장 관련성이 높은 세 가지 측면이 샌드위치, 디저트, 액체로 표현됩니다. 그림 12는 인코더-디코더 아키텍처에 대해 '핫도그'의 입력 값 3차원 벡터로 변환됩니다.
![그림 12. 핫도그의 원-핫 인코딩을 위한 신경망입니다. 첫 번째 레이어는
노드 5개가 있는 입력 레이어, 각 노드에는 음식 아이콘이 표시되어 있음
(보르시, 핫도그, 샐러드, ..., 샤와르마)를 나타냅니다. 이러한 노드에는
각각 [0, 1, 0, ..., 0]의 값으로, 원-핫
인코딩해야 합니다. 3노드 임베딩에 연결된 입력 레이어
이 레이어의 노드로, 이 레이어의 노드의 값이 각각 2.98, -0.75, 0입니다. 이
5노드 히든 레이어에 연결되면
5노드 출력 레이어에 연결됩니다](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/one_hot_hot_dog_embedding.png?authuser=8&hl=ko)
hot dog
의 원-핫 인코딩
심층신경망에 입력으로 제공됩니다. 임베딩 레이어는
원-핫 인코딩을 3차원 임베딩 벡터로
[2.98, -0.75, 0]
학습 과정에서 임베딩 레이어의 가중치가 임베딩 벡터가 두 개의 유사한 예시가 있습니다. 임베딩 레이어의 개별 차원 (노드의 각 노드가 임베딩 레이어가 표현하는 것)은 '디저트'만큼 이해할 수 있는 경우는 거의 없습니다. 또는 '유동성'이라 할 수 있습니다. 때로는 '의미' 유추할 수 있지만 항상 그렇지는 않습니다 확인할 수 있습니다
임베딩은 일반적으로 작업에 따라 다르고 서로 다릅니다. 태스크가 다를 때 예를 들어 채식주의자가 생성한 임베딩과 비채식주의자 분류 모델은 육류 콘텐츠라는 두 가지 차원을 가질 수 있습니다. 유제품 콘텐츠와 같은 콘텐츠를 만들 수 있습니다 한편 조식과 미국 요리의 저녁 식사 분류 기준은 다음과 같이 약간 다를 수 있습니다. 칼로리 함량, 곡물 함량 및 육류 함량입니다. "시리얼" 및 '달걀 앤 베이컨 샌드위치' 모델의 임베딩 공간에서 서로 가까이 있을 수 있습니다. 임베딩 공간에서는 멀리 떨어져 있지만 채식주의자 vs. 비채식주의자 분류기
단어 임베딩 학습
이전 섹션에서 의미론적 관계를 시각화하고 word2vec 임베딩 공간을 제공합니다.
Word2vec는 단어 임베딩 학습에 사용되는 여러 알고리즘 중 하나입니다. 분포 가설에 따라 의미론적으로 유사한 데이터를 매핑합니다. 기하학적으로 가까운 임베딩 벡터로 변환합니다. 분포 가설 같은 인접 단어가 포함된 단어는 대개 의미론적으로 유사합니다. 둘 다 'dog' 'cat'을 검색합니다. 주변에서 자주 나타남 '수의사'라는 단어를 이 사실은 의미론적 유사성을 반영합니다. 1957년 언어학자 John Firth가 "우리 회사 유지되고 있습니다."
다음 동영상은 단어 임베딩을 만드는 다른 방법을 신경망 학습 프로세스의 일부로 더 간단한 모델을 사용합니다.
정적 임베딩과 문맥 임베딩
위 동영상에서 설명한 것과 같은 단어 임베딩의 한 가지 제한사항은 정적임을 나타냅니다. 각 단어는 벡터의 단일 점으로 표현됨 '그렇지 않습니까?'라는 뜻인데, 이 것은 방법에 따라 다양한 의미를 가질 수 있습니다. 그것은 문장에서 사용됩니다. 마지막 연습에서는 단어의 의미적 유사성을 매핑하기가 어렵다는 것을 주황색은 색깔이나 과일의 한 종류를 나타낼 수 있습니다.
문맥 임베딩은 이러한 단점을 해결하기 위해 개발되었습니다. 컨텍스트 임베딩을 사용하면 동일한 단어의 표본으로, 각각 해당 단어에 대한 정보를 문맥을 파악할 수 있습니다. 문맥 임베딩에서 단어는 주황색은 두 개의 개별적인 표현을 가질 수 있습니다. 하나는 '색상'을 캡처하는 것입니다. "줄무늬" 다른 하나는 '과일'을 단어의 사용은 "오렌지가 완전히 익기 전에 나무에서 뽑혔다"고 말했다.