Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PyData NYC 2017
Diving into the Deep End of
Clothing Styles
Ethan Rosenthal
Dia&Co
PyData NYC 2017 eprosenthal
EthanRosent...
PyData NYC 2017
Nearly 70% of women in
the U.S. are plus-size,
but they represent only
16% of apparel spend.
PyData NYC 2017
Dia&Co is the
leading digital-first
retailer dedicated
to serving women
sizes 14+.
PyData NYC 2017
PyData NYC 2017
User Item
PyData NYC 2017
Styling Algorithms:
Power to the Stylists!
PyData NYC 2017
Item Item
PyData NYC 2017
Similarity is
Subjective!
PyData NYC 2017
PyData NYC 2017
Matrix
Factorization
PyData NYC 2017
https://github.com/benfred/implicit
Python
Easy to install
Fast AF
Industry-standard Algo
PyData NYC 2017
Problem - Temporal Separation
PyData NYC 2017
Problem - Temporal Separation
PyData NYC 2017
Solution? - Past <> Present
sneakers=True
sneaker_color=White
pants_fit=Relaxed
etc...
PyData NYC 2017
Python
Easy to install
Fast AF
MF + user and product metadata
https://github.com/lyst/lightfm
PyData NYC 2017
PyData NYC 2017
Product Metadata - Purchases + Samplings?
Product Metadata + Purchases + Samplings?
Product Metadata + Pur...
PyData NYC 2017
Generating
High Quality
Metadata is Hard
PyData NYC 2017
What
is
Metadata?
PyData NYC 2017
PyData NYC 2017
Standing on the Shoulders of Giants
Lyst - PyData 2016 London
https://www.slideshare.net/CalvinGiles/findi...
PyData NYC 2017
FaceNet - Verification
?
Schroff, CVPR (2015)
PyData NYC 2017
FaceNet - Recognition
?
George
Jerry
Kramer
Elaine
Schroff, CVPR (2015)
PyData NYC 2017
FaceNet - Clustering
Schroff, CVPR (2015)
PyData NYC 2017
ProductNet - Clustering
PyData NYC 2017
Pretrained
Neural
Network
Anchor
Anchor
Vector
PyData NYC 2017
Pretrained
Neural
Network
Anchor
Positive
Positive
vector
Anchor
Vector
PyData NYC 2017
Pretrained
Neural
Network
Anchor
Positive
Negative
Positive
vector
Negative
vector
Anchor
Vector
PyData NYC 2017
PyData NYC 2017
PyData NYC 2017
PyData NYC 2017
Minimize
Maximize
Triplet Loss
PyData NYC 2017
Requirements
Easy to Debug
Simple Sampling
Dynamic Decision-Making
Pretrained Models
PyData NYC 2017
PyData NYC 2017
Simple to Debug
PyData NYC 2017
Flexible Sampling
PyData NYC 2017
Easily Make Dynamic Decisions
PyData NYC 2017
Pretrained Models
PyData NYC 2017
Overfit
PyData NYC 2017
Normalized
Embedding
PyData NYC 2017
Validate
PyData NYC 2017
True Positive
False Positive
PyData NYC 2017
Loss
Now What?
PyData NYC 2017
Explore
PyData NYC 2017
Explore
http://0.0.0.0:8777/product_style?psid=8100
www.rec-a-sketch.science (demo)
https://github.com/Eth...
PyData NYC 2017
Build
PyData NYC 2017 http://book.paddlepaddle.org/03.image_classification/
When fine-tuning, cache what you can!
PyData NYC 2017
Use Real Data
Don’t Mock the IO
Regression Tests
It’s hard!
PyData NYC 2017
Serialize
PyData NYC 2017
tensor.numpy()
Pretrained
Neural
Network
Learned Vector
Learned Vector
Mean
S3
PyData NYC 2017
Deploy
PyData NYC 2017
sanic
PyData NYC 2017
Deep Learning
PyData NYC 2017
Thank you
Ethan Rosenthal
Dia&Co
www.dia.com eprosenthal
EthanRosenthal
blog.ethanrosenthal.com
Upcoming SlideShare
Loading in …5
×

Diving into the deep end of clothing styles (PyData NYC 2017)

Asking if two items of clothing have a “similar style” is a subjective and difficult question to answer. One can attempt to use implicit signals such as purchases, clicks, and views in order to learn product similarities, like in the ubiquitous “People who bought this also bought that” section of any ecommerce product page. Such techniques prove difficult in the world of fashion where clothing can have a short shelf-life. One must then resort to using knowledge of the clothing itself in order learn these similarities. Sometimes this knowledge takes the form of images, and sometimes techniques get deep.

I will discuss this journey from implicit signals to an image-based approach that we embarked on at Dia&Co, a fashion retailer. I will first start with the multiple, non-deep models that failed to produce satisfactory results. These will build the foundation and rationale for resorting to admittedly more complicated, deep learning-based methods. This represents a tradeoff between performance and difficulty. While deep learning may be extremely popular, the need for more complex infrastructure (i.e. GPUs), rapidly changing frameworks, and an arguably reduced level of interpretability are significant costs in a production system. The final, successful technique was written from scratch in PyTorch, and results from training this model on our database of product images will be presented. Lastly, details of training and serving model results via an API will be discussed.

