Direkt zum Inhalt
Künstliche Intelligenz

digital@work: KI-basiertes Wissensmanagementsystem mit Vorschlagswesen

Kann ich die Beratung meiner Kund:innen auf meinem Online-Marktplatz durch den Einsatz von Künstlicher Intelligenz wesentlich verbessern? Wie funktioniert das mit dem Empfehlungsmanagement? Diesen Fragen ging das Unternehmen digital@work zusammen mit dem Mittelstand 4.0-Kompetenzzentrum Kiel auf den Grund.

  • digital@work
  • 4 Mitarbeitende
  • IT/Plattform
  • ImpulsWerft

Ein Online-Marktplatz für digitale Arbeit und Industrie 4.0., auf dem Anbieter:innen moderner technischer Lösungen für Wartung, Service und Montage ihre Produkte und Leistungen einstellen und wo Interessent:innen und Kund:innen sich orientieren können. Auf dem der Plattformbetreiber auf Wunsch zu den Angeboten berät und die Kund:innen letztendlich eine optimale Lösung nebst Implementierungsbegleitung erhalten. Alles einfach bedienbar und nutzerorientiert. Genau das schwebt dem Unternehmen digital@work vor.

Dabei steht eine zentrale Fragestellung im Raum: Kann eine individuelle Beratung eigentlich durch den Einsatz von Künstlicher Intelligenz unterstützt werden und welcher Aufwand steckt dahinter? Und genau das hat das Mittelstand 4.0-Kompetenzzentrum Kiel auf den Prüfstand gestellt.

Ausgehend von dem Einsatz eines digitalen Wissensmanagementsystems wurde durch das KI-Team des Kompetenzzentrums abgewogen, welche Methode des maschinellen Lernens für diese Aufgabenstellung geeignet ist und welche Lösungsansätze sich daraus ergeben.

Die Zielsetzung

Für den erfolgreichen Einsatz eines solchen digitalen Wissensmanagementsystems wird eine Community benötigt, die durch ihre aktive Nutzung die notwendige Wissensbasis liefert. Damit das gesammelte Wissen in ein funktionierendes System überführt werden kann, muss zuvor ein technisches Konzept für das Datenmanagement und die KI entwickelt werden. Dies ist die Grundlage dafür, dass mit Hilfe von maschinellem Lernen das Wissen extrahiert, analysiert und in ein KI-basiertes Wissensmanagementsystem mit Vorschlagswesen eingepflegt werden kann. Das System kann die Probleme der Nutzer erfassen und passende Beiträge und Erfahrungen aus der Community vorschlagen.

Im Rahmen eines Projektes analysierte das Experten-Team des Kompetenzzentrums, welche Algorithmen aus der künstlichen Intelligenz die zuvor genannten Anforderungen erfüllen können und welche State-of-the-Art Methoden des maschinellen Lernens für die Aufgabenstellung in Frage kommen. Dabei soll geklärt werden, ob sich die Aufgabe durch statische Regeln lösen lässt oder ob ein lernfähiges System benötigt wird. Basierend darauf werden die Anforderungen an die Daten der Community untersucht. Mit diesen Informationen können die technischen Parameter für Hard- und Software festgelegt werden. Der Entwurf eines solchen technischen Konzeptes ist das abschließende Ziel. Es werden mögliche Lösungsansätze mit den jeweiligen Vor- und Nachteilen aufgezeigt. Betrachtet wurden dabei regelbasierte Systeme, einfachere Lernalgorithmen und auf Deep Learning-basierte Methoden. Ein vielversprechender Ansatz wird im Weiteren näher betrachtet.

Die Herausforderung

Zurzeit werden auf dem digitalen Marktplatz Themengebiete in einer statischen Liste in 24 Kategorien eingeteilt. Beispielsweise finden sich dort Rubriken wie

  • Produktart (Apps und Software, eLearning etc.)
  • Branche (Bauwirtschaft, Maritim, etc.)
  • Anwendungsbereich (Arbeitsdokumentation, Qualitätswesen etc.)
  • Digital Service Chain (Unterweisen und Qualifizieren, Planen etc.)

