PBS Wisconsin Recommendation Engine

 

Project Overview

As part of a collaborative project with PBS Wisconsin, our team developed a proof-of-concept recommendation engine designed to personalize the viewer experience. The idea was to explore how users could receive content suggestions tailored to their interests and past engagement, while keeping the system lightweight and easy to integrate into the existing PBS Wisconsin website. The final prototype demonstrated how modern recommendation approaches could enhance audience experience without requiring heavy infrastructure.

 

Workflow

The workflow connected several stages into one functioning pipeline. Content metadata and anonymous viewing behavior were preprocessed into structured datasets, which were then used to train a recommendation model. Once trained and hosted as a service, the model could be queried in real time by a backend application. That backend then passed the results to a React frontend for display. I contributed across this entire workflow, helping with dataset preparation, model integration, backend development, and frontend presentation.

 

Machine Learning Component

I worked on transforming written content metadata into usable machine learning features. This involved running natural language processing on program descriptions and extracting meaningful signals—such as recurring terms, names, or topics—that would help the model recognize similarities between shows. I helped integrate these processed features into a managed machine learning service, trained the recommendation model, deployed it as a hosted endpoint, and validated that it could return meaningful suggestions in response to user identifiers.

 

Backend

We built a Python Flask backend that served as the communication bridge between the machine learning model and the user interface. This backend took in a user ID, queried the deployed recommendation endpoint, interpreted the returned program IDs, and looked up the accompanying metadata needed to display the results. I designed the backend to output consistent, structured JSON regardless of the internal workings of the recommendation model, which made the frontend simpler and insulated the UI from changes to the machine learning infrastructure.

 

Frontend

On the frontend, I helped develop the user interface using React and Vite. I built the page that displayed personalized recommendations in a layout consistent with PBS Wisconsin’s existing style. The interface handled real-time results from the backend but also failed gracefully—if the backend was not active, the frontend would simply indicate that no data was available instead of crashing. While the development version required manually changing the active user ID, I designed the system so that in a real deployment the user identity would come from an authenticated session instead.

 

Future Enhancements

 

User Switching: Currently, switching between users is handled manually by modifying userId directly in apiService.js. In a production setting, the API should dynamically receive the userId of the logged-in user to fetch personalized recommendations.

PBS Website Integration: Our recommendation engine is designed to be embedded into the existing PBS Wisconsin website. The current “PBS Wisconsin” header in the engine would ideally be replaced by the actual PBS Wisconsin navigation bar for seamless integration and a consistent user experience.

Styling & Layout: The styling of the recommendation engine is intentionally aligned with the current PBS Wisconsin website. The main content page displays the top four recommended shows for the user, maintaining a consistent look and feel.

Potential Features:

  • Save for Later: Allow users to save shows to a “Watch Later” list.

  • User Login Integration: Connect to a system like PBS Passport to personalize content based on user preferences over time.

Future Directions (given more time/resources):

  • Transcript-Based Recommendations: As suggested by our mentors, using show transcript data could enable richer semantic matching and improve recommendation accuracy.

  • Geo-Based Recommendations: Incorporating Google Analytics location data could allow recommendations based on regional trends, assuming viewers in similar areas tend to watch similar content.

Acknowledgements

This project was completed by Loden CampbellSamarth BorannaShashwat Ghevde, and Yohan Pandya, with generous insights and guidance from our mentors at PBS Wisconsin, Tim SchneiderMark Riechers, and Amber Samdahl, as well as our Instructor, Amber Field.

Scroll to Top