The main question is how to address an imbalance in representation of feature "sets" when calculating similarity. I'll motivate with an example scenario:
Suppose we have objects described by a binary feature vector. That binary feature vector contains ten bits:
- Eight bits to represent "color" categories, e.g.
{red, orange, yellow, green, blue, indigo, violet, black}
. - Two bits to represent "texture" categories: e.g.
{checker, stripe}
Note they are binary-encoded, and not one-hot-encoded. So each "bit" is treated independently. For example, an object can be characterized as both "red" and "yellow", or "checker and stripe".
Say we'd like to calculate nearest neighbors to one object, using the feature vector. There are various ways to do this, but let's consider Jaccard Index.
The Jaccard Index is computed with the Intersection-Over-Union. My concern is that we have a ten-bit feature vector, of which 8 out of the 10 bits represents a single feature. So even though we have two "features" (color and texture), the "color" feature dominates 80% (8/10) of the representation.
Is there a means of computing similarity or nearest-neighbors that manages the inbalance in representation of features, or incorporates this "taxonomy" naturally?