End-2-End Search Mices 2018 Duncan Blythe About Me Duncan Blythe - - PowerPoint PPT Presentation

end 2 end search
SMART_READER_LITE
LIVE PREVIEW

End-2-End Search Mices 2018 Duncan Blythe About Me Duncan Blythe - - PowerPoint PPT Presentation

End-2-End Search Mices 2018 Duncan Blythe About Me Duncan Blythe Research Scientist @ Zalando Research M.Math.Phil in Mathematics/ Philosophy @ Oxford Ph.D. & M.Sc. in Machine Learning/ Computational Neuroscience @ TU Berlin Postdoc in


slide-1
SLIDE 1

End-2-End Search

Mices 2018 Duncan Blythe

slide-2
SLIDE 2

About Me

Duncan Blythe Research Scientist @ Zalando Research M.Math.Phil in Mathematics/ Philosophy @ Oxford Ph.D. & M.Sc. in Machine Learning/ Computational Neuroscience @ TU Berlin Postdoc in Biomedical Engineering @ DZNE Bonn (Helmholtz)

slide-3
SLIDE 3

Zalando

  • Multinational fashion e-commerce company
  • Operates in 14 countries in the EU
  • > 23 million active customers
  • More than 14,000 employees
  • > 1,900 tech-employees
  • More than 100 data scientists/ research

engineers etc..

  • Large data scientific component
slide-4
SLIDE 4

Zalando

slide-5
SLIDE 5

Zalando

slide-6
SLIDE 6

Zalando Research

  • 15 Researchers with PhDs
  • Backgrounds CS/ ML/ Physics/ Math/ Linguistics
  • 4 subteams
  • RL, Vision, NLP, Retrieval
  • We are growing/ hiring!
slide-7
SLIDE 7

NLP Team @ Zalando Research

Roland Vollgraf Alan Akbik Duncan Blythe Leonidas Lefakis

slide-8
SLIDE 8

NLP Team @ Zalando Research

Credit to Han Xiao (now @ ten cent) for the initial work

slide-9
SLIDE 9

Outline

  • 1. How do many product search systems work?
  • 2. Why do we need an end-to-end product search system?
  • 3. What data do we need to build end-to-end search?
  • 4. End-to-end retrieval model
  • 5. Discussion
slide-10
SLIDE 10

Classical full-text retrieval framework

Query String/Symbolic representation Product String/Symbolic representation Matching

  • ffline

Parsing Indexing

slide-11
SLIDE 11

Classic product search system with filter query

Indexing

{ “brand”: “Miss Selfridge”, “category”: “Umhängetasche”, “color”: “red”, ... }

Message Queue Structured string index Filter query *Animation brand="nike" AND color="orange"

slide-12
SLIDE 12

Parsing a full-text query to a filter query

{ "brand": "Miss Selfridge", "category": "Umhängetasche", "color": "red", ... }

Structured string index

{ "color": "red", "category": "shirt" }

Matching Indexing Parsing

slide-13
SLIDE 13

Query understanding as a pipeline (ideal)

tokenize lemmatize spell-correct recognize named-entity disambiguate Filter query query-builder recognize synonym & acronym User query normalize

Parsing

"Jeckk Wolfskin BluEjackets" brand="Jack Wolfskin" AND category="coat" AND color="blue"

jecck wolfskin bluejackets jeckk+wolfskin+blue+jackets “jeckk wolfskin”+blue+jacket “jack wolfskin”+blue+jacket “jack wolfskin”+blue+jacket “jack wolfskin”+blue+coat ?“jack wolfskin”?+blue+coat ?jack+wolf-skin?+blue+coat

slide-14
SLIDE 14

Query understanding in practice

tokenize lemmatize spell-correct recognize named-entity disambiguate Filter query query-builder Full text query normalize

Query parsing

recognize synonym & acronym "Jeckk Wolfskin BluEjackets" brand="Jack Wolfskin" AND category="coat" AND color="blue"

slide-15
SLIDE 15

Pros & cons of a pipeline system

Upside: intuitive, modular, many off-the-shelf packages, easy to collaborate

  • Fragile
  • Complicated dependency
  • Not straightforward to improve overall search experience
  • Difficult to scale out on other languages
  • No concept of “continuous improvement”
slide-16
SLIDE 16

Pros & cons of an query/attribute based system

Upside: makes sense to use attributes if they are there

  • Attributes can be wrong
  • Attributes can be missing
  • Attributes can’t easily capture “style” in a succinct way
  • Synonyms need to be hardcoded
slide-17
SLIDE 17

Question 1: If finding the right article is the final goal, then why should we even care about pipeline components?

slide-18
SLIDE 18

Question 2: How can we associate “petite” with “for the smaller man” without hard-coding for each language?

slide-19
SLIDE 19

“End-2-End” product search

Product search system

  • Trained as mapping from queries to products
  • Fully data-driven
  • All components trained with deep learning
slide-20
SLIDE 20

“End-2-End” product search

Question 1:

If finding the right article is the final goal, then why should we even care about spell-checking?

Question 2:

How can we associate “fur mamas” with “Schwangerschaftsmode” without hard-coding on each domain?

eliminate components in the pipeline find better representation for query and product

An end-to-end product search system with deep learning

