Problembeschreibung
Machine Learning und Deep Learning haben sich in den letzten Jahren rasant entwickelt. Insbesondere im Bereich der natürlichen Sprachverarbeitung (Natural Language Processing, NLP) sind ChatBots konkrete Anwendungsbeispiele dieser Technologien. Sie bilden für den Menschen erlebbare Schnittstellen, um direkt mit „der Maschine“ zu kommunizieren.
In der Zurich Gruppe Deutschland wird derzeit schon an einem ChatBot für Schadenmeldungen geforscht. Dieser nutzt ML Methoden des NLP, um die Klassifizierung des Gesagten vorzunehmen und Entitäten aus dem Text zu extrahieren. Der Nutzer wird dann abhängig von dem so gebildeten Kontext intelligent durch einen Entscheidungsbaum geführt. Zurzeit wird hierzu eine kommerzielle Software genutzt.
Die Nutzung eines Entscheidungsbaums in Kombination mit einem Kontext ermöglicht die Entwicklung von komplexen und genau definierten State Machines. Und genau das ist die Herausforderung dabei: Kleine Änderung in der Abfragelogik ziehen z.T. umfassende Änderungen in der gesamten Entscheidungslogik mit sich. Die Skalierung eines solchen Vorhabens ist kaum möglich, da es schwierig (unmöglich) ist, alle möglichen Konversationen explizit zu modellieren.
Projektdefinition
Eine mögliche Lösung dieses Problems besteht darin, ein probabilistisches Modell basierend auf historischen Konversationen zu entwickeln. Dies beruht auf der Idee, dass es einfach ist, innerhalb einer Konversation zu spezifizieren, ob eine Antwort richtig oder falsch ist. Ein solches Modell kann mit Hilfe von Supervised, Reinforcement oder Interactive Learning Methoden entwickelt werden.
Die Projektarbeit gliedert sich in zwei Ziele:
- Eine Weiterentwicklung der aktuellen State Machine in ein probabilistisches Modell mit Hilfe des Open Source Stacks ai. Dazu zählen u.a. die Überführung der (aktuell in der kommerziellen Software erstellten) „Dialogflows“ nach Rasa.
- Die Entwicklung einer Zielarchitektur zur Einbindung des ChatBots in die bestehende Systemlandschaft einer großen Versicherung. Eingehende Chats sollen von verschiedenen Endpoints möglich sein (z.B. FB, Webchat, Alexa, Telegram,…). Die Einbindung ermöglicht eine Integration bestehender Backendsystem, wie z.B. Kundendatenbanken, ausgehend von einer lokal integrierten Cloud Server Architektur.Weiterhin soll die Zukunftsfähigkeit der Plattform sichergestellt werden um weitere Use Cases, wie z.B. die Klassifizierung von Emails oder transkribierter (oder text-to-speech) Telefonate mittels der Rasa NLP Engine zu realisieren.
Projektform
Der Projektpartner Zurich wird das Projekt sehr aktiv begleiten und bei der Einarbeitung in Konzepte und Technologien unterstützen.
- Ein Zurich-Mitarbeiter mit Projektvorwissen wird dauerhaft im Team mit coden.
- Der Sponsor (Jeronim Morina, https://www.linkedin.com/in/jeronim-morina/) wird in der „heißen“ Projektphase ca. 1d / Woche für das Projekt.
Das Projekt wird in agilen Sprints durchgeführt. Die Scrum-Master-Rolle wird von einem TH-Köln-Betreuer eingenommen, der Product Owner wird J. Morina sein.
Aufgrund dieser schon sehr konkreten Planung und gewisser organisatorischer Bedingungen auf Seiten der Zurich sind für das Projekt zeitliche Rahmenbedingungen gesetzt, die leider nicht veränderlich sind.
- Das Projekt beginnt am Mo 3.9.
- In der Zeit von 3.9. bis 10.10. (6 Wochen) sind jede Woche die Tage Mo, Di und Mi als Vor-Ort-Arbeitstage zu reservieren.
- Danach wird es noch einen Produktifizierungs- und Finalisierungs-Sprint geben, der zeitlich noch nicht fixiert ist; es kann aber davon ausgegangen werden, dass das Projekt früh endet.
Wer diese Randbedingungen nicht einhalten kann, kann an dem Projekt leider nicht teilnehmen.
Learning Outcomes
- Kenntnisse in Machine Learning, NLP und ChatBots
- Praktische Erfahrungen in Cutting Edge Software Development / Architecture
- Arbeiten im agilen Team
Voraussetzungen
- Python
- Aus der Dokumentation von rasa.ai (https://core.rasa.com/motivation.html):
- Why python? Because of its ecosystem of machine learning tools. Head over to But I don’t code in python! for details.
- Is this only for ML experts? You can use Rasa if you don’t know anything about machine learning, but if you do it’s easy to experiment.
- How much training data do I need? You can bootstrap from zero training data by using interactive learning. Try the tutorials!
- Kenntnisse moderner Softwaretechnologien wie z.B. Web-Services
- Bereitschaft, sich in Konzepte der AI und des NLP einzuarbeiten
- Bereitschaft, agil und teilweise im Blockformat zu arbeiten
- Aus der Dokumentation von rasa.ai (https://core.rasa.com/motivation.html):
Externe Projektpartner
Zurich Gruppe Deutschland