Wenn Welten aufeinanderprallen – Künstliche Intelligenz trifft auf Suche
Wir leben in einer Zeit, in der die Bereiche Künstliche Intelligenz und Suche rasch zusammenwachsen – und die Vorteile sind…
Wir leben in einer Zeit, in der die Bereiche Künstliche Intelligenz und Suche rasch zusammenwachsen – und die Vorteile sind beträchtlich. Wir können jetzt mit Suchanwendungen in unseren Wohnzimmern, Autos und auf der Suche nach einem Restaurant in unserer Nähe sprechen. Die Konvergenz beider Bereiche ist zwar unvermeidlich, schafft aber auch neue Möglichkeiten und Herausforderungen. Unser Produkt Lucidworks Fusion – insbesondere die neueste Version Fusion 4.0 – steht mitten in dieser jüngsten Suchrevolution. Seine Kerntechnologien, Apache Solr und Apache Spark, bieten genau die richtigen Ressourcen, um diese entscheidende technologische Fusion zu vollziehen. Mehr dazu später.
Die Suchschleife – Fragen, Antworten und noch mehr Fragen
Im Grunde genommen handelt es sich bei allen Suchanwendungen, ob intelligent oder nicht, um eine Konversation zwischen einem menschlichen Benutzer und der Suchanwendung. Der Benutzer stellt eine Frage und erhält eine Antwort oder eine Reihe von Antworten zurück. Dies kann ausreichen oder es können Folgefragen gestellt werden – entweder weil die ersten Antworten nicht zufriedenstellend sind oder um detailliertere Informationen zu erhalten. Eine entscheidende Komponente dieser „Suchschleife“ ist die anfängliche Übersetzung von der „menschlichen Anfragesprache“ in den Suchcode der Computerdatenbank oder der Suchmaschine. Ganz vorne mit dabei sind sprachgesteuerte Schnittstellen wie Apples Siri und Amazons Alexa, bei denen man einfach mit der Such-App spricht (wobei man die Frage mit ihrem Namen einleitet, um sie aufzuwecken), eine Frage stellt und eine Antwort in einer hochmodernen Text-zu-Sprache-Darstellung zurückbekommt. Unter der Haube wandelt die Siri- oder Alexa-Software zunächst Ihre Sprache in Text um und analysiert dann diesen Text, um festzustellen, was Sie fragen. Bei Fragen, die so formatiert sind, dass die Programmierer sie vorhersehen konnten, sind sie sehr gut, bei Fragen mit offenem Ende, wie sie naive Benutzer zu stellen pflegen, weniger gut. Es handelt sich eindeutig um künstliche Intelligenz, aber noch nicht um die ultimative KI, die sich Alan Turing vor 68 Jahren vorgestellt hat. Das wissen auch die Alexa-Entwickler. Als ich Alexa fragte, ob sie den Turing-Test bestehen könnte, antwortete sie zu Recht: „Den muss ich nicht bestehen. Ich tue nicht so, als wäre ich ein Mensch. Das ist nur fair. Ein großes Lob an das Alexa-Team für seine Ehrlichkeit und seine erstaunlichen Funktionen.
Query Parsing – Ableitung von Benutzerabsichten
Eine der Hauptmotivationen für den Einsatz von KI bei der Suche ist die Erkenntnis, dass bessere Antworten gegeben werden können, wenn wir besser herausfinden können, wonach der Benutzer fragt. Eine wichtige Komponente dabei ist eine Technologie namens Natural Language Processing oder NLP. NLP funktioniert am besten, wenn es mit vollständigen Sätzen arbeiten kann. In herkömmlichen Suchanwendungen (d.h. nicht sprachgesteuert) ist dies oft nicht möglich, da die Benutzer dazu neigen, einzelne Begriffe oder höchstens 3 bis 4 Begriffe in ein Suchfeld einzugeben. In einigen Bereichen, z.B. im E-Commerce, ist es einfacher, aus diesen kurzen Suchanfragen auf die Absicht des Benutzers zu schließen, da die Benutzer in der Regel nur den Namen des gesuchten Objekts eingeben. Wenn dies nicht das Gewünschte ergibt, fügen sie in der Regel Modifikatoren (Adjektive) hinzu, die ihre Absicht genauer beschreiben. Da es keine vollständigen Sätze gibt, ist die Extraktion von Entitäten wichtiger als die POS-Analyse (Parts-of-Speech) für dieses spezielle Problem der Analyse von Anfragen. Modelle für maschinelles Lernen zur Entitätsextraktion gehören zu den hier verwendeten Tools. Sie basieren häufig auf Trainingssätzen, die aus Abfrage- und Klickprotokollen abgeleitet werden, oder auf Kopf-Schwanz-Analysen, um sowohl die Substantiv-Phrasen zu erkennen, die direkt auf die „Sache“ hinweisen (die in der Regel die Kopf-Abfragen dominieren), als auch die hinzugefügten Modifikatoren und Rechtschreibfehler, die die Benutzer manchmal einfügen (Schwanz-Abfragen) – siehe den ausgezeichneten Blog-Beitrag von Chao Han zu diesem Thema.
Eine weitere häufig verwendete Technik, die dem ähnelt, was Siri und Alexa zu tun scheinen, ist das „gerichtete“ oder „musterbasierte“ NLP, bei dem allgemeine Satzstrukturen geparst werden (z.B. „Ledertaschen für iPhones“ oder „kabellose Kabel unter 30$“), um zu bestimmen, wonach gesucht wird und welche damit verbundenen Attribute verstärkt werden sollten. Musterbasiertes NLP erfordert keine komplexe linguistische Analyse, wie sie mit POS-Taggern durchgeführt wird. Vielmehr kann sie auf einfacheren Techniken wie regulären Ausdrücken basieren. Der Nachteil ist, dass sie nur bei erwarteten Mustern funktioniert, während anspruchsvollere POS-Tagger mit jedem Text arbeiten können. Wie bereits erwähnt, sind im letzteren Fall die Benutzeranfragen meist zu kryptisch, um „echtes“ NLP zu unterstützen. Die Extraktion von Entitäten in Form von Phrasen ist hier sehr wichtig, da dies die Suchpräzision gegenüber dem naiven „Bag of Words“-Ansatz erheblich verbessert.
Neben ML-basierten Ansätzen gibt es noch eine andere Methode für die Abfrageabsicht, die ich entwickelt und in einem Blog beschrieben habe. Sie heißt Query Autofiltering (QAF)[1,2,3,4] und verwendet strukturierte Metadaten in der Suchkollektion, um die Absicht abzuleiten – wobei die Bedeutungen der Begriffe aufgrund ihrer Verwendung als Feldwerte in der Kollektion bekannt sind (z.B. ist „rot“ als Farbe bekannt, weil es ein Wert im Facettenfeld Farbe ist). QAF erfordert stark strukturierte Metadaten, um gut zu funktionieren, und kann von Techniken wie Text Mining zur Indexzeit profitieren, um bessere Metainformationen für das Parsen von Suchanfragen nach Benutzerintention zu liefern. Insbesondere ein in dieser Hinsicht kritischer Teil der Metadaten – der Produkttyp – fehlt oft in kommerziellen Datensätzen wie Best Buy und anderen, kann aber mit NLP-Techniken, die den oben beschriebenen ähneln, aus kurzen Produktbeschreibungen gewonnen werden. Die Verwendung von Synonymen (oft aus Abfrageprotokollen abgeleitet) ist hier ebenfalls sehr wichtig.
Informationsräume – Vom kategorischen zum numerischen Raum und zurück
Die Suche ist von Natur aus ein räumlicher Prozess. Wenn wir in der realen Welt nach Dingen wie verlegten Autoschlüsseln suchen, suchen wir im physischen Raum. Wenn wir nach Informationen suchen, suchen wir im „Informationsraum“. Das ist zwar ein hochdimensionales und abstraktes Konzept, aber wenn wir das Problem auf diese Weise betrachten, kann es uns helfen zu verstehen, wie die verschiedenen Technologien zusammenarbeiten – oder, um es knapper zu formulieren, wie diese Technologien in diesem Informationsraum aufeinander abgestimmt sind.
Datenbanken und Suchindizes sind metadatenbasierte Strukturen, die sowohl kategorische als auch numerische Informationen enthalten. In herkömmlichen Suchanwendungen werden Metadaten in Form von Facetten angezeigt, die zur Navigation in einem Raum verwendet werden können, den ich „Meta-Informationsraum“ nenne. Wie ich in einem früheren Blog-Beitrag erläutert habe, können Facetten verwendet werden, um ähnliche Elemente in diesem Raum auf konventionelle und unkonventionelle Weise zu finden. Versteckte Kategorien gibt es auch in „unstrukturierten“ Texten und die Aufdeckung dieser kategorialen Beziehungen ist seit langem ein fruchtbarer Boden für die Anwendung von KI-Techniken. Die Textanalyse ist ein Bereich, in dem Freitextdokumente mithilfe von Algorithmen des maschinellen Lernens kategorisiert oder klassifiziert werden, um sie in den kategorialen Raum des Suchindexes zu bringen und so die Suche und Navigation zu erleichtern. Dieser Prozess ist eine automatisierte Abstraktion oder Generalisierung, die es uns ermöglicht, nach übergeordneten Konzepten statt nach Schlüsselwörtern zu suchen und zu navigieren.
Im Gegensatz zu metainformatischen Datenstrukturen, die in Suchanwendungen verwendet werden, benötigen Algorithmen für maschinelles Lernen rein numerische Daten und modellieren Informationsräume als n-dimensionale Vektoren innerhalb kontinuierlicher oder numerischer euklidischer Räume. Aus diesem Grund besteht die erste Operation darin, Textdaten zu „vektorisieren“ – d.h. Muster im Text in eine rein numerische Darstellung zu übersetzen, mit der maschinelle Lernalgorithmen arbeiten können. Dies beinhaltet traditionell die Bestimmung von Häufigkeiten und Wahrscheinlichkeiten von Text-„Token“. Eine gängige Metrik ist die Termfrequenz / inverse Dokumentenhäufigkeit oder TF/IDF. Diese Metrik ist auch die Grundlage des Standard-Suchalgorithmus der Lucene-Suchmaschine (der aktuelle Standard-Algorithmus BM25 fügt einige „Optimierungen“ hinzu, um Dinge wie die Dokumentlänge zu berücksichtigen, behält aber TF/IDF als Kern bei). Dabei wird davon ausgegangen, dass „Ähnlichkeit“ im konzeptuellen Raum durch „Nähe“ oder Nähe von Termvektoren im n-dimensionalen numerischen Raum modelliert werden kann. Der Beweis für diese Annahme liegt sozusagen in der Suppe – der Erfolg von Ansätzen des maschinellen Lernens bestätigt im Allgemeinen diesen grundlegenden „Vertrauensvorschuss“ bei der Überquerung zwischen kategorischen und numerischen Räumen.
Die „Schleife“ des maschinellen Lernens umfasst die Übersetzung von Text in numerische Informationen, die Erkennung von Mustern mit Hilfe mathematischer Algorithmen und schließlich die Rückübersetzung der resultierenden Zahlenmatrizen in Vorhersagen (z.B. vorhergesagte Zugehörigkeiten zu Kategorien), wenn ein neues Dokument vorliegt, das der Algorithmus zur Mustererkennung noch nicht kennt. Das Artefakt, das durch den Schritt der Mustererkennung entsteht, wird als „Modell“ bezeichnet. Die Erstellung guter Modelle für maschinelles Lernen ist sowohl eine Kunst als auch eine Wissenschaft, was bedeutet, dass die Arbeit von „Datenwissenschaftlern“ weiterhin sehr gefragt sein wird.
Es gibt zwei Haupttypen von Algorithmen für maschinelles Lernen, die sich im Wesentlichen durch die Quelle der Bezeichnung oder Kategorie unterscheiden, die vom Algorithmus zugeordnet wird. Bei „unüberwachten“ Lernalgorithmen wie Latent Dirichlet Allocation (LDA) oder KMeans werden die Kategorien automatisch aus Mustern in den Daten ermittelt. Dabei werden in der Regel „Cluster“ von Begriffen gefunden, die in statistisch signifikanter Weise in den Dokumenten zusammen vorkommen. Die Zuordnung einer übergeordneten Bezeichnung zu diesen Clustern ist oft schwierig und kann durch die Überprüfung durch menschliche Experten ergänzt werden, nachdem das automatische Clustering abgeschlossen ist. Im Gegensatz dazu werden beim „überwachten“ Lernen die Bezeichnungen von Fachexperten im Voraus als Teil eines Trainingssatzes bereitgestellt. Die von Menschen bereitgestellten Kennzeichnungen werden dann verwendet, um Muster in den Trainingsdaten zu erkennen, die mit den Kennzeichnungen korrelieren, um ein Modell zu erstellen, das zur Vorhersage der besten Kategorie oder Kennzeichnung für ein neues, nicht klassifiziertes Dokument verwendet werden kann. Auf diese Weise kann die Arbeit des Experten bei der manuellen Kategorisierung eines kleinen Trainingssatzes skaliert werden, um einen viel größeren Korpus zu kategorisieren. Die Genauigkeit des Modells kann mit einem weiteren Satz von von Menschen markierten Dokumenten – dem Testsatz – getestet werden.
Wort eingebettete Vektoren – Direkte Modellierung des semantischen Raums
Eine weitere Technik des maschinellen Lernens, die in diesem Bereich rasch an Bedeutung gewinnt, sind Algorithmen wie Word2Vec, FastText und GloVe, die mithilfe einer statistischen Analyse der Begriffsbeziehungen syntaktische und semantische Beziehungen zwischen Begriffen in einem Dokumentenkorpus entdecken können, indem sie große Textmengen (mit Dutzenden oder Hunderten von Milliarden Begriffen) durchsuchen. Die Ergebnisse dieser Algorithmen sind als „eingebettete Vektoren“ bekannt, in denen Begriffe mit anderen Begriffen innerhalb eines mehrdimensionalen Vektorraums in Beziehung stehen, der durch den maschinellen Lernprozess auf der Grundlage ihres Abstands (euklidisch oder winklig) zueinander in diesem Raum berechnet wird. Wie bei anderen Formen des maschinellen Lernens kann die Tatsache, dass semantische Kategorien gelernt und in dem Zahlenmeer, das das trainierte Modell darstellt (d.h. die „Black Box“), gekapselt wurden, durch die Untersuchung der Ausgaben des Modells nachgewiesen werden. Wenn wir den gelernten Vektor eines Begriffs betrachten, können wir seine nächsten Nachbarn im Vektorraum finden, und es zeigt sich, dass diese nahen Nachbarn in hohem Maße syntaktisch oder semantisch korreliert sind! Zu den Beziehungen gehören synonyme Begriffe, adjektivische Beziehungen (groß -> größer -> größter), Gegensätze (langsam -> schnell), Vervollständigungen von Substantivphrasen und so weiter. Andere semantische Beziehungen wie Land -> Hauptstadt werden ebenfalls kodiert.
Der Wert liegt hier darin, dass die Vektoren sowohl kategorisch als auch numerisch sind und eine direkte Zuordnung zwischen diesen verschiedenen Darstellungen des Informationsraums ermöglichen. Die Abbildung ist reichhaltig und mehrdimensional, sowohl im numerischen als auch im semantischen Sinne. Das berühmteste Beispiel aus der Word2Vec-Arbeit des Google-Teams (das auch vom GloVe-Team reproduziert wurde) zeigt, dass der Vektor für „König“ minus dem Vektor für „Mann“ plus dem Vektor für „Frau“ einen Vektor ergibt, der dem gelernten Vektor für „Königin“ sehr nahe kommt. Ein „König“ kann grob definiert werden als ein „erwachsener Mann mit königlichem Status“. Wenn Sie den Aspekt „erwachsene Männlichkeit“ des Vektors „König“ abziehen, indem Sie den Vektor „Mann“ subtrahieren, bleibt der Kontext „königlicher Status“ zurück, und wenn dieser mit dem Vektor für „Frau“ kombiniert wird, ergibt sich ein Vektor, der dem für „Königin“ gelernten sehr ähnlich ist. Die Vektoren, die Wortpaare verbinden, die eine semantische Kategorie wie „Geschlechtergegensätze“ wie „Vater, Mutter“, „Bruder, Schwester“, „Onkel, Tante“, „Sohn, Tochter“ usw. ausdrücken, sind in einer Art „semantischer Projektionsebene“ im Raum ungefähr parallel zueinander. Die obigen Beispiele haben jedoch mehr als eine „semantische Dimension“ oder Klassifizierungskategorie (z.B. Elternteil, Nachkomme, Geschwister, usw.). Dies legt nahe, dass semantische Beziehungen nicht nur mathematisch kodiert werden können, sondern dass diese Kodierung aus mehr als einer kategorialen Dimension besteht! In ihrem Forschungspapier über Word2Vec formulieren Mikolov et.al, dass „Wörter mehrere Ähnlichkeitsgrade haben können“ und dass sich diese Mehrdimensionalität im „syntaktischen und semantischen Raum“ im Wortvektorraum widerspiegelt. Das ist ein beeindruckender Beweis dafür, dass wir abstrakte mathematische Räume verwenden können, um kategoriale Räume zu kodieren!
Zu den verwandten Dingen, die in eingebetteten Wortvektoren auftauchen, gehören Vervollständigungen von Substantivphrasen. In einem Datensatz zu IT-Problemen wurde beispielsweise festgestellt, dass der Begriff „Netzwerk“ mit den Wörtern „Karte“, „Adapter“ und „Ausfall“ in Verbindung steht. Wenn ich das Modell jedoch mit Phrasen wie „Netzwerkadapter“, „Netzwerkkarte“ und „Netzwerkausfall“ trainiere, werden die Beziehungen auch diese semantischen Einheiten auf höherer Ebene umfassen. Mit anderen Worten: Durch die Verwendung von Substantivphrasen als Eingabetoken wird aus „Word2Vec“ ein „Thing2Vec“. Ähnliche Beobachtungen finden sich in der Literatur.
Obwohl die Ergebnisse der Wortvektoreinbettung an sich schon aus theoretischer Sicht interessant sind, erweisen sie sich auch bei anderen Formen des maschinellen Lernens als sehr nützlich. Jüngste Forschungen haben gezeigt, dass die Verwendung von vortrainierten Wortvektoren für andere Aufgaben des maschinellen Lernens, wie z.B. die Klassifizierung von Dokumenten, die Erkennung von Spam, die Analyse von Gefühlen, die Extraktion von benannten Entitäten usw., zu einer besseren Genauigkeit führt als einfachere Vektorisierungen auf der Grundlage von Begriffshäufigkeiten. Dies ist sinnvoll, da der Wechsel von Token-basierten Vektorisierungen, die keine Kenntnisse über die Semantik haben, zu Vektorisierungen, die über solche eingebetteten Kenntnisse verfügen, das „Signal-Rausch-Verhältnis“ von Textmining-Aufgaben auf höherer Ebene verbessert.
Wissensräume und semantische Referenzrahmen
Während wir (Menschen) Sprache erwerben, zunächst als kleine Kinder und dann im Laufe unserer weiteren Ausbildung (hoffentlich ein Leben lang), entwickeln wir eine interne „Wissensbasis“, die wir nutzen können, um Wortbedeutungen auf der Grundlage ihres Kontexts zu disambiguieren. Der Begriff „Apfel“ zum Beispiel hat mehrere Bedeutungen, da er in verschiedenen Themenbereichen vorkommen kann. Die Standardbedeutung ist diejenige, die unsere Vorfahren kannten – die einer Obstsorte, die auf Bäumen wächst (Gartenbaubereich). Eine zweite Bedeutung, die auch Ihre Ur-Ur-Großmutter gekannt hätte, ist die einer Lebensmittelzutat (kulinarischer Bereich) wie in „Apfelkuchen“. In unserer modernen Kultur hat dieser Begriff jedoch noch andere Bedeutungen erhalten, da er a) als Name eines Computer-/Technologieunternehmens, b) als Name einer Plattenfirma einer berühmten populären Musikband und c) als Spitzname einer großen Stadt an der Ostküste der Vereinigten Staaten verwendet wurde. Welche Bedeutung gemeint ist, lässt sich aus dem Kontext erschließen – wenn „Apfel“ in der Nähe von Namen von Sorten wie „Granny Smith“, „Honey Crisp“ oder „Golden Delicious“ steht, handelt es sich um Äpfel im eigentlichen Sinne. Wenn der Kontext Begriffe wie „iPhone“, „OS X“, „iTunes“, „Steve Jobs“ oder „Tim Cook“ enthält, sprechen wir von Apple Computer und so weiter. Wir nutzen unser Wissen über diese kontextuellen Beziehungen zwischen Begriffen oder Phrasen, um uns bei der Bearbeitung eines Textes an dem entsprechenden Themenbereich zu orientieren. Linguisten bezeichnen diese wissensbasierte Orientierung als semantischen Bezugsrahmen.
Taxonomien, Ontologien: Wissensgraphen
Wenn Sie diese Fähigkeit auch Suchanwendungen zur Verfügung stellen, können diese besser auf die Absicht der Anfrage schließen und die Relevanz der Suchergebnisse verbessern. Ein berühmtes Beispiel ist Watson von IBM, das durch das Scannen einer enormen Anzahl von Textdokumenten Millionen von Fakten lernte und so eine Wissensbasis aufbaute, die dann für das Spielen (und Gewinnen) der TV-Spielshow Jeopardy verwendet werden konnte. Watson nutzte ein von IBM freigegebenes Framework namens UIMA, um zunächst Entitäten mit Hilfe von NER-Techniken (Named Entity Recognition) zu extrahieren und anschließend Fakten durch die Erkennung semantischer Muster von benannten Entitäten zu extrahieren. Durch die Durchführung einer ähnlichen Übung mit der Abfrage (NER + Mustererkennung) konnte Watson die Variablen für benannte Entitäten (Person:X Buchtitel:Y) in seine Wissensdatenbank einfügen. Die KI-Systeme, die jetzt in unsere Häuser und Autos eindringen, wie Google, Cortana, Siri und Alexa, verwenden ähnliche Techniken. Der Schlüssel ist die Verwendung einer Wissensdatenbank, um Begriffe und Phrasen in einer Abfrage oder einem Dokument zu markieren und ihnen eine semantische Bedeutung zuzuweisen. Sobald dies erreicht ist, ist der Rest genau wie SQL. Der oben beschriebene Query Autofilter funktioniert ähnlich, nur dass in diesem Fall die Wissensbasis die Suchkollektion selbst ist.
Ontologien und Taxonomien sind Arten von „Wissensgraphen“ – Datenstrukturen, die es ermöglichen, bekannte Fakten und Beziehungen zu kodifizieren – sie sind mit anderen Worten grafische Darstellungen des Wissensraums. Taxonomien kodieren hierarchische Beziehungen – entweder IS-A Klasse / Unterklasse (Hypernym/Hyponym) oder HAS-A Ganzes-Teil (Meronym) Beziehungen. Ontologien sind offener und kodieren Wissensräume als eine Menge von Knoten, die in der Regel Entitäten definieren, und Kanten, die die Beziehung zwischen Knotenpaaren definieren.
Taxonomien und Ontologien werden traditionell manuell erstellt und kuratiert. Dies hat den Vorteil der Genauigkeit, leidet aber in Bezug auf Vollständigkeit und Aktualität (d.h. sie auf dem neuesten Stand zu halten). Aus diesem Grund werden für das Knowledge Mining zunehmend Ansätze des maschinellen Lernens verwendet, die zwar fehleranfälliger sind, aber dennoch zum Einsatz kommen. Der Ansatz der semantischen Rahmen, der für die Erkennung von Benutzerabsichten in Abfragen und für die Erkennung von Mustern in Texten verwendet wird, kann beispielsweise auch zum Aufbau von Wissensgraphen verwendet werden. Ein Beispiel hierfür wäre der Text „NoSQL-Datenbanken wie MongoDB, Cassandra und Couchbase“, in dem die Präpositionalphrase „wie“ oder „wie“ impliziert, dass die Dinge auf der rechten Seite Instanzen der Klasse der Dinge auf der linken Seite sind. Diese „lexiko-syntaktischen Muster“ sind als Hearst-Muster bekannt [Hearst 1992] und können zum automatischen Aufbau von Taxonomien durch Textanalyse verwendet werden [z.B. TAXI]. Ein anderer Ansatz ist die Verknüpfung von Metadaten in einer Suchkollektion mit Textfeldern, um mithilfe einer Suchmaschine wie Solr Graphen verwandter Begriffe zu erstellen. Der daraus resultierende semantische Wissensgraph kann dann für eine Reihe von Aufgaben zur Verbesserung der Suche verwendet werden, wie z.B. „Wissensmodellierung und Schlussfolgerungen, Verarbeitung natürlicher Sprache, Erkennung von Anomalien, Datenbereinigung, semantische Suche, Analytik, Datenklassifizierung, Ursachenanalyse und Empfehlungssysteme“ ( Grainger et.al. 2016). Anhand dieses Beispiels und der Beispiele mit eingebetteten Vektoren (word2Vec, GloVe) können Paradigmen des maschinellen Lernens übereinander gelegt werden, um Ergebnisse zu erzielen, bei denen die Summe größer ist als die einzelnen Teile.
Wenn die Ausgabe des automatisierten Knowledge Mining etwas ist, das Menschen überprüfen können (d.h. keine Zahlenmatrix), sind hybride Systeme möglich, in denen Fachexperten die Fehler des ML-Algorithmus korrigieren. Noch besser: Wenn der ML-Algorithmus so konzipiert werden kann, dass er aus diesen Korrekturen lernt, wird er mit der Zeit besser abschneiden. Von Menschen gelieferte Einträge in der Wissensdatenbank oder Negativbeispiele, die aus manuellen Löschungen gewonnen wurden, können zum Aufbau von Trainingssätzen verwendet werden, die Lernalgorithmen nutzen können, um die Qualität der automatisierten Wissensgewinnung zu verbessern. Die Entwicklung großer Trainingssätze in einer Reihe von Bereichen ist einer der Faktoren, die diese Kollision von Suche und KI vorantreiben. Menschliches Wissen ist somit das „Saatkristall“, auf das maschinelle Lernalgorithmen aufbauen können. Wie mein Freund, der Search Curmudgeon, kürzlich in seinem Blog schrieb, sollten Sie zusätzlich zu den Datenwissenschaftlern mehr Bibliothekare einstellen.
Auch wenn wir auf diese Weise vielleicht nie eine Genauigkeit von 100 % erreichen, können wir aggressiv auf den Markt gehen, sobald wir eine Schwelle überschritten haben, ab der die computergenerierten Ergebnisse nicht mehr routinemäßig peinlich sind. Obwohl erfahrene Such- und Datenwissenschaftler Fehler tolerieren und von einer 85%igen Genauigkeit beeindruckt sein mögen, gilt dies nicht für die breite Öffentlichkeit, die von Computern erwartet, dass sie intelligent sind, und gelegentliche ungeheuerliche Fehler als Bestätigung dafür ansieht, dass sie in Wirklichkeit nicht intelligent sind. Da jetzt überall KI-gestützte Geräte auftauchen, steht es außer Frage, dass wir den „Schnuppertest“ der Öffentlichkeit in Sachen maschineller Intelligenz bestanden haben. Wie ich bereits erwähnt habe, sind wir zwar noch weit davon entfernt, den Spießrutenlauf von Alan Turing zu bestehen, aber wir machen eindeutig Fortschritte in Richtung dieses Ziels.
Lucidworks Fusion AI
Was bietet unser Produkt Lucidworks Fusion angesichts all dessen? Zunächst einmal ist der Kern von Fusion die erstklassige Suchmaschine Apache Solr. Wie bereits erwähnt, gehen die innovativen Suchanwendungen jedoch über die Möglichkeiten herkömmlicher Suchmaschinen hinaus und stützen sich auf künstliche Intelligenz, um die Kluft zwischen menschlicher und Computersprache zu überbrücken. Aus diesem Grund wurde Apache Spark – eine erstklassige Engine für die verteilte Datenverarbeitung mit integrierten Bibliotheken für maschinelles Lernen – ab Fusion 2.0 (die aktuelle Version ist 4) in den Mix aufgenommen. Neben Spark ist es auch möglich, andere Bibliotheken für künstliche Intelligenz in Fusion zu integrieren, z.B. die beeindruckende Reihe von in Python geschriebenen Tools wie das Natural Language Toolkit (NLTK) und TensorFlow. Dadurch wird der Aufbau komplexer maschineller Lernsysteme wie Convolutional Neural Networks oder Random Forest Decision Trees und deren Integration in eine Suchanwendung sehr viel einfacher. Fusion bietet auch Möglichkeiten zur Optimierung von ML-Algorithmen durch die Suche in „Hyperparameter“-Räumen (jedes Modell hat Tuning-Parameter, die oft sehr unintuitiv sind) mit einer Technik namens „Grid Search“. Kurz gesagt, Lucidworks Fusion ermöglicht es auch Entwicklern, die sich selbst nicht als Experten für maschinelles Lernen bezeichnen würden, diese Fähigkeiten zu nutzen, obwohl sie immer noch von einer gewissen Expertise in den Datenwissenschaften profitieren. In der neuesten Version, Fusion 4.0, wurde noch mehr Intelligenz „eingebaut“ und dies wird auch weiterhin der Fall sein, wenn das Produkt weiterentwickelt wird.
Aufträge für maschinelles Lernen, Blobs, Index und Abfrage-Pipelines
Dass Lucidworks Fusion eine hervorragende Plattform für die Integration von künstlicher Intelligenz in die Suche ist, zeigt ein Blick auf die Architektur. Apache Spark dient als Motor, mit dem maschinelle Lernaufträge – entweder OOTB oder benutzerdefiniert – geplant und ausgeführt werden. Das Ergebnis dieser Aufträge sind die oben erwähnten sogenannten ML-„Modelle“. Für Fusion kann ein „Modell“ einfach als eine Sammlung von Bytes betrachtet werden – eine potenziell große Sammlung, die in der Tradition der relationalen Datenbanknomenklatur als BLOB bezeichnet wird (was für Binary Large Objectsteht). Fusion enthält ein integriertes Repository, das wir Blob Store nennen und das als Ziel für diese ML-Modelle dient. Sobald sich das Modell im Blob Store befindet, ist es für unsere Index- und Abfrage-Pipelines zugänglich. Wie bereits erwähnt, ist maschinelles Lernen im Allgemeinen ein zweistufiger Prozess, bei dem überwachte oder nicht überwachte Algorithmen verwendet werden, um etwas über eine Sammlung von Inhalten zu lernen, die in einem Modell gekapselt ist (Phase 1). Das Modell wird dann verwendet, um etwas über zuvor ungesehene Inhalte vorherzusagen (Phase 2). In Fusion wird Phase 1 (Modelltraining) mit Hilfe von Fusion Apache Spark-Clustern durchgeführt und Phase 2 wird entweder auf Inhalte angewendet, die über die Index-Pipeline zur Indizierung in Solr an einen Fusion-Suchcluster gesendet werden, oder auf Abfragen, die über die Query-Pipeline über den Blob Store an Fusion übermittelt werden. Auf diese Weise kann das Taggen oder Markieren von Inhalten zur Verbesserung der Suchbarkeit oder das Prüfen der Abfrage, um die Absicht des Benutzers abzuleiten oder die Ergebnisse neu zu ordnen, mit denselben grundlegenden Funktionen durchgeführt werden.
Signale, maschinelles Lernen und Suchoptimierung
Zusätzlich zu den Installationen bietet Fusion die Möglichkeit, Ihre Daten mit Informationen darüber zu kombinieren, wie Ihre Benutzer damit interagieren. So können Sie Suchanwendungen erstellen, die umso nützlicher werden, je häufiger sie verwendet werden. Wir nennen diese Fähigkeit „Signale“. Kurz gesagt, Signale sind Metadatenobjekte, die Benutzeraktionen beschreiben. Dabei kann es sich um einen Mausklick auf einen Dokumentenlink, einen Klick auf eine Facette, ein „In den Warenkorb legen“-, „Lesezeichen-URL“- oder „PDF herunterladen“-Ereignis handeln. Andere Arten von Ereignissen könnten sein: „Seite 30 Sekunden lang angesehen“ oder „mit dem Mauszeiger über eine Flyout-Beschreibung gefahren“ – im Grunde alles, was Ihre Front-End-Suchanwendung erfassen kann und was Ihre UX-Designer als Indikator für „Interesse“ an einem Suchergebnis ansehen würden. Die Metadaten, die das Ereignis beschreiben, werden dann an die REST-API von Fusion gesendet, damit sie zusammen mit der ID der Abfrage, die dem Ereignis vorausging, in die Rohsignalsammlung aufgenommen werden. Die Signalsammlung empfängt automatisch Abfrageereignisse (seit Fusion 4.0 fungiert sie auch als Abfrageprotokollsammlung).
Signale -> Aggregation -> Modelle -> Pipelines
Sobald Sie eine ausreichende Menge an Informationen darüber gesammelt haben, wie Nutzer mit Ihren Daten interagieren, können Sie diese Informationen nutzen, um das Sucherlebnis zu verbessern. Der erste Schritt besteht darin, die rohen Signaldaten zu aggregieren oder aufzurollen, damit statistische Analysen durchgeführt werden können. Fusion wird mit vorgefertigten Spark-Aggregationsaufträgen geliefert, die Sie verwenden können, oder Sie können bei Bedarf Ihre eigenen erstellen. Die resultierenden Aggregationen werden wieder in Solr gespeichert. An diesem Punkt können wir die aggregierten Daten verwenden, um ML-Algorithmen für eine Reihe von Zwecken zu trainieren – kollaboratives Filtern, Klassifizierung von Benutzerabsichten, Empfehlungen von Artikel zu Artikel oder von Abfrage zu Artikel, Lernen für das Ranking und so weiter. Die daraus resultierenden Modelle werden in den Blob Store gestellt, wo sie von den Phasen des Fusion Index oder der Query Pipeline verwendet werden können, um die gewünschten Transformationen der eingehenden Inhalte oder Abfragen vorzunehmen.
Auf diese Weise bietet die Lucidworks-Architektur die perfekte Plattform für die Verschmelzung von Suche und künstlicher Intelligenz (Wortspiel durchaus beabsichtigt!)