DEAP Cache: Deep Eviction Admission and Prefetching for Cache
  Recent approaches for learning policies to improve caching, target just one
out of the prefetching, admission and eviction processes. In contrast, we
propose an end to end pipeline to learn all three policies using machine
learning. We also take inspiration from the success of pretraining on large
corpora to learn specialized embeddings for the task. We model prefetching as a
sequence prediction task based on past misses. Following previous works
suggesting that frequency and recency are the two orthogonal fundamental
attributes for caching, we use an online reinforcement learning technique to
learn the optimal policy distribution between two orthogonal eviction
strategies based on them. While previous approaches used the past as an
indicator of the future, we instead explicitly model the future frequency and
recency in a multi-task fashion with prefetching, leveraging the abilities of
deep networks to capture futuristic trends and use them for learning eviction
and admission. We also model the distribution of the data in an online fashion
using Kernel Density Estimation in our approach, to deal with the problem of
caching non-stationary data. We present our approach as a "proof of concept" of
learning all three components of cache strategies using machine learning and
leave improving practical deployment for future work.