https://pydata.org/nyc2017/schedule/presentation/18/

  • Be the first to comment

  • Be the first to like this

Diving into the deep end of clothing styles (PyData NYC 2017)

  1. 1. PyData NYC 2017 Diving into the Deep End of Clothing Styles Ethan Rosenthal Dia&Co PyData NYC 2017 eprosenthal EthanRosenthal blog.ethanrosenthal.com
  2. 2. PyData NYC 2017 Nearly 70% of women in the U.S. are plus-size, but they represent only 16% of apparel spend.
  3. 3. PyData NYC 2017 Dia&Co is the leading digital-first retailer dedicated to serving women sizes 14+.
  4. 4. PyData NYC 2017
  5. 5. PyData NYC 2017 User Item
  6. 6. PyData NYC 2017 Styling Algorithms: Power to the Stylists!
  7. 7. PyData NYC 2017 Item Item
  8. 8. PyData NYC 2017 Similarity is Subjective!
  9. 9. PyData NYC 2017
  10. 10. PyData NYC 2017 Matrix Factorization
  11. 11. PyData NYC 2017 https://github.com/benfred/implicit Python Easy to install Fast AF Industry-standard Algo
  12. 12. PyData NYC 2017 Problem - Temporal Separation
  13. 13. PyData NYC 2017 Problem - Temporal Separation
  14. 14. PyData NYC 2017 Solution? - Past <> Present sneakers=True sneaker_color=White pants_fit=Relaxed etc...
  15. 15. PyData NYC 2017 Python Easy to install Fast AF MF + user and product metadata https://github.com/lyst/lightfm
  16. 16. PyData NYC 2017
  17. 17. PyData NYC 2017 Product Metadata - Purchases + Samplings? Product Metadata + Purchases + Samplings? Product Metadata + Purchases + User Metadata? Product Metadata + Purchases + Samplings + User Metadata?
  18. 18. PyData NYC 2017 Generating High Quality Metadata is Hard
  19. 19. PyData NYC 2017 What is Metadata?
  20. 20. PyData NYC 2017
  21. 21. PyData NYC 2017 Standing on the Shoulders of Giants Lyst - PyData 2016 London https://www.slideshare.net/CalvinGiles/finding-needles-in-haystacks-with-deep-n eural-networks ThreadGenius - NYC Machine Learning Meetup Feb 2017 https://www.slideshare.net/AhmadQamar3/using-deep-neural-networks-for-fashi on-applications
  22. 22. PyData NYC 2017 FaceNet - Verification ? Schroff, CVPR (2015)
  23. 23. PyData NYC 2017 FaceNet - Recognition ? George Jerry Kramer Elaine Schroff, CVPR (2015)
  24. 24. PyData NYC 2017 FaceNet - Clustering Schroff, CVPR (2015)
  25. 25. PyData NYC 2017 ProductNet - Clustering
  26. 26. PyData NYC 2017 Pretrained Neural Network Anchor Anchor Vector
  27. 27. PyData NYC 2017 Pretrained Neural Network Anchor Positive Positive vector Anchor Vector
  28. 28. PyData NYC 2017 Pretrained Neural Network Anchor Positive Negative Positive vector Negative vector Anchor Vector
  29. 29. PyData NYC 2017
  30. 30. PyData NYC 2017
  31. 31. PyData NYC 2017
  32. 32. PyData NYC 2017 Minimize Maximize Triplet Loss
  33. 33. PyData NYC 2017 Requirements Easy to Debug Simple Sampling Dynamic Decision-Making Pretrained Models
  34. 34. PyData NYC 2017
  35. 35. PyData NYC 2017 Simple to Debug
  36. 36. PyData NYC 2017 Flexible Sampling
  37. 37. PyData NYC 2017 Easily Make Dynamic Decisions
  38. 38. PyData NYC 2017 Pretrained Models
  39. 39. PyData NYC 2017 Overfit
  40. 40. PyData NYC 2017
  41. 41. Normalized Embedding
  42. 42. PyData NYC 2017 Validate
  43. 43. PyData NYC 2017 True Positive False Positive
  44. 44. PyData NYC 2017 Loss Now What?
  45. 45. PyData NYC 2017 Explore
  46. 46. PyData NYC 2017 Explore http://0.0.0.0:8777/product_style?psid=8100 www.rec-a-sketch.science (demo) https://github.com/EthanRosenthal/rec-a-sketch (code)
  47. 47. PyData NYC 2017 Build
  48. 48. PyData NYC 2017 http://book.paddlepaddle.org/03.image_classification/ When fine-tuning, cache what you can!
  49. 49. PyData NYC 2017 Use Real Data Don’t Mock the IO Regression Tests It’s hard!
  50. 50. PyData NYC 2017 Serialize
  51. 51. PyData NYC 2017 tensor.numpy() Pretrained Neural Network Learned Vector Learned Vector Mean S3
  52. 52. PyData NYC 2017 Deploy
  53. 53. PyData NYC 2017 sanic
  54. 54. PyData NYC 2017 Deep Learning
  55. 55. PyData NYC 2017 Thank you Ethan Rosenthal Dia&Co www.dia.com eprosenthal EthanRosenthal blog.ethanrosenthal.com

×