Inspiration
The ZZZ Movie Recommendation System aims to achieve a straightforward goal: helping users find the top 5 movies to watch based on the semantic meaning of their queries, rather than just keyword matching. Additionally, we aim to integrate knowledge from the Master of Data Science program with the latest web development techniques.
What it does
The ZZZ Movie Recommender utilizes TensorFlow's Universal Sentence Encoder to match semantic vectors with those embedded in movie metadata. This approach enables us to generate finely tuned, semantically optimized movie search results.
How we built it
We integrated the following technologies into this project:
- PostgreSQL and PG Vector: Used for vector-based searches, crucial for matching movies to user queries based on similarity in content or attributes.
- TensorFlow: Employed to encode movies into vectors, allowing the system to understand and compare movie content at a granular level.
- Next.js: This full-stack solution is easy to deploy and facilitates building a proof-of-concept app from scratch within a limited time frame.
Challenges we ran into
Initially, we explored using Oracle Cloud's integrated services, guided by their live lab tutorials. However, we encountered significant hurdles due to the services' tightly coupled nature and got stuck when creating a computing instance in an invalid region. Additionally, we realized the built-in data visualization dashboard might not be scalable or customizable for our needs.
These challenges prompted us to swiftly pivot our technology stack, opting for the more familiar combination of React and Node.js.
For the ML part, we chose TensorFlow due to its capability to create vector embeddings for text values and scalability for further integration with customized microservices and models. Integrating TensorFlow—an ML framework with which we had no prior experience—presented a steep learning curve.
What we learned
Integrating TensorFlow's Universal Sentence Encoder into our recommendation engine marked a significant advancement in enhancing the relevance of our content suggestions. This methodology leverages high-dimensional vector spaces to encapsulate the essence of textual content, enabling a more refined and context-sensitive recommendation mechanism.
Throughout the development process, we gained valuable insights into using TensorFlow for recommendation systems and practical experience with Next.js and Node.js development.
What's next for ZZZ - Movie Recommender
- Implementing personalized recommendation features utilizing users' search histories for a more tailored experience.
- Add a mocking user feature with a new interface.
- Add recommendation features based on mocked user visits and ratings.
- Deploy the web application to a public domain for broader accessibility.
Note:
There are 2 repositories in total:
- Data preprocessing and Database population: https://github.com/ZZZ-RecSys/ZZZ-MovieRecSystem
- Semantic Vector Based-Movie Search Client: https://github.com/ZZZ-RecSys/ZZZ-MovieSearch-Client-PlusRec
Built With
- next.js
- react
- tensorflow
Log in or sign up for Devpost to join the conversation.