We consider an online prediction problem in the context of network caching. Assume that multiple users are connected to several caches via a bipartite network. At any time slot, each user may request an arbitrary file chosen from a large catalog. A user's request at a slot is met if the requested file is cached in at least one of the caches connected to the user. Our objective is to predict, prefetch, and optimally distribute the files on the caches at each slot to maximize the total number of cache hits. The problem is non-trivial due to the non-convex and non-smooth nature of the objective function. In this paper, we propose $\texttt{LeadCache}$ - an efficient online caching policy based on the Follow-the-Perturbed-Leader paradigm. We show that $\texttt{LeadCache}$ is regret-optimal up to a factor of $\tilde{O}(n^{3/8}),$ where $n$ is the number of users. We design two efficient implementations of the $\texttt{LeadCache}$ policy, one based on Pipage rounding and the other based on Madow's sampling, each of which makes precisely one call to an LP-solver per iteration. Furthermore, with a Strong-Law-type assumption, we show that the total number of file fetches under $\texttt{LeadCache}$ remains almost surely finite over an infinite horizon. Finally, we derive an approximately tight regret lower bound using results from graph coloring. We conclude that the learning-based $\texttt{LeadCache}$ policy decisively outperforms the state-of-the-art caching policies both theoretically and empirically.
翻译:我们考虑网络缓存背景下的在线预测问题。 假设多个用户通过双边网络连接到多个缓存。 在任何时间档中, 每个用户都可能要求从大型目录中选择任意文件。 如果请求的文件至少以与用户连接的缓存中的一个缓存中存储, 则满足了用户在时间槽中的请求。 我们的目标是预测、 预发并最佳地分配每个槽的缓存中的文件, 以最大限度地增加缓存点击的总数。 问题不是三进制的, 因为目标函数的非convex 和非mooth 性质。 在此文件中, 我们提议 $\ textt{ leadCache} - 基于“ 跟踪- Perturbed- Leader ” 模式的高效在线缓存政策。 我们显示 $ texttttt{ LeadC} 的遗憾- 最佳分配到一个基于 $\\\ cloaddal_ tal deal deal exlex, 我们设计了“ legal- deal- deal” max a deal deal deal deal deal deal deal deal) 和“ max” max a max smax max max max max max, 我们一个基于一个基于一个“ 和“ ” 直立法, 我们算, 我们xxxxxxxxxxxxxxxxxxxxxx 和另一个算, 我们算出一个快速算出“ 和另一个算法, 我们算算法, 我们算出一个“ 。