Entity Embeddings of Categorical Variables
Cheng Guo, Felix Berkhahn
TL;DR
The paper tackles learning representations for high-cardinality categorical features in structured data. It introduces entity embeddings—vectors learned as part of standard supervised training—as an alternative to one-hot encoding. The embeddings improve neural networks and other models, enhance generalization in sparse data scenarios, and enable visualization and clustering of categorical variables. Empirical results on the Rossmann Kaggle competition accompany a discussion of the embeddings' relation to finite metric spaces and their practical impact for structured-data modeling.
Abstract
We map categorical variables in a function approximation problem into Euclidean spaces, which are the entity embeddings of the categorical variables. The mapping is learned by a neural network during the standard supervised training process. Entity embedding not only reduces memory usage and speeds up neural networks compared with one-hot encoding, but more importantly by mapping similar values close to each other in the embedding space it reveals the intrinsic properties of the categorical variables. We applied it successfully in a recent Kaggle competition and were able to reach the third position with relative simple features. We further demonstrate in this paper that entity embedding helps the neural network to generalize better when the data is sparse and statistics is unknown. Thus it is especially useful for datasets with lots of high cardinality features, where other methods tend to overfit. We also demonstrate that the embeddings obtained from the trained neural network boost the performance of all tested machine learning methods considerably when used as the input features instead. As entity embedding defines a distance measure for categorical variables it can be used for visualizing categorical data and for data clustering.
