Book Review: "Algorithms to Live By" by Brian Christian & Tom Griffiths

I've recently read the book Algorithms to Live By by Brian Christian & Tom Griffiths. This book shows how many problems & heuristics in computer science can be applied to explain or improve human decision-making. Each chapter focuses on a certain class of problems or issues. Such classes include the optimal stopping problem, the multi-armed bandit problem, searching & sorting, task scheduling, Bayesian inference, overfitting data, constraint relaxation, random stimulus, communication protocols, and social interaction. Additionally, most chapters try to show how results from computer science can either improve or justify certain human behaviors.

This book was frustrating for me to read. If it had fully met my expectation that it would show, in a unified & consistent way, how these computer science problems apply to human behavior and connect to each other, I would be singing its praises. If it had completely failed, I'd be happy to rhetorically trash this book. Instead, I found that each chapter would be a great vignette on its own, and each chapter showed the great potential of what the book could have been, but the book failed to live up to that potential. First, there was very little connection among the chapters, and any acknowledgment that the authors did make of such connections was almost always superficial instead of deeply insightful. For example, the respective chapters about the optimal stopping problem, caches, and overfitting each could have been so much better with greater discussion about the connection to social pressure & game theory, yet those topics were discussed only in the last chapter, which I think was a mistake. Second, only in the concluding section did the authors make clear that they wanted to either improve or justify human behavior with each class of problems or issues. This because clear over the course of reading the book, yet there was very little guidance in each chapter about whether improvement versus justification would be the goal. Perhaps the worst offender was the chapter about constraint relaxation, as there was little connection to human behavior in a way that would be obvious to lay readers. These problems meant that reading the last numbered chapter (about game theory) and the conclusion felt simultaneously wonderful for finally seeing these concepts discussed clearly and maddening for knowing that the book could have been so much better if these ideas had been more consistently executed through the book.

There are two other minor criticisms I have of the book too. First, the chapter about overfitting seems to use the word "overfitting" to mean too many different things, which is ironic and undermines any clarity that the discussion could have provided. Second, the chapter about randomized algorithms attempts to make a tenuous connection between randomized algorithms used in computer science and the way that random mental stimuli can produce very creative responses in people, but it never makes clear whether the latter result is true at an individual level or only holds statistically for large populations.

Overall, I think the author's goals were laudable and that each chapter is interesting to read in isolation. However, other readers may be disappointed, as I was, in the way that the authors fail to synthesize many of the ideas across chapters in a smooth & unified manner. Thus, I would advise that readers who may be interested in these topics go into this book with lower expectations.