  Caching networks can reduce the routing costs of accessing contents by
caching contents closer to users. However, cache nodes may belong to different
entities and behave selfishly to maximize their own benefits, which often lead
to performance degradation for the overall network. While there has been
extensive literature on allocating contents to caches to maximize the social
welfare, the analysis of selfish caching behaviors remains largely unexplored.
In this paper, we model the selfish behaviors of cache nodes as selfish caching
games on arbitrary directed graphs with heterogeneous content popularity. We
study the existence of a pure strategy Nash equilibrium (PSNE) in selfish
caching games, and analyze its efficiency in terms of social welfare. We show
that a PSNE does not always exist in arbitrary-topology caching networks.
However, if the network does not have a mixed request loop, i.e., a directed
loop in which each edge is traversed by at least one content request, we show
that a PSNE always exists and can be found in polynomial time. Furthermore, we
can avoid mixed request loops by properly choosing request forwarding paths. We
then show that the efficiency of Nash equilibria, captured by the price of
anarchy (PoA), can be arbitrarily poor if we allow arbitrary content request
patterns, and adding extra cache nodes can make the PoA worse, i.e., cache
paradox happens. However, when cache nodes have homogeneous request patterns,
we show that the PoA is bounded even allowing arbitrary topologies. We further
analyze the selfish caching games for cache nodes with limited computational
capabilities, and show that an approximate PSNE exists with bounded PoA in
certain cases of interest. Simulation results show that increasing the cache
capacity in the network improves the efficiency of Nash equilibria, while
adding extra cache nodes can degrade the efficiency of Nash equilibria.
