Ένα περιβάλλον εργασίας χρήστη φυσικής γλώσσας είναι απλώς ένα περιβάλλον εργασίας χρήστη

Λίγα λόγια για αυτήν τη διαφημιστική εκστρατεία bot…

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

Υπάρχουν πολλοί όροι που σχετίζονται με αυτήν την τεχνολογία - συνομιλητικό εμπόριο, bots, πράκτορες AI κ.λπ. Πιστεύω ότι είναι πολύ πιο σαφές να το ονομάσουμε Linguistic User Interface (LUI), κατ 'αναλογία με το Graphical User Interface (GUI) στο οποίο θα μπορούσατε να επισυνάψετε την ίδια εφαρμογή.

Η φαντασία της εφαρμογής σας με ένα γραφικό περιβάλλον είναι ένα καλό αντίδοτο για ενδεχομένως μάλλον προβληματισμό σχετικά με τους «παράγοντες AI». Πρέπει ακόμη να συνδέσετε το περιβάλλον εργασίας χρήστη με την υποκείμενη εφαρμογή και το εννοιολογικό μοντέλο της υποκείμενης εφαρμογής σας εξακολουθεί να παίζει κυρίαρχο ρόλο στη συνολική εμπειρία χρήστη.

Το κείμενο του χρήστη σας είναι σαν ένα κλικ

Ας υποθέσουμε ότι έχετε μια απλή εφαρμογή, ικανή να εκτελεί τέσσερις λειτουργίες:

  • check_weather (): Εμφάνιση του τρέχοντος καιρού και του αύριο.
  • check_calendar (): Εμφάνιση σημερινών συναντήσεων.
  • call_mom (): Καλέστε τη μητέρα σας.
  • Tell_joke (): Πείτε ένα αστείο.

Φανταστείτε να γράφετε ένα GUI για αυτήν την εφαρμογή από το μηδέν. Ο χρήστης μετακινεί τον κέρσορα και κάνει κλικ. Σε κάθε κλικ, λαμβάνετε ένα ζευγάρι αριθμών, που αντιπροσωπεύουν τη θέση του δρομέα. Έτσι, κάθε ενέργεια χρήστη σας δίνει ένα διάνυσμα δύο πραγματικών τιμών. Η εφαρμογή σας γνωρίζει τα πλαίσια οριοθέτησης των τεσσάρων κουμπιών της. Για κάθε διάνυσμα, ελέγχετε εάν το σημείο εμπίπτει στα όρια ενός από τα κουμπιά σας. Εάν συμβαίνει αυτό, ενεργοποιείτε το πάτημα του κουμπιού κίνησης και εκτελείτε την κατάλληλη λειτουργία.

Για να γράψουμε ένα LUI από το μηδέν, πρέπει να πάρουμε το κείμενο του χρήστη και να το επιλύσουμε σε ένα διάνυσμα αριθμών. Πρέπει να καταλάβουμε «πού» ο χρήστης έχει «κάνει κλικ». Συνήθως χαρτογραφούμε κάθε λέξη σε ένα αυθαίρετο αναγνωριστικό. Στη συνέχεια, αν αναγνωρίσουμε ένα λεξιλόγιο 5.000 λέξεων, μπορούμε να θεωρήσουμε κάθε λέξη ως ξεχωριστό σημείο σε χώρο 5.000 διαστάσεων. Στη συνέχεια, μειώνουμε αυτόν τον χώρο σε πυκνότερο χώρο, ας πούμε, 300 διαστάσεων. Αυτό μας παίρνει μεγάλο μέρος του τρόπου για την επίλυση του κειμένου σε ένα διαχειρίσιμο διάνυσμα σημασίας.

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

Η παραπάνω απλή συνάρτηση μας επιτρέπει να αναπαριστούμε το «νόημα» του κειμένου του χρήστη ως ένα ζευγάρι δύο πραγματικών τιμών:

  • get_coords ("ελέγξτε τον καιρό") → (0.3, 0.3)
  • get_coords ("εμφάνιση του ημερολογίου μου") → (0.1, 0.7)
  • get_coords ("πείτε κάτι αστείο") → (0.1, 0.1)
  • get_coords ("κλήση μαμά") → (0,9, 0,9)

Μπορούμε να ολοκληρώσουμε την αναλογία μεταξύ του LUI και του GUI σχεδιάζοντας αυτές τις τιμές και προτείνοντας ορισμένα όρια για τα «κουμπιά» μας - τις ενέργειες της εφαρμογής μας.

Με ένα GUI, δεν υπάρχει πρόβλημα να προσδιορίσετε τις συντεταγμένες του κλικ και δεν χρειάζεται ποτέ να σκεφτείτε να επιλύσετε το συμβάν κλικ σε ένα συγκεκριμένο κουμπί, εάν υπάρχει. Αυτό συμβαίνει ακριβώς - φροντίζεται για εσάς. Με ένα LUI, πρέπει να προσέξετε αυτές τις λεπτομέρειες. Μπορείτε να κάνετε μια καλύτερη ή χειρότερη δουλειά σε αυτό, αλλά το «χρυσό πρότυπο» - το ιερό δισκοπότηρο όλων των προσπαθειών μηχανικής εκμάθησης - θα σας δώσει πάντα κάτι που θεωρείτε δεδομένο σε όλο το GUI. Φυσικά, έχετε έναν πολύ μεγαλύτερο, πολυδιάστατο καμβά στον οποίο ο χρήστης μπορεί να "κάνει κλικ" και κάθε κλικ μπορεί να σας δώσει πλούσια δομημένα δεδομένα. Αλλά πρέπει να βάψετε κουμπιά, φόρμες, μενού πλοήγησης κλπ σε αυτόν τον καμβά. Εξακολουθείτε να συνδέετε ένα UI σε ορισμένες σταθερές υποκείμενες ομάδες δυνατοτήτων.

