Hackathon Winners Part 4: Product Taxonomy in Just One Click

This team minimized headaches for online merchants.

Hackathon Winners Part 4: Product Taxonomy in Just One Click

If you've been following our Hackathon Winners' series, you've probably noticed a common theme in the majority of the projects:  AI.

So far, three out of the four winners have tapped into it.

Related Articles: Meet Our Hackathon Winners

Today, we'd like you to meet the Magical Merchandisers, winners of the Quaffle Award. Not sure what that means? Refer to the Hackathon Details section in the first part of this series.

This team minimized headaches for online merchants with a feature that places products into proper taxonomies based upon product names and descriptions. What can normally take a substantial amount of time can now be accomplished with just one button click.

I sat down with this team to learn more about this amazing project, but before we jump in, let's take a moment to get to know everyone better.

Meet the Magical Merchandisers

Nathan Gaar, Senior Software Engineer on the Performance Enablement Team

Background: I've been at BigCommerce for five years. I originally joined the Channels Team, focusing on Omnichannel and headless storefront work.  Today, I work on performance-related projects.

Fun fact:  I've got an eighteen-month-old son named Auggie!

Role in this project:  I worked on the backend classification API.

Raymond Kong, Software Engineer II on the Performance Enablement Team

Background: I have a passion for playing video games and engaging in problem-solving activities. Consequently, I realized that pursuing a career as a programmer would be an excellent choice for me. With this in mind, I decided to enroll in the University of Texas at Dallas to pursue a degree in Computer Science. Throughout my academic journey, I had the incredible opportunity to embark upon a summer internship, where I immersed myself in writing software components that interacted with robots and sensors. This experience was incredibly enjoyable and further solidified my passion for programming. Additionally, I dedicated personal time to exploring web development, expanding my skill set. Upon graduating from the University in 2020, I made the decision to relocate from Dallas to Austin to join the BigCommerce team as a Software Engineer.

Fun fact: I enjoy eating ramen, and some of my friends even call me ramen because it also sounds very similar to my nickname Raymond.

Role in this project:  I focused on improving the accuracy of the product classification algorithms.

Connect with Raymond on LinkedIn.

Sergey Tatarenko, Lead Software Engineer on the Search Team

Background:  I originally joined the Channels Platform team in August of 2019. Now, I am on the Search (Artemis) Team.

Fun fact: I've lived in three different countries: the Soviet Union (Ukraine), Israel, and now the United States of America. I speak four languages.

Role in this project:  I worked on the OpenAPI, the API that exposed ChatGPT functionality, and built the OpenAPI client that was utilized by our Magical Merchandise Sorter project.

Connect with Sergey on LinkedIn.

Roberto Alvarez, Lead Software Engineer on the App Experience Team

Background: I originally studied Engineering, Physics, and Mathematics — only to eventually realize I wanted to pursue a career in Software Engineering. I participated in one of Hack Reactor’s very early cohorts, learned frontend development, and started working as a Web Developer at LinkedIn. I joined BigCommerce seven years ago, and most of that time has been spent working on the Channels initiative. I find artificial intelligence incredibly fascinating and have been amazed at the most recent developments in the area. When I'm off work, I enjoy playing the electric guitar, studying foreign languages, and playing video games.

Related Demo from Roberto: Quickly Apply BigCommerce's Look and Feel

Fun fact: Even after living in the US for over eight years, I am still more comfortable dealing with Celsius degrees versus Fahrenheit. I have no idea what 80 °F degrees means.

Role in this project:  I connected the frontend applications to the APIs that the backend engineers exposed in order to provide users a way to leverage the artificially generated data to be used in their catalogs.

Connect with Roberto on LinkedIn.

Zehan Sunesara, Software Engineer I on the Performance Enablement Team

Background: It has been almost two years since I joined BigCommerce. I originally was part of the Channels Team, and recently, I became part of the Performance Enablement Team.

Fun fact: I have traveled to at least a dozen countries over the past seven years, and I'm looking forward to traveling to even more places in the near future!

