Περίληψη : | Στον τομέα του ηλεκτρονικού επιχειρείν και της παροχής συμβουλών, η καθημερινή ανάλυση μεγάλου όγκου πληροφοριών είναι απαραίτητη για την εξαγωγή συμπερασμάτων και την διερμηνεία καταστάσεων. Παρόλο που το ίδιο προϊόν μπορεί να περιγράφεται διαφορετικά από πολλούς πωλητές (retailers), είναι απαραίτητη η σύνδεση των διαφορετικών ερμηνειών/αναφορών ενός προϊόντος σε μια ενιαία οντότητα για μια επιτυχή ανάλυση. Σε αυτή τη διατριβή, έχουμε πειραματιστεί στη δημιουργία ενός αλγορίθμου και μοντέλου για να λύσουμε το πρόβλημα αντιστοίχισης προϊόντων (Product Matching). Για αυτό τον σκοπό, μας παρέχεται ένα σύνολο δεδομένων που αποτελείται από πολλά προϊόντα και την πραγματική αντιστοίχιση με ένα προϊόν στη βάση δεδομένων της εταιρείας. Αρχικά επιχειρούμε να προσεγγίσουμε το πρόβλημα ως πρόβλημα ταξινόμησης πολλαπλών κλάσεων, όπου κάθε προϊόν στα δεδομένα μας (Κομμάτι της βάσης δεδομένων της εταιρείας) έχει ένα μοναδικό αναγνωριστικό που χρησιμεύει ως τιμή στόχος για έναν ταξινομητή που χρησιμοποιεί το TF-IDF ως τεχνική εκπροσώπησης λέξεων. Οι αλγόριθμοι μηχανικής εκμάθησης που χρησιμοποιήθηκαν ήταν οι : Random Forest Classifier, KNearestNeigbors και RadiusNearestNeighbors. Τα αποτελέσματα της προσπάθειάς να λύσουμε το πρόβλημα ως εργασία ταξινόμησης πολλαπλών ετικετών δεν είναι ικανοποιητικά και δεδομένου ότι νέα προϊόντα εισάγονται καθημερινά, θα είναι ακόμη πιο δύσκολο να εκπαιδεύουμε πάλι τον ταξινομητή όταν λαμβάνουμε νέα προϊόντα κάτι που το καθιστά δύσκολο για να είναι η λύση στο πρόβλημα μας. Έπειτα, προσεγγίζουμε το πρόβλημα σαν ένα πρόβλημα της σύγκρισης προϊόντων ανά ζευγάρια (Με αποτέλεσμα 1 αν αντιπροσωπεύουν το ίδιο προϊόν ή 0 αν όχι) και εφαρμόζουμε ένα σχήμα ομαδοποίησης που βασίζεται στην επωνυμία του προϊόντος που εξάγουμε χρησιμοποιώντας το κείμενο της περιγραφής με έναν προσαρμοσμένο αλγόριθμο δημιουργίας μας. Με αυτό τον τρόπο αποφεύγουμε την σύγκριση κάθε προϊόντος με όλα τα προϊόντα της βάσης (τετραγωνική πολυπλοκότητα) και βάση αυτού, είμαστε σε θέση να εκχωρήσουμε σε οποιοδήποτε νέο προϊόν, τους πιθανούς υποψηφίους του από τη βάση δεδομένων μας. Έτσι, από ένα σύνολο δεδομένων (αρχικά δεδομένα) που αποτελούνταν μόνο από αντιστοιχίσεις, δημιουργήσαμε ένα εξαιρετικά ανισόρροπο σύνολο δεδομένων, που όμως μοιάζει με το πραγματικό σενάριο, με αντιστοιχίσεις και μη αντιστοιχίσεις που θα χρησιμοποιηθούν για εκπαίδευση των μοντέλων βαθιάς μάθησης. Σαν βάση απόδοσης (baseline) χρησιμοποιούμε μια βιβλιοθήκη που σχετίζεται με την ομοιότητα κειμένου σε επίπεδο λέξεων (Βασίζεται στην απόσταση Levenshtein). Στη συνέχεια, κατασκευάζουμε ένα Siamese BiLSTM δίκτυο και προσθέτουμε ένα προσαρμοσμένο νευρωνικό δίκτυο που λαμβάνει μια βαθμολογία ομοιότητας το οποίο, σε συνδυασμό με το πρώτο, θα καθορίζει εάν το ζευγάρι περιγραφών αναφέρεται στο ίδιο προϊόν. Για την τελική μας στρατηγική, χρησιμοποιούμε μοντέλα που βασίζονται σε μετασχηματιστές (transformers), συγκεκριμένα τα GreekBERT, και XLM-RoBERTa και μια προσαρμογή αυτών με προσαρμοσμένη κεφαλή ταξινόμησης (custom classification head) τα οποία αποτελούν βελτιώσεις σε σχέση με την προηγούμενη πρόταση, με το προσαρμοσμένο μοντέλο να καταλαμβάνει την πρώτη θέση σύμφωνα με τις μετρήσεις αξιολόγησής μας. Διεξάγοντας πολλές δοκιμές με διαφορετικές μεθόδους και μοντέλα σε μια προσπάθεια να αντιμετωπίσουμε το πρόβλημα αντιστοίχισης προϊόντων, μπορούμε να συμπεράνουμε ότι η προσέγγιση του προβλήματος ως ένα πρόβλημα δυαδικής ταξινόμησης (Binary Classification) και η υιοθέτηση των τεράστιων μοντέλων γλώσσας φαίνεται γενικά να είναι η βέλτιστη επιλογή. Τέλος, δείχνουμε πως η δημιουργία ενός προσαρμοσμένου επιπέδου ταξινόμησης (custom layer) μπορεί να βοηθήσει στη βελτίωση των επιδόσεων των μοντέλων. Real-time analysis of a large number of product sales is cornerstone in the e-commerce domain in order to extract valuable insights. Even though the same product may be described differently by multiple sellers, it is essential to link all different instances of a product to a single entity for successful analysis. In this thesis, we have experimented on creating a pipeline to solve the product matching issue. We are provided with a dataset consisting of multiple products and their reference product in the company's database. We initially attempt to approach the problem as a multi-label classification problem, where each product in the dataset (part of the company’s database) has a unique identifier that serves as the target value for a classifier using TF-IDF as embeddings. The results of our initial attempt to solve the problem as a multi-label classification task are unsatisfactory, and given that new products are being introduced daily, it will be even more challenging to train a classifier when we get new, unseen products, making it challenging to frame the problem as a classification task. Next, we approach the problem as a binary product classification task, and we apply a blocking scheme that is based on the product’s brand that we extract using textual information with a custom algorithm. In that way, we don’t have to check every incoming product with all the products in the database, as that poses a quadratic complexity problem. With that, we are able to assign to any new product, its potential candidates from our database which will be the process when new products come in and the company has to match them. With that scheme, and the dataset we had been given that consisted of only matches, we have created a heavily imbalanced dataset, that resembles the real life scenario, with matches and non-matches for our deep learning models to train on. We start with a text similarity-based scoring approach (Using the Levenshtein distance) which provides our baseline results. Next, we construct a Siamese BiLSTM network and add an additional custom layer that gets a similarity score that will be sent to a second network, which, in combination with the first network, will determine whether or not the pair is a match. For our final architecture, we construct transformer-based models, namely GreekBERT, and XLM-RoBERTa and an adaptation of those with a custom classification head that takes a similarity score as input as well, which are improvements over the prior proposal, with the custom approach taking the top spot according to our assessment metrics. By conducting several trials with different methods and models in an effort to tackle the product matching issue, we are able to conclude that tackling the product matching challenge as a binary classification problem and fine-tuning massive Language Models for that purpose generally appears to be the optimal path to take. Lastly, we have shown that constructing a custom classification head can help with improving the performance of the above models.
|
---|