Whether online, in a supermarket, or elsewhere, people now assemble consumption bundles from an extremely wide variety of goods. We model this as a discrete choice between bundles, to maximize a random utility depending on the attributes of the goods in the bundle. We do not observe attributes directly, but discern them in revealed preferences. We suggest attributes may be orders-of-magnitude fewer than goods – much reducing the effective consumption space. Under quasi-linear preferences, our model conforms to the intuition that price complements tend to appear together in consumption bundles, while, on the contrary, substitutes tend not to. We estimate consistently, at scale, by using techniques similar to negative-sampling for embedding in machine learning. This involves estimating from a big dataset every purchased good’s latent attributes, jointly with every consumer’s preferences over attributes.