<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Team Waterloo at the SIGIR E-Commerce Data Challenge</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Angshuman</forename><surname>Ghosh</surname></persName>
							<email>a25ghosh@uwaterloo.ca</email>
						</author>
						<author>
							<persName><forename type="first">Vineet</forename><surname>John</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Rahul</forename><surname>Iyer</surname></persName>
							<email>rahul.iyer@uwaterloo.ca</email>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="institution">University of Waterloo</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<orgName type="institution">University of Waterloo</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<orgName type="institution">University of Waterloo</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff3">
								<address>
									<settlement>Ann Arbor</settlement>
									<region>Michigan</region>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Team Waterloo at the SIGIR E-Commerce Data Challenge</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9AE9DFB170F12A5D297E66089D8A02C3</idno>
					<idno type="DOI">10.1145/nnnnnnn.nnnnnnn</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T06:32+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>taxonomy,classification</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper describes the methods we use to solve a taxonomy classification problem specific to categorization of products in an e-commerce catalog. We describe the use of learning algorithms like multinomial naive-bayes, logistic regressors, batched gradientdescent classifiers and neural softmax classifiers retro-fitted for the hierarchical classification objective. We explore methods that exploit the hierarchical nature of the data, and compare it against flat classification approaches. We use simple models with minimal pre-processing to build and compare classifiers by reporting their respective weighted precision, recall and F 1 score metrics on the test data-set.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">INTRODUCTION</head><p>Taxonomy classification is a multi-label classification problem where the classes form a hierarchy, as in a tree or a directed acyclic graph (DAG). Although a significant amount of research in natural language processing (NLP) pertains to flat-classification problems, class hierarchies are fairly common in the real-world, and it follows that are there are tasks that require classification algorithms that address such hierarchical classification problems.</p><p>Hierarchies emerge as a natural result of the organization of extensive data-sets into fine-grained categories <ref type="bibr" target="#b5">[6]</ref>. In this task we work with a product catalog taxonomy, with each individual product being a part of an increasingly finer-grained category. The objective of the task is to be able to accurately predict the entire class hierarchy under which the product is categorized.</p><p>The contributions of this paper are the evaluation of different strategies including flat and hierarchical classification, and the implementation of a general framework to address the task of taxonomy classification.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">RELATED WORK</head><p>Taxonomy classification is a topic well-explored within the NLP community, with several novel approaches over the past two decades. It is also known in the literature as 'hierarchical' or 'structured' classification. The nature of the task implies that binary and multi-class classifiers cannot be used as is to solve this problem. However, these existing algorithms can be re-purposed for taxonomy classification, as will be subsequently discussed in Section 3.</p><p>The seminal work on taxonomy classification was published by KOLLER. The authors propose learning a small set of features to solve each classification task in the tree structure independently. This method involves training a classifier for each non-leaf node in the tree. This model comprises a top-down approach under the assumption that the instance is already classified with respect to all the labels that precede the current label in the hierarchy. This also drastically reduces the number of target classes' probabilities to predict. However, a drawback of this approach is the large number of models that need to be trained to facilitate it. It also suffers from the cascading effect of classification failure i.e. all subsequent classifications after an incorrect classification will also be incorrect.</p><p>Since the most common schemes for multi-class classification in general are the One-vs-One and One-vs-All schemes, support vector machines, being max-margin classifiers, have been used frequently to address this task in previous works <ref type="bibr" target="#b4">[5]</ref> [4] <ref type="bibr" target="#b1">[2]</ref>. These works have used the SVM in the standard flat multi-classification setting and also proposed changes to adapt the classifier to the hierarchical setting, namely the Binary Hierarchical Classifier (BHC) <ref type="bibr" target="#b3">[4]</ref> and the Hierarchical SVM (H-SVM) <ref type="bibr" target="#b1">[2]</ref>. Our approaches, in contrast, use simpler estimators, and rely on on minimal post-processing for a few among them to collate the predictions in the event of multiple classifiers being used for a single learning algorithm.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">APPROACH</head><p>In Section 3.1, we describe the data cleaning and simple intuitions we use to guide our learning strategies. We subsequently describe each of the approaches that we utilized to obtain the requisite predictions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Preprocessing</head><p>Each data instance to be classified in this task is a product name, which is usually comprised of the product's canonical name, a brand name and any high-level specifications (like dimensions, color etc.) if applicable.</p><p>There are 3008 unique category paths known from the training data, with a maximum category depth of 8.</p><p>As opposed to full sentences, there is intuitively a lesser advantage in implementing a forget mechanism for past contexts in a product name, disincentivizing the use of recurrent networks as feature extractors.</p><p>Also, most of the numbers in the data-set, for instance, in the examples presented in Hence, we trim the numbers from the product names, in addition to trimming the default english stopwords from curated dictionaries maintained by NLTK 1 , spaCy 2 and scikit-learn 3 . This eliminates most of the conjunctions and prepositions used within a product name that are not relevant to its class. Additionally, we also remove any word less that 3 characters in length, to eliminate most of the uninformative measure of quantities (e.g. V, mm, oz etc.).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">One vs. All Classification</head><p>The class taxonomy provided is a Tree and each leaf node uniquely identifies a class. Thus, for our initial trials, we decided to train models using only leaf nodes. We used two classifiers: Multinomial Naive Bayes (MNB) and XGBoost <ref type="bibr" target="#b0">[1]</ref>. While there were no hyperparameters for MNB, XGBoost has a considerable number of tunable parameters. XGBoost is an ensemble method where a large number of decision trees are combined using gradient boosting and it has performed really well in multiple Kaggle competitions. The two most important hyper parameters are the depth of the decision trees that are grown, and the number of trees that are trained. We performed a random search for parameters and obtained the best results with a max-depth of 7 and 200 estimators.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Multi-level Classification</head><p>This classifier attempts to exploit the hierarchical nature of the categories. This requires using multiple classifiers (one for each level of the taxonomy tree), and combining their eventual prediction results to form the entire category path prediction. Based on the training set, the count of unique classes to predict at each level is shown in Table <ref type="table" target="#tab_2">2</ref>. This is analogous to the Local Classifier Per Level approach discussed in a comprehensive survey of hierarchical classification methods <ref type="bibr" target="#b7">[8]</ref>. This is not a hierarchical classification algorithm in itself, but the method serves to correct the hierarchical inconsistencies that result from predicting the class at each level in isolation. To contextualize this approach with the current problem, we train 8 separate classifiers, each the input for each classifier being the features extracted from the product name and the output being the probability distribution across all the possible classes at the specific level for which the classifier was trained, as depicted in Figure <ref type="figure" target="#fig_1">1</ref>. The feature extractor for this model is a bag-of-words tf-idf vectorizer.  However, this method suffers from the shortcoming of disjoint predictions from level-to-level. For example, from the classifier 1 may predict a class that is not a descendant of the prediction of class 0. In this event, some additional processing is required such that the final category path is valid.</p><p>We use a greedy search within the empirically computed logprobabilities of classifiers for level ≥ 1. Instead of predicting the child class with the maximum log-likelihood predicted by the classifier, we simply chose the next level's prediction to be the valid child of the previous level's prediction with the maximum log-likelihood. An alternative to this approach would be to evaluate multiple possibilities at each level in a beam-search with the objective of maximizing sum of their log-likelihood. An obvious drawback of using this method is that an incorrect prediction at a level will result in incorrect predictions at all of the levels below it.</p><p>If a the class predicted at any level happens to be a leaf node, the search is terminated. This is a safe operation to do, as the tree nodes in the product data-set are exclusively either leaf or non-leaf nodes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Neural Classification</head><p>We build multiple models using artificial neural networks as the function approximators with non-linear activation functions (ReLU).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.1">Simple</head><p>Multi-Layer Perceptron. The feature extractor for the first neural classifier uses the tf-idf weighting scheme for the words in the corpus, and a single hidden layer of neurons to predict the entire category path of each product. In this formulation, the entire category path, like '2296&gt;3597&gt;2989', for instance, is treated as a distinct class.</p><p>Another neural network model we tried was using the ULMFiT <ref type="bibr" target="#b6">[7]</ref> pre-trained weights trained on Wikipedia-103 data-set and finetuning the language model to predict the taxonomy. This method didn't produce any better results as the data-set contained a lot of rare words and the number of examples to fine-tune the embeddings layer was simply not sufficient. We report a precision of 0.64 with this model.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.2">Per-Level</head><p>Multi-Layer Perceptron. We also built a neural network with the number of layers equivalent to the number of the maximum depth of the taxonomy. We employed layer-wise training and used the softmax predictions of a layer along with the word embeddings together as the input for the next layer. The model showed promising results for the initial two levels but the performance fell as the number of classes increased as we go down the tree.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.5">Ensembles</head><p>We also build two ensemble models constructed using all the previously described classifiers. We utilize a simple voting-based scheme for combining the classifier predictions, with the majority label being selected as the final label. We built two different ensembles: (i) Combining predictions made by all the models implemented, (ii) Combining predictions for which the weighted F 1 score was at least 0.70.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">EVALUATION</head><p>The training data is comprised of 800,000 products and their respective category path labels, a subset of which we hold out for validation. The test set is comprised of 200,000 products, on which the experiment results are reported.</p><p>The metrics used to evaluate model performance, are weighted precision, recall and a F 1 scores.</p><p>Table <ref type="table" target="#tab_3">3</ref> shows the performance of each of the models against the test set. We observe that even simple classification approaches that ignore the hierarchical nature of the data, like the Flat MLP classifier, obtains the best scores among the different models used, with the ensembling methods achieving comparable performance.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Approach</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">DISCUSSION</head><p>Based on our experimentation and reported results, there seems to be little to no advantage in using methods that predict each level of the category path independently. This could be attributed to the fact that the evaluation metric is equally punitive for both partially correct and completely incorrect category paths, thereby, providing no extra benefit for paths that are partially correct, typically seen in piece-wise constructed methods like the per-level local classifier approach.</p><p>We evaluated a per-level local classifier, using a batched gradientdescent model and a neural model. These were post-processed to include only valid category-paths. However, these turned out to be our worst performing models. The baseline against the flat classification model using the same classification algorithm and hyper-parameters indicates that leaf-node only flat classification performs better and our subsequent evaluations were restricted to flat classifiers.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">CONCLUSION</head><p>In this paper, we describe our approach to address the taxonomy classification task for product categorization. We build a variety of models include flat and per-level classifiers, implemented using multinomial naive-bayes, logistic regressor, batched SGD classifier and multi-layer perceptron models. Our best performing model uses a minimal amount of data-preprocessing, and uses a single hidden layer in an MLP model with non-linear activations with the features extracted using a tf-idf weighting scheme vectorizer.</p><p>In future work, we would like to explore the possibility of training a distinct model per non-leaf node to address offset the problem of having to perform a greedy search for postprocessing in the per-level classifier approach, as well as to implement additional boosting techniques to ensemble our best performing models.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Another work, published by McCallum et al. uses shrinkage to improve classification of a hierarchy of text articles. They use a maximum log-likelihood estimate (MLE) based objective to shrink the MLE of each node towards the MLEs of all its ancestors.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Classifier per level architecture</figDesc><graphic coords="2,337.20,224.56,201.76,134.80" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc>are used to quantify specifications Replacement Viewsonic VG710 LCD Monitor 48Watt AC Adapter 12V 4A 4-Pack Replacement Engine Air Filter for 2009 Sterling Truck Bullet 55 L6 6.7 Car/Automotive Luscious Pink Perfume 3.4 oz Eau De Parfum Spray For Women By MARIAH CAREY</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 :</head><label>1</label><figDesc>Examples of products with numbers of the product, and are not useful unless they're part of the brand or product name itself.</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 2 :</head><label>2</label><figDesc>Level-wise category counts</figDesc><table><row><cell>1 http://www.nltk.org/nltk_data 2 https://github.com/explosion/spaCy/blob/master/spacy/lang/en/stop_words.py 3 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/feature_</cell></row><row><cell>extraction/stop_words.py</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 3 :</head><label>3</label><figDesc>Experiment Results</figDesc><table><row><cell></cell><cell>P</cell><cell>R</cell><cell>F1</cell></row><row><cell cols="4">Local-Per-Level Stochastic Gradient Descent 0.50 0.49 0.46</cell></row><row><cell>Flat One-vs-All Multinomial Naive Bayes</cell><cell cols="3">0.55 0.54 0.47</cell></row><row><cell>Flat Stochastic Gradient Descent</cell><cell cols="3">0.65 0.66 0.63</cell></row><row><cell>Flat One-vs-All Logistic Regression</cell><cell cols="3">0.76 0.74 0.72</cell></row><row><cell>Flat One-vs-All XGBoost</cell><cell cols="3">0.77 0.77 0.75</cell></row><row><cell>Flat Multi-Layer Perceptron</cell><cell cols="3">0.78 0.79 0.78</cell></row><row><cell>Ensemble -All</cell><cell cols="3">0.77 0.76 0.75</cell></row><row><cell>Ensemble -XGBoost and Neural Networks</cell><cell cols="3">0.78 0.77 0.75</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Xgboost: A scalable tree boosting system</title>
		<author>
			<persName><forename type="first">Tianqi</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Carlos</forename><surname>Guestrin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining</title>
				<meeting>the 22nd acm sigkdd international conference on knowledge discovery and data mining</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="785" to="794" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Integrating support vector machines in a hierarchical output space decomposition framework</title>
		<author>
			<persName><forename type="first">Yangchi</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Melba</forename><forename type="middle">M</forename><surname>Crawford</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Joydeep</forename><surname>Ghosh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IGARSS&apos;04. Proceedings. 2004 IEEE International</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2004">2004. 2004</date>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="949" to="952" />
		</imprint>
	</monogr>
	<note>Geoscience and Remote Sensing Symposium</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Hierarchically classifying documents using very few words</title>
		<author>
			<persName><forename type="first">D</forename><surname>Koller</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 14th International Conference on Machine Learning</title>
				<meeting>14th International Conference on Machine Learning</meeting>
		<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="170" to="178" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Hierarchical fusion of multiple classifiers for hyperspectral data analysis</title>
		<author>
			<persName><forename type="first">Shailesh</forename><surname>Kumar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Joydeep</forename><surname>Ghosh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Melba</forename><forename type="middle">M</forename><surname>Crawford</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Pattern Analysis &amp; Applications</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="210" to="220" />
			<date type="published" when="2002">2002. 2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Comparing techniques for multiclass classification using binary SVM predictors</title>
		<author>
			<persName><forename type="first">Ana</forename><surname>Carolina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lorena</forename></persName>
		</author>
		<author>
			<persName><forename type="first">André</forename><surname>Carlos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Plf</forename><surname>De Carvalho</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Mexican International Conference on Artificial Intelligence</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="272" to="281" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Improving Text Classification by Shrinkage in a Hierarchy of Classes</title>
		<author>
			<persName><forename type="first">Andrew</forename><surname>Mccallum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ronald</forename><surname>Rosenfeld</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tom</forename><forename type="middle">M</forename><surname>Mitchell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andrew</forename><forename type="middle">Y</forename><surname>Ng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICML</title>
		<imprint>
			<biblScope unit="volume">98</biblScope>
			<biblScope unit="page" from="359" to="367" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">Strong Baselines for Neural Semisupervised Learning under Domain Shift</title>
		<author>
			<persName><forename type="first">Sebastian</forename><surname>Ruder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Barbara</forename><surname>Plank</surname></persName>
		</author>
		<idno type="arXiv">arXiv:1804.09530</idno>
		<imprint>
			<date type="published" when="2018">2018. 2018</date>
		</imprint>
	</monogr>
	<note type="report_type">arXiv preprint</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A survey of hierarchical classification across different application domains</title>
		<author>
			<persName><forename type="first">N</forename><surname>Carlos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alex</forename><forename type="middle">A</forename><surname>Silla</surname></persName>
		</author>
		<author>
			<persName><surname>Freitas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Data Mining and Knowledge Discovery</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="page" from="31" to="72" />
			<date type="published" when="2011">2011. 2011</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
