Cookie Consent by FreePrivacyPolicy.com Unser Team unter Top 2% bei Kaggle

Unser Team unter Top 2% bei Kaggle


Dr. Robert RichterOb Bücher, Anziehsachen oder Gartengeräte: Im digitalen Zeitalter nutzen wir immer häufiger Onlineplattformen wie Amazon, Otto.de oder Zalando für unsere Besorgungen. Doch wer hat sich nicht schon mal über die Treffer gewundert, die ihm die jeweilige Onlineplattform für seinen Suchbegriff angeboten hat?

HomeDepot, eine amerikanische Baumarktkette, die seit September 2005 ihre Produkte auch online verkauft, hat einen Data Science-Wettbewerb bei kaggle.com ausgeschrieben, der helfen soll, ihren Produktsuchalgorithmus zu optimieren. Konkret ging es bei dem inzwischen beendeten Kontest darum, die Relevanz von Produkten zu bestimmten Suchbegriffen vorherzusagen. Dazu bekamen die Teilnehmer ein Trainingsset von über 70.000 Paaren aus Suchbegriffen und Produkttiteln (inkl. zugehörigen Produktbeschreibungen). Jedem Paar wurde ein Wert zwischen 1 und 3 zugeordnet, abhängig davon wie relevant das Produkt für die Suchanfrage ist. Hierbei indiziert der Wert 1 eine geringe und der Wert 3 eine hohe Relevanz. Mithilfe des Trainingssets sollten die Teilnehmer die Bedeutsamkeit für weitere 165.000 Paare aus Suchbegriffen und Produktartikeln vorhersagen. Homedepot_Example Abb. 1: Produktartikel zum Suchbegriff "AA battery" mit jeweiliger Relevanz. Auch die rheindata GmbH nahm an diesem Wettbewerb teil und erzielte mit ihrem Modell den 35. Platz von insgesamt 2.125 Teilnehmern.

Unser Ansatz

Unser Ansatz basiert auf drei verschiedenen Bestandteilen: dem Data Cleansing, dem Feature-Engineering und dem Model-Building mithilfe von Machine Learning-Algorithmen. Als Analyse-Tool verwendeten wir Python, was über hervorragende Module zur statistischen Datenanalyse, Text Mining und Machine Learning verfügt.

Data Cleansing

Nach der Korrektur von Rechtschreibfehlern und dem Entfernen von Stoppwörtern und Interpunktionszeichen bestimmten wir den Wortstamm der jeweiligen Wörter im Suchbegriff, dem Produkttitel und der Produktbeschreibung. Des Weiteren identifizierten wir zu den Wörtern im Suchbegriff relevante Synonyme und ermittelten zu den jeweiligen Suchbegriffen, Produkttiteln und Produktbeschreibungen die Bi- und Trigramme (Ketten aus zwei bzw. drei Strings). Schließlich haben wir jedem Wort ein so genanntes Tf-idf-Maß zugeordnet, welches häufig auftretende Wörter weniger stark gewichtet als seltener auftretende Wörter. In diesem Teil der Analyse haben wir intensiv das Datenanalyse-Modul Pandas und das Text Mining-Modul NLTK (Natural Language Toolkit) genutzt. data_cleansing_1_new Abb. 2: Data Cleansing für den Suchbegriff "vaccuum cleaners for hardwood and carpet".

Feature Engineering

Neben den naheliegenden Features, wie Anzahl der Wörter im Suchbegriff und Produkttitel, dem Tf-Idf-Wert des jeweiligen Suchbegriffes, der Anzahl der gemeinsamen Wörter und N-Gramme in Suchbegriff und Produkttitel bildeten wir verschiedene Quotienten. Dabei nutzten wir auch typische Text Mining-Koeffizienten wie den Jaccard- und Dice-Koeffizient oder auch die Kosinus-Ähnlichkeit. Zusätzlich klassifizierten wir die Suchbegriffe und Produkttitel mithilfe der Bi- und Tri-Gramme, so dass jeder Suchbegriff bzw. Artikel einem von 50 verschiedenen Clustern zugeordnet wurde. Außerdem diskretisierten wir alle Features, d.h. kontinuierliche Features wurden in typischerweise zehn Blöcke unterteilt. Mithilfe dieser Blöcke generierten wir dann statistische Features, wie z.B. Mittelwert und verschiedene Quantile für den jeweiligen Block. Am Ende hatten wir über 2.000 Features erstellt, welche die Grundlage für das Model-Building mithilfe von Machine Learning-Algorithmen bildeten. features_1_new Abb. 3: Feature Engineering für ein konkretes Suchbegriff/Produktartikel-Paar.

Model-Building

Im letzten Schritt nutzten wir die Trainingsdaten mit den generierten Features um mithilfe verschiedener Machine Learning-Algorithmen Modelle zu bauen bzw. anzutrainieren. Um die Güte der unterschiedlichen Modelle zu bewerten und Overfitting zu vermeiden, haben wir nur 80% der Trainingsdaten für das Training und die restlichen 20% zur Validierung der Modelle genutzt. Nach Tuning der jeweiligen Machine Learning-Algorithmus-Parameter basierte unser bestes (Einzel-)Modell auf dem Gradient Boosting-Algorithmus XGBoost, mit dem schon viele Kaggle-Wettbewerbe gewonnen wurden. Unser finales Modell, welches uns den 35. Platz einbrachte, ist eine Kombination aus mehreren Einzel-Modellen, basierend auf unterschiedlichen Machine Learning-Algorithmen und unterschiedlicher Auswahl von Features, wobei die Relevanz durch einen gewichteten Mittelwert der verschiedenen Einzelmodellen gegeben wurde. Homedepot_Overview Abb. 4: Flowchart unserer Datenanalyse. Sollte Data Science auch für Sie ein interessantes Thema sein, sprechen Sie uns gerne an.