{"id":7278,"date":"2020-06-19T08:17:35","date_gmt":"2020-06-19T08:17:35","guid":{"rendered":"https:\/\/www.price2spy.com\/blog\/?p=7278"},"modified":"2020-07-28T10:46:18","modified_gmt":"2020-07-28T10:46:18","slug":"part-1-product-matching-via-machine-learning-introduction-to-the-project","status":"publish","type":"post","link":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/","title":{"rendered":"(Part #1) Product matching via Machine Learning &#8211; Introduction to the project"},"content":{"rendered":"\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.price2spy.com\/en\/pricing\/product-matching.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Product matching in Price2Spy<\/a> <\/li><li><strong>Previous topic:<\/strong> <a rel=\"noreferrer noopener\" aria-label=\"Abstract  (opens in a new tab)\" href=\"https:\/\/www.price2spy.com\/blog\/product-matching-via-machine-learning-abstract\/\" target=\"_blank\">Abstract <\/a><\/li><li><strong>Next topic:<\/strong>  <a rel=\"noreferrer noopener\" aria-label=\"Product matching via Machine Learning - Important decisions to be made (opens in a new tab)\" href=\"https:\/\/www.price2spy.com\/blog\/part-2-product-matching-via-machine-learning-important-decisions-to-be-made\/\" target=\"_blank\">Product matching via Machine Learning &#8211; Important decisions to be made<\/a> <\/li><\/ul>\n\n\n\n<p>In the last couple of years, we have all witnessed the rise of new technology &#8211; Artificial Intelligence, or as we in <a href=\"https:\/\/www.price2spy.com\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Price2Spy (opens in a new tab)\">Price2Spy<\/a> prefer to call it: Machine Learning (ML).<\/p>\n\n\n\n<p>The whole concept was new to us, none of the Price2Spy development crew had any experience with it &#8211; but we sensed that it had huge potential, and we were eager to learn.<\/p>\n\n\n\n<p>After a couple of months of courses and theoretical introductions &#8211; we asked ourselves &#8211; how can we apply ML in everyday Price2Spy operations?<\/p>\n\n\n\n<p>We had several candidate-projects, but one of them was our favorite from the very start &#8211; <a href=\"https:\/\/www.price2spy.com\/en\/pricing\/product-matching.html\">Product Matching<\/a>.<\/p>\n\n\n\n<p>Not because it was an easy win. On the contrary, it was the hardest ML problem we could think of &#8211; but our clients needed it very badly. That meant we needed it as well.<\/p>\n\n\n\n<p>Product matching is an essential part of Price2Spy&#8217;s services. To put it simply, with no product matching our client wouldn&#8217;t be able to perform any kind of price comparison.<\/p>\n\n\n\n<p>So far, we\u2019ve had 3 ways of how products can be matched:<\/p>\n\n\n\n<p><strong>A) <a href=\"https:\/\/www.price2spy.com\/en\/automatch.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Automatch (opens in a new tab)\">Automatch<\/a><\/strong> &#8211; fully automated process, applicable when client&#8217;s products (and products listed on competitor sites) have something we call &#8216;unique identifier&#8217; &#8211; this can be EAN, UPC, ASIN &#8211; or in most general case MPN (Manufacturer Part Number). As you may guess, this method is not always applicable<\/p>\n\n\n\n<p><strong>B) Manual product matching<\/strong> &#8211; since humans are performing the matching &#8211; it&#8217;s always applicable. However, in case a client has 100 000s of products and he wants results real fast &#8211; this can be a problem &#8211; manual matching is simply not cost-effective enough, nor can it be done at the snap of a finger.<\/p>\n\n\n\n<p><strong>C) Hybrid product matching<\/strong> &#8211; is a combination of A) and B) &#8211; Automatch provides candidate-matches (which are not reliable enough to be trusted automatically), and humans check if these matches are good (need to be promoted) or bad (will be rejected).<\/p>\n\n\n\n<p>The problem is that Automatch was unable to work with examples like below, where matches are obvious (or nearly obvious) to the human eye, but search on a competitor site does not yield any results<\/p>\n\n\n\n<p>Here are several such examples:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"495\" src=\"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png\" alt=\"product matching table\" class=\"wp-image-7279\" srcset=\"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png 788w, https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table-768x482.png 768w\" sizes=\"auto, (max-width: 788px) 100vw, 788px\" \/><\/figure><\/div>\n\n\n\n<p>The idea was to introduce a 4th method, universally applicable, which will be reliable enough that it can be trusted. We had a feeling that ML should be helpful, but we had no idea where to start.<\/p>\n\n\n\n<p>But, before jumping on the project, we wanted to check if anyone else did it before us and if the solution was possible in the public domain?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Attribute Extraction from Product Titles in eCommerce<\/strong> &#8211; <a href=\"https:\/\/arxiv.org\/abs\/1608.04670\">https:\/\/arxiv.org\/abs\/1608.04670<\/a> &#8211; our colleagues from Walmart have tackled the problem which is seemingly similar \u2013 but which actually does not deal with matching<\/li><li><strong>Product Matching in eCommerce using deep learning<\/strong> &#8211; <a href=\"https:\/\/medium.com\/walmartlabs\/product-matching-in-ecommerce-4f19b6aebaca\">https:\/\/medium.com\/walmartlabs\/product-matching-in-ecommerce-4f19b6aebaca<\/a> &#8211; in continuation of the above study, this article does deal with product matching, which is what we\u2019re trying do as well. However, it deals with the matching of a single product (while we deal with the problem of matching the whole set of products). To be honest, we got a bit discouraged by the fact that authors himself state that the matching accuracy is between 85% and 90% (we aimed for much more)<\/li><li><strong>A Machine Learning Approach for Product Matching and Categorization<\/strong> &#8211; <a href=\"https:\/\/www.semantic-web-journal.net\/system\/files\/swj1470.pdf\">https:\/\/www.semantic-web-journal.net\/system\/files\/swj1470.pdf<\/a> &#8211; this article is helpful, but only if you\u2019re very deep into ML. At the beginning of our project, we were simply not on this level<\/li><li><strong>Unraveling product matching in retail with AI<\/strong> &#8211; <a href=\"https:\/\/towardsdatascience.com\/unravelling-product-matching-with-ai-1a6ef7bd8614\">https:\/\/towardsdatascience.com\/unravelling-product-matching-with-ai-1a6ef7bd8614<\/a> &#8211; this article was posted long after we have embarked on our project. Unfortunately, it does not reveal much about the technical details of the ML implementation.<\/li><\/ul>\n\n\n\n<p>So, we had to start digging ourselves.<\/p>\n\n\n\n<p><strong>More information available on:<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> <a rel=\"noreferrer noopener\" href=\"https:\/\/www.price2spy.com\/en\/pricing\/product-matching.html\" target=\"_blank\">Product matching in Price2Spy<\/a> <\/li><li><strong>Previous topic:<\/strong> <a rel=\"noreferrer noopener\" href=\"https:\/\/www.price2spy.com\/blog\/product-matching-via-machine-learning-abstract\/\" target=\"_blank\">Abstract <\/a><\/li><li><strong>Next topic:<\/strong>  <a rel=\"noreferrer noopener\" href=\"https:\/\/www.price2spy.com\/blog\/part-2-product-matching-via-machine-learning-important-decisions-to-be-made\/\" target=\"_blank\">Product matching via Machine Learning &#8211; Important decisions to be made<\/a>  <\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Product matching in Price2Spy Previous topic: Abstract Next topic: Product matching via Machine Learning &#8211; Important decisions to be made In the last couple of years, we have all witnessed the rise of new technology &#8211; Artificial Intelligence, or as we in Price2Spy prefer to&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108,167],"tags":[190,645,646,15,81],"class_list":["post-7278","post","type-post","status-publish","format-standard","hentry","category-best-practices","category-new-price2spy-features","tag-ecommerce","tag-machine-learning","tag-ml","tag-price2spy","tag-product-matching"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>#1 Product matching via ML - Introduction to the project<\/title>\n<meta name=\"description\" content=\"Let us introduce you to the new Price2Spy&#039;s project - Product matching via ML\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"#1 Product matching via ML - Introduction to the project\" \/>\n<meta property=\"og:description\" content=\"Let us introduce you to the new Price2Spy&#039;s project - Product matching via ML\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/\" \/>\n<meta property=\"og:site_name\" content=\"Price2Spy\u00ae Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Price2Spy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-19T08:17:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-28T10:46:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png\" \/>\n<meta name=\"author\" content=\"Mi\u0161a Kruni\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Price2Spy\" \/>\n<meta name=\"twitter:site\" content=\"@Price2Spy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mi\u0161a Kruni\u0107\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"#1 Product matching via ML - Introduction to the project","description":"Let us introduce you to the new Price2Spy's project - Product matching via ML","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/","og_locale":"en_US","og_type":"article","og_title":"#1 Product matching via ML - Introduction to the project","og_description":"Let us introduce you to the new Price2Spy's project - Product matching via ML","og_url":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/","og_site_name":"Price2Spy\u00ae Blog","article_publisher":"https:\/\/www.facebook.com\/Price2Spy\/","article_published_time":"2020-06-19T08:17:35+00:00","article_modified_time":"2020-07-28T10:46:18+00:00","og_image":[{"url":"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png","type":"","width":"","height":""}],"author":"Mi\u0161a Kruni\u0107","twitter_card":"summary_large_image","twitter_creator":"@Price2Spy","twitter_site":"@Price2Spy","twitter_misc":{"Written by":"Mi\u0161a Kruni\u0107","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#article","isPartOf":{"@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/"},"author":{"name":"Mi\u0161a Kruni\u0107","@id":"https:\/\/www.price2spy.com\/blog\/#\/schema\/person\/08e388ab2e43e97b3618363fbbe94ded"},"headline":"(Part #1) Product matching via Machine Learning &#8211; Introduction to the project","datePublished":"2020-06-19T08:17:35+00:00","dateModified":"2020-07-28T10:46:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/"},"wordCount":712,"commentCount":0,"image":{"@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png","keywords":["ecommerce","machine learning","ml","price2spy","product matching"],"articleSection":["Best practices in price monitoring","New Price2Spy features"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/","url":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/","name":"#1 Product matching via ML - Introduction to the project","isPartOf":{"@id":"https:\/\/www.price2spy.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#primaryimage"},"image":{"@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png","datePublished":"2020-06-19T08:17:35+00:00","dateModified":"2020-07-28T10:46:18+00:00","author":{"@id":"https:\/\/www.price2spy.com\/blog\/#\/schema\/person\/08e388ab2e43e97b3618363fbbe94ded"},"description":"Let us introduce you to the new Price2Spy's project - Product matching via ML","breadcrumb":{"@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#primaryimage","url":"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png","contentUrl":"https:\/\/www.price2spy.com\/blog\/wp-content\/uploads\/2020\/06\/table.png","width":788,"height":495},{"@type":"BreadcrumbList","@id":"https:\/\/www.price2spy.com\/blog\/part-1-product-matching-via-machine-learning-introduction-to-the-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.price2spy.com\/blog\/"},{"@type":"ListItem","position":2,"name":"(Part #1) Product matching via Machine Learning &#8211; Introduction to the project"}]},{"@type":"WebSite","@id":"https:\/\/www.price2spy.com\/blog\/#website","url":"https:\/\/www.price2spy.com\/blog\/","name":"Price2Spy\u00ae Blog","description":"Price2Spy\u00ae","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.price2spy.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.price2spy.com\/blog\/#\/schema\/person\/08e388ab2e43e97b3618363fbbe94ded","name":"Mi\u0161a Kruni\u0107","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31aa4afb2464eca1f1ca0c7979628c87e54e7a6b53ebcb371749e9349d27c850?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31aa4afb2464eca1f1ca0c7979628c87e54e7a6b53ebcb371749e9349d27c850?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31aa4afb2464eca1f1ca0c7979628c87e54e7a6b53ebcb371749e9349d27c850?s=96&d=mm&r=g","caption":"Mi\u0161a Kruni\u0107"},"description":"Father of 2, Husband of 1, CEO of 3 :-)","sameAs":["http:\/\/www.price2spy.com"],"url":"https:\/\/www.price2spy.com\/blog\/author\/misha\/"}]}},"_links":{"self":[{"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/posts\/7278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/comments?post=7278"}],"version-history":[{"count":5,"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/posts\/7278\/revisions"}],"predecessor-version":[{"id":7412,"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/posts\/7278\/revisions\/7412"}],"wp:attachment":[{"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/media?parent=7278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/categories?post=7278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.price2spy.com\/blog\/wp-json\/wp\/v2\/tags?post=7278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}