Discover the Unseen: Tailored Recommendation of Unwatched Content
ScyllaDB
771 views
21 slides
Jun 20, 2024
Slide 1 of 21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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...
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 new content, improving the overall user experience.
JioCinema is an Indian over-the-top media streaming service owned by Viacom18.
Size: 46.63 MB
Language: en
Added: Jun 20, 2024
Slides: 21 pages
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!