Εξετάστε ένα διάλογο σαν αυτό:

- Γεια! Πώς μπορώ να σε βοηθήσω σήμερα; - Ψάχνω για ασφάλιση αυτοκινήτου. - Είστε ήδη κάτοχος πολιτικής; - Όχι, αυτό είναι το πρώτο μου αυτοκίνητο

Ας πούμε ότι κάτω από την κουκούλα, η τελική έκφραση του χρήστη ενεργοποιεί τη συνάρτηση car_insurance.non_holder.tell (), η οποία εκτυπώνει έναν τοίχο κειμένου. Το LUI δίνει στον χρήστη ένα ιεραρχικό μενού, του οποίου οι επιλογές καθορίζονται από τον υποκείμενο τομέα. Στο σχεδιασμό GUI, τα προβλήματα που θέτουν τα ένθετα μενού είναι γνωστά και είναι εύκολο να φανταστεί κανείς ανάλογα προβλήματα για ένα LUI.

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

Το σημείο μου εδώ είναι ότι μια γλωσσική διεπαφή χρήστη (LUI) είναι απλώς μια διεπαφή. Η εφαρμογή σας χρειάζεται ακόμα ένα εννοιολογικό μοντέλο και σίγουρα θα πρέπει να κοινοποιήσετε αυτό το εννοιολογικό μοντέλο στους χρήστες σας. Λοιπόν, αναρωτηθείτε: εάν αυτή η εφαρμογή είχε GUI, πώς θα μοιάζει αυτό το GUI;

Μια έκδοση GUI του Siri πιθανότατα θα σας έδινε μια αρχική οθόνη με σελίδες στοιχείων φόρμας, μία για καθεμία από τις υπο-εφαρμογές του Siri. Θα υπήρχε επίσης μια μεγάλη λίστα κουμπιών, για να ενεργοποιηθούν οι ατομικές λειτουργίες του «αβγά αυγού» του Siri. Σημειώστε ότι το GUI στο Siri δεν θα ήταν απλώς η αρχική οθόνη του iOS. Εάν αυτό ήταν αλήθεια, τότε το Siri θα χαρτογράφησε τα λόγια σας σε μια ακολουθία συμβάντων αφής και εισόδων χρηστών.

Όταν λέτε, «Πείτε στη μητέρα μου ότι την αγαπώ», η Σίρι εκτελεί την εντολή sms («η μητέρα μου», «την αγαπώ»). Σίγουρα δεν εκτελεί μια ακολουθία ενεργειών χρήστη, που «πιλοποιεί» το iPhone σας με τον τρόπο που κάνετε. Το να το κάνεις αυτό θα ήταν παράλογο. Το Siri είναι απλώς μια εφαρμογή, με το δικό του εννοιολογικό μοντέλο ενεργειών που είναι πιθανό να θέλετε να εκτελέσετε. Σας εκθέτει αυτές τις ενέργειες μέσω LUI και όχι μέσω GUI.

Τι δεν μπορούσαμε να κάνουμε χθες;

Νομίζω ότι είναι σημαντικό να κατανοήσουμε ακριβώς ποιες ευκαιρίες ανοίγει η νέα και βελτιωμένη τεχνολογία AI. Ένα LUI είναι εφικτό τώρα, επειδή μπορείτε να περιμένετε να μπορείτε να πιάσετε το «κλικ» του χρήστη και να το επιλύσετε στη σωστή ενέργεια με λογική ακρίβεια. Τώρα μπορείτε να περιμένετε να ερμηνεύσετε το κείμενο του χρήστη αρκετά καλά. Αυτό είναι νέο και η ευκαιρία είναι ενδιαφέρουσα. Αλλά η ευκαιρία είναι επίσης πολύ πιο περιορισμένη από ό, τι φαίνεται να σκέφτονται πολλοί άνθρωποι.

Νομίζω ότι ένα LUI μπορεί να είναι ιδιαίτερα ωραίο για τη συμπλήρωση πολύπλοκων φορμών, όπου έχετε πολλά επιχειρήματα που σπάνια χρησιμοποιούνται. Ωστόσο, όσο πιο ακριβές θέλω να είμαι, τόσο λιγότερο ενθουσιασμένος θα χρησιμοποιήσω τη φυσική γλώσσα. Το ερώτημά μου NL πρόκειται να αντιστοιχιστεί σε ένα ερώτημα βάσης δεδομένων και η δομή του πίνακα που υποβάλλω ερώτημα είναι προκαθορισμένη. Μπορεί να είναι καλό και κακό ότι η δομή του τραπεζιού είναι κρυμμένη από μένα.

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

Εκτός αν συγκεντρώνετε τις οδηγίες του χρήστη σε κώδικα και το αξιολογείτε (κάτι που δεν θα συμβούλευα!), Ένα LUI δεν εισάγει καμία επιπλέον εκφραστικότητα. Οι γλωσσικές διεπαφές χρήστη και οι γραφικές διεπαφές χρήστη είναι και οι δύο ... διεπαφές χρήστη.

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

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

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

Σχετικά με μένα

Είμαι υπολογιστής γλωσσολόγος από το Σίδνεϊ και το Βερολίνο. Είμαι ο προγραμματιστής των εργαλείων spaCy NLP και συνιδρυτής του Explosion AI. Εάν εργάζεστε σε AI ή ML, θα πρέπει να δείτε το εργαλείο σχολιασμού με ενεργή μάθηση, το Prodigy.

Διεύθυνση ηλεκτρονικού ταχυδρομείου: [email protected] Twitter: @honnibal