First and foremost, I would like to thank my advisor and thesis chair, Andrew McCallum. It would not be an exaggeration to say that he has been best advisor I could hope for. His infectious optimism seemingly in the face of all evidence to the contrary has helped me through numerous rough patches, whether it was during the moments of self-doubt that every graduate student faces, or when I was ready to reject ideas based on early negative results. To me, Andrew is a role model for many different aspects of being an academician, including how to be an effective researcher, how to be a skillful hacker and a software engineer, understanding the importance of methods that are both practical and principled1, how to still be an involved family man...