Building a Smartwatch Recommendation System

Devansh Sharma
4 min readApr 27, 2023

For my final year, I decided to take up an interesting research project on recommendation systems. Almost every company utilizes this concept in one way or another. There have been many amusing instances where people have experienced and pointed out the “innocence” of AI present in today’s world.

It made me wonder, if there is any way to improve the current systems in employment. From coding, to testing and debugging — it was quite a journey. My approach focused on utilizing Weighted Sum Methodology (WSM) along with User Rankings.

But why smartwatches?

A simple answer would be: Because why not? But since it was a research project, every step requires a thorough justification.

The need for wearable technology has significantly expanded in the modern world. By the end of 2023, there are expected to be over 224 million smartwatch users worldwide. Smartwatches have saved lives in numerous situations. 42% of smartwatch users have spoken with their doctors about the fitness data their devices have gathered. As smartwatches become more and more a part of our daily lives, they have an ever-growing amount of features. A number of capabilities, like including voice commands, message notifications, and fitness tracking, may be available to smartwatch users. However, the vast array of smartwatch options may make it challenging for clients to choose the one that best meets their needs and interests.

Data and its contents

Amazon website was scraped for procuring the required data. Ten smartwatches from various brands were chosen at random. The reviews and watch features on each smartwatch page were scraped. Each watch was given 200 reviews. For each watch, a general sentiment score was produced. Additionally, 13 additional features — including Display size, Display type, Battery Life, and Resolution — were taken into account.

Methodology

The product utilized a hybrid model, i.e. both content filtering based and collaborative filtering based. Two typical methods for creating recommendation systems are content-based filtering and collaborative filtering.

In content-based filtering, the attributes of the recommended items are examined and compared to the user’s preferences. In order to suggest similar movies to the user, a movie recommendation system, for instance, can examine the genre, stars, and director of a particular movie. This method works well for proposing products that fall into a particular topic or category, but it may have trouble recommending products that don’t fit the user’s predetermined tastes.

On the other side, collaborative filtering makes recommendations by examining the preferences and actions of other users. This strategy makes the assumption that users who have shared preferences in the past would continue to do so in the future. As an example, a music streaming service may suggest songs to a user based on their listening preferences and those of other users who share those preferences. When the items being recommended are extremely subjective, collaborative filtering can be effective at recommending items outside of the user’s preset preferences.

Both strategies have advantages and disadvantages, and to produce the best recommendations possible, many recommendation systems combine content-based and collaborative filtering.

Weighted Sum Approach

WSM is a recommender system technique that forecasts consumer preference for products. Each attribute is given a weight in the WSM approach based on how important it is to the user. The scores for each item are then calculated using these weights and represent the user’s projected preference for that item. The score is calculated by combining the weighted attribute values of each item.

Let x_i,j be the value of attribute j for item i, and w_j be the weight assigned to attribute j. Then, the score s_i for item i can be calculated as :

s_i = (w_1 * x_i,1) + (w_2 * x_i,2) + … + (w_j * x_i,j)

To give ideal recommendations, each feature of the dataset was given an individual score based on percentile. That, paired with the individual ranking given by users helped in recommending the smartwatches.

# Calculate the weighted scores for each smartwatch
smartwatch_data["Weighted Score"] = 0
for feature, weight in feature_weights.items():
smartwatch_data["Weighted Score"] += smartwatch_data[f"{feature} Score"] * weight

Results and Conclusion

The system recommends top 5 watches based on the user preference and percentile scores.

5 smartwatches along with their Weighted Scores

Additionally, the experiment showed that, especially when working with sparse datasets, the WSM technique can beat conventional recommendation algorithms like collaborative filtering and content-based filtering. The system was able to manage the cold-start issue successfully by providing new users with accurate recommendations based on their sentiment scores.

Future study will need to address a few remaining issues and problems, nonetheless. For instance, more study is required to optimise the feature scoring algorithm and the system may not be appropriate for huge datasets. Additionally, the system’s sentiment analysis component might not always be accurate, especially when it comes to sarcastic or obscure language.

I was ultimately pleased with my accomplishments. It was challenging to construct a smartwatch suggestion system, but I eventually succeeded in doing so. My invention may one day aid consumers in making well-informed choices regarding the smartwatches they should buy.

If you’re considering undertaking a similar project, my suggestion is to continue working through the challenging moments. At times, it could seem like you’re hitting your head against a wall, but if you continue, you’ll eventually succeed and have something truly remarkable.

Cheers

--

--