<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>ACM, New York, NY, USA,
Article</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Towards a simplified ontology for beter e-commerce search</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Prateek Verma</string-name>
          <email>prateek.verma@jet.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Aliasgar Kutiyanawala Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>New Jersey</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>New Jersey</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Ontology Creation, Information Retrieval, E-Commerce</institution>
          ,
          <addr-line>Query Understanding</addr-line>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Zheng ( John) Yan Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>New Jersey</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>4</volume>
      <issue>7</issue>
      <abstract>
        <p>Query Understanding is a semantic search method that can classify tokens in a customer's search query to entities such as Product, Brand, etc. This method can overcome the limitations of bag-ofwords methods but requires an ontology. We show that current ontologies are not optimized for search and propose a simplified ontology framework designed specifically for e-commerce search and retrieval. We also present three methods for automatically extracting product classes for the proposed ontology and compare their performance relative to each other.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>CCS CONCEPTS</title>
      <p>• Computing methodologies → Information extraction;
Ontology engineering;</p>
    </sec>
    <sec id="sec-2">
      <title>INTRODUCTION</title>
      <p>
        Search plays a vital part in any e-commerce site and a poor search
system leads to customer frustration, which negatively afects both
retention and conversion. Most e-commerce sites employ a
bag-ofwords search method which simply matches tokens in a customer’s
search query with relevant fields of SKUs (stock keeping unit but
used here to describe any item sold by the site). This system is easy
to implement specially with solutions like ElasticSearch [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] or
Solr [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] but sufers from some significant drawbacks. This system
is prone to returning irrelevant results because of its inability to
understand what the customer is looking for. Consider an example
search query: “men’s black leather wallet” and let us assume
that there are no SKUs that match this query exactly. The
bag-ofwords system will resort to a partial match and may return men’s
brown leather wallets (relevant) along with men’s black leather
belts (irrelevant). This problem is also evident when queries are
similar in terms of words but actually relate to very diferent
products. For example: the queries “camera with lens” and “lens for
Permission to make digital or hard copies of part or all of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full citation
on the first page. Copyrights for third-party components of this work must be honored.
For all other uses, contact the owner/author(s).
      </p>
      <p>SIGIR eCom 2018, July 2018, Ann Arbor, Michigan, USA
© 2018 Copyright held by the owner/author(s).
camera” may produce the same result if prepositions are ignored
as stopwords. There are ways to augment the bag-of-words search
system with a category pinpointing (or prediction) model, bigrams,
etc. to improve the recall. However, this approach requires a deep
category tree with leaf nodes as product types and an accurate
categorization model, both of which could be an issue given a large
catalog.</p>
      <p>
        A better approach to search is to use a query understanding
system to understand the customer’s search intent [
        <xref ref-type="bibr" rid="ref13 ref24">13, 24</xref>
        ]. One such
method is to use a semantic annotation process described in [
        <xref ref-type="bibr" rid="ref23 ref9">9, 23</xref>
        ]
by using a well-defined ontology to classify terms from the
customer’s search query. Going back to our previous example, if we
were to classify tokens in “men’s black leather wallets” as
men := Gender, black := Color, leather := Material,
wallet := Product, it would allow the system to find exactly
what the customer is looking for or make relevant substitutions
if no such SKU could be found. This task is called Named Entity
Recognition and Classification (NERC), where entities like Product,
Color, Material, etc. are recognized. Nadeau and Sekine [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] provide
an excellent overview of this field. We use Bi-directional
LSTMCRF as described by Lample et al. in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for performing named
entity recognition although other systems like GATE [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] could
also be used. The named entity tagger can accurately recognize
the customer’s intent by recognizing and classifying entities in the
query as long as those entities are well-defined. The problem is that
most existing product ontologies are designed from a supply-side
perspective and not from a search perspective.
      </p>
      <p>We propose a simplified ontology framework specially designed
from a search and retrieval perspective that contains three
toplevel concepts - Product, Brand and Attribute and five slots (or
properties) - synonyms, attributes, primary_attributes, brands and
default_product. We show that these three entity classes along with
ifve slots can provide relevant recall for a customer’s search query.
We further discuss this ontology in Section 2 and provide insights
into why each entity type and slot is necessary and how they help
in retrieving relevant results.</p>
      <p>Our contributions in this paper are creating a product ontology
designed specifically for search and providing three methods to
automatically extract Product concepts for this ontology. We discuss
this ontology in detail in Section 2. We provide an overview of the
ifeld of Ontology learning in Section 3 and discuss our methods
to extract Product concepts in Section 4. Finally, we present our
conclusions in Section 5.
2</p>
    </sec>
    <sec id="sec-3">
      <title>ONTOLOGY</title>
      <p>
        An ontology is a formal explicit description of a domain by
