Die diesjährige Berlin Buzzwords war anders: Sie fand nicht nur als vollständig virtuelle Konferenz statt, sondern die Veranstalter hatten sich auch mit den Veranstaltungen MICES und Haystack zusammengeschlossen. Als Teilnehmer erhielt man dadurch eine ganze Woche lang interessante Einblicke in die Themen Storing, Processing, Streaming und Searching sowie in die Home Office Arbeitsplätze der Referenten.
AI-Powered Search, Stream Processing und Open Source Toolbox
Aus dem umfassenden Programm lassen sich m.E. drei Fokus-Themen extrahieren:
- AI-Powered Search: Wie sieht die Zukunft der Suche aus? Was ist zukünftig von Solr und Elasticsearch zu erwarten? Was kann mit Vespa ein Herausforderer in dieser Sparte bieten?
- Stream Processing: Dass Daten heutzutage nicht mehr einfach „nur rumliegen“ ist längst klar; aber auch das Arbeiten in Event-basierten Stream Processing Kontexten kommt mit vielfältigen Herausforderungen.
- Open Source Toolbox für E-Commerce Search: Viele Shop-Betreiber haben ähnliche Herausforderungen zu meistern, wenn es um die Shop-Suche geht. Mehrere Sessions drehten sich um Tools zu deren Unterstützung.
Nicht nur für E-Commerce-Händler lohnt es sich, ausgewählte Vorträge zu diesen drei Trends im Folgenden detaillierter zu betrachten.
AI-Powered Search
Beim Thema KI-gestützte Suche erfuhren die Teilnehmer Neues über altbewährte Technologien wie Solr und Elasticsearch sowie über die aufstrebende Plattform Vespa. Diese ermöglicht Suche, Recommendataions sowie Personalisierung und eignet sich speziell für Use Cases, in denen Suche und Machine Learning kombiniert werden, um die gewünschte Qualität zu erzielen. Jon Bratseth zeigte dies in einer auf dem CORD-19 Datensatz basierenden Beispielanwendung: Zwischen wissenschaftlichen Artikeln kann semantische Ähnlichkeit in einem mehrdimensionalen Vektorraum ermittelt werden.
Wie man mit Solr die Grenzen auslotet berichtete Marc Brette von Salesforce. 1,5 Mrd. Suchanfragen werden hier wöchentlich von 15.000 Solr-Hosts verarbeitet. Um Suchanfragen in natürlicher Sprache beantworten zu können, ist die Suchlösung um einen Deep Learning Ansatz erweitert worden. Die hier gewählte Strategie eines synthetischen Trainingsdatensatzes auf Basis einer generierten probabilistischen Grammatik war äußerst spannend. Sie zeigte, wie Machine Learning auch ohne ausreichend vorhandene Datengrundlage funktionieren kann.
Noch spannender war die Diskussionsrunde zwischen Trey Grainger (ehemaliger Chief Algorithm Officer von Lucidworks) und Doug Turnbull. In diesen zwei Stunden wurden alle Facetten von KI-gestützter Suche beleuchtet: Die Verwendung von implizitem Feedback als Datengrundlage für diesen Anwendungsfall, die Verwendung von Knowledge Graphs, die Automatisierung von Qualitätsmessungen mittels Judgement Listen und Machine Learning, der Einsatz von Transformers wie Googles BERT, etc.
Eine Zusammenfassung über die aktuellen Entwicklungen in Solr, was die Suche mit Vektoren betrifft, durfte in diesem Zusammenhang auch nicht fehlen.
Die Highlights der anstehenden Lucene & Solr-Releases wurden in einer Ask Me Anything Session unterhaltsam zusammengefasst. Für das kommende Solr Release 8.6 sind folgende nennenswert:
- Ein Security Info Panel in der Solr Admin UI
- Block-Max WAND Support
- Streaming Expressions Erweiterungen und Optimierungen
Open Source Toolbox für (E-Commerce) Search
Was jede ernstzunehmende E-Commerce Suche braucht:
- Eine Rule Engine, um von der Sucheingabe abhängige Regeln zu definieren. Diese leiten z.B. auf eine Kategorienseite weiter, wenn nach „Laptop“ gesucht wird.
- Ein Tool, um die Relevanz der Suche zu bewerten und Änderungen an der Suche (vor deren Aktivierung) zu testen.
- Ein Tool, um die Relevanz der Suche mit unterschiedlichen Metriken (Recall, Precision, F-Measure, NDCG@10, etc.) zu messen und über einen Zeitraum zu verfolgen.
- Ein Tool, welches bei der Ermittlung der besten Parameter innerhalb der Suche hilft und dafür gewisse Automatismen bietet.
Das Open Source Projekt Chorus vereint als eine Art Deckmantel mehrere Open Source Projekte in sich. Das zeigten Eric Pugh, Paul Bartusch, René Kriegler und unser ehemaliger Kollege Johannes Peter:
- Querqy: Rule Engine für Solr und Elasticsearch
- SMUI: Grafische Oberfläche für Querqy zum Pflegen von Regeln
- Quepid: Relevanz-Testing Workbench
- Rated Ranking Evaluator: Tool zur Evaluierung der Suchqualität
Der Beitrag war voller Demos, was die Kernaussage hervorragend transportierte: Es gibt eine ganze Reihe an Open Source Tools, die für jedes Unternehmen nutzbar sind und sowohl kurz-, mittel- als auch langfristig zu einer optimalen Suche beitragen können. Diese Toolbox bietet in Kombination mit Solr oder Elasticsearch also eine Art Alternative für kommerzielle E-Commerce-Plattformen.
Ein Tool, welches in diesem Stack noch nicht enthalten ist, ist Quaerite. Sowohl Solr als auch Elasticsearch bieten eine Unmenge an Parametern, die für das Tuning der Relevanz verwendet werden können. Das kann schnell in Sisyphusarbeit ausarten. Genau hier setzt Tim Allison mit seinem Open Source Tool Quaerite an, indem es die Ausführung und Auswertung von Experimenten mit diesen Parametern erlaubt.
Stream Processing mit Flink und Stateful Functions
Für Stream Processing Anwendungen erfreut sich die Plattform Apache Flink seit einigen Jahren stetig steigender Beliebtheit. Sie stand daher im Zentrum mehrerer Vorträge und eines Workshops.
Streaming Anwendungen zu erstellen ist mit praktischen Herausforderungen verbunden. Wie man diese lösen kann, zeigte Niels Basjes. Datenströme können langsam, von extrem kleinem Umfang sein, extrem große Lastspitzen haben oder auch (temporär) nicht verfügbar sein. Einige der Konzepte lassen sich auf die Arbeit mit Apache NiFi übertragen.
Eine interessante These vertrat Stephan Ewen: Stream Processors werden seiner Meinung nach künftig für Event-getriebene Anwendungen das sein, was Datenbanken aktuell für CRUD-Anwendungen sind. Aufgrund von Abfragelimits und fehlender Skalierungsmöglichkeiten ist es oft nicht sinnvoll, den Zustand von Anwendungen oder Funktionen in Datenbanken zu speichern. In Flink ist nun mit Stateful Functions ein Mittel verfügbar, das den Zustand einer Funktion lokal speichern, dabei aber das Messaging mit einer Exactly-Once Semantik konsistent aufrecht erhalten kann. Für die Persistenz sorgt ein Blob Store. Eine Datenbank ist nicht mehr nötig. Der Einsatz von Stateful Functions wurde in einer Demo gezeigt, die mit Hilfe von mehreren Machine Learning Modellen einen Fraud-Score für User-Events ermittelt. Dabei ist der Einsatz bei Finanzdienstleistern nur eine Möglichkeit von vielen, da Stream Processing mittlerweile in allen Branchen Einzug gefunden hat. Im Bereich (Industrial) IoT ist das Berechnen von Aggregaten und Statistiken auf verteilten Datenströmen ein weiteres Paradebeispiel der Anwendung.
Äußerst unterhaltsam präsentierte dann Caito Scherr, worauf zu achten ist, wenn ein Stream Processing Service aufgebaut werden soll. Sie verglich diesen Prozess mit der Vorbereitung auf einen Marathon. In diesem Vortrag war nicht die Technik zentral, sondern die Projektmanagement-Sicht.
Fazit
Es war beeindruckend, was die Organisatoren trotz der schwierigen Situation geleistet haben. Im Vorfeld konnte man sich eine virtuelle Konferenz über fünf Tage nicht vorstellen. Und auch wenn viele den physischen Besuch einer Konferenz vorziehen, war die digitale Variante den Besuch absolut wert und ein würdiger Ersatz.
Der jährliche Besuch dieser Konferenz hilft uns, die aktuellen Entwicklungen im Bereich Search & Analytics besser verfolgen zu können und von der Community zu lernen. So waren auch heuer wieder zahlreiche Denkanstöße enthalten, die wir für unsere Kunden in die nächsten Projekte integrieren werden.
Gerade die Entwicklungen innerhalb von Open Source Projekten, die zum Ökosystem von Solr und Elasticsearch zählen, sind für unsere Kunden von großem Wert, da sie teils Arbeitserleichterungen darstellen, andererseits auch qualitativ erheblich zur Suche beitragen können.