Inspiration
Searching for the right product when gifting someone is always a major headache. Remember those Secret Santa moments when you spent hours just searching for the perfect gift? Or the challenge of trying to buy a birthday present for someone with unique tastes? That's exactly what we aim to solve with TailorMade. By collecting detailed user preferences, we match the right products to the right users, making the gifting process seamless and stress-free.
What it does
TailorMade leverages user inputs and behavior to personalize product recommendations, streamlining the search process. This eliminates the need for users to endlessly browse through irrelevant listings, making the hunt for the perfect product quick and effortless. TailorMade also excels in gift purchases. Simply describe the person you're buying for in the relevant fields and watch as the perfect products appear in your For You feed.
This state-of-the-art product recommendation system surpasses current market leaders by collecting a broader range of detailed inputs. While Amazon’s recommender collects basic inputs on occasion, category, and recipient, TailorMade gathers additional details such as trendiness, product descriptions, price preferences, and recipient information. This comprehensive approach allows for a more nuanced understanding of user needs, ensuring highly personalized and relevant product suggestions.
How we built it
There were two main parts to this development: recommender model development and app development.
To acquire the necessary training data for model development, we scraped the web for Amazon product listings, focusing on categories found on TikTok Shop. Using that data, we trained our models. We chose a Hierarchical Search Organisation using model chaining. In total, we have 4 layers:
Location and Time Filter: Ensures relevance by considering temporal and spatial factors. Set as first layer as it effectively reduces the size of product data that goes into the next few layers, reducing computational complexity.
Interest Area Graph Network: Utilizes NLP and advanced graph techniques to map user interests comprehensively.
Similarity Score Layer (Neural Network and LLM): Applies state-of-the-art machine learning models to calculate product similarity. LLM text embedding model is used for text input while the Neural Network model is used for the user input for "trendy/unique".
Price Preference Filter: Statistical filter that tailors recommendations based on user-defined price preferences.
As products pass through each layer, either the irrelevant items are filtered out, or the remaining ones are sorted by relevance. The output is then sent to the For You Feed for the user to see.
For the app development, we used a Flask backend and a React frontend to create a responsive and user-friendly application. The backend, built with Flask, provides various endpoints to handle user queries, fetch product data, and manage interactions with the machine learning model. We integrated MongoDB to store and manage product data efficiently. The data is fetched from MongoDB, processed, and then sent to the machine learning model via the Flask API. The trained recommendation model is imported into the Flask app, where we created functions to chain the model layers together and process the data sequentially. On the frontend, we used React for its component-based architecture, enabling us to build and manage complex user interfaces effectively. The frontend is designed to be responsive, ensuring a seamless experience on both desktop and mobile devices.
Challenges we ran into
The very first hurdle we faced was obtaining a suitable dataset. There were publicly available datasets on consumer behaviour and products, but none of them met the level of detail we wanted. There were also some web scrapers available, but we were once again met with the same problem -- the information scraped was insufficient to meet our requirements for our propsed model. We managed to solve this by building our own web scrapper from scratch, learning how to do so along the way.
Another significant obstacle was integrating the layers of our model. Each layer had a clear and distinct responsibility in processing the data, but we were initially unsure how to combine them meaningfully. We also had to determine the optimal order for the layers to maximize efficiency. After much thought and discussion, we decided to order the layers to reduce search latency based on the computational complexity of each layer. We also ensured that each layer could effectively funnel product listings into the next, maintaining proper data flow throughout the process.
Accomplishments that we're proud of
Building a Custom Web Scraper: We successfully developed our own web scraper from scratch, overcoming initial challenges related to data availability. This allowed us to collect nearly 50,000 detailed data points, ensuring a robust dataset for training our models.
Training Specialized Models for Each Layer: We trained distinct models for each layer of our recommendation system to address specific aspects of the recommendation process. The Location and Time filter, Interest Area Graph Network, Similarity Score layer (Neural Network and LLM), and Price Preference filter each have specialized models/statistical filter, ensuring that products are filtered and ranked with high precision at every stage.
Integrating Multiple Model Layers: We effectively integrated the various layers of our recommendation model, allowing for a seamless flow of data. By ordering the layers to reduce latency based on computational complexity, we optimized the recommendation process and ensured efficient data processing.
Optimizing Performance: Despite the complexity of our models, we achieved significant optimization, reducing latency to under 2 seconds even when running locally on a laptop. This improvement ensures a seamless and efficient user experience, and an even more seamless one when inference functions are deployed on cloud platforms like AWS.
Creating a Responsive Application: We built a fully functional application with a Flask backend and a React frontend. The responsive design ensures a seamless experience across both desktop and mobile devices, making our solution accessible to a wide range of users.
What we learned
One of our main learning points was understanding how web scraping works, as none of us had prior experience in this area. We discovered how to extract data from websites efficiently and ethically. Additionally, we learned to appreciate the complexity involved in creating a successful and appropriate model. This process required multiple layers of processing, including data cleaning, feature selection, model training, validation and recommendations. Each step was crucial to ensure the accuracy and reliability of our final model.
What's next for TailorMade
Integrating with TikTok Shop's Existing Recommendation System TikTok Shop likely employs a blend of collaborative filtering and content-based filtering for its recommendations. By integrating our TailorMade For You feed with TikTok's recommendation system, we can create a synergistic approach that enhances the robustness and accuracy of our recommendations, offering users a seamless and enriched shopping experience.
Further Model Development and Validation with TikTok Data Access to TikTok's vast and real-time datasets presents an opportunity to continuously train and validate our models. By leveraging Graph Networks and Large Language Models (LLMs), we can refine our algorithms to better capture evolving user preferences and behaviors on TikTok Shop. This iterative process ensures that our recommendations remain relevant and effective over time, adapting to shifts in user interests and market trends.
Integrating TikTok Social Media Trends TikTok's unique advantage lies in its rich reservoir of social media trends and user preferences beyond traditional e-commerce interests. By incorporating TikTok social media trends into our models, we can provide recommendations that resonate deeply with users' current interests and viral content trends. This approach not only enhances user engagement by aligning product suggestions with popular TikTok trends but also differentiates TikTok Shop as a platform that understands and anticipates user preferences across both shopping and social media experiences. For instance, the data from viral content trends can be used to produce the trendiness score of the product.
Integrating User Demographics and Preferences By integrating users' gender, age, and content preferences, we can create a more curated experience. Combining demographic information with viral content trends allows us to produce a more accurate trendiness score for products. This score can then be used to recommend items that are not only popular but also tailored to each user's specific interests and demographic profile. This personalized approach ensures that users receive product suggestions that are more relevant and appealing, thereby improving their overall shopping experience on TikTok Shop.
Built With
- beautiful-soup
- express.js
- flask
- google-colab
- huggingface
- mongodb
- networkx
- nltk
- node.js
- numpy
- pandas
- pymongo
- python
- pytorch
- react
- scikit-learn
- selenium
- spacy
- tfidf
Log in or sign up for Devpost to join the conversation.