Wednesday, January 7, 2015

Core of Personalization at Polyvore: Style Profile


Over the past year, our engineering team has undertaken the task of creating a more personalized experience for our users. We already have an amazing community of designers, artists, and fashion enthusiasts who come to Polyvore to get inspired around shopping. However, we felt that with a little bit of machine learning we could help users discover and shop for even more products that they may not have found on their own.
In this blog post we’ll walk through some of the ways we are using machine learning to understand our users individual style, which we call a Style Profile, to recommend more personalized products and outfits.

What is a Style Profile?

When we first started building each user’s Style Profile, we quickly realized how tricky quantifying fashion can be. It’s intangible, means different things for different people and even when most people might own the same black shirt, they might wear it in completely different ways. Luckily, Polyvore is uniquely positioned to understand personal style through our users rich interactions on Polyvore, including:

  • Global factors: occasions, trends, seasonality and other contextual information
  • Catalog data: rich and high-quality metadata of products from our retail partners
  • Product data: product likes and dislikes, collections of products, products viewed and search queries
  • Shopper behavioral data: impressions, likes, outbound clicks while they are interacting with products, sets and other curated content
  • Community data: Our global community has generated billions of data points that helps us understand the relationship between retail products. Every time a user creates a set, they are implying that those products go together and share the same style. 

From a technology standpoint, a user’s Style Profile can be represented with a vector in a high-dimensional space and the component for each dimension, indicating the strength of their preference in a particular aspect or a combination of multiple aspects in fashion. The following is a simplified representation of two users’ style profile on combinations of color, category, material and brand:

Figure 1: Style profiles

  • Style Space Definition: a high dimensional space where any point represents the style of a user or product that is subject to constraints that points with similar style should be closer to each other than those with different tastes.
  • Style Vector Definition: the coordinates in the Style Space denote the taste vector for that particular user or product.