identifying classes (or concepts), slots and slot restrictions between classes
for a particular domain [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Classes represent the main concepts
in a domain and are related to physical objects in that domain,
for example: TV, Shirt or Screen Size. Slots represents properties of
objects and relationships between classes, for example: the slot
attribute links the classes TV and Screen Size. Slot Restrictions impose
restrictions on the values that can be taken by a slot, for example:
we can impose the restriction that Screen Size is a positive number.
Our goal is to design a product ontology that can be used for search
purposes. This ontology must serve a dual purpose - we must be
able to classify SKUs onto this ontology and secondly, the classes
(and subclasses) in this ontology should serve as named entities
for query-side named entity recognition and classification. There
are many supply-side ontologies for e-commerce like ecl@ss,
Harmonised System, NAICS/NAPCS, RosettaNet, etc. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] but they tend
to focus more on relationships between buyers and sellers. They
tend to include slots (or properties) such as GLN of manufacturer,
GLN of supplier, product article number of supplier, etc. which are
completely unnecessary for search purposes. These ontologies also
have product types that are very complex, for example the entire
phrase: “Shirts, underwear, men’s and boys’, cut and sewn from
purchased fabric (except apparel contractors)” is a product from NAICS.
Such product types contain attributes (like men’s, boy’s, etc.) along
with the most basic form of the product (shirt) and hence are not
considered atomic. The NERC system will have a lot of dificulty in
using such non-atomic products.
      </p>
      <p>
        Work has also been done on ontologies that are focused more on
the catalog side [
        <xref ref-type="bibr" rid="ref15 ref2">2, 15</xref>
        ]. Catalog-side ontologies are closer to
searchside ontologies as compared to supply-side ontologies but are still
not perfectly aligned with a search perspective. Consider Figure 1,
which shows a snippet of Product classes from two ontologies - a
catalog-side ontology on the left and a search-side ontology on the
right. There are three main diferences between them. The first
diference is that the ontology on the left does not have a “is a”
relationship between classes and subclasses. For example: Baby food
and formula is not a Baby. The ontology on the left tries to classify
items by their intended use case but ontology on the right classifies
items according to what they represent. The second diference is
that the ontology on the left contains combo products like Toddler
Juices and Milk, which makes it dificult to know if a SKU classified
to this product type is a Juice or Milk. The third diference is that
the ontology on the left contains non-atomic entries like Baby and
Toddler Snacks, which should just be simplified to Snacks as it makes
it very easy for the NERC system to identify products in queries
like “snacks for baby.”
Our ontology contains a restriction that requires all classes (and
subclasses) to be as atomic as possible to improve recall. We define
an atomic entity as an irreducible unit that describes a concept.
It also places a “is-a” requirement on all subclasses for a given
class. Finally, it tries to avoid combo classes unless they are sold
as a set (dining sets that must contain both table and chairs). This
requirement keeps the ontology simple and flexible. The following
sections describe the classes and slots in our ontology in greater
detail.
2.1
      </p>
    </sec>
    <sec id="sec-4">
      <title>Product</title>
      <p>A Product is defined as the atomic phrase that describes what the
customer is looking for. Consider an example, “white chair with
ottoman”. Here, the customer is looking to buy a chair. It is
preferable if the chair is white in color and comes with an ottoman but
these requirements are secondary to the primary requirement of
it being a chair. If such a chair is not available, the customer is
more likely to buy a chair in a diferent color or one that does not
come with an ottoman but is less likely to buy a white sofa with
ottoman even though it satisfies two requirements out of three. Any
specialized product type like folding chair must be stripped down
to its most basic form chair. There are exceptions to this rule, for
example, a bar stool is a specialized type of stool and ideally we
should strip it down to its most basic form stool but many customers
use the term “barstool” (single term without spaces) to describe it.
The NERC system has to be able to classify this term to a product
and hence we include the term “barstool” as a Product in our
ontology with the synonym “bar stool”. The class barstool is a
sub-class of the class stool because every barstool is ultimately a
stool. This parent-child relationship also helps during recall because
if the customer searches for “stool”, the search system will include
all stools including barstools in the recall. It should be noted that
atomic does not imply a single-word token because many
multiword tokens like air conditioner and onion rings are atomic. We use
a combination of our query and SKU understanding systems along
with user data to provide suggestions for parent-child relationships
and synonyms (or variations). However, describing this method is
beyond the scope of this paper.
2.2</p>
    </sec>
    <sec id="sec-5">
      <title>Attribute</title>
      <p>Attribute is defined as an atomic phrase that provides more
information about an item. Consider an example “white wooden folding
adirondack chair”. Here, we classify the term chair as a Product
and we can classify the remaining terms (white, wooden, folding
and adirondack) as Attributes. This gives us a lot of flexibility during
recall. Initially, the search system can restrict the recall by filtering
out any SKUs that do not match the product type and then boost
SKUs by the number of matching attributes. In case of our example,
we would restrict the recall to be chairs of all types and then boost
those SKUs that match the attributes (white, wooden, folding and
adirondack). A SKU that matches all attributes will have a higher
score (and placed on top of the recall) than those that match fewer
attributes.</p>
      <p>Attributes can be subclassed as Color, Material, SleeveType, etc.
