Rather than creating 15 additional columns full of sparse binary data, could I:
1) use the first 15 prime numbers as indexes for the 15 categories
2) store data by multiplying the prime numbers of the categories that otherwise would have a value of 1 in one-hot encoding
3) retrieve data by factorizing the value generated by multiplying unique prime numbers
Ex: 1914 would yield the list [2, 3, 11, 29] which would let you know that the user with the 1914 value has property 2, 3, 11, and 29 but nothing else.
I understand this is limited because BIGINTs can only hold the product of the first 15 prime numbers, but would it not still be useful in some situations and save time when searching the database? The entire table would be 14 columns smaller. I guess this is less about machine learning algorithms and more about storing and retrieving data.