Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker

Αυτή είναι μια προσκεκλημένη ανάρτηση από τον Viktor Enrico Jeney, Senior Machine Learning Engineer στο Adspert.

Adspert είναι μια ISV με έδρα το Βερολίνο που ανέπτυξε ένα εργαλείο διαχείρισης προσφορών που έχει σχεδιαστεί για να βελτιστοποιεί αυτόματα τις καμπάνιες μάρκετινγκ και διαφήμισης απόδοσης. Βασική αρχή της εταιρείας είναι η αυτοματοποίηση της μεγιστοποίησης του κέρδους της διαφήμισης ηλεκτρονικού εμπορίου με τη βοήθεια της τεχνητής νοημοσύνης. Η συνεχής ανάπτυξη των διαφημιστικών πλατφορμών ανοίγει το δρόμο για νέες ευκαιρίες, τις οποίες η Adspert αξιοποιεί έμπειρα για την επιτυχία των πελατών της.

Ο πρωταρχικός στόχος του Adspert είναι να απλοποιήσει τη διαδικασία για τους χρήστες, βελτιστοποιώντας παράλληλα τις διαφημιστικές καμπάνιες σε διαφορετικές πλατφόρμες. Αυτό περιλαμβάνει τη χρήση των πληροφοριών που συλλέγονται στις διάφορες πλατφόρμες, σε σχέση με τον βέλτιστο προϋπολογισμό που ορίζεται σε ένα επίπεδο πάνω από κάθε πλατφόρμα. Η εστίαση του Adspert είναι να βελτιστοποιήσει την επίτευξη του στόχου ενός πελάτη, ανεξάρτητα από την πλατφόρμα που χρησιμοποιείται. Το Adspert συνεχίζει να προσθέτει πλατφόρμες όπως απαιτείται για να προσφέρει στους πελάτες μας σημαντικά πλεονεκτήματα.

Σε αυτήν την ανάρτηση, μοιραζόμαστε πώς η Adspert δημιούργησε το εργαλείο τιμολόγησης από την αρχή χρησιμοποιώντας διαφορετικές υπηρεσίες AWS όπως Amazon Sage Maker και πώς η Adspert συνεργάστηκε με την Εργαστήριο δεδομένων AWS να επιταχύνει αυτό το έργο από το σχεδιασμό στην κατασκευή σε χρόνο ρεκόρ.

Το εργαλείο τιμολόγησης επανατιμά ένα προϊόν που έχει επιλεγεί από τον πωλητή σε μια αγορά ηλεκτρονικού εμπορίου με βάση την ορατότητα και το περιθώριο κέρδους για να μεγιστοποιήσει τα κέρδη σε επίπεδο προϊόντος.

Ως πωλητής, είναι σημαντικό τα προϊόντα σας να είναι πάντα ορατά γιατί αυτό θα αυξήσει τις πωλήσεις. Ο πιο σημαντικός παράγοντας στις πωλήσεις ηλεκτρονικού εμπορίου είναι απλώς εάν η προσφορά σας είναι ορατή στους πελάτες αντί για την προσφορά ενός ανταγωνιστή.

Αν και σίγουρα εξαρτάται από τη συγκεκριμένη πλατφόρμα ηλεκτρονικού εμπορίου, διαπιστώσαμε ότι η τιμή του προϊόντος είναι ένα από τα πιο σημαντικά στοιχεία που μπορεί να επηρεάσει την προβολή. Ωστόσο, οι τιμές αλλάζουν συχνά και γρήγορα. για αυτόν τον λόγο το εργαλείο τιμολόγησης πρέπει να ενεργεί σε σχεδόν πραγματικό χρόνο για να αυξήσει την ορατότητα.

Επισκόπηση της λύσης

Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσεων.