more robust easier to maintain more scalable simpler architecture smarter

slide-21
SLIDE 21

Classical system vs end-to-end product search system

Query Symbolic representation Product Symbolic representation ① indexing ② parsing ③ matching

  • ffline

Query Latent representation Product Latent representation matching

  • ffline

deep learning deep learning

slide-22
SLIDE 22

Text ↔ product data sources

slide-23
SLIDE 23

Three types of data sources

  • Click through data
  • Crowdsourcing annotations
  • Customer reviews

User-generated content Product

slide-24
SLIDE 24

Extracting Query↔Product mapping from message queue

r e c e i v e

  • q

u e r y : " d e n i m s h i r t "

search-result

user

t y p e i n s e a r c h

  • b
  • x

s e e s e a r c h r e s u l t p a g e retrieval-search-result click a product c l i c k

  • t

h r

  • u

g h : S K U

  • 1

retrieve-reco

  • result

"denim shirt"

Message Queue

Time Time

{ q u e r y : " d e n i m s h i r t " s k u s : [ " S K U

  • 1

" , " S K U

  • 2

" ] }

see PDP

search-result PDP PDP

c l i c k

  • t

h r

  • u

g h : S K U

  • 2

click on reco

slide-25
SLIDE 25

Example of Query → Product map

{"query":"ananas", "skus":[ {"id":"CE321D0HP-A11","freq":371}, {"id":"RL651E02D-F11","freq":273}, {"id":"EV411AA0K-T11","freq":243}, {"id":"L1211E001-A11","freq":208}, {"id":"ES121D0ON-C11","freq":180}, ... {"id":"TO226K009-I11","freq":2}, {"id":"BH523F01J-A11","freq":2}, {"id":"MOC83C00C-J11","freq":1}, {"id":"MOC83C001-J11","freq":1}, {"id":"HG223F04A-A11","freq":1}]}

slide-26
SLIDE 26

{"sku":"CZ621C04O-G11", "queries":[ {"text":"chi+chi+london","freq":998}, {"text":"abendkleid","freq":403}, {"text":"ballkleid","freq":394}, {"text":"cocktailkleid","freq":134}, {"text":"kleid","freq":125}, {"text":"kleider","freq":118}, {"text":"abendkleider","freq":79}, {"text":"abendkleid+lang","freq":58}, {"text":"kleid+lang","freq":46}, {"text":"abiballkleid","freq":46}, {"text":"chi+chi","freq":43}, {"text":"lange+kleider","freq":40}, {"text":"ballkleider","freq":36}

Example of Product → Query map

{"text":"ballkkeid+lang","freq":1}, {"text":"ball+kleid","freq":1}, {"text":"abschlusskleid+leng","freq":1}, {"text":"abschlussballkleider","freq":1}, {"text":"abschluss+kleider+rot","freq":1}, {"text":"abenkleid","freq":1}, {"text":"abendskleid","freq":1}, {"text":"abendkleider+in+lang","freq":1}, {"text":"abendkleider+abendkleider","freq":1}, {"text":"abendkleid+damen","freq":1}, {"text":"abendkleid+chi+chi+london","freq":1}, {"text":"abendkleid+/ballkleid","freq":1}, {"text":"abend+kleid","freq":1}]}

slide-27
SLIDE 27

Encoder-Matcher Architecture

(q, )

...

(u, ) (y, )

RNN RNN RNN ... character-embedding

query-encoder attribute-encoder matcher

{brand: "Nike", color: "olive"}

YES/NO

image-encoder

slide-28
SLIDE 28

Component parts

Query encoder Image encoder Matcher Attribute Encoder

  • Recurrent neural

network

  • LSTM/ GRU etc..
  • Character
  • No preprocessing
  • Language flag
  • Convolutional neural

network

  • VGG/ ResNet/ AlexNet
  • Multiple views?
  • Pretraining methods
  • Data augmentation
  • Textual

embedding

  • word2vec-esque
  • Pretraining

fashion corpora

  • “Objective function”
  • Ranking/

classification

  • Nonlinear/ linear
  • E.g. cosine similarity
  • Test time

considerations

slide-29
SLIDE 29

Convolutional image encoders

Layer 1 Layer 2 Layer 3 Layer n

...

slide-30
SLIDE 30

Convolutional image encoders: fDNA

Sebastian Heinz Christian Bracher

Nearest neighbours: Product map:

slide-31
SLIDE 31

Query encoders

" d e n i m s h i r t "

<male> d e n i m _ s h i r t RNN RNN RNN RNN RNN RNN RNN RNN RNN RNN RNN RNN

slide-32
SLIDE 32

Alignment objective

We want this to be large:

slide-33
SLIDE 33

Demo

slide-34
SLIDE 34

Code Review

slide-35
SLIDE 35

Quantitative Results

slide-36
SLIDE 36

Discussion: pros/cons of an end-to-end product search

Query Symbolic representation Product Symbolic representation ① indexing ② parsing ③ matching

  • ffline

Query Latent representation Product Latent representation matching

  • ffline

deep learning deep learning

Classic Deep learning based End2End Scalable, maintainable, data-driven Need a lot of data, comp. resources

slide-37
SLIDE 37

Thanks for your attention!