Μετρήσεις ομοιότητας στο NLP

Κόμβος πηγής: 1852346

By Τζέιμς Μπριγκς, Επιστήμονας δεδομένων



Εικόνα από τον συγγραφέα

 

Όταν μετατρέπουμε τη γλώσσα σε μορφή αναγνώσιμη από μηχανή, το πρότυπο Η προσέγγιση είναι η χρήση πυκνών διανυσμάτων.

A neural network typically generates dense vectors. They allow us to convert words and sentences into high-dimensional vectors — organized so that each vector’s geometric position can attribute meaning.



Το γνωστό γλωσσικό αριθμητικό παράδειγμα που δείχνει ότι Βασίλισσα = Βασιλιάς — Άνδρας + Γυναίκα

 

Υπάρχει ένα ιδιαίτερα γνωστό παράδειγμα αυτού, όπου παίρνουμε το διάνυσμα του βασιλιάς, αφαιρέστε το διάνυσμα ΑΝΔΡΑΣκαι προσθέστε το διάνυσμα ΓΥΝΑΙΚΑ. Το πλησιέστερο ταιριαστό διάνυσμα με το διάνυσμα που προκύπτει είναι Βασίλισσα.

Μπορούμε να εφαρμόσουμε την ίδια λογική και σε μεγαλύτερες ακολουθίες, όπως προτάσεις ή παραγράφους — και θα διαπιστώσουμε ότι παρόμοια σημασία αντιστοιχεί με την εγγύτητα/προσανατολισμό μεταξύ αυτών των διανυσμάτων.

Επομένως, η ομοιότητα είναι σημαντική — και αυτό που θα καλύψουμε εδώ είναι οι τρεις πιο δημοφιλείς μετρήσεις για τον υπολογισμό αυτής της ομοιότητας.

Ευκλείδεια απόσταση

 
Η Ευκλείδεια απόσταση (συχνά αποκαλούμενη νόρμα L2) είναι η πιο διαισθητική από τις μετρήσεις. Ας ορίσουμε τρία διανύσματα:



Τρία διανυσματικά παραδείγματα

 

Απλώς κοιτάζοντας αυτά τα διανύσματα, μπορούμε να το πούμε με σιγουριά a και  b είναι πιο κοντά το ένα στο άλλο — και αυτό το βλέπουμε ακόμη πιο ξεκάθαρο όταν οραματιζόμαστε το καθένα σε ένα γράφημα:



Φορείς a και  b είναι κοντά στην προέλευση, διάνυσμα c είναι πολύ πιο μακρινό

 

Σαφώς, a και  b είναι πιο κοντά μεταξύ τους — και υπολογίζουμε ότι χρησιμοποιώντας την Ευκλείδεια απόσταση:



Ευκλείδειος τύπος απόστασης

 

Για να εφαρμόσουμε αυτόν τον τύπο στα δύο μας διανύσματα, a και  b, κανουμε:



Υπολογισμός της Ευκλείδειας απόστασης μεταξύ των διανυσμάτων a και  b

 

Και παίρνουμε μια απόσταση από 0.014, εκτελώντας τον ίδιο υπολογισμό για δ(α, γ) Επιστροφές 1.145, να δ(β, γ) Επιστροφές 1.136. Σαφώς, a και  b είναι πιο κοντά στον Ευκλείδειο χώρο.

Προϊόν Dot

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

Το γινόμενο με τελείες λαμβάνει υπόψη την κατεύθυνση (προσανατολισμό) και επίσης κλιμακώνεται με το μέγεθος του διανύσματος.

Μας ενδιαφέρει ο προσανατολισμός γιατί παρόμοια σημασία (όπως θα βρούμε συχνά) μπορεί να αναπαρασταθεί από την κατεύθυνση του διανύσματος — όχι απαραίτητα το μέγεθός του.

For example, we may find that our vector’s magnitude correlates with the frequency of a word that it represents in our dataset. Now, the word hi σημαίνει το ίδιο με γειά σου, και αυτό μπορεί να μην αντιπροσωπεύεται εάν τα δεδομένα εκπαίδευσης περιείχαν τη λέξη hi 1000 φορές και γειά σου μόλις δύο φορές.

So, vectors’ orientation is often seen as being just as important (if not more so) as distance.

Το γινόμενο κουκίδων υπολογίζεται χρησιμοποιώντας:



Τύπος προϊόντος με κουκκίδες

 

Το γινόμενο με τελείες λαμβάνει υπόψη τη γωνία μεταξύ των διανυσμάτων, όπου η γωνία είναι ~0, το cos θ συστατικό του τύπου ισούται με ~ 1. Αν η γωνία είναι πιο κοντά στο 180 (ορθογώνια/κάθετη), το cos θ συστατικό ίσο με ~0.