Το διάλυμα περιέχει τα ακόλουθα συστατικά:

  1. Amazon Relational Database Service (Amazon RDS) για PostgreSQL είναι η κύρια πηγή δεδομένων, που περιέχει πληροφορίες προϊόντος που αποθηκεύονται σε μια βάση δεδομένων RDS for Postgres.
  2. Οι πληροφορίες για τις αλλαγές της λίστας προϊόντων φτάνουν σε πραγματικό χρόνο σε ένα Υπηρεσία απλής ουράς Amazon (Amazon SQS) ουρά.
  3. Οι πληροφορίες προϊόντος που είναι αποθηκευμένες στο Amazon RDS απορροφώνται σε σχεδόν πραγματικό χρόνο στο ακατέργαστο επίπεδο χρησιμοποιώντας το μοτίβο λήψης δεδομένων αλλαγής (CDC) που είναι διαθέσιμο στο Υπηρεσία μετεγκατάστασης βάσης δεδομένων AWS (AWS DMS).
  4. Οι ειδοποιήσεις καταχώρισης προϊόντων που προέρχονται από το Amazon SQS απορροφώνται σε σχεδόν πραγματικό χρόνο στο ακατέργαστο επίπεδο χρησιμοποιώντας ένα AWS Lambda λειτουργία.
  5. Τα αρχικά δεδομένα προέλευσης αποθηκεύονται στο Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος ακατέργαστου στρώματος που χρησιμοποιεί μορφή δεδομένων Parquet. Αυτό το στρώμα είναι η μοναδική πηγή αλήθειας για τη λίμνη δεδομένων. Η κατάτμηση που χρησιμοποιείται σε αυτόν τον χώρο αποθήκευσης υποστηρίζει τη σταδιακή επεξεργασία δεδομένων.
  6. Κόλλα AWS οι εργασίες εξαγωγής, μετατροπής και φόρτωσης (ETL) καθαρίζουν τα δεδομένα του προϊόντος, αφαιρώντας τα διπλότυπα και εφαρμόζοντας ενοποίηση δεδομένων και γενικούς μετασχηματισμούς που δεν συνδέονται με μια συγκεκριμένη επιχειρηματική περίπτωση.
  7. Το επίπεδο σταδίου Amazon S3 λαμβάνει έτοιμα δεδομένα που αποθηκεύονται σε μορφή Apache Parquet για περαιτέρω επεξεργασία. Η κατάτμηση που χρησιμοποιείται στο στάδιο αποθήκευσης υποστηρίζει τη σταδιακή επεξεργασία δεδομένων.
  8. Οι εργασίες AWS Glue που δημιουργούνται σε αυτό το επίπεδο χρησιμοποιούν τα διαθέσιμα δεδομένα στο επίπεδο του σταδίου Amazon S3. Αυτό περιλαμβάνει την εφαρμογή των απαιτούμενων επιχειρηματικών κανόνων για συγκεκριμένη περίπτωση χρήσης και υπολογισμούς. Τα δεδομένα αποτελεσμάτων από αυτές τις εργασίες αποθηκεύονται στο επίπεδο ανάλυσης Amazon S3.
  9. Το επίπεδο ανάλυσης Amazon S3 χρησιμοποιείται για την αποθήκευση των δεδομένων που χρησιμοποιούνται από τα μοντέλα ML για εκπαιδευτικούς σκοπούς. Η κατάτμηση που χρησιμοποιείται στο επιμελημένο κατάστημα βασίζεται στην αναμενόμενη χρήση δεδομένων. Αυτό μπορεί να είναι διαφορετικό από το διαχωρισμό που χρησιμοποιείται στο επίπεδο της σκηνής.
  10. Το μοντέλο ML επανατιμολόγησης είναι μια υλοποίηση Scikit-Learn Random Forest σε SageMaker Script Mode, η οποία εκπαιδεύεται χρησιμοποιώντας δεδομένα που είναι διαθέσιμα στον κάδο S3 (το επίπεδο ανάλυσης).
  11. Μια εργασία επεξεργασίας δεδομένων AWS Glue προετοιμάζει δεδομένα για το συμπέρασμα σε πραγματικό χρόνο. Η εργασία επεξεργάζεται δεδομένα που λαμβάνονται στον κάδο S3 (επίπεδο σταδίου) και καλεί το τελικό σημείο συμπερασμάτων SageMaker. Τα δεδομένα προετοιμάζονται για χρήση από το μοντέλο ανατιμολόγησης SageMaker. Το AWS Glue προτιμήθηκε από το Lambda, επειδή το συμπέρασμα απαιτεί διαφορετικές πολύπλοκες λειτουργίες επεξεργασίας δεδομένων, όπως συνδέσεις και λειτουργίες παραθύρου σε μεγάλο όγκο δεδομένων (δισεκατομμύρια ημερήσιες συναλλαγές). Τα αποτελέσματα από τις επικλήσεις του μοντέλου επανατιμολόγησης αποθηκεύονται στον κάδο S3 (επίπεδο συμπερασμάτων).
  12. Η εργασία εκπαίδευσης SageMaker αναπτύσσεται χρησιμοποιώντας ένα τελικό σημείο SageMaker. Αυτό το τελικό σημείο επικαλείται ο επεξεργαστής συμπερασμάτων AWS Glue, δημιουργώντας προτάσεις τιμών σχεδόν σε πραγματικό χρόνο για την αύξηση της ορατότητας του προϊόντος.
  13. Οι προβλέψεις που δημιουργούνται από το τελικό σημείο συμπερασμάτων SageMaker αποθηκεύονται στο επίπεδο συμπερασμάτων Amazon S3.
  14. Η λειτουργία βελτιστοποίησης προβλέψεων Lambda επεξεργάζεται τις συστάσεις που δημιουργούνται από το τελικό σημείο συμπερασμάτων SageMaker και δημιουργεί μια νέα πρόταση τιμής που εστιάζει στη μεγιστοποίηση του κέρδους πωλητή, εφαρμόζοντας μια αντιστάθμιση μεταξύ του όγκου πωλήσεων και του περιθωρίου πωλήσεων.
  15. Οι προτάσεις τιμών που δημιουργούνται από το εργαλείο βελτιστοποίησης προβλέψεων Lambda υποβάλλονται στο API επανατιμολόγησης, το οποίο ενημερώνει την τιμή του προϊόντος στην αγορά.
  16. Οι ενημερωμένες προτάσεις τιμών που δημιουργούνται από το εργαλείο βελτιστοποίησης προβλέψεων Lambda αποθηκεύονται στο επίπεδο βελτιστοποίησης Amazon S3.
  17. Η εργασία φόρτωσης πρόβλεψης AWS Glue επαναφορτώνει στη βάση δεδομένων πηγής RDS για Postgres SQL τις προβλέψεις που δημιουργούνται από το μοντέλο ML για σκοπούς ελέγχου και αναφοράς. Το AWS Glue Studio χρησιμοποιήθηκε για την υλοποίηση αυτού του στοιχείου. είναι μια γραφική διεπαφή που διευκολύνει τη δημιουργία, την εκτέλεση και την παρακολούθηση εργασιών ETL στο AWS Glue.