depending on the category. We found that only a subset of Attributes
are relevant for search purposes. An attribute like Country of
Manufacture may be a valid subclass but it can be argued that it is not
very important for search purposes. Since our aim is to create a
simplified ontology for search, we restrict attribute subclasses to
what is actually important for search. This makes the system much
more maintainable. The range of most attributes are values from
an enumerated set but some attributes like Screen Size may have
numeric values along with a unit of measurement like inches, cm,
etc. Such numeric values can be normalized using simple rules (1
inch = 2.54 cm) so that more relevant SKUs can be recalled for a
given query even if they have units from diferent measurement
systems. It is not necessary that numeric values in the query and
SKU to match exactly. We compute the diference between
corresponding numeric values of the query and SKU and apply a boost
that is inversely proportion to the diference. For example, a query:
“45 inch tv” will match SKUs for 43 inch TVs (higher boost) as
well as 49 inch TVs (lower boost)
2.3</p>
    </sec>
    <sec id="sec-6">
      <title>Brand</title>
      <p>A Brand is defined as a phrase that provides more information
about the manufacturer of the item. Samsung, Calvin Klein, etc.
are examples of brands. Brands are important because they
capture information about the preferences of the customer but are not
essential in defining the recall. The search system tries to honor
the customer’s preference regarding the brand by boosting SKUs
that match the brand specified in the query. This scheme ensures
that the search result includes SKUs from other brands albeit at a
lower position compared to SKUs that match the brand in the query.
We observed that in some cases customers tend to use the brand
name as a synonym for a product, for example, “q-tips” to denote
cotton swabs and “kleenex” to denote tissues. This type of behavior
is common for a subset of brands that have high brand equity and
are taken to represent the product itself. We wanted to respect
the customer’s preferences while still providing them with a wide
range of similar products from other brands and so we introduced
the default_product relation, which maps these finite subsets of
brands with their default Product nodes. This relation then allows
the NERC system to map the query “kleenex” to kleenex :=
Brand, tissues := Product and have the flexibility to present
relevant SKUs from other brands at a lower position in the recall.
Currently, we do not support a parent-child relationship between
brands (for example: Nike) and sub-brands (for example: Nike Air).
and treat each sub-brand as a variation of the original brand.
2.4</p>
    </sec>
    <sec id="sec-7">
      <title>Slots</title>
      <p>We propose five slots or properties - synonyms, attributes,
primary_attributes, brand and default_product and show how they
can be used to recall relevant SKUs for a given query. The
synonyms slot indicates synonyms of a given class and are typically
used to address alternate phrases used to describe the same item.
The synonyms slot exists for all classes in our ontology.
The attributes slot has the Product class as its domain and the
Attributes class as the range. It helps in specifying all relevant
attributes for a given SKU. Since we insist on atomic products,
this slot helps us in distinguishing relevant SKUs from irrelevant
SKUs in the recall. Consider the two queries “Dining Chair” and
“Outdoor Chair”, which refer to two very diferent products even
though they are both chairs. The NERC system is able to extract
the attributes dining and outdoor for those two queries and is able
to boost SKUs that match these attributes to the top of the recall.
Thus, the customer is presented with relevant SKUs in each case
even though the product type of both queries is the same.
Consider a search query “cotton shirt”, where the NERC system
is able to extract the material cotton. As discussed previously, the
system will retrieve all shirts and automatically boost cotton shirts
so that they appear the top of the recall. Let us assume that there are
two SKUs - one shirt made of 100% cotton and the other shirt made
out of 95% polyester and only 5% cotton. If there is no notion of
primary_attributes both SKUs will receive the same attribute boost
and will be considered equally relevant. The primary_attributes is
a special slot that maps a Product with a single Material or Color
subclass. In case of the previous example the primary_attribute will
point to cotton := Material for the first SKU and polyester
:= Material for the second. This slot helps increase relevancy by
boosting only SKUs that match the corresponding primary color or
material.</p>
      <p>The Brands slot has the Product class as the domain and the Brands
class as the range. It defines the manufacturer for a given SKU. As
mentioned previously, the default_product slot helps in assigning
a product to a small set of brands like Kleenex that are used
synonymously with products. Both slots help increase relevancy by
boosting all SKUs that match the extracted brand from the query
but without sacrificing the ability to show SKUs from other brands
at lower positions on the search page.</p>
      <p>Our current implementation of ranking SKUs is rather simple
providing fixed boosts when products, brand and attributes from
the query match products, brands and attributes in the SKU. In
future, we will use these matches in conjunction with a ranking
model to further improve relevancy.
3</p>
    </sec>
    <sec id="sec-8">
      <title>ONTOLOGY LEARNING</title>
      <p>
        The task of building an ontology is a time consuming and expensive
task and usually involves a domain expert. Techniques that support
ontology engineering and reduce the cost of building and
maintaining ontology are required to ensure that this task is scalable.
Ontology learning can be thought of as data driven methods that
support building ontologies by deriving classes and meaningful
relations between them. Petucci et al [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] formulate the problem
of ontology learning from natural language as a transductive
reasoning task that learns to convert natural language to a logic based
specification. It breaks down the problem into two tasks - sentence
transduction phase and sentence tagging phase. It uses RNN for
sentence tagging and RNN Encoder-Decoder model for sentence
transduction.
      </p>
      <p>
        The term extraction layer is the lowest layer in the cake. It aims to
