  Recommendation system is able to shape user demands, which can be used for
boosting caching gain. In this paper, we jointly optimize content caching and
recommendation at base stations to maximize the caching gain meanwhile not
compromising the user preference. We first propose a model to capture the
impact of recommendation on user demands, which is controlled by a
user-specific psychological threshold. We then formulate a joint caching and
recommendation problem maximizing the successful offloading probability, which
is a mixed integer programming problem. We develop a hierarchical iterative
algorithm to solve the problem when the threshold is known. Since the user
threshold is unknown in practice, we proceed to propose an $\varepsilon$-greedy
algorithm to find the solution by learning the threshold via interactions with
users. Simulation results show that the proposed algorithms improve the
successful offloading probability compared with prior works with/without
recommendation. The $\varepsilon$-greedy algorithm learns the user threshold
quickly, and achieves more than $1-\varepsilon$ of the performance obtained by
the algorithm with known threshold.
