데이터과학 삼학년

데이터 임베딩 최적의 차원 결정 (How to determine the embedding size?) 본문

카테고리 없음

데이터 임베딩 최적의 차원 결정 (How to determine the embedding size?)

Dan-k 2024. 3. 4. 12:00
반응형

데이터 임베딩의 최적 차원 결정

머신러닝에서 범주형 변수를 다룰 때 적절한 임베딩 차원을 선택하는 것은 매우 중요

'min(50, num_categories/2)'이라는 흔한 규칙이 있지만, 100개까지의 범주에 대해서만 적용되며,

100개를 넘어가면 어떻게 해야 할까요? 이제 최적 임베딩 차원을 결정하기 위한 데이터 기반 방식을 살펴보겠다!

 

 

1000개 이하의 범주에 대한 제안

1000개 이하의 num_categories에 대해 제안되는 공식은

num_embeddings = min(500, num_categories/2)

- 이 제안은 특정 차원에서 무작위 분포된 N 벡터의 직교성을 확인하기 위한 것

- 벡터를 정규화하고 점곱을 계산하여 평균과 표준 편차를 관찰 가능

- 아래 그래프에서 볼 수 있듯이, 약 1000차원에서 두 값의 변화가 상당히 완만해짐

x축은 num_categories이고, y축은 최대 내적의 평균(파란색) 및 std(빨간색)

 

 

1000개 이상의 범주에 대한 전환

1000개 이상의 num_categories에 대해서는 다음 공식을 사용하여 부드러운 전환을 제안합니다:

num_embeddings = 75.6496 * ln(num_categories + 176.623) - 41.4457

이 공식은 특정 설정에서 관찰된 평균과 표준 편차를 GPT2의 경우와 같이 일치시키기 위해 파생

x축은 num_categories이고 y축은 GPT2 설정과 동일한 평균+표준 결합을 달성하기 위해 찾은 num_embeddings

 

 

결론적으로 최적의 임베딩 차원을 결정하는 것은 범주의 수와 그들의 분포를 고려하는 것

제안된 공식은 데이터 기반 통찰력에 기초하고 있으며, 특정 데이터셋에서의 실험 및 유효성 검사가 모델에 가장 효과적인 임베딩 차원을 찾는 데 중요!!

 

참조

https://ai.stackexchange.com/questions/28564/how-to-determine-the-embedding-size

 

How to determine the embedding size?

When we are training a neural network, we are going to determine the embedding size to convert the categorical (in NLP, for instance) or continuous (in computer vision or voice) information to hidden

ai.stackexchange.com

 

728x90
반응형
LIST
Comments