Diese Kategorien ermöglichen zwar einen ersten Eindruck über die Themengebiete, sind zur Nutzung innerhalb der Community aber nicht zielführend. Sie erfassen nicht den dynamischen Charakter der Diskussionen innerhalb der Community und können keine neuartigen Diskussionen abbilden. Das stetige Anpassen der Kategorien würde zu einem erhöhten Arbeitsaufwand und Kosten führen. Manche Themengebiete und Diskussionsposts könnten auch nicht genau von den Kategorien aufgelöst werden, da diese recht universell gehalten sind und sich auch vereinzelt überschneiden können. Eine bessere Lösung ist ein automatisiertes Recommender System (Empfehlungsdienst), das maßgeschneiderte Empfehlungen zu den Interessen bietet und zu den für die Nutzer relevanten Posts leitet. Folgende Anforderungen richten sich an das KI-basierte Wissensmanagementsystem mit Vorschlagswesen:

  • Empfehlungen generieren: Der Nutzer erhält Empfehlungen zu Community-Diskussionen oder zu Produkten, die ihn interessieren, ohne dass er aktiv danach fragen oder suchen muss.
  • Empfehlungen, die auf Kontext basieren: Die Empfehlungen sind nicht nur auf Themenfelder beschränkt, nach denen der Nutzer aktiv gesucht hat. Wenn er nach einer Software gesucht hat, dann wird er vielleicht auch an einer Einführung für seine Mitarbeiter interessiert sein.
  • Orientierung geben: Um einer ziellosen Suche innerhalb der Community oder dem Shop vorzubeugen, kann das System dem Nutzer eine Richtung vorschlagen.
  • Transparenz: Der Nutzer kann die Tags, die ihn interessieren, in den Einstellungen direkt anpassen. Das stärkt auch das Vertrauen in das System.
  • Dynamik: Wenn Diskussionen zu der Community hinzukommen, weitergeführt werden oder wenn sich das Produktsortiment auf dem Marktplatz ändert, kann sich das Empfehlungssystem automatisch an die neue Datenlage anpassen und aktualisierte Empfehlungen ausgeben.
  • Zeitersparnis: Je weniger Zeit der Nutzer in die Suche nach Content investieren muss, desto mehr Zeit kann er in die Kaufentscheidung stecken.
  • Automatisierung: Zeitersparnis bei der Beratung und der Systempflege, da das Empfehlungssystem automatisiert abläuft.

Lösungsansätze

Bei allen Lösungsansätzen ist meist von Items und Querys die Rede. Items sind dabei die Objekte, welche genutzt, abgerufen, gesucht ... werden. Somit sind Items auch die Objekte, die von dem Empfehlungssystem vorgeschlagen werden. Querys hingegen sind die Informationen, die genutzt werden, um die Empfehlungen zu generieren. Dazu gehören zum einen Informationen spezifisch für die aktuelle Anfrage, wie beispielsweise

  • welcher Nutzer stellt die Anfrage,
  • welche Items hat der Nutzer zuvor betrachtet hat oder
  • welche Themen hat der Nutzer als interessant markiert.

Zum anderen können auch Informationen eine Rolle spielen, welche nicht direkt mit dem Nutzer verbunden sind oder sich über viele Nutzer hinweg gleichen, wie beispielsweise

  • die Uhrzeit oder
  • der "Ausgangsort" der Anfrage (PC/Smartphone, Webseite/App, ...).

Methode: Content-based Filtering

Beim Content-based Filtering hat jedes Item gewisse Eigenschaften. Dieselben Eigenschaften kann der Nutzer ebenfalls haben (bzw. als relevant markieren). Beispielweise könnte ein Problem sich auf die Baubranche, Kommunikation, Service und Internet beziehen, ein anderes auf Baubranche, Weiterbildung und Internet. Ein Nutzer wiederum könnte angeben, sich für Baubranche, Service und Internet zu interessieren. Sowohl die Eigenschaften der Items als auch die der Nutzer (in diesem Fall die Querys) werden numerisch als Vektor abgebildet. Anschließend wird verglichen, welches der Items am nächsten zu den Querys ist. Anhand dieser Entfernung kann man eine Auswahl an vorgeschlagenen Items treffen.

Vorteilhaft an dieser Methode ist, dass keine Daten anderer Nutzer benötigt werden, um Vorschläge für einen Nutzer zu generieren. Gibt der Nutzer seine Interessen passend an, können somit auch Nischenprodukte empfohlen werden, die gut zu dem Nutzer passen.

