  Given a fixed matrix, the problem of column subset selection requests a
column submatrix that has favorable spectral properties. Most research from the
algorithms and numerical linear algebra communities focuses on a variant called
rank-revealing {\sf QR}, which seeks a well-conditioned collection of columns
that spans the (numerical) range of the matrix. The functional analysis
literature contains another strand of work on column selection whose
algorithmic implications have not been explored. In particular, a celebrated
result of Bourgain and Tzafriri demonstrates that each matrix with normalized
columns contains a large column submatrix that is exceptionally well
conditioned. Unfortunately, standard proofs of this result cannot be regarded
as algorithmic.
  This paper presents a randomized, polynomial-time algorithm that produces the
submatrix promised by Bourgain and Tzafriri. The method involves random
sampling of columns, followed by a matrix factorization that exposes the
well-conditioned subset of columns. This factorization, which is due to
Grothendieck, is regarded as a central tool in modern functional analysis. The
primary novelty in this work is an algorithm, based on eigenvalue minimization,
for constructing the Grothendieck factorization. These ideas also result in a
novel approximation algorithm for the $(\infty, 1)$ norm of a matrix, which is
generally {\sf NP}-hard to compute exactly. As an added bonus, this work
reveals a surprising connection between matrix factorization and the famous
{\sc maxcut} semidefinite program.
