Traditionally, principal components analysis (PCA) is used for dimensionality reduction (in a mathematical sense). However, if you care about latent constructs (factors) that your features (indicators or items, in factor analysis and latent variable modeling terminology) represent and measure, then exploratory factor analysis (EFA) and/or confirmatory factor analysis (CFA) are appropriate. For more on this, check my answer here on Cross Validated site: https://stats.stackexchange.com/a/96160/31372.
Modeling a phenomena in terms of latent constructs (factors) has an additional benefit, since this approach allows further reduction in dimensionality and modeling at a higher level of abstraction (but you still will be able to get information on features/indicators, if this is needed).
In regard to the biased samples, as you called them, I think that you're talking about sparse data. If that is the case, read my answer here on Data Science site: https://datascience.stackexchange.com/a/918/2452.
UPDATE: Several people expressed their concerns about my suggestion of using PCA for a data set with such a very large (10^9) number of features. Despite not having direct experience of working with such types of data sets, I stand by my answer and provide a small subset of existing tools and research ("tip of the iceberg"), supporting my suggestion (in particular, focusing on applying using PCA in the cloud, including clusters, which should address the volume issues, as well as parallelizing PCA, including using GPUs, which should address the timing issues):