Ως εκ τούτου, το cos θ συνιστώσα αυξάνει το αποτέλεσμα όπου υπάρχει μικρότερη γωνία μεταξύ των δύο διανυσμάτων. Έτσι, ένα υψηλότερο προϊόν κουκκίδας συσχετίζεται με υψηλότερο προσανατολισμό.

Και πάλι, ας εφαρμόσουμε αυτόν τον τύπο στα δύο μας διανύσματα, a και  b:



Υπολογισμός κουκκίδων για διανύσματα a και  b

 

Σαφώς, ο υπολογισμός του προϊόντος κουκκίδας είναι απλός (ο απλούστερος από τους τρεις) — και αυτό μας προσφέρει οφέλη όσον αφορά τον χρόνο υπολογισμού.

Ωστόσο, υπάρχει ένα μειονέκτημα. Δεν είναι κανονικοποιημένο - που σημαίνει ότι τα μεγαλύτερα διανύσματα θα τείνουν να σκοράρουν υψηλότερα γινόμενα κουκκίδων, παρόλο που είναι λιγότερο παρόμοια.

Για παράδειγμα, αν υπολογίσουμε α·α — θα περιμέναμε υψηλότερη βαθμολογία από μετα Χριστον (a είναι μια ακριβής αντιστοίχιση με a). Αλλά δεν λειτουργεί έτσι, δυστυχώς.



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

 

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

  • Δύο διανύσματα που δείχνουν προς παρόμοια κατεύθυνση επιστρέφουν α θετικός τελεία-προϊόν.
  • Δύο κάθετα διανύσματα επιστρέφουν ένα γινόμενο τελείας του μηδέν.
  • Τα διανύσματα που δείχνουν σε αντίθετες κατευθύνσεις επιστρέφουν α αρνητικός τελεία-προϊόν.

Ομοιότητα συνημιτόνου

 
Η ομοιότητα συνημιτόνου λαμβάνει υπόψη τον προσανατολισμό του διανύσματος, ανεξάρτητο από το μέγεθος του διανύσματος.



Τύπος ομοιότητας συνημιτονίου

 

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

Στον παρονομαστή, έχουμε τις παράξενες διπλές κάθετες ράβδους — αυτές σημαίνουν "το μήκος". Έτσι, έχουμε το μήκος του u πολλαπλασιαζόμενο με το μήκος του v. Το μήκος, φυσικά, θεωρεί μέγεθος.

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

Μπορούμε να σκεφτούμε την ομοιότητα συνημιτόνου ως α κανονικοποιήθηκε κουκκίδα προϊόν! Και ξεκάθαρα λειτουργεί. Η ομοιότητα του συνημίτονου a και  b είναι κοντά 1 (τέλειος):



Υπολογισμός ομοιότητας συνημιτόνου για διανύσματα a και  b

 

Και χρησιμοποιώντας το sklearn εφαρμογή της ομοιότητας συνημιτόνου για σύγκριση a και  c και πάλι μας δίνει πολύ καλύτερα αποτελέσματα:



Η ομοιότητα συνημιτονίου μπορεί συχνά να προσφέρει πολύ καλύτερα αποτελέσματα από το γινόμενο με τελείες.

 

Αυτό είναι όλο για αυτό το άρθρο που καλύπτει τις τρεις μετρήσεις απόστασης/ομοιότητας — Ευκλείδεια απόσταση, γινόμενο κουκίδων και ομοιότητα συνημιτόνου.

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

Μπορείτε να βρείτε υλοποιήσεις Python για κάθε μέτρηση αυτό το σημειωματάριο.

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

Ευχαριστώ για την ανάγνωση!

 
*Όλες οι εικόνες είναι του συγγραφέα εκτός αν αναφέρεται διαφορετικά

 
Bio: Τζέιμς Μπριγκς είναι επιστήμονας δεδομένων που ειδικεύεται στην επεξεργασία φυσικών γλωσσών και εργάζεται στον χρηματοοικονομικό τομέα, με έδρα το Λονδίνο, Ηνωμένο Βασίλειο. Είναι επίσης ανεξάρτητος μέντορας, συγγραφέας και δημιουργός περιεχομένου. Μπορείτε να επικοινωνήσετε με τον συντάκτη μέσω email (jamescalam94@gmail.com).

Πρωτότυπο. Αναδημοσιεύτηκε με άδεια.

Συγγενεύων:

Πηγή: https://www.kdnuggets.com/2021/05/similarity-metrics-nlp.html

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

Περισσότερα από KDnuggets