Προετοιμασία δεδομένων

Το σύνολο δεδομένων για το μοντέλο ορατότητας του Adspert δημιουργείται από μια ουρά SQS και εισάγεται στο ακατέργαστο στρώμα της λίμνης δεδομένων μας σε πραγματικό χρόνο με το Lambda. Στη συνέχεια, τα ακατέργαστα δεδομένα απολυμαίνονται εκτελώντας απλούς μετασχηματισμούς, όπως η κατάργηση των διπλότυπων. Αυτή η διαδικασία εφαρμόζεται στο AWS Glue. Το αποτέλεσμα αποθηκεύεται στο στρώμα σταδιοποίησης της λίμνης δεδομένων μας. Οι ειδοποιήσεις παρέχουν στους ανταγωνιστές για ένα δεδομένο προϊόν, τις τιμές, τα κανάλια εκπλήρωσης, τους χρόνους αποστολής και πολλές άλλες μεταβλητές. Παρέχουν επίσης ένα μέτρο ορατότητας που εξαρτάται από την πλατφόρμα, το οποίο μπορεί να εκφραστεί ως μεταβλητή Boolean (ορατή ή μη ορατή). Λαμβάνουμε μια ειδοποίηση κάθε φορά που συμβαίνει μια αλλαγή προσφοράς, η οποία προσθέτει έως και πολλά εκατομμύρια συμβάντα ανά μήνα για όλα τα προϊόντα των πελατών μας.

Από αυτό το σύνολο δεδομένων, εξάγουμε τα δεδομένα εκπαίδευσης ως εξής: για κάθε ειδοποίηση, ζευγαρώνουμε τις ορατές προσφορές με κάθε μη ορατή προσφορά και αντίστροφα. Κάθε σημείο δεδομένων αντιπροσωπεύει έναν ανταγωνισμό μεταξύ δύο πωλητών, στον οποίο υπάρχει ξεκάθαρος νικητής και χαμένος. Αυτή η εργασία επεξεργασίας υλοποιείται σε μια εργασία κόλλας AWS με Spark. Το προετοιμασμένο σύνολο δεδομένων εκπαίδευσης προωθείται στον κάδο αναλυτικών στοιχείων S3 για χρήση από το SageMaker.