learn the relevant terminology of the domain. A naive approach
is to just use term frequencies assuming that relevant concepts
are also most frequent. However, other sophisticated methods like
TF-IDF [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] or C-value/NC-value measure proposed in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] can also
be used.
      </p>
      <p>
        The next layer is the synonym extraction layer, which deals with
extracting synonyms for the terms identified in the previous layer.
Synonyms can be extracted using a distributional representation of
words, which claim that similar words share similar contexts [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
Semantic relatedness using wordnet or Wikipedia categories can
be used as well [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        The third layer is the concept formation layer, which provides a
definition of concepts, their extension and the lexical signs which
are used to refer to them. The fourth layer is the concept
hierarchy layer, which deals with inducing, extending and refining the
ontology hierarchy. This task can be accomplished by methods
like matching lexico-syntactic patterns as demonstrated by Hearst
in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], clustering diferent objects based on their feature vectors
and using phrase analysis i.e., making use of internal structure of
noun phrases to discover taxonomic relations [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
      <p>
        The fifth and sixth layers deal with Relations, which is the task of
learning relation labels (or identifiers) as well as their
corresponding domain and range. Some common methods include finding
co-occurrence between words as proposed by Madche [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
The last two layers are Axiom Schemata and General Axioms, which
are related to rules and axioms. These two layers deal with
transformation of natural language definitions into OWL Description
Logic axioms, and building a domain specific ontology by pruning
an existing general ontology using the given corpus [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Since we do not deal with axioms, the last two layers of the ontology
learning cake are not relevant to our task. The first three layers
require most manual efort and are most time consuming for our task.
This paper describes three methods that can automatically derive
terms and Product concepts, which correspond to the first and the
third layer in the ontology learning layer cake. Ontology creation
cannot be fully automated and our methods produce candidates for
manual review, greatly decreasing the time required for ontology
development. These methods do not address the problem of
synonym resolution but other methods that use click logs on top of an
existing ontology can help with the second layer. Unfortunately,
describing this method is beyond the scope of this paper.
      </p>
    </sec>
    <sec id="sec-9">
      <title>AUTOMATICALLY EXTRACTING</title>
    </sec>
    <sec id="sec-10">
      <title>PRODUCT ENTITIES</title>
      <p>We describe three methods (Token Graph Method, Augmented
Graph Method and LSTM-CRF method) that can be used to
automatically extract atomic Product entities from a customer’s search
query. Two of these methods may also be extended to extract
relevant attributes and brands from the search query as well as from
product titles. We then compare the performance of these three
methods relative to each other.</p>
      <p>We assume that there exists a bipartite graph G : q 7→ S that
maps a customer’s search query q to a set of clicked SKUs S. This
graph may be further augmented by including SKUs that were
added to cart or bought. Search queries and SKUs are represented
by nodes in the graph and an edge between a query and a SKU
indicates that a customer searched for the query and clicked on the
corresponding SKUs. The weight of the edge indicates the strength
of the relationship between the query and the SKU and is modeled
using number of clicks between the query and the SKU aggregated
over a certain length of time. There are no edges between queries
or between SKUs. Very broad queries like “cheap” or “clothing”
either do not contain any products or contain very generic product
terms and add noise to the data. We use entropy of a query across
diferent categories to determine if it is broad and remove it from
the graph. We also remove queries that are just brands from the
graph and query-SKU pairs that have edge weights less than some
threshold (T ). Finally, we apply a stemmer to perform stemming
for terms in the query. Let G ′ denote this cleaned bipartite graph.
The task can be formulated as follows: Given a cleaned bipartite
click graph G ′, compute a sorted list of Product sub-classes that are
atomic and relevant for that category. We present three methods to
create the sorted list of Product classes and compare them.
4.1</p>
    </sec>
    <sec id="sec-11">
      <title>Token Graph Method</title>
      <p>This method is a very simple unsupervised method for
extracting relevant products from a customer’s search query and can
be applied to any category without any previous data. Let C =
{q0, q1, . . . , qn , s0, s1, . . . sm } be a connected component in the
bipartite graph G ′ mentioned previously. Let Q = {q0, q1, . . . , qn } be
a set of queries in this connected component and we can assume
that all of them are related to each other because they share some
of the same clicked SKUs. Let us assume that we can detect
prepositions in the query and have removed them and all words after it
from the query. Each token in the query is either a brand, product,
attribute or other (part number, stopword, etc.) and we can create a
new graph Gtoken where each token is a node and there are edges
between adjacent tokens. Figure 3 shows the token graph Gtoken
for the query set {women dress, white dress, DKNY sleeveless dress
white}. Most often, the product token is the last term in the query
before any prepositions and thus it is the node that maximizes the
ratio NoN+iNi , where No is the number of outgoing edges and Ni
is the number of incoming edges for the node corresponding to
the token. If the search query contains just a single token, we set
ni = no = 1. We can further improve precision by requiring that
Ni ≥ T , where T is some threshold. There are obvious exceptions to
the rule, for example the search query: “DKNY sleeveless dress
white” where the product dress does not appear in the end of the
query. However, we assume that such cases are rare and assume
that aggregating this process over all related queries takes care of
the occasional exception. We can generate a potential product from
each connected component and aggregating over all connected
components gives us a potential list of products.</p>
    </sec>
    <sec id="sec-12">
      <title>Augmented Graph Method</title>
      <p>The graph method in the previous section works pretty well but
makes a very strong assumption that the product always appears
towards the end of the search query. It is also very aggressive in
removing the preposition and all tokens after it. For example, it
will convert the query ‘’seven for all mankind skinny jeans”
to “seven”, which is obviously wrong. Finally, it is oblivious to the
parts-of-speech of the terms.</p>
      <p>
        Typically, product words are nouns (television, shirt, etc.) and we
can take advantage of parts-of-speech tags to improve the
accuracy of the system. One option is to use global parts-of-speech
tags from wordnet [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] or some other similar repository. However,
a word like pack may be used as a noun (battery pack) or a
verb (pack your stuff) depending upon the category. Another
problem with using a service like wordnet is that it may not
contain some brand words like Samsung. A better approach is to use a
service like Google’s SyntaxNet [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] to generate parts-of-speech
tags on the fly and this helps us retain local information as well as
get parts-of-speech tags for brands like Samsung. We realized that
most queries are not grammatically correct and so the generated
parts-of-speech tags may not be very accurate. To get around this
problem, we ran SyntaxNet on the descriptions of all SKUs in G ′ to
generate a mapping between terms and their parts-of-speech tags.
Let viP = [NOUN , VERB, ADVERB, ADJ, PREP, NUM, . . .]
denote a vector ∈ R7 that represents the parts-of-speech for some
term ti . Here, N OU N indicates the fraction of the time the part of
speech tag for that term was a noun, V ERB indicates the fraction of
the time the part of speech tag for that term was a verb and so on.
We can use this map to generate parts-of-speech vectors for each
term in the search query. We found that it was better to aggregate
the parts of speech tags for terms across the entire category because
the quality of descriptions greatly varies across SKUs. Thus, the
parts of speech vector for each term is constant across the entire
category.
      </p>
      <p>We want to capture the local graph information discussed in the
previous section. This can be done by creating the local graph and
computing the number of incoming and outgoing edges for each
ni
term in the query. Let viG = [ni , no , ni +no ] denote a vector that
captures local graph information for the ith term. Here, ni indicates
the number of incoming edges for the node denoting the term in
the local graph and no indicates the number of outgoing edges for
the same node.</p>
      <p>Let viN = N − i denote a scalar describing the position of the ith
term in the search query, where N is the number of terms in that
query. This vector helps the model prefer later words in the query
as products.</p>
      <p>Finally, let vi = (viP , viG , viN ) denote a concatenated vector that
captures all relevant information for the ith term in the query and
let V = (v0, v1, . . . , vn ) denote the vector for the entire search term.
We will use this vector as an input to the model to predict the
product terms from the search query. We use a convolution neural
network (CNN) that consists of three convolution layers with filter
sizes of n1 = 7 for the first layer, n2 = 5 for the second layer and
n3 = 3 for the third layer. The number of filters are set to 256 in
each case. There is no max-pooling layer because we want to keep
the filter information for each stride. The output of the last filter is
then passed to fully-connected layers with a time-distributed-dense
layer as the very last layer for making tag predictions.
The intuition behind this model is that the convolution layers are
able to capture local information using the parts-of-speech tags
of surrounding terms and the number of incoming and outgoing
edges for the terms in the vicinity. It is then able to make a decision
by combining all three vectors to predict if a term in the query
is a product or not. The model is trained using queries across six
categories (Electronics, Women’s clothing, Men’s clothing, Kid’s
clothing, Furniture, and Home) and the tested using queries from the
Baby category. Each query can give zero or more product candidates
and we aggregate candidates from all queries to come up with a list
of potential products.
4.3</p>
    </sec>
    <sec id="sec-13">
      <title>NER Model using Bidirectional LSTM-CRF</title>
      <p>
        This model is very diferent from the two described earlier. It does
not look at the local term graph but makes a decision using a
word2vec [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] vector for each term in the query. The word2vec
vectors are of dimension D = 300 and are generated using data
from Wikipedia and from SKU titles from the Jet.com catalog. The
training data consists of queries where each term has been tagged
in IOB format with either a O (other), B-PRODUCT (beginning of
product) or I-PRODUCT (intermediate of product). For example, the
query phrase metal bar stool for kitchen would be tagged as:
metal O bar B-PRODUCT stool I-PPRODUCT for O kitchen O. We use
bi-directional LSTM-CRF model described in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] to train the NER
model. The training data was tagged automatically using existing
the existing query and SKU understanding service along with user
engagement data to filter out potentially bad results.
      </p>
      <p>ht = ot ⊙ tanh(ct )
ot = σ (Wxoxt + Whoht −1 + Wcoct + bo )
ct = (1 − it ) ⊙ ct −1 + it ⊙ tanh(Wxc xt + Whc ht −1 + bc )
it = σ (Wxi xt + Whi ht −1 + Wci ct −1 + bi )
(1)
Let S = (x1, x2, ..., xn ) represent a sentence containing n words
where xt represents the word at position t and each word is
represented by a d-dimensional vector. We compute the left-context
→h−t using a forward LSTM and also a right-context h←−t using a
backward LSTM, which reads the same sequence in reverse order. The
contexts →h−t and h←−t are computed as shown in equation 1, where σ
is the element-wise sigmoid function, ⊙ is the element-wise
product, W is the weight matrix and b is the bias. The left and right
contexts are then concatenated to represent a word representation
ht = [→h−t , h←−t ], which is used by the conditional random field (CRF)
for NER tagging.</p>
      <p>Lexical features of queries can be quite diferent across categories.
So for this method to generalize well, it was important to select the
training dataset such that the labeled queries belonged to
diferent categories. We chose queries from six categories (Electronics,
Women’s clothing, Men’s clothing, Kid’s clothing, Furniture, and
Home) for training data and extracted candidate products using
queries from the Baby category.
4.4</p>
    </sec>
    <sec id="sec-14">
      <title>Model comparison</title>
      <p>The token graph method described in section 4.1 is an
unsupervised model and so does not require any training data. The other
two models are trained using labeled queries from six categories
and all three models are tested using the same test set, which are
queries from the Baby category. We exclude all broad queries and all
queries that are just brands to keep it consistent with the training
data. We believe that this is a fair test as it allows us evaluate the
model’s performance on a previously unseen category - a task that
is essential for automatically creating ontologies.</p>
      <p>Each model produces potential product candidates from queries
and these candidates are sorted in decreasing order of frequency.
We evaluate the top 500 candidates from each model and manually
verify if each potential product was actually a product or not. We
consider a term to be a product only if it is atomic and sellable on
the site. For example, diaper is a product but baby (we don’t sell
babies) and diaper cover (not atomic) are not. Table 1 shows the
top ten candidates (from the top 500 candidates) from each model
along with our manually annotated results denoting if the given
entry is a product (P ) or not (N ).</p>
      <p>Figure 4 shows a precision @ n graph for all the three models over
their top 500 candidates. The LSTM-CRF model produced just over
300 candidates and so its graph is truncated. Both the augmented
graph method and the LSTM-CRF method have a higher precision
initially and are able to correctly identify products from the query
logs. Figure 5 shows a zoomed in view of the first 100 candidates
and it can be observed that the augmented graph model is able to
predict products more accurately than the LSTM-CRF method. As
expected the naive graph method performs the worst in terms of
accuracy but can return more products than the LSTM-CRF method.
The naive graph method may seem like the worst method but it
has one very significant advantage over the other two methods - it
is completely unsupervised. This allows it to be used when there
is no training data from other categories. We recommend that this
method should be used initially and it can pave the way for the
other two supervised methods for other categories.
5</p>
    </sec>
    <sec id="sec-15">
      <title>CONCLUSION</title>
      <p>In this work we proposed a search-side ontology that can be used
for Named Entity Recognition and Classification of Queries. We
show that this ontology is better suited for search as compared to
supply-side or catalog-side ontologies. We propose three methods
to generate Product classes for this ontology. We also compare
the three methods and show that the Augmented Graph Method
which uses local token information along with parts-of-speech tags
performs better than the naive Graph Method and the bidirectional
LSTM-CRF method in generating Product classes.</p>
    </sec>
    <sec id="sec-16">
      <title>ACKNOWLEDGMENTS</title>
      <p>The authors would like to thank Brent Scardapane and Dennis
Jordan for their help with the ontology creation process.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Paul</given-names>
            <surname>Buitelaar</surname>
          </string-name>
          and
          <string-name>
            <given-names>Bogdan</given-names>
            <surname>Sacaleanu</surname>
          </string-name>
          .
          <year>2001</year>
          .
          <article-title>Ranking and selecting synsets by domain relevance</article-title>
          .
          <source>In Proceedings of WordNet and Other Lexical Resources: Applications</source>
          , Extensions and Customizations, NAACL 2001 Workshop. Citeseer,
          <volume>119</volume>
          -
          <fpage>124</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Bruno</given-names>
            <surname>Charron</surname>
          </string-name>
          , Yu Hirate, David Purcell,
          <string-name>
            <given-names>and Martin</given-names>
            <surname>Rezk</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Extracting semantic information for e-commerce</article-title>
          .
          <source>In International Semantic Web Conference</source>
          . Springer,
          <fpage>273</fpage>
          -
          <lpage>290</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Philipp</given-names>
            <surname>Cimiano</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Ontology Learning and Population from Text: Algorithms, Evaluation and Applications</article-title>
          . Springer-Verlag, Berlin, Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Hamish</given-names>
            <surname>Cunningham</surname>
          </string-name>
          , Diana Maynard, Kalina Bontcheva, and
          <string-name>
            <given-names>Valentin</given-names>
            <surname>Tablan</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>GATE: A Framework and Graphical Development Environment for Robust NLP Tools and Applications</article-title>
          .
          <source>In Proceedings of the 40th Anniversary Meeting of the Association for Computational Linguistics (ACL'02).</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Hamish</given-names>
            <surname>Cunningham</surname>
          </string-name>
          , Valentin Tablan, Angus Roberts, and
          <string-name>
            <given-names>Kalina</given-names>
            <surname>Bontcheva</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Getting more out of biomedical documents with GATE's full lifecycle open source text analytics</article-title>
          .
          <source>PLoS computational biology 9</source>
          ,
          <issue>2</issue>
          (
          <year>2013</year>
          ),
          <year>e1002854</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Ying</given-names>
            <surname>Ding</surname>
          </string-name>
          , Dieter Fensel, Michel Klein, Borys Omelayenko, and
          <string-name>
            <given-names>Ellen</given-names>
            <surname>Schulten</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>The role of ontologies in ecommerce</article-title>
          .
          <source>In Handbook on ontologies. Springer</source>
          ,
          <fpage>593</fpage>
          -
          <lpage>615</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Katerina</surname>
            <given-names>T</given-names>
          </string-name>
          <string-name>
            <surname>Frantzi</surname>
            and
            <given-names>Sophia</given-names>
          </string-name>
          <string-name>
            <surname>Ananiadou</surname>
          </string-name>
          .
          <year>1999</year>
          .
          <article-title>The C-value/NC-value domainindependent method for multi-word term extraction</article-title>
          .
          <source>Journal of Natural Language Processing 6</source>
          ,
          <issue>3</issue>
          (
          <year>1999</year>
          ),
          <fpage>145</fpage>
          -
          <lpage>179</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Evgeniy</given-names>
            <surname>Gabrilovich</surname>
          </string-name>
          and
          <string-name>
            <given-names>Shaul</given-names>
            <surname>Markovitch</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Computing semantic relatedness using wikipedia-based explicit semantic analysis.</article-title>
          .
          <source>In IJcAI</source>
          , Vol.
          <volume>7</volume>
          .
          <fpage>1606</fpage>
          -
          <lpage>1611</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Rafael</given-names>
            <surname>Glater</surname>
          </string-name>
          ,
          <source>Rodrygo LT Santos, and Nivio Ziviani</source>
          .
          <year>2017</year>
          .
          <article-title>Intent-Aware Semantic Query Annotation</article-title>
          .
          <source>In Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM</source>
          ,
          <volume>485</volume>
          -
          <fpage>494</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Clinton</given-names>
            <surname>Gormley</surname>
          </string-name>
          and
          <string-name>
            <given-names>Zachary</given-names>
            <surname>Tong</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Elasticsearch: The Definitive Guide: A Distributed Real-Time Search</article-title>
          and
          <string-name>
            <given-names>Analytics</given-names>
            <surname>Engine. " O'Reilly Media</surname>
          </string-name>
          ,
          <source>Inc.".</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Trey</surname>
            <given-names>Grainger</given-names>
          </string-name>
          , Timothy Potter, and
          <string-name>
            <given-names>Yonik</given-names>
            <surname>Seeley</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Solr in action</article-title>
          .
          <source>Manning Cherry Hill.</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Marti</surname>
            <given-names>A</given-names>
          </string-name>
          <string-name>
            <surname>Hearst</surname>
          </string-name>
          .
          <year>1992</year>
          .
          <article-title>Automatic acquisition of hyponyms from large text corpora</article-title>
          .
          <source>In Proceedings of the 14th conference on Computational linguistics-Volume 2. Association for Computational Linguistics</source>
          ,
          <fpage>539</fpage>
          -
          <lpage>545</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Jian</surname>
            <given-names>Hu</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gang</surname>
            <given-names>Wang</given-names>
          </string-name>
          , Fred Lochovsky, Jian-tao
          <string-name>
            <surname>Sun</surname>
            , and
            <given-names>Zheng</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Understanding user's query intent with wikipedia</article-title>
          .
          <source>In Proceedings of the 18th international conference on World wide web. ACM</source>
          ,
          <volume>471</volume>
          -
          <fpage>480</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Guillaume</surname>
            <given-names>Lample</given-names>
          </string-name>
          , Miguel Ballesteros, Sandeep Subramanian, Kazuya Kawakami, and
          <string-name>
            <given-names>Chris</given-names>
            <surname>Dyer</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Neural Architectures for Named Entity Recognition</article-title>
          .
          <source>CoRR abs/1603</source>
          .01360 (
          <year>2016</year>
          ). arXiv:
          <volume>1603</volume>
          .01360 http://arxiv.org/abs/1603.01360
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Taehee</given-names>
            <surname>Lee</surname>
          </string-name>
          , Ig-hoon
          <string-name>
            <surname>Lee</surname>
          </string-name>
          , Suekyung Lee, Sang-goo
          <string-name>
            <surname>Lee</surname>
            , Dongkyu Kim, Jonghoon Chun,
            <given-names>Hyunja</given-names>
          </string-name>
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>and Junho</given-names>
          </string-name>
          <string-name>
            <surname>Shim</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Building an operational product ontology system</article-title>
          .
          <source>Electronic Commerce Research and Applications 5</source>
          ,
          <issue>1</issue>
          (
          <year>2006</year>
          ),
          <fpage>16</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Alexander</given-names>
            <surname>Maedche</surname>
          </string-name>
          and
          <string-name>
            <given-names>Stefen</given-names>
            <surname>Staab</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>Discovering conceptual relations from text</article-title>
          .
          <source>In Ecai</source>
          , Vol.
          <volume>321</volume>
          . 27.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>Alexander</given-names>
            <surname>Maedche</surname>
          </string-name>
          and
          <string-name>
            <given-names>Stefen</given-names>
            <surname>Staab</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>Ontology learning</article-title>
          .
          <source>In Handbook on ontologies. Springer</source>
          ,
          <fpage>173</fpage>
          -
          <lpage>190</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Tomas</surname>
            <given-names>Mikolov</given-names>
          </string-name>
          , Ilya Sutskever, Kai Chen, Greg S Corrado, and
          <string-name>
            <given-names>Jef</given-names>
            <surname>Dean</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Distributed representations of words and phrases and their compositionality</article-title>
          .
          <source>In Advances in neural information processing systems</source>
          .
          <volume>3111</volume>
          -
          <fpage>3119</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>George</surname>
            <given-names>A</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
          </string-name>
          .
          <year>1995</year>
          .
          <article-title>WordNet: a lexical database for English</article-title>
          .
          <source>Commun. ACM</source>
          <volume>38</volume>
          ,
          <issue>11</issue>
          (
          <year>1995</year>
          ),
          <fpage>39</fpage>
          -
          <lpage>41</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>David</given-names>
            <surname>Nadeau</surname>
          </string-name>
          and
          <string-name>
            <given-names>Satoshi</given-names>
            <surname>Sekine</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>A survey of named entity recognition and classification</article-title>
          .
          <source>Lingvisticae Investigationes</source>
          <volume>30</volume>
          ,
          <issue>1</issue>
          (
          <year>2007</year>
          ),
          <fpage>3</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Natalya</surname>
            <given-names>F Noy</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deborah L McGuinness</surname>
          </string-name>
          , et al.
          <year>2001</year>
          .
          <article-title>Ontology development 101: A guide to creating your first ontology</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Giulio</surname>
            <given-names>Petrucci</given-names>
          </string-name>
          , Chiara Ghidini, and
          <string-name>
            <given-names>Marco</given-names>
            <surname>Rospocher</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Ontology learning in the deep</article-title>
          .
          <source>In European Knowledge Acquisition Workshop</source>
          . Springer,
          <fpage>480</fpage>
          -
          <lpage>495</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Borislav</surname>
            <given-names>Popov</given-names>
          </string-name>
          , Atanas Kiryakov, Damyan Ognyanof, Dimitar Manov, and
          <string-name>
            <given-names>Angel</given-names>
            <surname>Kirilov</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>KIM-a semantic platform for information extraction and retrieval</article-title>
          .
          <source>Natural language engineering 10</source>
          ,
          <fpage>3</fpage>
          -
          <lpage>4</lpage>
          (
          <year>2004</year>
          ),
          <fpage>375</fpage>
          -
          <lpage>392</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Daniel</surname>
            <given-names>E</given-names>
          </string-name>
          <string-name>
            <surname>Rose</surname>
            and
            <given-names>Danny</given-names>
          </string-name>
          <string-name>
            <surname>Levinson</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>Understanding user goals in web search</article-title>
          .
          <source>In Proceedings of the 13th international conference on World Wide Web. ACM</source>
          ,
          <volume>13</volume>
          -
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>David</given-names>
            <surname>Sánchez</surname>
          </string-name>
          and Antonio Moreno.
          <year>2005</year>
          .
          <article-title>Web-scale taxonomy learning</article-title>
          .
          <source>In Proceedings of Workshop on Extending and Learning Lexical Ontologies using Machine Learning (ICML</source>
          <year>2005</year>
          ).
          <fpage>53</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Announcing</surname>
            <given-names>SyntaxNet.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>The Worlds Most Accurate Parser Goes Open Source</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>Gerhard</given-names>
            <surname>Wohlgenannt</surname>
          </string-name>
          and
          <string-name>
            <given-names>Filip</given-names>
            <surname>Minic</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Using word2vec to Build a Simple Ontology Learning System.</article-title>
          .
          <source>In International Semantic Web Conference (Posters &amp; Demos).</source>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Ziqi</surname>
            <given-names>Zhang</given-names>
          </string-name>
          , José Iria, Christopher Brewster, and
          <string-name>
            <given-names>Fabio</given-names>
            <surname>Ciravegna</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>A comparative evaluation of term recognition algorithms</article-title>
          . (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>