The rapid technological development of recent years, the improvement of computer systems, and the familiarization of a large percentage of the world's population with the digital world have given an enormous boost to e-commerce, which is continually evolving and serving more needs. Simultaneously, the significant increase of users and products, coming as a result of this progress, and the dynamic entry of machine learning and data science in the field of information technology has allowed e-commerce sites to improve the browsing experience significantly. Nowadays, e-commerce sites provide users with personalized product suggestions that meet their preferences, which means a simultaneous increase in sales for online stores.
In addition to personalized direct product recommendations to consumers, there are also advertising views (or banners). They are quite common on e-commerce websites, aiming to help and promote consumer product groups to the consumer according to his preferences or by categorizing him according to key elements of his electronic imprint. Personalized banner recommendations have not been studied to the same degree as product personalization and are more applicable to large e-commerce platforms.
This dissertation aims to design and build a real-time personalized banner recommendation system for a medium-sized online e-shop with real-time data based on machine learning methods and algorithms. In the context of the work, we propose a novel framework that takes into account the actions of the users during their navigation, known as "clickstream" data. The proposed framework effectively recognizes user interests and suggests banners that correspond to their preferences.
2. Εισαγωγή
● Ψηφιοποίηση των αγορών και επικράτηση του ηλεκτρονικού εμπορίου ως αναπόσπαστο μέρος
της πραγμάτωσης εμπορικών συναλλαγών
● Αύξηση αριθμού διαθέσιμων προϊόντων προς τους καταναλωτές
● Δυναμική είσοδος μηχανικής μάθησης στο χώρο της πληροφορικής
...δημιουργούν τις συνθήκες για την ανάπτυξη τεχνικών εξατομίκευσης περιεχομένου
Συστήματα Συστάσεων
3. Εισαγωγή
Διαφημιστική Προβολή: μία διαφήμιση που εμφανίζεται σε μία
ιστοσελίδα και αποτελείται από μία εικόνα (.jpg, .png, .gif,) ή από ένα
αντικείμενο πολυμέσων.
Στόχος της διαφημιστικής προβολής:
● Δημιουργία πρώτης θετικής εντύπωσης στον επισκέπτη
● Προώθηση brand ή ομάδας προϊόντων μέσω
ανακατεύθυνσης σε αντίστοιχα προιόντα
Συστήματα Συστάσεων Διαφημιστικών Προβολών:
● Εναλλακτικός τρόπος προώθησης και εξατομίκευσης
προϊόντων ή ομάδων προιόντων
● Μικρότερο ερευνητικό έργο σε σχέση με την εξατομίκευση
προϊόντων αλλά μεγάλο ενδιαφέρον
4. Σκοπός της διπλωματικής
➢ Δημιουργία ολοκληρωμένου εξατομικευμένου συστήματος σύστασης διαφημιστικών προβολών
πραγματικού χρόνου
➢ Παραγωγή ταξινομημένης λίστας συστάσεων (Top-N πρόβλημα)
➢ Εστίαση στην εξαγωγή και αξιοποίηση των “εμμεσων” δεδομένων χρηστών
➢ Δοκιμή και χρήση τεχνικών μηχανικής μάθησης
5. Γνώσεις που αποκτήθηκαν
1. Σχεδιασμός και ανάπτυξη ολοκληρωμένου συστήματος συστάσεων:
a. Εξοικείωση με REST API
b. Διαχείριση SQL βάσης
c. Χρήση Webserver
2. Τεχνικές προεπεξεργασίας δεδομένων συμπεριφοράς πλοήγησης
3. Εκπαίδευση αλγορίθμων Collaborative Filtering και RNN δικτύων για την εξατομίκευση
συστάσεων
6. Προσέγγιση της διπλωματικής
Κατανόηση του προβλήματος των συστάσεων διαφημιστικών προβολών
Επιλογή των δεδομένων που θα χρησιμοποιηθούν
Βιβλιογραφική έρευνα και για την επιλογή μεθόδων σύστασης που θα εφαρμοστούν
Προεπεξεργασία των δεδομένων σύμφωνα και με τις απαιτήσεις των αλγορίθμων
Κατασκευή συστήματος για τη διασύνδεση του μοντέλου σύστασης με το ηλ. κατάστημα
Εκπαίδευση αλγορίθμων και ενσωμάτωση των μοντέλων στο σύστημα
Δοκιμή της απόδοσης του συστήματος και των αλγορίθμων μέσω online test
7. Επιλογή δεδομένων καταστήματος ηλεκτρονικού
εμπορίου
Τύποι δεδομένων: Επιλογή:
Χρήση implicit / inferred δεδομένων
αλληλεπίδρασης με προϊόντα:
● ενέργειες “view”
● ενέργειες “add to cart”
● ενέργειες “buy”
Γιατί;
● Πληθώρα καταγραφών δεδομένων σε
κάθε πλοήγηση του χρήστη
● Ικανοί αλγόριθμοι εξατομίκευσης μέσω
δεδομένων συμπεριφοράς του χρήστη
8. Αλγόριθμοι μηχανικής μάθησης της εργασίας για
παραγωγή συστάσεων μέσω implicit δεδομένων
Κλασικές μέθοδοι
State-of-the-art μέθοδοι
Collaborative Filtering
with Alternating Least
Squares (ALS)
Collaborative Filtering
with Bayesian
Personalized Ranking
(BPR)
Neural Collaborative
Filtering
Session-based
Recommendation with
RNNs (GRU4Rec)
9. Προεπεξεργασία δεδομένων
Χρήση δεδομένων αλληλεπίδρασης χρηστών - προιόντων
1. Αφαίρεση διπλοεγγραφών
2. Αφαίρεση εγγραφών χρηστών με το πολύ μία (<=1) καταγραφή
3. Αφαίρεση εγγραφών με προϊόντα που έχουν αναζητηθεί το πολύ μία (<=1) φορά
10. Δημιουργία σετ δεδομένων για εκπαίδευση
μοντέλων
Collaborative Filtering λογική:
Στόχος : Δημιουργία σετ δεδομένων όπου θα υπάρχει
βαθμολόγηση για κάθε ζεύγος χρήστη - προϊόντος
● Υπολογισμός αθροίσματος κάθε τύπου
αλληλεπίδρασης για (cookie_id , product_id)
● Έμμεση βαθμολόγηση χρήστη προς προϊόν με
βάση τη συνάρτηση:
RNN λογική:
Στόχος : Δημιουργία σετ δεδομένων καταγραφής της
ακολουθίας των αλληλεπιδράσεων χρήστη -
προϊόντος
● Προσθήκη διπλότυπων εγγραφών σε
καταχωρήσεις με event_type = “add to cart” ή
“buy” ως εξής:
12. Εκπαίδευση Αλγορίθμων
ALS / BPR Implicit Collaborative Filtering:
● Χρήση Python package implicit
● Χρήση Collaborative Filtering dataset για εκπαίδευση
● Αποθήκευση εκπαιδευμένου μοντέλου μέσω pickle μεθόδου (.sav αρχείο)
Neural Collaborative Filtering (NCF):
● Χρήση Github αποθετηρίου που υλοποιεί τη μέθοδο μέσω βιβλιοθηκών Keras / Tensorflow
● Χρήση Collaborative Filtering dataset για εκπαίδευση
● Αποθήκευση προεκπαιδευμένου μοντέλου σε .ckpt αρχείο
GRU4Rec Αλγόριθμος (“Session-based Recommendations with Recurrent Neural Networks”):
● Χρήση Github αποθετηρίου που υλοποιεί τη μέθοδο μέσω βιβλιοθηκών Keras / Tensorflow
● cookie → session
● Χρήση dataset RNN λογικής για εκπαίδευση
● Αποθήκευση προεκπαιδευμένου μοντέλου σε .ckpt αρχείο
13. Κατασκευή συστήματος και σχετικής
διεπαφής
Γιατί γίνεται χρήση API;
➔ Σχεδιασμός και υλοποίηση λογισμικού που ελέγχεται ανεξάρτητα από την κύρια
εφαρμογή
➔ Δημιουργία διαύλου επικοινωνίας για πραγμάτωση real-time συστήματος σύστασης
➔ Υπέρβαση της λογικής του συμβατικού συστήματος σύστασης
14. Δομικά μέρη του συστήματος και
παρουσίαση αρχιτεκτονικής
❖ Server (Ubuntu Machine 18.04)
❖ Βάση Δεδομένων (MySQL)
❖ REST API (Django REST Framework)
❖ Webserver (Nginx)
❖ Προεκπαιδευμένα μοντέλα μηχανικής
μάθησης
❖ Client (pharm24.gr e-shop)
16. Περιγραφή REST API endpoints
POST endpoints: Δέχονται POST Requests
από το website για την αποθήκευση των
δεδομένων στους πίνακες της βάσης (4 POST
endpoints - 1 για κάθε Table)
● [api-domain]/product-interactions
● [api-domain]/banner-interactions
● [api-domain]/banner-product-relations
● [api-domain]/banner-status
GET endpoint: Δέχεται GET Request από το
website για την εξατομικευμένη πρόβλεψη
των Top-N διαφημιστικών προβολών
● [api-domain]/banner_rec/<cookie_id>
18. Διενέργεια A/B Testing για online
αξιολόγηση συστήματος
A/B Testing: Μέθοδος αξιολόγησης 2 εκδόσεων (Α & Β) μιας ιστοσελίδας ή μιας εφαρμογής με
στόχο να προσδιοριστεί ποια έχει την καλύτερη απόδοση
A/B Testing για το πρόβλημα της εργασίας:
Χρήση δεδομένων αλληλεπιδράσεων
με διαφημιστικές προβολές
[Banner Interactions Table]
19. Μετρικές Αξιολόγησης
● Συνολικό Click-Through-Rate (CTR):
● Click-Through-Rate (CTR) ανά θέση banner:
● Click-Through-Rate (CTR) ανά συνεδρία:
όπου session = timeoffirstview + 30 minutes
● p-value
20. Πειράματα & Αποτελέσματα - Φάση 1η
Το A/B Testing έτρεξε για χρονική διάρκεια 4 24ώρων (1 για κάθε αλγόριθμο)
23. Συμπεράσματα 1ης φάσης πειραμάτων
Μοναδικός αποτελεσματικός αλγόριθμος συγκρίνοντας τις 2 εκδοχές είναι ο Collaborative
Filtering with Bayesian Personalized Ranking (BPR CF)
Επομένως, ξεκινά δεύτερη φάση A/B Testing όπου γίνεται πιο εκτενής ανάλυση της απόδοσης
του συστήματος εστιάζοντας στον αλγόριθμο BPR CF.
26. Πειράματα & Αποτελέσματα - Φάση 2η
● Στα προηγούμενα 2 διαγράμματα προέκυψε ταυτόχρονα κακό CTR/View και
CTR/Session για τη 2η μέρα λειτουργίας του Test, οπότε ελέγχεται η απόδοση του
αλγορίθμου για κάθε διαφημιστική προβολή
27. Πειράματα & Αποτελέσματα - Φάση 2η
CTR/View 7 ημερών ανά θέση Πορίσματα:
✔ Αύξηση CTR θέσεων: 1,2,3,4,7,10
✔ Αύξηση CTR πρώτων θέσεων σημαίνει
καλύτερη πρόταση ταξινόμησης → καλύτερη
εξατομίκευση
28. Πειράματα & Αποτελέσματα - Φάση 2η
Υπολογισμός p-value για την μελέτη της
στατιστικής σημαντικότητας του αποτελέσματος
της αύξησης του CTR/View των πρώτων θέσεων
Null Hypothesis: CTR/View (source = 0)
Alternative Hypothesis: CTR/View (source = 1)
Θέση banner p-value 95% confidence
(p≤0,05)
1 0,390 OXI
2 0,013 NAI
3 0,046 NAI
4 0,413 OXI
7 0,189 ΟΧΙ
10 0,423 OXI
29. Ανακεφαλαίωση & Συμπεράσματα
● Κατασκευάσαμε ένα ολοκληρωμένο σύστημα σύστασης διαφημιστικών προβολών πραγματικού
χρόνου σε ένα μεσαίου μεγέθους e-shop
● Στο σύστημα ενσωματώθηκαν μοντέλα μηχανικής μάθησης για σύσταση προϊόντων → σύσταση
διαφημιστικών προβολών
● Χρησιμοποιήσαμε αποκλειστικά δεδομένα πλοήγησης (views, buys, add to cart etc.)
Καταλήξαμε στα εξής:
1. Επιτυχία του Bayesian Personalized Ranking αλγορίθμου στη εύρεση της
προτίμησης του χρήστη
2. Συνολικά καλύτερα αποτελέσματα του προτεινόμενου συστήματος στην
online αξιολόγηση
3. Απόδειξη της στατιστικής σημαντικότητας του αποτελέσματος μέσω της
αύξησης CTR των πρώτων θέσεων
4. Επιρροή της διαφημιστικής προβολής ως στοιχείου πολυμέσων και από
άλλους παράγοντες οι οποίοι πρέπει να ληφθούν υπόψην
H βασική ιδέα είναι να βρούμε ποιοι χρήστες μοιράζονται τα ίδια ενδιαφέροντα με τον ενδιαφερόμενο χρήστη στο παρελθόν. Η κατηγορία αυτή των αλγορίθμων εξατομίκευσης στηρίζεται στο ότι οι χρήστες που έχουν παρόμοιες προτιμήσεις, βαθμολογούν και αξιολογούν με παρόμοιο τρόπο.
Αξιοποίηση της ευελιξίας και της μη γραμμικότητας των νευρωνικών δικτύων
Παραγοντοποίηση ενός μεγάλου πίνακα σε κάποια μικρότερη αναπαράσταση
Μείωση αρχικών διαστάσεων έτσι ώστε να ομαδοποιηθούν οι προτιμήσεις χρηστών και αντικειμένων (διαστάσεις → latent or hidden features)
Πιο αποδοτικό υπολογιστικά πρόβλημα
To ALS είναι μία επαναληπτική διαδικασία βελτιστοποίησης, όπου σε κάθε επανάληψη
επιδιώκεται να προσεγγιστεί όσο γίνεται καλύτερα μια παραγοντοποιημένη
αναπαράσταση των αρχικών δεδομένων