Εκπαιδεύστε το μοντέλο

Το μοντέλο μας ταξινομεί για κάθε ζεύγος προσφορών, εάν μια δεδομένη προσφορά είναι ορατή. Αυτό το μοντέλο μας δίνει τη δυνατότητα να υπολογίσουμε την καλύτερη τιμή για τους πελάτες μας, να αυξήσουμε την προβολή με βάση τον ανταγωνισμό και να μεγιστοποιήσουμε το κέρδος τους. Επιπλέον, αυτό το μοντέλο ταξινόμησης μπορεί να μας δώσει βαθύτερες πληροφορίες σχετικά με τους λόγους για τους οποίους οι καταχωρίσεις μας είναι ορατές ή όχι. Χρησιμοποιούμε τα ακόλουθα χαρακτηριστικά:

  • Αναλογία της τιμής μας προς τις τιμές των ανταγωνιστών
  • Διαφορά στα κανάλια εκπλήρωσης
  • Ποσότητα σχολίων για κάθε πωλητή
  • Αξιολόγηση σχολίων για κάθε πωλητή
  • Διαφορά στους ελάχιστους χρόνους αποστολής
  • Διαφορά στους μέγιστους χρόνους αποστολής
  • Διαθεσιμότητα του προϊόντος κάθε πωλητή

Το Adspert χρησιμοποιεί το SageMaker για να εκπαιδεύσει και να φιλοξενήσει το μοντέλο. Χρησιμοποιούμε την εφαρμογή Scikit-Learn Random Forest στο Λειτουργία σεναρίου SageMaker. Περιλαμβάνουμε επίσης κάποια προεπεξεργασία χαρακτηριστικών απευθείας στη διοχέτευση Scikit-Learn στο σενάριο εκπαίδευσης. Δείτε τον παρακάτω κώδικα:

import numpy as np

def transform_price(X):
    X = X.to_numpy()
    return np.log(
        X[:, 0] / np.nanmin([X[:, 1], X[:, 2]], axis=0),
    ).reshape(-1, 1)

def difference(X):
    X = X.to_numpy()
    return (X[:, 0] - X[:, 1]).reshape(-1, 1)

def fulfillment_difference(X):
    X = X.astype(int)
    return difference(X)

Μία από τις πιο σημαντικές λειτουργίες προεπεξεργασίας είναι transform_price, που διαιρεί την τιμή με το ελάχιστο της τιμής ανταγωνιστή και μια στήλη εξωτερικής τιμής. Διαπιστώσαμε ότι αυτό το χαρακτηριστικό έχει σχετικό αντίκτυπο στην ακρίβεια του μοντέλου. Εφαρμόζουμε επίσης τον λογάριθμο για να αφήσουμε το μοντέλο να αποφασίσει με βάση τις σχετικές διαφορές τιμών, όχι τις απόλυτες διαφορές τιμών.

Στο training_script.py script, ορίζουμε πρώτα τον τρόπο δημιουργίας του Scikit-Learn ColumnTransformer για να εφαρμόσετε τους καθορισμένους μετασχηματιστές στις στήλες ενός πλαισίου δεδομένων:

import argparse
import os
from io import StringIO

import joblib
import numpy as np
import pandas as pd
from custom_transformers import difference
from custom_transformers import fulfillment_difference
from custom_transformers import transform_price
from sklearn.compose import ColumnTransformer
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import FunctionTransformer
from sklearn.preprocessing import OneHotEncoder

