My research focus is on modeling and solving large-scale optimization problems and on finding and exploiting structure in high dimensional data, with applications in marketing, finance, demographic modeling, and medical informatics.
My recent work on generalized low rank models (GLRMs) extends principal components analysis (PCA) to embed tabular data sets with heterogeneous (numerical, Boolean, categorical, and ordinal) types into a low dimensional space, providing a coherent framework for compressing, denoising, and imputing missing entries. My other favorite problems to ponder include how to parallelize optimization algorithms for general cone programs, ways to use graph partitioning to improve the convergence of distributed optimization algorithms, and how to decide which entry to query next in a matrix-completion setting.
I've developed of a number of open source tools for modeling and solving convex optimization problems, including Convex.jl, one of the top ten tools in the Julia language for technical computing, and am a member of the JuliaOpt organization, which curates high quality optimization software.
News and Links
- July 2015: Here are the slides and demo for the introduction to Convex.jl I gave at ISMP2015. It includes a sneak preview of MultiConvex.jl, a new modeling language for disciplined multiconvex programming!
- June 2015: I've graduated from Stanford and have started my postdoc at Caltech. Thesis available here.
- March 2015: I passed my PhD oral examination. Thanks to everyone who showed up to support me! Slides for my talk can be found here.
- January 2015: I'm representing PhD students on Stanford's School of Engineering Future Committee. We're working to develop a road-map for the future of engineering at Stanford over the next 20 years. Where do you think engineering should be heading?
- December 2014: SigmoidalProgramming is a new Julia package I've developed for maximizing a sum of sigmoids. For many problems, the code runs more than 6000 times faster than my original SIGOPT solver in Python. This speedup is largely due to the tight integration between the Julia language and a variety of LP solvers written in C. (Thanks, JuliaOpt!)
- November 2014: Thanks to the HPTCDL organizers for a great conference!
- September 2014: Generalized Low Rank Models extend the idea of PCA to handle arbitrary data sets consisting of numerical, Boolean, categorical, ordinal, and other data types. Our paper on GLRMs presents approximately half of machine learning as facets of a single class of models, and gives unified algorithms and interpretations. Comments welcome! You can also make your own models and try it out.
- June 2014: We've just released Convex.jl, a Julia module for modeling and solving convex optimization problems. For more information, see the documentation or the paper, or watch my talk at JuliaCon.