We present two modifications to the popular k-means clustering algorithm to address the extreme requirements for latency, scalability, and sparsity encountered in user-facing web applications. First, we propose the use of mini-batch optimization for k-means clustering. This reduces computation cost by orders of magnitude compared to the classic batch algorithm while yielding significantly better solutions than online stochastic gradient descent. Second, we achieve sparsity with projected gradient descent, and give a fast ǫaccurate projection onto the L1-ball. Source code is freely available: http://code.google.com/p/sofia-ml Categories and Subject Descriptors I.5.3 [Computing Methodologies]: Pattern Recognition— Clustering General Terms Algorithms, Performance, Experimentation Keywords unsupervised clustering, scalability, sparse solutions
D. Sculley