def make_preprocessor():
    return ColumnTransformer([
        ('price_by_smallest_cp', FunctionTransformer(transform_price),
         ['price', 'competitor_price', 'external_price']),
        (fulfillment_difference, FunctionTransformer(fulfillment_difference),
         ['fulfillment', 'competitor_'fulfillment']),
        ('feedback_count', 'passthrough',
         ['feedback_count', 'competitor_feedback_count']),
        ('feedback_rating', 'passthrough',
         ['feedback_rating', 'competitor_feedback_rating']),
        (
            'availability_type',
            OneHotEncoder(categories=[['NOW'], ['NOW']],
                          handle_unknown='ignore'),
            ['availability_type', 'competitor_availability_type'],
        ),
        ('min_shipping', FunctionTransformer(difference),
         ['minimum_shipping_hours', 'competitor_min_shipping_hours']),
        ('max_shipping', FunctionTransformer(difference),
         ['maximum_shipping_hours', 'competitor_max_shipping_hours']),
    ], remainder='drop')

Στο σενάριο εκπαίδευσης, φορτώνουμε τα δεδομένα από το Parquet σε ένα πλαίσιο δεδομένων Pandas, ορίζουμε τη διοχέτευση του ColumnTranformer και την RandomForestClassifierκαι εκπαιδεύστε το μοντέλο. Στη συνέχεια, το μοντέλο σειριοποιείται χρησιμοποιώντας joblib:

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--output-data-dir', type=str,
                        default=os.environ['SM_OUTPUT_DATA_DIR'])
    parser.add_argument('--model-dir', type=str,
                        default=os.environ['SM_MODEL_DIR'])
    parser.add_argument('--train', type=str,
                        default=os.environ['SM_CHANNEL_TRAIN'])

    args = parser.parse_args()

    # load training data
    input_files = [os.path.join(args.train, file)
                   for file in os.listdir(args.train)]
    if len(input_files) == 0:
        raise ValueError
    raw_data = [pd.read_parquet(file) for file in input_files]
    train_data = pd.concat(raw_data)

    # split data set into x and y values
    train_y = train_data.loc[:, 'is_visible']

    if train_y.dtype != 'bool':
        raise ValueError(f'Label 'is_visible' has to be dtype bool but is'
                         f' {train_y.dtype}')

    train_X = train_data.drop('is_visible', axis=1)

    # fit the classifier pipeline and store the fitted model
    clf = Pipeline([
        ('preprocessor', make_preprocessor()),
        ('classifier', RandomForestClassifier(random_state=1)),
    ])
    clf.fit(train_X, train_y)
    joblib.dump(clf, os.path.join(args.model_dir, 'model.joblib'))

Στο σενάριο εκπαίδευσης, πρέπει επίσης να εφαρμόσουμε συναρτήσεις για συμπέρασμα:

  • input_fn – Είναι υπεύθυνος για την ανάλυση των δεδομένων από το σώμα αιτήματος του ωφέλιμου φορτίου
  • model_fn – Φορτώνει και επιστρέφει το μοντέλο που έχει απορριφθεί στην ενότητα εκπαίδευσης του σεναρίου
  • predict_fn – Περιέχει την εφαρμογή μας για να ζητήσουμε μια πρόβλεψη από το μοντέλο χρησιμοποιώντας τα δεδομένα από το ωφέλιμο φορτίο
  • predict_proba – Για να σχεδιάσουμε τις προβλεπόμενες καμπύλες ορατότητας, επιστρέφουμε την πιθανότητα κλάσης χρησιμοποιώντας το predict_proba συνάρτηση, αντί της δυαδικής πρόβλεψης του ταξινομητή

Δείτε τον ακόλουθο κώδικα:

def input_fn(request_body, request_content_type):
    """Parse input data payload"""
    if request_content_type == 'text/csv':
        df = pd.read_csv(StringIO(request_body))
        return df
    else:
        raise ValueError(f'{request_content_type} not supported by script!')


def predict_fn(input_data, model):
    """Predict the visibilities"""
    classes = model.classes_

    if len(classes) != 2:
        raise ValueError('Model has more than 2 classes!')

    # get the index of the winning class
    class_index = np.where(model.classes_ == 1)[0][0]

    output = model.predict_proba(input_data)
    return output[:, class_index]


def model_fn(model_dir):
    """Deserialized and return fitted model

    Note that this should have the same name as the serialized model in the
    main method
    """
    clf = joblib.load(os.path.join(model_dir, 'model.joblib'))
    return clf

Το παρακάτω σχήμα δείχνει τις σημαντικές ιδιότητες χαρακτηριστικών που βασίζονται σε ακαθαρσίες που επιστρέφονται από το Ταξινόμηση τυχαίων δασών.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Με το SageMaker, μπορέσαμε να εκπαιδεύσουμε το μοντέλο σε μεγάλο όγκο δεδομένων (έως 14 δισεκατομμύρια ημερήσιες συναλλαγές) χωρίς να επιβαρύνουμε τις υπάρχουσες παρουσίες μας ή να χρειαστεί να δημιουργήσουμε ένα ξεχωριστό μηχάνημα με αρκετούς πόρους. Επιπλέον, επειδή οι περιπτώσεις κλείνουν αμέσως μετά την εργασία εκπαίδευσης, η εκπαίδευση με το SageMaker ήταν εξαιρετικά οικονομική. Η ανάπτυξη του μοντέλου με το SageMaker λειτούργησε χωρίς πρόσθετο φόρτο εργασίας. Μια κλήση συνάρτησης στο Python SDK είναι αρκετή για να φιλοξενήσει το μοντέλο μας ως τελικό σημείο συμπερασμάτων και μπορεί εύκολα να ζητηθεί από άλλες υπηρεσίες χρησιμοποιώντας επίσης το SageMaker Python SDK. Δείτε τον παρακάτω κώδικα:

from sagemaker.sklearn.estimator import SKLearn

FRAMEWORK_VERSION = "0.23-1"
script_path = 'training_script.py'
output_location = f's3://{bucket}/{folder}/output'
source_dir = 'source_dir'

sklearn = SKLearn(
    entry_point=script_path,
    source_dir=source_dir,
    framework_version=FRAMEWORK_VERSION,
    instance_type='ml.m5.large',
    role=role,
    sagemaker_session=sagemaker_session,
    output_path=output_location)

sklearn.fit({'train': training_path})

Το τεχνούργημα του μοντέλου αποθηκεύεται στο Amazon S3 με τη λειτουργία fit. Όπως φαίνεται στον παρακάτω κώδικα, το μοντέλο μπορεί να φορτωθεί ως α SKLearnModel αντικείμενο χρησιμοποιώντας το τεχνούργημα μοντέλου, τη διαδρομή σεναρίου και ορισμένες άλλες παραμέτρους. Στη συνέχεια, μπορεί να αναπτυχθεί στον επιθυμητό τύπο εμφάνισης και αριθμό παρουσιών.

model = sagemaker.sklearn.model.SKLearnModel(
    model_data=f'{output_location}/sagemaker-scikit-learn-2021-02-23-11-13-30-036/output/model.tar.gz',
    source_dir=source_dir,
    entry_point=script_path,
    framework_version=FRAMEWORK_VERSION,
    sagemaker_session=sagemaker_session,
    role=role
)
ENDPOINT_NAME = 'visibility-model-v1'
model.deploy(
    initial_instance_count=1,
    instance_type='ml.m5.large',
    endpoint_name=ENDPOINT_NAME
)

Αξιολογήστε το μοντέλο σε πραγματικό χρόνο

Κάθε φορά που αποστέλλεται νέα ειδοποίηση για ένα από τα προϊόντα μας, θέλουμε να υπολογίσουμε και να υποβάλουμε τη βέλτιστη τιμή. Για να υπολογίσουμε τις βέλτιστες τιμές, δημιουργούμε ένα σύνολο δεδομένων πρόβλεψης στο οποίο συγκρίνουμε τη δική μας προσφορά με την προσφορά κάθε ανταγωνιστή για μια σειρά πιθανών τιμών. Αυτά τα σημεία δεδομένων μεταβιβάζονται στο τελικό σημείο του SageMaker, το οποίο επιστρέφει την προβλεπόμενη πιθανότητα να είναι ορατά έναντι κάθε ανταγωνιστή για κάθε δεδομένη τιμή. Την πιθανότητα να είμαστε ορατοί ονομάζουμε προβλεπόμενη ορατότητα. Το αποτέλεσμα μπορεί να απεικονιστεί ως καμπύλη για κάθε ανταγωνιστή, απεικονίζοντας τη σχέση μεταξύ της τιμής μας και της ορατότητας, όπως φαίνεται στο παρακάτω σχήμα.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Σε αυτό το παράδειγμα, η ορατότητα έναντι του ανταγωνιστή 1 είναι σχεδόν μια αποσπασματική σταθερή συνάρτηση, υποδηλώνοντας ότι πρέπει κυρίως να μειώσουμε την τιμή κάτω από ένα συγκεκριμένο όριο, περίπου την τιμή του ανταγωνιστή, για να γίνει ορατή. Ωστόσο, η ορατότητα έναντι του ανταγωνιστή 2 δεν μειώνεται τόσο απότομα. Επιπλέον, έχουμε ακόμα 50% πιθανότητα να είμαστε ορατοί ακόμα και με πολύ υψηλή τιμή. Η ανάλυση των δεδομένων εισόδου αποκάλυψε ότι ο ανταγωνιστής έχει χαμηλό αριθμό αξιολογήσεων, οι οποίοι τυχαίνει να είναι πολύ φτωχοί. Το μοντέλο μας έμαθε ότι αυτή η συγκεκριμένη πλατφόρμα ηλεκτρονικού εμπορίου μειονεκτεί σε πωλητές με κακές αξιολογήσεις ανατροφοδότησης. Ανακαλύψαμε παρόμοια εφέ για τις άλλες λειτουργίες, όπως το κανάλι ολοκλήρωσης και τους χρόνους αποστολής.

Οι απαραίτητοι μετασχηματισμοί δεδομένων και τα συμπεράσματα σε σχέση με το τελικό σημείο του SageMaker υλοποιούνται στο AWS Glue. Η εργασία AWS Glue λειτουργεί σε μικρο-παρτίδες στα δεδομένα σε πραγματικό χρόνο που λαμβάνονται από το Lambda.

Τέλος, θέλουμε να υπολογίσουμε τη συγκεντρωτική καμπύλη ορατότητας, η οποία είναι η προβλεπόμενη ορατότητα για κάθε πιθανή τιμή. Η προσφορά μας είναι ορατή εάν είναι καλύτερη από όλες τις προσφορές των άλλων πωλητών. Υποθέτοντας ανεξαρτησία μεταξύ των πιθανοτήτων να είμαστε ορατοί έναντι κάθε πωλητή, δεδομένης της τιμής μας, η πιθανότητα να είμαστε ορατοί έναντι όλων των πωλητών είναι το γινόμενο των αντίστοιχων πιθανοτήτων. Αυτό σημαίνει ότι η συνολική καμπύλη ορατότητας μπορεί να υπολογιστεί πολλαπλασιάζοντας όλες τις καμπύλες.

Τα παρακάτω σχήματα δείχνουν τις προβλεπόμενες ορατότητες που επιστρέφονται από το τελικό σημείο του SageMaker.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το παρακάτω σχήμα δείχνει τη συγκεντρωτική καμπύλη ορατότητας.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Για τον υπολογισμό της βέλτιστης τιμής, η καμπύλη ορατότητας αρχικά εξομαλύνεται και στη συνέχεια πολλαπλασιάζεται με το περιθώριο. Για τον υπολογισμό του περιθωρίου, χρησιμοποιούμε το κόστος των αγαθών και τις αμοιβές. Το κόστος των πωληθέντων αγαθών και τα τέλη είναι οι στατικές πληροφορίες προϊόντος που συγχρονίζονται μέσω AWS DMS. Με βάση τη συνάρτηση κέρδους, το Adspert υπολογίζει τη βέλτιστη τιμή και την υποβάλλει στην πλατφόρμα ηλεκτρονικού εμπορίου μέσω του API της πλατφόρμας.

Αυτό εφαρμόζεται στο εργαλείο βελτιστοποίησης πρόβλεψης AWS Lambda.

Το παρακάτω σχήμα δείχνει τη σχέση μεταξύ της προβλεπόμενης ορατότητας και της τιμής.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το παρακάτω σχήμα δείχνει τη σχέση μεταξύ τιμής και κέρδους.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Συμπέρασμα

Η υπάρχουσα προσέγγιση της Adspert για τη μεγιστοποίηση του κέρδους επικεντρώνεται στη διαχείριση προσφορών για την αύξηση των αποδόσεων από τη διαφήμιση. Ωστόσο, για να επιτύχουν ανώτερη απόδοση στις αγορές ηλεκτρονικού εμπορίου, οι πωλητές πρέπει να εξετάσουν τόσο τη διαφήμιση όσο και την ανταγωνιστική τιμολόγηση των προϊόντων τους. Με αυτό το νέο μοντέλο ML για την πρόβλεψη της ορατότητας, μπορούμε να επεκτείνουμε τη λειτουργικότητά μας για να προσαρμόσουμε επίσης τις τιμές των πελατών.

Το νέο εργαλείο τιμολόγησης πρέπει να είναι ικανό για αυτοματοποιημένη εκπαίδευση του μοντέλου ML σε μεγάλο όγκο δεδομένων, καθώς και μετασχηματισμούς δεδομένων σε πραγματικό χρόνο, προβλέψεις και βελτιστοποιήσεις τιμών. Σε αυτήν την ανάρτηση, ακολουθήσαμε τα κύρια βήματα της μηχανής βελτιστοποίησης τιμών και την αρχιτεκτονική AWS που εφαρμόσαμε σε συνεργασία με το εργαστήριο δεδομένων AWS για την επίτευξη αυτών των στόχων.

Η λήψη μοντέλων ML από την ιδέα στην παραγωγή είναι συνήθως πολύπλοκη και χρονοβόρα. Πρέπει να διαχειριστείτε μεγάλες ποσότητες δεδομένων για να εκπαιδεύσετε το μοντέλο, να επιλέξετε τον καλύτερο αλγόριθμο για να το εκπαιδεύσετε, να διαχειριστείτε την υπολογιστική ικανότητα ενώ το εκπαιδεύετε και στη συνέχεια να αναπτύξετε το μοντέλο σε ένα περιβάλλον παραγωγής. Το SageMaker μείωσε αυτή την πολυπλοκότητα καθιστώντας πολύ πιο απλή τη δημιουργία και την ανάπτυξη του μοντέλου ML. Αφού επιλέξαμε τους σωστούς αλγόριθμους και πλαίσια από το ευρύ φάσμα των διαθέσιμων επιλογών, το SageMaker διαχειρίστηκε όλη την υποκείμενη υποδομή για να εκπαιδεύσει το μοντέλο μας και να το αναπτύξει στην παραγωγή.

Εάν θέλετε να αρχίσετε να εξοικειωθείτε με το SageMaker, το Εργαστήριο Immersion Day μπορεί να σας βοηθήσει να κατανοήσετε από άκρο σε άκρο πώς να δημιουργήσετε περιπτώσεις χρήσης ML από τη μηχανική χαρακτηριστικών, τους διάφορους ενσωματωμένους αλγόριθμους και πώς να εκπαιδεύσετε, να συντονίσετε και να αναπτύξετε το μοντέλο ML σε ένα σενάριο παρόμοιο με την παραγωγή. Σας καθοδηγεί να φέρετε το δικό σας μοντέλο και να εκτελέσετε μια εσωτερική ανύψωση και μετατόπιση φόρτου εργασίας ML στην πλατφόρμα SageMaker. Επιδεικνύει περαιτέρω προηγμένες έννοιες, όπως εντοπισμό σφαλμάτων μοντέλου, παρακολούθηση μοντέλου και AutoML, και σας βοηθά να αξιολογήσετε τον φόρτο εργασίας σας ML μέσω του φακού AWS ML Well-Architected.

Εάν θέλετε βοήθεια για την επιτάχυνση της υλοποίησης περιπτώσεων χρήσης που περιλαμβάνουν δεδομένα, αναλυτικά στοιχεία, τεχνητή νοημοσύνη και ML, χωρίς διακομιστή και εκσυγχρονισμό κοντέινερ, επικοινωνήστε με το Εργαστήριο δεδομένων AWS.


Σχετικά με τους συγγραφείς

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Viktor Enrico Jeney είναι Senior Machine Learning Engineer στο Adspert με έδρα το Βερολίνο της Γερμανίας. Δημιουργεί λύσεις για προβλήματα πρόβλεψης και βελτιστοποίησης προκειμένου να αυξήσει τα κέρδη των πελατών. Ο Βίκτορ έχει ένα υπόβαθρο στα εφαρμοσμένα μαθηματικά και του αρέσει να εργάζεται με δεδομένα. Στον ελεύθερο χρόνο του, του αρέσει να μαθαίνει ουγγρικά, να εξασκείται στις πολεμικές τέχνες και να παίζει κιθάρα.

Βέλτιστη τιμολόγηση για μέγιστο κέρδος χρησιμοποιώντας το Amazon SageMaker PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ένιο Παστόρε είναι αρχιτέκτονας δεδομένων στην ομάδα του AWS Data Lab. Είναι ενθουσιώδης με οτιδήποτε σχετίζεται με τις νέες τεχνολογίες που έχουν θετικό αντίκτυπο στις επιχειρήσεις και γενικότερα τα προς το ζην. Η Ennio έχει πάνω από 9 χρόνια εμπειρίας στην ανάλυση δεδομένων. Βοηθά τις εταιρείες να καθορίσουν και να εφαρμόσουν πλατφόρμες δεδομένων σε όλους τους κλάδους, όπως οι τηλεπικοινωνίες, οι τράπεζες, τα τυχερά παιχνίδια, το λιανικό εμπόριο και οι ασφάλειες.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS