Verwendung von Word2Vec in Fusion für bessere Suchergebnisse

Einführung Die Fähigkeit eines Computers, Informationen auf die gleiche Weise zu verarbeiten wie ein Mensch, hat unzählige Anwendungsmöglichkeiten, aber der…

Einführung

Die Fähigkeit eines Computers, Informationen auf die gleiche Weise zu verarbeiten wie ein Mensch, hat unzählige Anwendungsmöglichkeiten, aber der Bereich, in dem sie wahrscheinlich am wichtigsten ist, ist die Suche. Die Fähigkeit, mit Technologie auf natürliche und intuitive Weise zu interagieren, erhöht den Suchverkehr, erleichtert die Abfrage und gibt den Menschen vor allem das, was sie wollen: präzise Ergebnisse! Es ist zwar klar, dass die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) für eine gute Suche entscheidend ist, aber einem Computer beizubringen, natürliche Sprache zu verstehen und nachzuahmen, ist viel leichter gesagt als getan.

Der vorige Satz selbst ist ein gutes Beispiel dafür, warum das so ist. Das menschliche Gehirn ist ein effizienter Sprachverarbeitungsmotor, denn Menschen haben Zugang zu jahrelangem Kontext für alle Arten von Sprache. Menschliche Gehirne können auf diesen Kontext zurückgreifen, um komplizierte Sprachmuster zu erkennen, zu interpretieren und darauf zu reagieren, einschließlich Witze, Sarkasmus und, wie im Fall des vorigen Absatzes, schlechte Wortspiele. Computer hingegen haben keinen inhärenten Kontext und müssen daher lernen, welche Wörter mit welchen anderen verbunden sind und was diese Verbindungen bedeuten. Alle Arten von Sprachmustern einfach in einen Computer zu kodieren, ist jedoch ein schier endloser Prozess. Wir mussten eine bessere Methode entwickeln, um einem Computer beizubringen, wie ein Mensch zu sprechen und zu lesen.

Word2Vec eingeben1. Word2Vec ist eine leistungsstarke Modellierungstechnik, die häufig in der Verarbeitung natürlicher Sprache verwendet wird. Standardmäßig verwendet Word2Vec ein flaches neuronales Netzwerk2 um einem Computer beizubringen, welche Wörter in der Nähe von anderen Wörtern liegen. Auf diese Weise wird der Kontext durch Ausnutzung der Lokalität vermittelt. Der Algorithmus läuft in zwei Schritten ab: Training und Lernen. Ein grober Überblick über diese Schritte lautet wie folgt.

Der Algorithmus

Ausbildung

Um einem Computer das Lesen beizubringen, müssen wir ihm zunächst etwas zum Lesen geben. Der erste Schritt des Trainings des Word2Vec-Modells liefert dem Algorithmus einen Textkorpus. Es ist wichtig zu wissen, dass der Computer den Kontext nur aus dem Eingabetext lernt, den wir ihm zur Verfügung stellen. Wenn wir also einen obskuren Trainingstext liefern, wird das Modell obskure und möglicherweise veraltete Assoziationen lernen. Es ist sehr wichtig, dass wir das Modell mit einem umfassenden und modernen Textkorpus versorgen.

Jedes Wort im Eingabetext wird in einen Positionsvektor umgewandelt, der der Position des Wortes im Eingabetext entspricht. Auf diese Weise wird die gesamte Trainingsmenge in einen hochdimensionalen Vektorraum umgewandelt. Unten sehen Sie ein triviales Beispiel dafür, wie eine 2D-Projektion dieses Vektorraums für die Sätze „Bob ist ein Suchingenieur“ aussehen könnte. Bob mag die Suche“ (Entfernen der Stoppwörter3 ‚ist‘ und ‚a‘ der Einfachheit halber entfernt)

 

screen-shot-2016-11-14-at-9-36-16-am
Abbildung 1: Diagramm des anfänglichen Vektorraums für „Bob sucht Ingenieur Bob sucht gerne“,

Dieser Vektorraum wird dann an den Lernschritt des Algorithmus übergeben.

Lernen

Nachdem wir nun unseren Text in einen Vektorraum umgewandelt haben, können wir lernen, welche Wörter in unserem Eingabetext kontextuell ähnlich sind.

Dazu verwendet der Algorithmus den Textkorpus, um festzustellen, welche Wörter nahe beieinander vorkommen. Zum Beispiel im obigen Beispiel „Bob ist ein Suchingenieur. Bob mag die Suche“ kommen die Wörter „Bob“ und „Suche“ zweimal zusammen vor. Da die beiden Wörter mehr als einmal zusammen vorkommen, ist es wahrscheinlich, dass sie miteinander verwandt sind. Um diese Idee widerzuspiegeln, verschiebt der Algorithmus den Vektor, der „Bob“ entspricht, näher an den Vektor, der „Suche“ im hochdimensionalen Raum entspricht. Eine 2d-Projektion dieses Prozesses ist unten abgebildet.