Role in this project: I worked on exposing the ChatGPT API via the public REST endpoint.

Connect with Zehan on LinkedIn.

Magical Merchandisers' Project

What is the name of your project?

Sergey Tatarenko: It's called the Magical Merchandise Sorter.

How did you come up with your team name?

Sergey Tatarenko: We asked ChatGPT to name our project. We described the intended project functionality and asked for a funny name in the style of our theme (a celebrated magical universe that rhymes with Scary Otter). That is how we came up with the name, Magical Merchandise Sorter.

Please describe your project.

Nathan Gaar: When syncing catalogs to third parties through an Omnichannel integration, merchants often have to manually classify products into some corresponding product taxonomy that’s used by a third party.  

For example, if an online merchant is selling snacks for babies, they might need to walk the Google Product Taxonomy tree and classify their product under some matching taxonomy like the one below:

Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Baby Snacks

We created a feature that automatically classifies products into a taxonomy using a product's name and description. We reduced what previously required merchants to manually traverse a tree through our UI to a click of a single button. This allows our API, powered by ChatGPT, to make the correct selection for merchants.

What inspired you to choose this project?

Sergey Tatarenko: Initially, we started looking at using ChatGPT for writing product names and descriptions that would be adapted for specific channels, but we noticed other teams intended to implement the same functionality.

Related Article: See Hackathon Winner, Luke Eller, Simplify Product Descriptions

We started looking at challenges within our Channels Domain that often requires a lot of user input and was very time consuming. These are a perfect match for the utilization of AI. That is how we came up with the idea to leverage ChatGPT for automatic product categorization.

Which pain points does your project solve?

Raymond Kong: We're removing the hassle and stress of manually classifying products into categories. This project plans to save precious time for our customers, increase the possibility of getting the most accurate category mapping, and enable merchants to quickly get their catalog items up and running on other e-commerce platforms like Google and Facebook.

Which challenges did you face while you were developing your project?

Sergey Tatarenko: ChatGPT is an amazing tool, but you should view it like a child who knows a lot of pure information but struggles with reasoning skills. Just like a child, ChatGPT sometimes makes connections where they don’t exist.

This causes the tool to “hallucinate," which means that you absolutely have to double-check AI responses against some source of truth. In the case of product categorization, our source of truth is the Google Product Taxonomy.

Initially, we asked ChatGPT to give us the correct taxonomy from a product description in just one question, but it gave us partially correct answers like only part of the taxonomy. In other instances, ChatGPT would provide an answer that seemed complete, but parts of the answer were inaccurate.

How did you overcome these challenges?

Nathan Gaar: Occasionally, when traversing the taxonomy tree, ChatGPT would slightly hallucinate the selection it made by adding or omitting a word from the selected taxonomy. To compensate for often not having a complete match, we used a classic approach from natural language processing (NLP), Cosine similarity.  We calculated the Cosine similarity between the ChatGPT selection and all possible selections on that level of the tree, allowing us to select a taxonomy even when matches from ChatGPT responses were slightly off. This worked well for the purpose of the Hackathon.

What’s the one thing you’d change about this project?

Sergey Tatarenko: I would invest more development effort into reducing the costs of interactions with the OpenAI API. This could be achieved by reducing the number of calls to the ChatGPT API, reducing tokens in the request, and/or using in-house open source large language models (LLM).

What are the next steps for this project?

Sergey Tatarenko: Next steps for this project would be switching to an in-house hosted LLM. I would choose a model that supports side loading a corpus of proprietary data. In our case, this proprietary data is Google Taxonomy.

This would reduce costs of using a third-party API and would also provide better answers.

Open Roles: Explore Your Next Engineering Opportunity

What advice would you give to an engineer who is about to participate in a Hackathon?

Raymond Kong: Before a Hackathon starts, determine the problem you want to solve, and set a clear goal. Having a clear goal will keep you focused and motivated throughout the event.

Planning is also important. Since time is limited during a Hackathon, it's crucial to plan and prioritize tasks. Break down your project into smaller milestones, and allocate time accordingly. Focus on completing the core functionality first before adding additional features.