Semantische Ähnlichkeit mit Satzeinbettungen

· Thomas Wood
Semantische Ähnlichkeit mit Satzeinbettungen

Entdecken Sie Ihre Zukunft in NLP!

Tauchen Sie ein in die Welt der Natürlichen Sprachverarbeitung! Entdecken Sie modernste NLP-Rollen, die zu Ihren Fähigkeiten und Leidenschaften passen.

NLP-Jobs entdecken

In der Verarbeitung natürlicher Sprache gibt es das Konzept der Wortvektoreinbettung und der Satzeinbettung. Dabei handelt es sich um einen Vektor, der normalerweise aus Hunderten von Zahlen besteht und die Bedeutung eines Wortes oder Satzes darstellt.

Einbettungen sind nützlich, weil Sie die Ähnlichkeit zweier Sätze berechnen können, indem Sie beide in Vektoren umwandeln und eine Distanzmetrik berechnen.

Unten sehen Sie, wie zwei Sätze in einen Vektor umgewandelt werden können und wir den Abstand zwischen ihnen messen können.





[enter a text and click 'Calculate vectors' (once the model has loaded) and the similarity will be shown here]
vec1
vec2

Welches Satzeinbettungsmodell verwendet dieser Code?

Das obige Beispiel verwendet den Universal Sentence Encoder lite in Tensorflow JS, der in Ihrem Browser ausgeführt wird und nichts an einen Server sendet. Es verwendet Vektoren der Größe 512 (512-dimensionale Einbettungen).

Warum sollten wir Satzeinbettungen verwenden wollen?

Wenn Sie vor der Einführung von Einbettungen Dokumente oder Texte vergleichen wollten, um herauszufinden, wie ähnlich sie waren, war es am einfachsten, die gemeinsamen Wörter zu zählen. Dies funktioniert jedoch nicht, wenn Dokumente keine gemeinsamen Wörter aufweisen, sondern Synonyme verwenden. In unserem Blogbeitrag zum Finden ähnlicher Dokumente in NLP können Sie mehr über Möglichkeiten zum Vergleichen von Texten lesen.

Satzeinbettungen bedeuten, dass Ihr gesamter Dokumentsatz in einen Satz von Vektoren umgewandelt und so gespeichert werden kann und jedes neue Dokument schnell mit denen im Index verglichen werden kann.

Satzeinbettungen zur Datenharmonisierung in der Forschung

Im Harmony-Projekt haben wir ein Online-Tool entwickelt, mit dem Psychologen Fragebogenelemente semantisch vergleichen können, um gemeinsame Fragen in Fragebögen zu identifizieren. Harmony berechnet, dass eine Frage wie „Ich bin nervös“ zu 78 % einer Frage wie „Ich bin ängstlich“ ähneln könnte. Dieser Wert ist einfach die Cosinus-Ähnlichkeitsmetrik (die Ähnlichkeit zwischen zwei Vektoren), ausgedrückt als Prozentsatz!

*Sie können die Harmony-App unter harmonydata.ac.uk/app ausprobieren.

Satzeinbettungen für die erweiterte Abfragegenerierung (RAG)

Satzeinbettungen werden häufig in Retrieval Augmented Generation (RAG) -Systemen verwendet: Wenn Sie ein generatives Modell wie ChatGPT verwenden, ihm aber domänenspezifisches Wissen geben möchten, können Sie Satzeinbettungen verwenden, um herauszufinden, welcher Teil Ihrer Wissensbasis für die Abfrage eines Benutzers am relevantesten ist.

Wir haben RAG im Projekt Insolvency Bot verwendet, einen Chatbot mit Kenntnissen des englischen und walisischen Insolvenzrechts. Wenn der Benutzer dem Insolvency Bot eine Frage stellt, konvertieren wir diese in eine Einbettung und stellen möglicherweise fest, dass es sich bei der Frage um grenzüberschreitende Insolvenzen handelt. Anschließend senden wir die für grenzüberschreitende Insolvenzen relevanten Teile des Insolvency Act 1986 zusammen mit der Anfrage des Benutzers an OpenAI und erhalten eine Bot-Antwort, die viel besser ist als das, was GPT allein und ohne zusätzlichen Kontext getan hätte.

Wie wird die Distanz oder Ähnlichkeit zwischen zwei Satzeinbettungsvektoren berechnet?

Zwei der gebräuchlichsten Methoden zum Berechnen der Ähnlichkeit zwischen zwei Satz- oder Wort-Einbettungsvektoren sind die euklidische Distanz und die Kosinus-Ähnlichkeit . Diese sind in zwei Dimensionen leichter zu verstehen.

Stellen wir uns vor, Sie möchten zwei unterschiedliche Sätze und zwei ähnliche Sätze vergleichen. Wenn wir uns vorstellen, dass unsere Vektoren nur zwei statt 512 Dimensionen haben, könnten unsere Sätze wie die folgenden Grafiken aussehen.

Die euklidische Distanz (siehe die beiden Grafiken unten) ist einfach die geradlinige Entfernung zwischen den beiden Vektoren. Sie ist groß, wenn die beiden Sätze sehr unterschiedlich sind, und klein, wenn sie ähnlich sind.

Diagram showing how the Euclidean and cosine distance are calculated

Der euklidische Abstand für zwei nahe beieinander liegende Vektoren ist klein.

Diagram showing how the Euclidean and cosine distance are calculated