screen-shot-2016-11-14-at-9-36-58-am
Abbildung 2: Dieses Diagramm zeigt, dass sich BOB und SEARCH nach dem Lernschritt im Vektorraum einander angenähert haben.

Auf diese Weise macht Word2Vec aus „nahegelegenen Wörtern“ „nahegelegene Vektoren“ und so rückt jedes Wort im Textkorpus näher an die Wörter heran, mit denen es zusammen vorkommt.

Word2Vec kann einen von zwei Algorithmen verwenden, um Kontext zu lernen: Kontinuierlicher Beutel mit Wörtern4 (oder CBOW) und SkipGram5 . CBOW versucht, ein Zielwort aus seinem Kontext vorherzusagen, während SkipGrams versucht, den Kontext eines Zielworts vorherzusagen.

Beide Algorithmen verwenden diese Strategie zum Verschieben von Vektoren. Der kleine Unterschied zwischen den beiden Algorithmen ist die Art und Weise, in der die Vektoren verschoben werden. Bei CBOW versuchen wir, ein Wort aus seinem Kontext vorherzusagen und betrachten daher den gesamten Textkorpus in „Fenstern“ eines einzelnen Wortes und seiner entsprechenden Kontextvektoren. Im Fall von „Bob ist ein Suchingenieur. Bob mag die Suche.“ Wir würden etwas wie das Folgende in Betracht ziehen,

screen-shot-2016-11-14-at-10-16-33-am
Abbildung 3: Für n = 2 sehen wir, welche Wörter den Kontext des Wortes Ingenieur bilden. Bob und Suche auf der linken Seite und Bob und mag auf der rechten Seite.

 

 

 

Jeder der Kontextwort-Vektoren dient als Eingabe für ein neuronales Netzwerk mit 2 Schichten. Das einzelne Wort „Suche“ dient als beabsichtigte Ausgabeschicht. Die interne verborgene Schicht des Netzwerks entspricht den Manipulationen, die im Vektorraum stattfinden, um jeden der Kontextvektoren näher an das Wort zu bringen.

screen-shot-2016-11-14-at-10-26-26-am
Abbildung 4: Das neuronale Netzwerk CBOW nimmt die Kontextwörter BOB, BOB, LIKES und SEARCH als Eingabe. Es mittelt und modifiziert sie, um den Gewichtstransformationsvektor zu erzeugen, der das gewünschte Zielwort ENGINEER ergibt.

Es gibt einen Nachteil bei dieser Methode. Wir gehen davon aus, dass der Kontext für jedes gegebene Wort die n Wörter sind, die es umgeben. Da jedes Wort mehrfach als Kontextwort betrachtet wird, bilden wir in der versteckten Schicht des neuronalen Netzwerks den Durchschnitt der Kontextwörter und bewegen den Zielvektor näher an diesen Durchschnitt heran. Dies kann ungewollt dazu führen, dass wir einige Informationen über die Verteilung im Raum verlieren.

Die alternative Technik ist Skip Grams, die praktisch das Gegenteil von CBOW ist. Bei einem bestimmten Wort versucht Skip Grams, den zugehörigen Kontext zu entdecken. Das 2-schichtige neuronale Netzwerk für Skip Grams verwendet das Zielwort als Eingabe und trainiert die Gewichte so, dass die nächstgelegenen Vektoren den Kontext zu diesem Wort darstellen.

screen-shot-2016-11-14-at-10-29-17-am
Abbildung 5: Das neuronale Skip-Gram-Netzwerk hat ein einziges Eingabewort, ENGINEER. Dieses Wort wird transformiert, um den Gewichtstransformationsvektor zu erzeugen, der wiederum die Kontextwortvektoren für dieses Wort angibt, BOB, BOB, LIKES und SEARCH.

In diesem Fall besteht keine Notwendigkeit, die Kontextvektoren zu mitteln. Die versteckte Schicht ordnet das Zielwort einfach den n Kontextwörtern zu. Anstatt also das Ziel in Richtung des Durchschnitts der Kontextvektoren zu verschieben (wie bei CBOW), verschieben wir einfach alle Kontextvektoren näher an das Ziel. Unten sehen Sie eine 2d-Projektion dieser beiden Techniken mit Ingenieur als Zielwort und „Bob“, Suche und Gefällt mir als Kontextwörter.

 

