1. Field of the Invention
This invention relates to a garment size recommendation and fit analysis system. When shopping for garments on a retailer's website, a customer selects a garment; a garment size recommendation and fit analysis system analyses how well a chosen size of garment would fit the customer, and/or recommends to that customer the best fit or size of garment.
2. Description of the Prior Art
Purchasing clothes from online retailers is a rapidly expanding sector. When choosing a garment online, customers can specify a size, but because they are unable to try the clothes, many customers are reluctant to purchase. So sizing uncertainty is a significant dis-incentive to engaging with on-line garment ordering. And if a customer does purchase a garment online, and the garment does not fit well, then the garment may be returned and the customer may well be reluctant to buy online in future from that retailer. The retailer typically pays for the cost of returning the goods and will, once the goods are returned, also have to manually check and re-package them. This is costly. And poor fitting is a real risk: garment size charts are not standardised across different retailers (and sometimes not standardised across different brands carried by the same retailer), with the result that a dress in size 12 from one retailer or one brand might be the same size as a size 10 from a different retailer or a different brand. Current estimates are that return rates for clothes bought online can be as high as 30%—largely because returned clothes do not fit. So on-line garment shopping can be frustrating for users since they cannot place much reliance on the sizing charts provided by the online retailer. This leads to levels of engagement with online garment retail sites that are no as high as they could be. And the experience can be less profitable than it ought to be, from the retailers' perspective.
So at the present time, to try the clothes on, the user must either go to the shop, or must wait for the clothes to be delivered, both of which take time and entail travel or delivery costs. It would be helpful if the user could purchase garments online and with a high level of confidence that the garments will fit well.
Considerable efforts have been made in recent years to provide computer-implemented systems that construct a virtual body model for a user—i.e. a virtual or computer-graphics based model of most (in some cases, all) of user's head and body; such models are ideally meant to accurately portray the user. These systems then provide a collection of virtual garments that, with varying degrees of accuracy, reflect the actual shape and size of a physical garment that can be bought be a user. A garment can be selected by the user and then fitted, or visualised, onto the user's virtual body model. This enables the user to see what the garment would look like; in particular, whether that style of garment suits the user and whether the fit for that specific size of garment is correct. Reference should be made to PCT/GB2012/05036, the contents of which are in their entirety incorporated herein.
A first aspect of the invention is a computer-implemented garment size recommendation and fit analysis system in which a memory stores a virtual profile or model of an end-user and a processor is programmed to receive an end-user's selection of a garment and to then determine, using a garment fit algorithm, how well that garment will fit the end-user's profile or model, and in which the algorithm is trained on actual sales data.
This brings several advantages: 1) the size recommendation engine only requires a very small amount of initial training data to make it usable, However, it can be easily refined and updated over time to gradually adapt the body shape groups of garment categories and different garment brands under that retailers; 2) the engine could track changing trends in the behaviour of a retailers' user group; 3) the probabilistic size models learned by this approach can be intuitively visualized and can hence be more helpful in delivering insightful business information (about body shapes, fit preference, etc.) to retailers; 4) the engine works even when good garment size charts aren't available at all, or when the manufactured item deviates from the size chart for some reason
Features of one specific implementation of the invention include the following:
Other optional features:
A second aspect is a computer-implemented garment size recommendation and fit analysis method in which a memory stores a virtual profile or model of an end-user and a processor is programmed to receive an end-user's selection of a garment and to then determine, using a garment fit algorithm, how well that garment will fit the end-user's profile or model, and in which the algorithm is trained on actual sales data.
This section describes the technical details of several algorithms used in an implementation of the invention called the Metail garment size recommendation and fit analysis service. There are two main streams of algorithms:
The first stream of approaches we used for size recommendation is based on the fit-points of retailers' size charts. For most size charts, the available fit points are the average bust, waist, hips of the populations who are supposed to fit into the garment of each given size label. For example, on the Tesco clothing size chart in the UK, a size 12 has a bust=93 cm, waist=74 cm, and hips=99 cm, etc.
2.1. A Heuristic Fit-Point Algorithm
Based on the fit points of the size chart and users' measurement input, we first designed a heuristic algorithm based on an empirical understanding of how a female customer usually thinks the fitting works in a real garment purchase experience. To model how well a particular garment fits the body shape of user, we evaluate a fit-function on each fit point. The fit-function ƒ of a specific size s is defined as a triangular window filter with a output ranged between 0 (doesn't fit) and 1 (perfect fit). See
The peak of the fit function is positioned at the measurement definition for the size label s on retailers' size charts. The widths of the window (on both sides) indicate fit tolerance and they are determined for every single garment based on how tolerant the garment is at the specific measurement point for that particular garment based on 1) manual testing and empirical estimation over the garment samples, or 2) an automatic classification scheme by comparing the image measurements of overlaying garment and body images (either in 2D or 3D) around the relevant fit point area (see
The overall fitting score foverall for a particular size s is defined as the product of fit scores on all relevant fit points for the garment. In our algorithm, the relevant set of fit points being used varies with the types of garments as follows.
As an example, the overall fitting score ƒ for dresses is
ƒoverall(s)=ƒbust(s)·ƒwaist(s)·βhips(s). (1)
This yields a final score between 0 and 1 for each available size s in the size chart S. The best size is given as the one with the highest score:
For a more general multiple size recommendation, the sizes can be ranked according to the fitting scores in a descendent order.
2.2. An Algorithm Based on a Distance Metric
Another method to recommend a garment size to a particular user, is to compute the similarity between the body measurements x of the customer (mostly including bust, waist, and hips, so usually a 3-D vector) and the corresponding measurement definition m(s) of each size s defined in the size chart S. In mathematics, we need to define a distance metric d(•,•) to evaluate the similarity of two measurements. The shorter the distance, the more similar the two measurements are. The best size can be recommended by the one that yields the shortest distance of measurements.
A simple but useful distance metric for garment size recommendation is the Euclidean distance, also known as the sum of squared distance, as the following equation shows.
d
E(x,m(s))=∥x−m(s)∥2. (4)
This simple distance metric works reasonably well for garment size recommendation. Euclidean distance evaluates the difference on each tape measurement equally and independently. Also, it does not take into account the correlation among different body measurements. In practice, we find that body measurements are usually correlated, e.g. a body shape with a higher than average bust measurement is more likely to also have a higher than average waist measurement, etc. Also, different fit points may have different levels of impact on the size recommendation for different garment types. For example, for tops or t-shirts, fitting on bust is more important than that on waist and hips. Therefore, a better distance metric for size recommendation is Mahalanobis distance, as the following equation shows:
d
M(x,m(s))=(x−m(s))TΣ−1(s)(x−m(s)), (5)
where Σ(s) is the covariance matrix of the body measurements for the size label s of the garment. In the case of three measurements: bust, waist, and hips, are used, Σ(s) is a 3×3 matrix. In principle, the covariance matrix Σ(s) may vary with the size and the garment type, and it represents the variation of body shape of the population who buy and keep the particular size s of the particular garment. In practice, Σ(s) can be estimated from the body shape data of customers recorded by the Metail widget (see Section 2.3).
2.3. Size-Chart Adjustment and Covariance Estimation Based on Sales Data
Although the size chart of a garment retailer provides a general guideline for selecting a size, we notice that the body measurements of the actual population group who buy and keep the size could considerably deviate from the measurements specified in the size chart. To give a better estimation on the actual body shape distribution associated with the sales of each size, we looked into the following two sources of data:
An example of the body shape distribution with respect to garment sizes is illustrated in
m′(s)=μ(s)=m(s)+b(s),sεS. (6)
where b(s)=μ(s)−m(s) are the bias vectors to correct the measurement definition on the size chart.
However, in practice, the number of data points we observed are usually insufficient to estimate the bias vector b(s) accurately for each size, especially for some extra small or extra large sizes where the samples are sparse. As an approximation, we correct the size chart using a uniform bias vector b for all sizes, which estimated from all N instances available in the sales records regardless of garment size, as Equation (7) shows.
where xi refer to the body measurements of the customer i and m(si)) refer to the size chart measurement definition of the size si selected by the customer i. The resulting corrected size chart can be used to improve the recommendation accuracy of both the heuristic algorithm (Section 2.1) and the distance-metric-based algorithm (Section 2.2). Furthermore, the estimated covariance matrix of measurement distributions Σ(s) can be used in the size recommendation algorithm based on the Mahalanobis distance (see Equation (5)). Similar to Equation (7), a uniform covariance of measurement Σ can be estimated by Equation (8) when data samples available are sparse:
The example-based approach is an alternative solution to the size recommendation approach using the size and body shape data we have gathered from the Metail widget and the sale data from the retailers (see Section 2.3 for further detail). In this section, we describe how we extend the K-nearest neighbours algorithm for the purpose of garment size recommendation.
3.1. K-Nearest Neighbours (KNN) Algorithm
The K-nearest neighbours (KNN) algorithm is a commonly used machine learning algorithm for solving classification and regression problems based on the nearby observed samples. Size recommendation can be considered as a multi-label classification problem. As a mathematical formulation, suppose we have got a total of N training instances in the format of feature-label pair {Ii={xi,Ii}}i=1N, and we have a testing instance I* with known feature x* but with an unknown label In the context of our garment size recommendation problem, “features” are the vectors of body measurements and/or other form of data obtained by transformation or dimension reduction, e.g. BMI, principal components of body shapes etc., while the “labels” are chosen to be vectors of the measurements definitions behind each size label of the garment, and/or other measurements of the garment sizes and stretchiness.
In KNN, we predict the label 1* of I* from its K nearest training instances in the feature space. For the size recommendation, we aggregate out the label of the query as a weighted-average of the labels of all K neighbours:
where weighting factors wi is a function of distance from the testing instance to each training instance. Here, they are computed as
where d (•) means the Euclidean distance; and λi is the significance value of a data instance, which is used when some data points are more important and hence have higher weights than the others. In the algorithm, we distinguish retention sales from returned sales. For a particular sale, if we find that the item has been returned in a period of time, we discount the influence of the data by setting λi==0.125, while on the other hand we set λi=1 for other retention sales.
When the training instance has exactly the same feature as the testing instance and has not recorded a return, its weight will be 1; on the other hand, when the training instance is getting far away from the testing instances, the weight decreases by distance and close to 0 when the training instance is infinitely far away.
3.2. Encoding a Size Prior to the KNN Algorithm
The regular KNN algorithm described above is purely data-driven. The major drawback of such an algorithm is that its extrapolation ability is quite limited, i.e. when the query instance is the feature space where training instances are sparse, the prediction will be quite unreliable. Concerning such a problem, we propose to encode a size prior of the query instance I*, whose vectors of measurement definitions 1* prior will participate in the weighted average.
In the formula, the new parameter β is a constant weight of the size prior. If β=0, the model is reduced to the basic KNN model. In the implementation, we set β=1. When the query instance is close to many training instances, the instance weights satisfy Σi=1Kwi>>β, and hence the estimate from the data will dominate over the prior estimate. When the query instance is far away from the training instances, Σi=1Kwi will be small and hence the prior term dominates and decides the final prediction.
To obtain this size prior 1*prior, we perform another non-data-driven or non machine learning size recommendation using approaches, e.g. the heuristic fit estimate (Section 2.1) or the distance-metric method (Section 2.2), etc, and transform the output size label into the vector of corresponding tape measurements defined on the size chart.
3.3. Soft Voting Consensus Scheme and Multiple Size Recommendation
Given the query feature vector of the customer, we perform the size recommendation using a soft voting and consensus scheme. Among all K neighbouring training instances, each will give evidence to a range of sizes whose measurement definitions (i.e. the label vectors) are similar to that of instance.
For each size s defined in the size chart, we evaluate the confidence voting weight vi(s) from each nearby instance xi and weight vprior(s) of the prior as follows:
where 1(s) is the associated garment measurements of size Σ=diag(σbust2,σwaist2,σhip2) (and Σprior=diag(σbust,prior2,σwaist,prior2,σhip,prior2) defines the garment stretching and fitting tolerance on each body dimension. In the implementation, we choose the tolerance radius σbust, σwaist, and σhip to be 5 cm, 5 cm, and 7 cm respectively, which are average adjacent grading differences based on the size chart. The tolerance radius of the prior is set to be larger σbust,prior=σwaist,prior=σhip,prior=10 cm.
Given all the voting weights, the overall confidence score of size s (a value between 0 and 1) is then evaluated as a weighted combination as follows.
where weights wi of instances (i=1, 2, . . . , K) are defined in (10). In the implementation, we found that setting β=2 gives the optimal performance.
This algorithm provides the confidence estimates for all the sizes. To recommend the best size, we return the size sprior with the highest confidence score
This can be used to easily give multiple size recommendations along with their respective confidence scores. During the experiment, we carried out a cross-validation on a dataset of 1020 instances and in
3.4. A Working Algorithm
Finally, we summarize an end-to-end working extended KNN algorithm for garment size recommendation in Algorithm 1. All the parameters in the algorithm are given explicitly.
Algorithm 1 Extended KNN algorithm for garment size recommendation.
Input: A testing instance I with feature x=[height, weight, chest, bust, waist, his] and garment category gε{dress,top,trousers}; a size chart in the form of a list of size chart entries {1(s)={bust(s), waist(s), hip(s)}, sε{all available sizes}}.
Output: the garment size sprior, the confidence value c between 0 and 1.
Given the fact the number of data points we observed are usually insufficient to estimate the bias vector for each size as mentioned in Section 2.2, an alternative solution is to use a Bayesian approach to learn probabilistic models for each garment size from both observed body measurements data and a default size chart (i.e., the original size chart defined by the retailer, or a size chart of another well-known brand if the retailer's size chart is unknown) in the sense of maximizing a posterioi. As an interpretation, when many body shape observations are given, the model will be mostly determined by the data, whilst in the other case, the model will be more influenced by the prior, i.e. the original size chart in our context, and has a large uncertainty.
This Bayesian approach also gives a solution for garment size advice, which shows a slightly better performance than the uniform size chart correction approaches mentioned in Section 2.3 when the models are learned by garment type.
4.1. Model Training
In the training stage, for each size mark s of a retailer of a specific garment type, we try to model the body shape distribution of users who bought and retained the garment of such a size (Here, we ignore size label but simply index the sizes as s=1, 2, . . . , S from small to large). We currently assume that this model is subjected to a multivariate Gaussian distribution (but note that the validity of this assumption is arguable as sometimes the body parameters could distributed asymmetrically in the measurements space. The Gaussian assumption is more for the case of formulation and mathematical manipulation).
where Ms stands for the sizing model of size mark s, the random vector x refers to the body measurements of a user who ordered this size; c is the confidence of the data, which is dependent on the retention of the order in our model. In the implementation, we assign c=1 for retention orders and c=0.25 for returned orders.
In real life, most garment retailers use a size chart to define the average body metric for a particular garment size. For example, one retailer specifies that the standard tape measurements of size 12 are bust=93 cm, waist=74 cm, and hips=99 cm. This kind of size grading gives us a strong cue of how the distribution mean μs should look like. Mathematically, we can introduce a prior for all the size models Ms(s=1, 2, . . . , S). In the model, we introduce two types of size priors: 1) reference size prior, and 2) size interval prior.
For the size label, different retailers could have slightly different measurement definitions. We look at the most commonly used size sref, called “reference size”, and try to model the variance of this size using a reference size prior as the following multivariate Gaussian distribution:
P(s,ref|Ω)=
(μs,ref|μ0,Σ0), (17)
where Ω generally denotes all the hyper-parameters of the size model; the hyper-parameter μ0=[μ0,bust,μ0,waist,μ0,hips]T is a guessed average measurement definitions of a reference size, while the variance Σ0 roughly models the variation of such a reference size among all the retailers. In the implementation, we use an arbitrary well-known retailer's size definition (e.g. Warehouse's size 10), while we set Σ0=diag(5.3, 12.5, 12.8) cm2, which is estimated from the definitions on a common size label of a range of different retailers, including Mary Portas, Js Collections, Barbour, Planet, etc.
In most of retailers' size charts, the intervals of measurement definitions between two adjacent size grading, e.g. size 8 and size 10, or size 10 and size 12, are approximately of equal spacing. This interval on each measurement is usually between 4 to 6 cm. We hence define a prior, i.e. site internal prior, on the measurement difference of two neighbouring sizes to constrain the grading spacings of a size chart. This can also be modelled by a multivariate Gaussian distribution
where δsl,s are the default spacings of two neighbouring sizes sl and s and they are set as the intervals of the guessed size charts in the initialization; while the variance Σδ roughly models the potential errors of size spacings, which is assumed to be a spherical Gaussian distribution Σδ=σ2I=diag(0.25, 0.25, 0.25) cm2. As a consequence, the generic prior of the Bayesian model P({s
|Ω) can be factorized as the combination of two types of prior models defined above, as the following equation shows.
Now we are also presented with a number of observations from all the sales record X={Xs}s=1S as the likelihood, where Xs={Xs,i,cs,i}i=1N
To learn a size model Ms in the sense of maximizing a posteriori, we need to solve the following optimization problem in (21) over the model parameters μs and Σs (s=1, 2, . . . , S), so that L in (20) in is maximized.
We can solve the optimization problem in (21) and learned the size models Ms for all sizes sεS defined for the garment (types) and iterate over all garment types.
4.2. Solve the Optimization in Training
The optimization problem in (21) can be solved by computing the derivatives of L with respect to parameters μs and Σs, and letting
We can have
where
are the indicating parameters. By transforming equations (22) and (23), we can obtain the following set of fixed-point equations:
By setting initial values μs=μs,0 and Σs=σs,02I(s=1, 2, . . . , S) according to a rough guess, and then iteratively evaluating the equations (24) and (25) above, we can quickly reach the solution of μ* and Σ*s (s=1, 2, . . . , S) that satisfy both (22) and (8). In the implementation, it would be good to slightly regulate the variance matrix in each iteration to avoid singularity during the matrix inversion:
Σs=Σs+λI, (26)
4.3. Querying and Size Recommendation Through Model Selection
For a user with query body measurements x and provided all the pre-learned size models {Ms}sεS of the garment being tried on, we can recommend an optimal size s by means of a model selection, i.e. recommending the size of which the model gives the highest posterior value. Mathematically, this problem is formulated as:
where
is the prior distribution of size s and which we usually estimate by its frequency among large amount of sales data. The formulation in (27) for evaluation the log-posterior of the size is very similar to the Mahalanobis distance metric in equation (5) of Section 2.2. The difference is that the frequency of the size label is taken into account here.
Number | Date | Country | Kind |
---|---|---|---|
1406539.5 | Apr 2014 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB2015/051108 | 4/13/2015 | WO | 00 |