User experience is one of the most desired goals for products today. A common belief is that customers appreciate UX more than anything else. Startups and enterprise vendors invest a huge amount of their resources, designing an intuitive UI and workflows to make their user’s life easier. In many cases, companies invest more in UX and UI and less in the technical aspects of the product.
One way to improve the user experience is to improve performance. Users are not familiar with the technical difficulties of networks or processing loads. Therefore, when a user opens a Netflix episode, he expects it to open fast and with high quality. The problem is that the bandwidth and latency might cause the episode to start slowly and with low quality until it buffers enough of the episode to show with high quality. Netflix solves this by predicting which episode you will choose next and they preload parts of it to your browser storage. When eventually you will start the episode it will run initially from storage with high quality and later on will continue online.
This technique can be thought of as a caching problem with limited resources. In the Netflix example, which episode will we cache in the browser storage where the cache is of size 1? The commonly used least recently used (LRU) and least frequently used (LFU) technique of evicting a cache entry won’t necessarily work if the user likes watching episodes based on days of the week instead of serially binging on a specific series at a time. This is a good use case for predictive caching. By analyzing the user habits over time we can try to predict which episode to cache.
Predictive caching can help when the number of cache slots are relatively low, the delivery to the cache slots are slow (like bandwidth limitation) and the impact to the UX is high. Caching can also be expensive in many ways. In the Netflix example, if they get it wrong the user might think he is getting bad service because the episodes start off with lower quality and not immediately and actually taking more bandwidth from the user needlessly. Getting it right is not easy but we strongly recommend trying it out. In today’s competitive markets AI is considered a must and no company can afford to lag behind.