screen-shot-2016-11-14-at-10-43-26-am
Abbildung 6:: Diagramm, wie sich die CBOW-Vektoren bewegen. Wir berechnen den resultierenden Vektor für die drei Kontextvektoren, BOB (rot), SEARCH (blau) und LIKES (grün). Dieser resultierende Vektor ist der gepunktete schwarze Pfeil. Der ENGINEER-Vektor (orange) bewegt sich in Richtung dieses resultierenden Vektors, der durch den Bewegungsvektor (rosa) gekennzeichnet ist.
screen-shot-2016-11-14-at-10-46-00-am
Abbildung 7:: Diagramm der Bewegung der Skip-Grams-Vektoren. Die drei Kontextvektoren BOB (rot), SEARCH (blau) und LIKES (grün) bewegen sich alle in Richtung des Vektors ENGINEER (orange), der durch die Bewegungsvektoren (lila) gekennzeichnet ist.

Verwendung in Lucidworks Fusion

Word2Vec hat enorme Anwendungsmöglichkeiten für die automatische Erkennung von Synonymen und Kategorien in großen, nicht beschrifteten Datenbeständen. Dies macht es zu einem nützlichen Werkzeug zur Ergänzung der bestehenden Textanalysefunktionen von Lucidworks Fusion6. Unsere Implementierung nutzt die ML-Bibliothek von Apache Spark, die über eine praktische Implementierung der Skip-Gram-Technik verfügt7 .

Wir werden die Apache-Projekte analysieren8 für unseren Textkorpus. Die Anwendung dieser Technik in Lucidworks Fusion bringt weitere Komplikationen mit sich, da jede Mailingliste oder Projektkonfiguration von Apache in Fusion in „Dokumente“ aufgeteilt wird. Das bedeutet, dass die generierten Synonyme für den gesamten Textkorpus gelten und nicht unbedingt für die Wörter in jedem Dokument. Um dieses Problem zu umgehen, trainieren wir das Modell auf den gesamten Satz von Dokumenten. Anschließend wenden wir TF-IDF auf jedes einzelne Dokument an, um festzustellen, welche Wörter in dem Dokument die „wichtigsten“ sind, und fragen das Word2Vec-Modell nach Synonymen für diese wichtigen Begriffe ab. Das Modell generiert effektiv eine Themenliste für jedes Dokument in Fusion.

Unsere vorläufigen Ergebnisse waren unzureichend, weil wir beim ersten Durchgang durch die Daten nur minimale Stoppwörter entfernt haben. Wenn in Word2Vec bestimmte Wörter häufig von Stoppwörtern gefolgt oder vorangestellt werden, behandelt der Algorithmus diese Stoppwörter als wichtige Kontextbestandteile, während sie in Wirklichkeit keine wertvollen Informationen liefern.

Nach einer umfassenderen Entfernung von Stoppwörtern sahen wir viel vernünftigere Ergebnisse. Zum Beispiel für einen E-Mail-Thread, der Kerberos diskutiert9 (ein Authentifizierungsprotokoll) sahen die Ergebnisse wie folgt aus.

kerebos_authentication

Dies sind genaue und relevante Synonyme für den Betreff der E-Mail.

Nicht alle Assoziationen sind jedoch völlig korrekt, wie das nächste Beispiel zeigt. Die Quelle war eine E-Mail über JIRA-Probleme.

lustige_donuts

Alexey und Tim sind zwei der Hauptakteure von Fusion und daher ist es sinnvoll, dass sie eine hohe Assoziation mit einer JIRA-bezogenen E-Mail-Kette haben. Atlassian, Administratoren, Fileitems, Tutorials und Architektur sind ebenfalls vernünftige Begriffe, die mit dem Problem in Verbindung gebracht werden können. Donuts hingegen ist fast völlig willkürlich (es sei denn, Alexey und Tim sind größere Fans von Donuts als ich dachte).

Fazit

Wenn Sie unser Word2Vec-Beispiel selbst ausprobieren möchten, haben wir Word2Vec als Fusion-Plugin in Lucidworks‘ Demoseite Searchhub implementiert.

Sie können das Plugin auch mit Ihren eigenen Daten ausprobieren. Laden Sie einfach das Plugin herunter, crawlen Sie einige Daten, trainieren Sie das Modell, indem Sie den Spark-Job word2vec ausführen, und crawlen Sie die Daten erneut, um die verwandten Begriffe zu den „wichtigsten Begriffen“ für jedes Dokument zu sehen. Diese Felder können dann durchsucht werden, um die Abfrage zu erweitern oder um jedes Dokument automatisch mit seiner allgemeinen Beschreibung zu „taggen“.

Word2Vec bietet eine leistungsstarke Möglichkeit, sowohl Dokumente als auch Abfragen zu klassifizieren und zu verstehen. Durch die Nutzung der Leistung von Apache Spark ML Word2Vec in Fusion können wir bei Lucidworks Ihnen diesen einzigartigen Einblick in Ihre Daten bieten.

You Might Also Like

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Lucidworks Kernpakete: Branchenoptimierte KI-Such- und Personalisierungslösungen

Entdecken Sie unsere umfassenden Core Packages, die Analytics Studio, Commerce Studio und...

Read More

Quick Links