  The maximum Nash social welfare (NSW) -- which maximizes the geometric mean
of agents' utilities -- is a fundamental solution concept with remarkable
fairness and efficiency guarantees. The computational aspects of NSW have been
extensively studied for one-sided preferences where a set of agents have
preferences over a set of resources. Our work deviates from this trend and
studies NSW maximization for two-sided preferences, wherein a set of workers
and firms, each having a cardinal valuation function, are matched with each
other. We provide a systematic study of the computational complexity of
maximizing NSW for many-to-one matchings under two-sided preferences. Our main
negative result is that maximizing NSW is NP-hard even in a highly restricted
setting where each firm has capacity 2, all valuations are in the range
{0,1,2}, and each agent positively values at most three other agents. In search
of positive results, we develop approximation algorithms as well as
parameterized algorithms in terms of natural parameters such as the number of
workers, the number of firms, and the firms' capacities. We also provide
algorithms for restricted domains such as symmetric binary valuations and
bounded degree instances.