Der große Nachteil ist hingegen, dass die Art, wie jede Eigenschaft numerisch abgebildet wird, von Hand festgelegt werden muss. Ebenfalls muss die Metrik, wie die Entfernung gemessen wird, ausgewählt werden. Es werden hierbei keine Eigenschaften automatisch gelernt. Das wiederum bedeutet, dass man ein genaues Wissen darüber haben muss, wie die einzelnen Eigenschaften zusammenspielen. Sind diese von Hand festgelegten Kriterien nicht gut, kann auch das System keine guten Vorschläge machen. Letztendlich kann das System auch nie Items vorschlagen, die der Nutzer nicht schon selbst als "interessant" markiert hat.

Methode: Collaborative Filtering

Bei diesem Ansatz findet bereits ein „Lernen“ statt. Kern ist eine Matrix, bestehend aus den Nutzern als Zeilen und allen möglichen Items als Spalten. Innerhalb der Matrix wird nun festgehalten, welchem Nutzer welches Item gefällt. Gefällt dem Nutzer 7 beispielsweise das Item 3, so wird in der Matrix in Zeile 7 - Spalte 3 eine „1“ eingetragen. Ebenfalls könnte bei explizitem Nichtgefallen eine „-1“ eingetragen werden. Ein anderes Beispiel wäre, in die Matrix pro Nutzer die Verweildauer für jeden Artikel einer Webseite einzutragen. Ein Artikel, der gefällt, wird wahrscheinlich länger besucht, als einer, der nicht gefällt. Einträge in denen keine Interaktion zwischen Nutzer und Item stattgefunden hat, bleiben leer. Sind in dieser Interaktionsmatrix Daten gesammelt, so kann nun versucht werden, die leeren Einträge vorherzusagen. Dazu werden Parameter gelernt, mit denen die Matrix bestmöglich beschrieben wird. Auf Basis dieser Parameter können dann die leeren Elemente Werte erhalten und dem Nutzer kann ein Item mit einem möglichst guten Wert empfohlen werden.

Vorteil ist, dass hier auch Vorschläge gemacht werden können, die der Nutzer selbst noch nie in Betracht gezogen hat. Haben ähnliche Nutzer jedoch bereits mit einem bestimmten Item interagiert, so kann daraus eine Empfehlung abgeleitet werden.

Schwierig ist es jedoch, bei dieser Methode neue Items hinzuzufügen, für die noch keine Interaktionen bestehen. Somit können auch für neue Items keine Vorhersagen getroffen werden.

Methode: Deep Learning-basierte Empfehlungssysteme

Neuere Empfehlungssysteme beinhalten oft Techniken aus dem maschinellen Lernen. Vor allem bei größeren Datenmengen können die vorherigen Techniken nicht ohne weiteres angewandt werden. Man stelle sich beispielsweise eine Matrix vor, die jeden Nutzer und jedes Video von Youtube aufeinander abbildet.

Aber nicht nur bei großen Datenmengen kommen die Vorteile von KI-basieren Ansätzen zum Vorschein. Die Technik ermöglicht es, aus Daten Informationen zu gewinnen, ohne diese selbst von Hand beschreiben zu müssen. Dadurch, dass das System den Zusammenhang End-To-End selbst lernen muss, können Zusammenhänge entdeckt werden, die womöglich bei einer händischen Entwicklung nicht erkannt worden wären. Beispiele sind zu finden bei Songempfehlungen von Spotify oder auch bei Youtube . Die Systeme versuchen oft, die traditionellen Methoden durch neuartige Deep Learning Systeme zu ersetzen. Beispielsweise gibt es mit dem Neural Collaborative Filtering eine Methode, die das Collaborative Filtering ersetzen soll. Andere Modelle nutzen die klassischen Empfehlungssysteme, ergänzen diese aber mittels Deep Learning mit weiteren Informationen. Das System „Deep Learning Recommendation Model for Personalization and Recommendation Systems“ aus dem Jahr 2019 beschreibt eine Methode, um personalisierte Empfehlungen zu generieren. Es wurde entworfen, um vorherzusagen, wie wahrscheinlich ein Nutzer mit bestimmten Eigenschaften (Query) auf eine bestimmte Werbung (Item) klickt. Da dieses System gute Ergebnisse vorweisen kann und ebenfalls eine aktuelle, quelloffene Implementierung basierend auf dem weitverbreiteten Deep Learning Framework PyTorch verfügbar ist, wird dieses System für einen ersten Einsatz getestet.

Anforderungen