Der euklidische Abstand für zwei Vektoren, die in mehrere unterschiedliche Richtungen zeigen.

Die Kosinusähnlichkeit (untere zwei Graphen) ist ein Wert zwischen -1 und 1 und ist das Skalarprodukt ( Skalarprodukt ) der beiden Vektoren geteilt durch das Skalarprodukt ihrer Längen. Für Vektoren der Länge 1 ist es dasselbe wie das Skalarprodukt der beiden Vektoren (Sie müssen durch nichts dividieren).

Ähnliche Sätze haben eine Kosinusähnlichkeit nahe 1, während sehr unterschiedliche Sätze eine Ähnlichkeit nahe 0 oder sogar negativ haben. Kosinusähnlichkeiten nahe -1 sind ziemlich selten.

Graph of the xy plane showing two vectors of value (3, 2) and (4, 1). The Euclidean distance between them is the square root of 1 squared plus 1 squared, or the square root of 2.

Die Kosinus-Ähnlichkeit ist groß oder nahe 1 für zwei Vektoren, die in eine ähnliche Richtung zeigen, was auf semantische Ähnlichkeit hinweist.

Graph of the xy plane showing two vectors of value (4, 1) and (1, 4). The Euclidean distance between them is the square root of 3 squared plus 3 squared, or the square root of 18.

Die Kosinusähnlichkeit ist bei zwei Vektoren, die in sehr unterschiedliche Richtungen zeigen, gering. Bei Vektoren, die in entgegengesetzte Richtungen zeigen, wäre sie negativ.

Die meisten Modelle zur Satzeinbettung, wie etwa die HuggingFace-Transformatormodelle, ergeben alle Vektoren der Länge 1, was bedeutet, dass Sie die untere Hälfte des Bruchs in der Formel für die Kosinus-Ähnlichkeit nicht berechnen müssen.

In der Demonstration oben auf dieser Seite berechnen wir die Kosinus-Ähnlichkeit.

Semantic similarity with NLP

Need to compare documents on a semantic level?

Wir haben für frühere Kunden Systeme entwickelt, die auf semantischen Ähnlichkeitsmetriken mit Word2Vec, Doc2Vec oder generativen KI-Modellen basieren, und können Sie bei der Entwicklung einer semantischen NLP-Lösung für Ihre Geschäftsanforderungen beraten oder unterstützen.

Softwaretools für Satzeinbettungen

  • HuggingFace Sentence Transformers – eine Reihe von Transformermodellen auf dem HuggingFace-Hub, die sofort in Python verwendet werden können.
  • Tensorflow JS Universal Sentence Encoder lite – eine Browserimplementierung von Satztransformatoren
  • Harmony – ein Open-Source-Online-Softwaretool von Fast Data Science, mit dem Psychologen ähnliche Fragebogenelemente finden können. Es verwendet Satzeinbettungen mit zusätzlicher regelbasierter Vorverarbeitung.
  • Pinecone – eine Vektordatenbank, die eine schnelle und effiziente Suche nach Einbettungen ermöglicht.
  • Elasticsearch – das Standardtool, das von Unternehmen weltweit zur Informationsbeschaffung verwendet wird.

Verweise

T. Mikolov et al.. Effiziente Schätzung von Wortdarstellungen im Vektorraum , arXiv : 1301.3781 (2013)

Reimers und Gurevych, Sentence-BERT: Satzeinbettungen mithilfe siamesischer BERT-Netzwerke (2019).

Cer et al. Universeller Satzencoder (2018).

Ribary, M., Krause, P., Orban, M., Vaccari, E., Wood, TA, Prompt Engineering und Bereitstellung von Kontext bei der domänenspezifischen Verwendung von GPT , Frontiers in Artificial Intelligence and Applications 379: Rechtliches Wissen und Informationssysteme, 2023. https://doi.org/10.3233/FAIA230979

Entdecken Sie Ihre Zukunft in NLP!

Tauchen Sie ein in die Welt der Natürlichen Sprachverarbeitung! Entdecken Sie modernste NLP-Rollen, die zu Ihren Fähigkeiten und Leidenschaften passen.

NLP-Jobs entdecken

Generative KI
Generative ki

Generative KI

Generative KI Einführung Generative KI , ein Teilbereich der KI, verändert Branchen grundlegend und gestaltet die Zukunft. Durch die Nutzung fortschrittlicher Algorithmen kann generative KI Inhalte, Designs und Lösungen erstellen, die zuvor undenkbar waren.

Große Daten
Große daten

Große Daten

Große Daten Das Aufkommen von Big Data hat ganze Branchen revolutioniert und traditionelle Geschäftsmodelle und Entscheidungsprozesse verändert. In dieser umfassenden Untersuchung gehen wir der Frage nach, was Big Data ist, welche erheblichen Auswirkungen es auf die Geschäftsstrategie hat und wie Unternehmen riesige Datenmengen nutzen können, um Innovationen voranzutreiben und sich einen Wettbewerbsvorteil zu verschaffen.

KI im Finanzwesen
Ki im finanzwesen

KI im Finanzwesen

KI im Finanzwesen Die Integration künstlicher Intelligenz (KI) in den Finanzsektor hat die Arbeitsweise von Institutionen revolutioniert, von der Automatisierung von Abläufen bis hin zur Verbesserung der Kundenbindung und des Risikomanagements.

What we can do for you

Transform Unstructured Data into Actionable Insights

Contact us