Improving search through Machine Learning
We worked for a quality driven company providing procurement, engineering and test services for electronic components and systems, within the space and harsh environment markets, where failure is not an option.
Our client intention is to stay closer to the space community by providing a technical based solution for them. So, they created an online tool that allows a user to find within a database of more than 15 million component parts, consult precise and wide information about technical specs, compare between different components and require deep technical analysis for a list of components.
Building a search system on a database of more than 15 million components may already be complicated from a usability point of view, but in this case it is made even more complicated by two reasons:
On the one hand, each component can be categorized into more than 150 different categories, and the importance of each category varies depending on the type and the family to which the component belongs. That makes offering a faceted search or browsing by filters very complicated.
On the other hand, the names and descriptions of entire families of components are very similar to each other, as well as the difference can be a specific characteristics among hundreds. This makes an open search offer inconclusive results for the user, who is forced to do a large number of consecutive searches in order to find the component he was looking for.
Due to the issues related to categories, facets, and open search, users usually found the navigation through the website confusing and complicated, which ended in low user engagement and high dropout rates.
1.- Faceted system optimization
The greatest improvement in the search system for users occurred thanks to the improvement of the facet system. Each component of the platform could belong to more than 100 different categories. In a faceted search interface it does not make sense to offer the user more than a limited number of facets, each with a limited number of elements. In another case, the faceted search system is unusable, and therefore inefficient.
The objective was to offer the user, in a dynamic way, only those facets that were more relevant. The most relevant facets in each search are calculated using clustering algorithms implemented in Tensor Flow based on the similarity between facets and components. Based on the components returned by the search, those facets that are closest to these components are calculated based on the number of occurrences and the distribution of components within said facet. The facets that best represent the components returned by the search are searched.
2.- Component recommendation system
We wanted to offer a list of related components for each component in the platform, so the user can browse and compare similar components easily. The problem is that a system of related components based just on similar categories or keywords did not really offer added value to the user, because of the huge taxonomy tree and the similarities between components in term of keywords. So we set up a recommendation system applying clustering techniques on Tensorflow, which makes suggestions based on the browsing of users similar to the current one (users like me). Basically, the system can learn from the navigation of previous users to facilitate the navigation for future users.
Once both systems were implemented, certain specific KPIs were being measured, and it was observed that the user engagement rate was increased by an average of 25%.
On the other hand, the facets began to be used 30% more in the total of the searches, with which the number of satisfactory searches per user increased.
One in 5 users have also made use of the recommendation system (they have clicked on some of the associated components).