Das empfohlene Testsystem (https://arxiv.org/abs/1906.00091) kombiniert die Verwendung von quantitativen und kategorialen Variablen. Dies bedeutet, dass das System einerseits Informationen verarbeiten kann, die zählend sind, wie zum Beispiel „Alter“ oder „Anzahl bisheriger Seitenaufrufe“. Andererseits können Informationen auch in Kategorien eingeteilt werden, sodass das System Informationen der Form „Bauunternehmen“ oder „Kommunikation“ erhält. Das System ist in der folgenden Abbildung skizziert:

Hierbei sind die quantitativen Merkmale orange und die kategorialen rot dargestellt. Beide Arten der Information werden anschließend durch kleine Neuronale Netze verarbeitet (Dreiecke), kombiniert (Wolke) und zuletzt durch ein weiteres Neuronales Netz verarbeitet. Am Ende erfolgt die Ausgabe, wie gut die Merkmale zueinander passen und insofern wie empfehlenswert das Produkt (Item) für den Nutzer (Query) ist. Die Verarbeitung erfolgt prinzipiell für eine Query und ein Item. Das heißt, die Merkmale von dem Item und von der Query werden in das System gegeben und das System gibt eine Zahl aus, die beschreibt, wie gut diese zusammenpassen. Dies kann beispielsweise für eine Query und viele Items gleichzeitig erfolgen und anschließend wird das Item mit dem höchsten Wert für die Query empfohlen.

Anforderungen an die Daten

Je genauer die Daten die Items und die Querys beschreiben und je vollständiger sie sind, desto bessere Ergebnisse sind zu erwarten. Eine Aussage zu einer konkreten Anzahl an Datenpunkten ist nur schwerlich zu treffen, jedoch können bereits wenige Datenpunkte ausreichen, um erste Ergebnisse zu erzielen.

In dem geplanten Anwendungsfall lassen sich die gesammelten Daten am effektivsten dort sammeln, wo sie entstehen. Gibt es beispielsweise die Kategorie „Unternehmensbranche“, in der die interagierenden Unternehmen in verschiedene Untergruppen untergliedert werden, so sollte diese Information direkt in der Datenbank hinterlegt sein, in der auch die restlichen Daten für die Unternehmen liegen. Melden sich Unternehmen auf der Seite an oder können sie sich dort registrieren, so sollte eine solche Datenbank bereits vorhanden sein. Für quantitative Metriken lassen sich die Informationen auf die gleiche Art sammeln. Unter Umständen wird bereits von der Webanwendung erfasst, welche Nutzer wie oft mit welcher Seite, Foren Threads oder anderen Nutzern interagiert. Insofern ist es sinnvoll, die Erfassung und Sammlung der Daten an den Stellen zu belassen, an denen sie bereits etabliert sind.

Die Form wiederum kann nahezu beliebig gewählt werden, da quantitative und kategoriale Merkmale verwendet werden können. Es ist jedoch von Vorteil, diese Merkmale frühzeitig festzulegen. Die verwendeten Merkmale können zwar später beliebig angepasst werden, dies führt jedoch dazu, dass die vorherigen Datenpunkte diese Merkmale nicht besitzen oder dass sie nicht mehr für das Training verwendet werden können. Prinzipiell ist es kein Problem für das Training des Systems, wenn bei einigen Datenpunkten einzelne Merkmale fehlen. Kommt dies jedoch zu häufig vor, kann das Lernen des Systems beeinträchtigt werden.

Für den Aufbau der Daten sollte folglich überlegt werden, welche Daten die Nutzer und die zu empfehlenden Elemente am besten beschreiben. Sollen beispielsweise innerhalb eines Projekts Nutzern Lösungen für Probleme vorgeschlagen werden, so müsste man die Nutzer und die Probleme beschreiben. Hier wird davon ausgegangen, dass eine Lösung zu einem Problem in dem Problem selbst vorhanden ist. Sind Probleme beispielsweise eine Art Thread, wie in einem Forum, so ist die Lösung wahrscheinlich in einer der Antworten in diesem Thread zu finden, während die Problembeschreibung meist der erste Post ist. Einem Nutzer, der nun ein Problem hat, sollten möglichst Threads vorgeschlagen werden, die das gleiche (oder ein möglichst ähnliches) Problem beschreiben und in denen das Problem optimalerweise bereits gelöst wurde.

In diesem Fall könnte man den Nutzer beschreiben mit:

  • Alter
  • Anzahl der bereits angesehenen Probleme (Threads) pro Kategorie
  • Anzahl der selbst geschriebenen Antworten (Threads) pro Kategorie
  • Branche / Unternehmen
  • Branche / Job
  • Angegebene Kategorien bei der Problemsuche
  • Schlagwörter bei der Problemsuche

Die Probleme könnte man beschreiben mit:

  • Alter seit Fragestellung
  • Anzahl der Views
  • Anzahl der Antworten
  • Branche / Unternehmen / Fragesteller
  • Branche / Job / Fragesteller
  • Branche / Unternehmen der Antwortenden
  • Branche / Job der Antwortenden
  • Vergebene Schlagwörter
  • Wurde das Problem mit den Antworten gelöst?

Nun kann gemessen werden, wann ein Nutzer mit einem Problem interagiert und wann nicht. Dies, in Kombination mit den genannten Merkmalen, wird dann für das Training des Empfehlungssystems verwendet.

Vorgehen

  • Datensammlung
    Im ersten Schritt müssen die Daten gewonnen werden. Zu Beginn wird geplant, welche Daten erhoben werden sollen und welche Merkmale die Items und Querys am besten beschreiben. Anschließend sollte die Sammlung umgesetzt werden, sodass die Webanwendungen die Daten auf eine gut abrufbare Art speichern. Dies kann beispielsweise in einer üblichen Datenbank geschehen. Unter Umständen sind solche Daten bereits vorhanden und es muss lediglich geplant werden, welche Merkmale davon verwendet werden sollen. Während die Merkmalsplanung ein einmaliger Schritt ist (oder nur selten wiederholt wird), ist die Datensammlung selbst kontinuierlich. Es sollten also mit der Zeit immer weiter Daten gewonnen werden, um die Empfehlungen ständig zu verbessern.
  • Training des Empfehlungssystems
    Dieser Schritt kann begonnen werden, sobald die ersten Daten verfügbar sind. Um das System anhand der ausgewählten Merkmale trainieren zu können, muss die Implementierung angepasst werden. Ein wesentlicher Punkt dabei ist das Extrahieren der Daten, beispielsweise aus den Datenbanken. Die angepasste Implementierung kann dann mit den extrahierten Daten trainiert werden. Das trainierte System muss abschließend exportiert werden, sodass es später im Produktivbetrieb verwendet werden kann.
  • Testen des Empfehlungssystems
    Das Testen sollte unmittelbar auf das Trainieren erfolgen. Testen bedeutet in diesem Fall, dass das System mit neuen Daten getestet wird. Für diese neuen Daten sollten die korrekten Vorhersagen bereits bekannt sein, sie dürfen aber noch nicht zum Trainieren verwendet worden sein. Damit kann versucht werden, sicherzustellen, dass das System auch mit unbekannten Daten gut funktioniert. Die Schritte Trainieren und Testen sollten immer wieder abwechselnd wiederholt werden. Wenn neue Daten zu Verfügung stehen, wird das System neu trainiert und anschließend getestet. Ist das Ergebnis beim Testen zufriedenstellend, kann das System deployed werden.
  • Deployment
    Hat man ein funktionierendes Empfehlungssystem, muss dieses für das Deployment exportiert werden. Dafür bieten sich Formate an, welche die Vorhersagegeschwindigkeit nochmals verbessern. Ein Beispiel dafür ist ONNX (ONNX ist ein offenes Format zur Repräsentation von Deep-Learning-Modellen). Für ONNX gibt es beispielsweise Runtimes, welche das trainierte System laden und über eine API für Anfragen verfügbar machen. Versucht ein Nutzer eine Lösung zu einem Problem zu finden, können die festgelegten Merkmale für den Nutzer sowie die Merkmale für verschiedene existierende Probleme über die API an das geladene System übergeben werden, welches dann mit einer Empfehlung für jedes der übergebenen Probleme antwortet. Dem Nutzer können dann beispielsweise die existierenden Probleme, sortiert nach dem Empfehlungswert, angezeigt werden.

Fazit

Basierend auf den untersuchten Möglichkeiten, um eine Empfehlungssystem für den beschriebenen Anwendungsfall bei Digital@Work aufzubauen, zeichnet sich ab, dass eine Lösung basierend auf maschinellem Lernen benötigt wird. Empfehlungen auf Basis von Hand entwickelter Features scheint nicht sinnvoll. Dass für das lernende System noch keine großen Datenmengen vorhanden sind, wird nicht als Hinderungsgrund gesehen. Auch mit wenigen Daten kann eine hohe Qualität bei den Empfehlungen erreicht werden.

Ansprechpartner

Christoph Linse
Christoph Linse Künstliche Intelligenz (KI)