다양한 범주 기능 선택 : 원-핫 인코딩의 대안?
저는 고객에 대한 관계형 데이터를 기반으로 고객의 평생 가치를 예측하는 모델을 구축하고 있습니다. 사용자 테이블에는 예측 가능한 일대 다 하위 테이블이 많이 있습니다. 대폭 단순화 된 하위 기능은 다음과 같이 요약됩니다.
- 과거에 구매 한 항목 카테고리 목록
- 클릭 한 광고의 주요 색상 목록
- 기타 등등
각각의 경우 명백한 특징은 범주 형 변수에서 ~ 0-10 개의 선택 목록으로 구성됩니다. 이러한 기능 중 일부는 ~ 10k의 개별 값이 있으므로 원-핫 인코딩이 매우 넓고 매우 빠릅니다.
곁에 : "많은 범주를 선택하십시오"라고 언급하고있는 이러한 종류의 "태그 목록 기능"에 대한 예술 용어가 있다면 알려주십시오.
질문 : 선택 다수 범주 기능에서 작동하는 조밀 한 인코딩 체계가 있습니까?
답변
알고리즘이 경사 하강 법 최적화를 기반으로하는 경우 이산 요소에 대한 조밀 한 표현 공간 인 임베딩을 사용할 수 있습니다.
임베딩은 pytorch 또는 tensorflow와 같은 대부분의 딥 러닝 프레임 워크에서 지원됩니다.
업데이트 : 여러 이산 값을 원한다는 사실이 임베딩 사용 가능성을 막지는 않습니다. 모든 벡터를 단일 값에 함께 추가 할 수 있습니다. 이를위한 가장 간단한 접근 방식은 목록의 길이를 일정하게 유지하고 (모든 목록의 최대 요소 수 또는 합리적인 최대 값과 같음) 필요하지 않은 위치를 "패딩"항목으로 채우는 것입니다. 요소의 순차적 인 모양을 고려하려는 경우 벡터를 함께 추가하는 대신 포함 된 벡터 위에 컨벌루션 레이어 또는 LSTM을 적용 할 수 있습니다.
카테고리 인코더 라이브러리에서 카테고리 기능을 인코딩하는 방법에는 여러 가지 가 있습니다.
데이터를 감안할 때 더 유망 해 보이는 것은 대상 환경입니다.