Discover the Unseen: Tailored Recommendation of Unwatched Content

ScyllaDB 771 views 21 slides Jun 20, 2024
Slide 1
Slide 1 of 21
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21

About This Presentation

The session shares how JioCinema approaches ""watch discounting."" This capability ensures that if a user watched a certain amount of a show/movie, the platform no longer recommends that particular content to the user. Flawless operation of this feature promotes the discover of n...


Slide Content

Discover the Unseen: Tailored Recommendation of Unwatched Content Harshit Jain & Charan Kamal

Harshit Jain Software Engineer at JioCinema Works with the Personalization team 5 years of experience building large scale distributed systems Passionate about technology, a dedicated Golang enthusiast, and an avid traveller Your ph o to goes here, smile :)

About JioCinema Recommendations - how do we ensure freshness? Scale and challenges ScyllaDB on steroids with Bloom Filters Agenda

About JioCinema JioCinema is an OTT streaming platform that offers free and subscription-based video on demand and live streaming content. More than 10M daily active unique users. Streams prominent cricket tournaments, notably IPL , widely acknowledged as the most-watched cricket league worldwide. Home to one of the biggest Football leagues in Europe (LaLiga). Offers Video-on-Demand (VOD) content in more than 10 Indian languages.

Unlocking Engagement The Power and Significance of “ Personalization”

Personalization Tailoring content and recommendations based on individual preferences Importance: Keep customers actively engaged with content aligned to their interests Facilitates easy discovery of relevant content Builds loyalty, reducing churn rates for long-term engagement Meets diverse audience needs with personalized language, genre, and format options

Let’s look at some examples

Optimizing Personalization Challenges with Managing Redundancy in Personalization

The Challenge! C ustomer has already watched “House of the Dragon” Recommending "House of the Dragon" in the personalized tray constitutes an inefficient allocation of valuable real estate and resources

Why is this a problem? Wasted Real Estate Customer Disengagement Diminished Satisfaction Engagement Metrics

The Solution:“Watch Discounting” Watch Discounting refers to the practice of removing content that customers have already watched Importance Efficient Real Estate Utilization Improved Content Discovery Enhanced Customer Experience

Watch Discounting in action ! After Watch Discounting “ House of Dragons ”

Navigating Technical Challenges of Watch Discounting

Hurdles in Fueling Watch Discounting Scale : Managing already-watched content for more than 10M daily active customers poses a considerable challenge. Concurrency: Handling user interactions becomes challenging with an average of 20 million of concurrent users during high concurrency events. Latency: Maintaining a smooth user interaction on JioCinema necessitates keeping latency within SLA, regardless of scale and concurrency challenges.

Charan Kamal Software Engineer at JioCinema Works with the Personalisation Team 6 years of experience in developing expansive distributed system at scale Passionate about highly scalable system, loves Go and Java, in free time you can find me either playing fifa or drawing

Bloom filters to the rescue! Bloom filters are space-efficient probabilistic data structures designed for rapid membership lookup in a set. What makes them suitable for our use case ? Trade-off with False Positives Acceptable : Given that it's a recommendation system, tolerating a few false positives is acceptable, as it allows for more efficient memory usage without significant compromises. Reduced Storage Requirements : In our context, the critical aspect is minimizing storage due to the presence of a very large dataset.

Why in-memory or redis Bloom Filters won’t work I n-memory Bloom filters do exhibit relatively lower latency, they come with drawbacks that are not conducive to this particular use case which are: Data Volatility Replicating the data across all the application pods is costly Bloom filters in Redis and ScyllaDB share similar purposes, distinct differences make Redis unsuitable for this specific use case: Cost consideration - Redis charges us on each operation whereas scylla has a fixed cost.

Delving into the realm of Redis Bloom filters While Bloom filters in Redis and ScyllaDB share similar purposes, distinct differences make Redis unsuitable for this specific use case:

Delving into the realm of ScyllaDB Bloom filters Bloom filters in ScyllaDB were ideal for our use case due to the following: Native Integration Multi Region And Distributed High Throughput and Low Latency

Serving Fresh Content!

ScyllaDB tuning Using Mini pods Using High cardinality of partition key Using TTLs to make sure older and irrelevant data gets removed Using LOCAL_QUORUM to read from local data centres only ScyllaDB + Bloom filters for the win!
Tags