원-핫 인코딩은 기계 학습에서 범주형 변수를 이진 벡터로 표현하는 방법이다. 이 표현에서 각 고유 범주는 범주 수와 동일한 길이의 고유 벡터에 할당되며, 해당 범주에 해당하는 위치에 단 하나의 1이 있고 나머지 모든 요소는 0이다. 예를 들어, 특성이 빨강, 초록, 파랑의 세 범주를 가진다면 각각 [1,0,0], [0,1,0], [0,0,1]로 인코딩될 수 있다. 이 변환은 Machine learning 및 Deep learning에서 사용되는 것과 같은 수치 데이터를 처리하는 알고리즘이 범주 간의 순서 관계를 암시하지 않고 범주형 입력을 처리할 수 있게 한다.
이 기법은 자연어 처리, 컴퓨터 비전, 표 형식 데이터 분석을 포함한 다양한 응용 분야의 데이터 전처리 파이프라인에서 널리 사용된다. 특히 선형 회귀, 로지스틱 회귀, 서포트 벡터 머신과 같은 전통적인 기계 학습 모델에서 흔히 사용되며, 이러한 모델은 수치 입력 특성을 요구한다. 반대로 결정 트리나 랜덤 포레스트와 같은 트리 기반 모델은 종종 범주형 변수를 직접 처리할 수 있지만, 일관성과 다른 모델 유형과의 호환성을 위해 원-핫 인코딩이 여전히 자주 적용된다.
역사적 발전
범주형 데이터를 이진 지시 변수로 표현하는 개념은 20세기 중반으로 거슬러 올라가는 통계학 및 실험 설계에 뿌리를 두고 있다. 통계학자들은 회귀 분석에서 범주형 예측 변수를 인코딩하기 위해 더미 변수를 사용했으며, 이는 "원-핫 인코딩"이라는 용어보다 앞선 관행이다. "원-핫"이라는 특정 이름은 1990년대와 2000년대에 디지털 회로 설계 커뮤니티에서 두각을 나타냈으며, 여기서는 정확히 하나의 비트가 항상 높은(1) 상태인 유한 상태 머신의 상태 인코딩 방식을 지칭했다. 이 용어는 나중에 기계 학습 커뮤니티에서 채택되었으며, 특히 2010년대에 Neural network 연구가 확장되면서 널리 사용되었다.
Artificial intelligence의 맥락에서 원-핫 인코딩은 범주형 데이터를 신경망에 공급하기 위한 표준 전처리 단계가 되었다. 초기 응용에는 언어 모델용 단어 인코딩이 포함되었으며, 여기서 어휘의 각 단어는 원-핫 벡터로 표현되었다. 이 접근 방식은 2013년 Google 연구자들이 개발한 word2vec과 같은 기초 모델에서 사용되었으며, 이 모델은 원-핫 입력 벡터에서 밀집 임베딩을 학습했다. 이 기법은 현대 Large language model 아키텍처에서도 여전히 관련성이 있지만, 이러한 모델은 효율성을 위해 일반적으로 원시 원-핫 벡터 대신 학습된 임베딩을 사용한다.
기계 학습에서의 응용
원-핫 인코딩은 다양한 분야에 적용된다. 자연어 처리에서는 임베딩 레이어가 더 간결한 표현을 학습하기 전에 단어나 문자를 표현하는 기준선 역할을 한다. 컴퓨터 비전에서는 이미지 인식 데이터 세트에서 각 이미지가 여러 범주 중 하나에 속하는 분류 작업을 위해 클래스 레이블을 인코딩하는 데 사용된다. 예를 들어, ImageNet 데이터 세트에서 클래스 레이블은 합성곱 신경망 훈련을 위해 종종 원-핫 인코딩된다.
표 형식 데이터 분석에서 원-핫 인코딩은 국가, 제품 유형, 고객 세그먼트와 같은 범주형 특성을 처리하는 표준 방법이다. pandas 및 scikit-learn과 같은 데이터 과학 라이브러리는 이 변환을 위한 내장 함수를 제공하여 실무자가 쉽게 사용할 수 있게 한다. 이 기법은 또한 사용자 및 항목 범주형 ID가 협업 필터링 모델에 전달되기 전에 인코딩되는 추천 시스템에서도 사용된다.
장점과 한계
원-핫 인코딩의 주요 장점은 단순성과 순서 가정이 없다는 점이다. 정수 값(예: 0, 1, 2)을 할당하고 잘못된 순서 관계를 암시할 수 있는 레이블 인코딩과 달리, 원-핫 인코딩은 모든 범주를 동일한 거리로 취급한다. 이 속성은 k-최근접 이웃이나 커널 함수를 사용하는 서포트 벡터 머신과 같은 거리 측정에 의존하는 모델에 중요하다.
그러나 원-핫 인코딩에는 주목할 만한 한계가 있다. 특히 범주형 변수에 고유 값이 많을 때 고차원적이고 희소한 특성 공간을 초래할 수 있다. 예를 들어, 100,000개의 단어 어휘를 인코딩하면 100,000차원 벡터가 생성되며, 이는 계산 비용이 많이 들고 메모리 집약적이다. 이 문제는 차원 축소 기법이나 Transformer (architecture) 모델에서 볼 수 있는 학습된 임베딩을 사용하여 종종 해결된다. 또한 원-핫 인코딩은 유사성이나 계층 구조와 같은 범주 간의 관계를 포착하지 못하며, 이는 특정 응용에서 단점이 될 수 있다.
임베딩과의 관계
현대 딥 러닝에서 원-핫 인코딩은 임베딩 레이어 전의 중간 단계로 자주 사용된다. 임베딩 레이어는 본질적으로 원-핫 벡터를 밀집하고 저차원 벡터로 매핑하는 선형 변환이다. 이 접근 방식은 모델이 훈련 중에 범주의 의미 있는 표현을 학습할 수 있게 한다. 예를 들어, 자연어 처리를 위한 Neural network 아키텍처에서 입력 토큰은 먼저 원-핫 벡터로 변환된 다음 역전파를 통해 업데이트되는 임베딩 행렬을 통과한다.
이 관계는 많은 현대 Large language model 시스템의 기반이 되는 Transformer (architecture) 모델에서 특히 두드러진다. 이러한 모델은 효율성 이유로 원-핫 벡터를 직접 사용하지 않지만, 개념은 여전히 기초적이다. Stanford AI Lab 및 MIT CSAIL과 같은 기관의 연구자들은 원-핫 인코딩의 이론적 속성과 표현 학습에서의 역할을 연구하여 인공 지능 시스템에서 범주형 정보가 처리되는 방식에 대한 더 깊은 이해에 기여했다.
실용적 고려 사항
원-핫 인코딩을 구현할 때 실무자는 훈련 중에는 없었지만 테스트 데이터에 나타날 수 있는 보이지 않는 범주를 처리해야 한다. 일반적인 전략에는 "알 수 없음" 범주를 추가하거나 대체 인코딩을 사용하는 것이 포함된다. 또 다른 고려 사항은 차원성과 표현력을 절충하는 이진 인코딩이나 순서 인코딩과 같은 다른 방식과 원-핫 인코딩 사이의 선택이다. 고카디널리티 시나리오에서는 특성 해싱이나 대상 인코딩과 같은 기법이 선호될 수 있다.
더 정교한 임베딩 방법의 부상에도 불구하고, 원-핫 인코딩은 기계 학습 도구 키트에서 기본적인 도구로 남아 있다. 단순성, 해석 가능성, 다양한 알고리즘과의 호환성은 Amazon Web Services 클라우드 기반 ML 파이프라인에서 Google Cloud 데이터 처리 서비스에 이르기까지 학술 연구와 산업 응용 모두에서 계속 사용되도록 보장한다.