"So lange diese Systeme nicht peu à peu mit Teilen von Deep-Learning-Systemen verbunden werden, wird das immer ein nettes Spielzeug bleiben."

Entwickeln für Alexa – das Interview

Entwickeln für Alexa – das Interview

"So lange diese Systeme nicht peu à peu mit Teilen von Deep-Learning-Systemen verbunden werden, wird das immer ein nettes Spielzeug bleiben."

Entwickeln für Alexa – das Interview


Amazons Sprachassistent Alexa ist zweifellos ein begehrtes Gimmick in der Tech-Gemeinde. Doch wo liegen die Grenzen bei der Entwicklung?

Nicht nur, aber gerade in der Tech-Gemeinde findet Amazons Sprachassistent Alexa großen Anklang. Wie im Science-Fiction-Film mit seiner Wohnung reden, die Temperatur oder das Licht anpassen und von einer künstlichen Intelligenz die dringendsten Alltagsfragen („wie heißt noch gleich der Schauspieler aus diesem Film mit dem Dings … na, wie heißt er noch?“) beantworten lassen – wer kann da schon widerstehen?

Alexa – die Zukunft im Wohnzimmer

Natürlich sind Nerds nicht die einzigen, die sich eine rosige Zukunft damit vorstellen können. Auch Marketeers sehen in sprachgesteuerten Assistenten einige spannende Möglichkeiten.

Und wer darf am Ende alles umsetzen? Entwickler, natürlich. Gestern zeigten wir bereits, wie man einen ersten, eigenen Skill für Alexa entwickeln kann – heute haben wir weitere Hintergründe aus dem Blickwinkel des Autors Marcel Naujeck für euch. Viel Spaß beim entdecken und staunen.

Herr Naujeck, ein paar Worte zu Ihnen: Was machen Sie und wie sind Sie zu Alexa gekommen?

Marcel Naujeck: Ich habe Informatik studiert und danach viele Firmen durchlaufen. Größtenteils habe ich im Bereich JavaEE gearbeitet, mich allerdings in meiner letzten Firma komplett auf Mobile-Entwicklung spezialisiert, also auf iOS. Danach habe ich bei hmmh angefangen und arbeite jetzt unter anderem im Future-Commerce-Bereich. Dort evaluieren wir beispielsweise neue Techniken, was im Prinzip bereits die zweite Frage beantwortet: Dadurch bin ich auch auf Alexa gekommen.

Wir schauen immer was möglich ist, um den Kunden neue Cases geben zu können; wir gucken also, wie man neue Techniken gewinnbringend einsetzen könnte. Im Rahmen dessen haben wir versucht einen PoC für einen Kunden zu bauen, bei dem es im Prinzip um Onlinebestellungen ging. Dafür musste ich die Skillentwicklung komplett durchdringen, um es mal so zu sagen. Mit der US Developer Preview kenne ich mich nicht so gut aus; bezüglich der deutschen Alexa bin ich aber zu 99 Prozent durch.

Marcel NaujeckMarcel Naujeck (43) ist Senior Software Engineer bei hmmh. Bereits mit 11 Jahren begann er mit dem Democoding. Heute nutzt er seine mehr als 15 Jahre Enterprise-Erfahrung für die Planung und Entwicklung von E-Commerce-Lösungen, nativen iOS-Entwicklungen und Lead-Developer-Funktionen für Online-Pure-Player aber auch für klassische Händler, die die Möglichkeiten der Digitalen Transformation erkannt haben und für sich nutzen möchten.

Sie sprechen da ein paar ganz spannende Punkte an: Future Commerce – wie sehen Sie denn einen sprachgesteuerten Assistenten, sei es Alexa oder ihre Konkurrenten, im Bereich E-Commerce oder im Bereich Commerce allgemein?

Marcel Naujeck: Wir haben uns „Connected Commerce“ auf die Fahnen geschrieben. Das heißt, dass wir versuchen, Gesamtlösungen anzubieten. Ein Beispiel: Sie haben einen Onlineshop, aber das Business hat auch ein Fachgeschäft. Wir verbinden dann gleich beides miteinander und machen einen gemeinsamen Case daraus.

Wir haben große Kunden und sind dabei, Studien dazu zu entwickeln, wie man beispielsweise elektronische Kaufhäuser interessanter machen kann, unter anderem mit Informationswänden. Sprachsteuerung ist da ein weiteres schönes Feature, das man benutzen kann.

Sie haben ja ein bisschen Erfahrung mit Alexa sammeln können. In Ihrem Artikel dazu setzen Sie eine relativ simple Anwendung um, indem Sie einen Skill entwickeln, mit dem Sie Alexa das Würfeln von Zahlen beizubringen. Was haben Sie denn darüber hinaus sonst noch mit Alexa gemacht?

Marcel Naujeck: Ich bin gerade dabei einen zweiten PoC zu entwickeln. Der erste PoC war ein Bestellservice: Stellen Sie sich vor, dass Sie Ihre Alexa zuhause stehen haben und wissen möchten, was ein Kaufhaus, das auch einen Bestellservice hat, diese Woche im Angebot hat. Diese Angebote möchten Sie auf einer Merkliste ablegen und irgendwann wollen Sie vielleicht sogar diese Merkliste einfach bestellen. Das ist ein Anwendungsfall, den wir entwickelt haben. Da sind wir natürlich erst mal auf sehr viele Probleme gestoßen.

Das spannende ist, dass man sich andere Möglichkeiten zur Nutzung des Sprach-Interface überlegen muss.

Zum Beispiel wusste ich zu Anfang natürlich nicht, dass man so sehr auf diese Slots beschränkt ist. Wenn wir annehmen, dass ein Kaufhaus beispielsweise 100.000 Artikel hat, und man nun möchte, dass alle 100.000 Artikel vom Kunden genannt und auf diese Weise bestellt werden können, bedeutet das, dass man alle diese Artikel per Webinterface einpflegen muss. Nur dann kann man zum Beispiel auch die Biomilch mit 1,5 Prozent Fettgehalt vom Hansfelder Hof oder sowas bestellen. Momentan bietet Amazon keine andere Möglichkeit für die Definition von solchen Custom Slots an, als sie per Webinterface anzulegen. Das geht natürlich so nicht, das funktioniert nicht.

Das spannende ist, dass man sich dann also andere Möglichkeiten zur Nutzung des Sprach-Interface überlegen muss. Man muss also im Prinzip eher mit einem geführten Gespräch arbeiten, bei dem man entlang einer Baumstruktur immer tiefer geht. In etwa so: „In welchem Bereich möchten sie bestellen?“ – „Ich möchte ein Milchprodukt bestellen.“ – „Möchten Sie Joghurt, Milch oder etwas anderes bestellen?“ – „Ich möchte Milch bestellen“. Und so geht man dann immer tiefer ins Sortiment. Das direkte Benennen durch den User ist im Moment halt noch nicht möglich.

Das heißt also, dass wir uns von einem One-Shot-Model wegbewegen und hin zu einem Dialogmodell, das Alexa bietet.

Marcel Naujeck: Genau, bei komplexen Eingaben auf jeden Fall.

In Ihrem Artikel über den Würfel wirkt schon dieser Anwendungsfall sehr aufwändig. Wenn wir das gerade genannte Beispiel nun mal außen vor lassen und uns einen Anwendungsfall einer simplen Home Automation ansehen: Mit wie viel Aufwand muss man da Ihrer Erfahrung nach rechnen?

Man kann nicht einfach sagen „Mir ist kalt“, damit Alexa die Heizung höher dreht.

Marcel Naujeck: Dabei muss man erst einmal differenzieren. Es gibt das Alexa SkillKit und es gibt die Smart Home Skills. Die Alexa Smart Home Skills sind genau für solche Automatisierungen, für das Internet of Things, gedacht. Das funktioniert teilweise noch einmal anders.

Bei den Smart Home Skills ist es so, dass man die Intents nicht mehr frei wählen kann. Man kann nicht mehr sagen, dass man selbst einen Gegenstand einsteuert und sagt „Mir ist kalt“, damit Alexa die Heizung höher dreht. Amazon hat da ganz fest vordefinierte Intents, wie die Steuerung des Internet of Things funktionieren darf. Das ist natürlich ein bisschen schade und nimmt ein wenig den Spaß an der Geschichte, ist aber momentan einfach so.

Glauben Sie, dass sich daran noch etwas ändern könnte?

Marcel Naujeck: Das wird sich bestimmt ändern. Ich habe festgestellt, dass Amazon schon sehr auf die Wünsche der Entwickler eingeht. Dadurch sind zum Beispiel die hunderte vordefinierter neuer Slots zustande gekommen, die man in der neuen Developer Preview in den USA sieht. Das ist im Prinzip entstanden, weil die Entwickler sich beschwert haben, dass man so viele Custom Slots definieren muss, wenn man eigentlich immer die gleichen Sachen abfragt. Darauf hat Amazon recht schnell reagiert, sodass ich schon denke, dass sie sich da immer weiter öffnen werden.

Ein Skill ist also etwas, das man Alexa beibringt, beispielsweise das Würfeln mit einem Würfel. Sie haben aber ja auch von Slots gesprochen. Was ist das genau?

Marcel Naujeck: Ein Skill ist natürlich erst mal das Sprachmodell selber, aber auch die Backend-Anwendung zum Sprachmodell. Das Ganze besteht ja aus zwei Teilen. Der eine davon ist die Alexa-Developer-Konsole, in der man definiert, wie Sätze aussehen können, was für Datentypen sie haben können; der andere Teil ist das Backend. Dort programmiert man letztlich, wie Alexa auf diese Sprachmodell reagieren soll.

Um einen Slot zu erklären, fangen wir am besten so an: Ein Satz, den Alexa können soll, ist ein Intent. Und so ein Intent besteht erstens aus rein statischen Teilen, also irgendwelchen unveränderlichen Wörtern, und zweitens aus dynamischen Teilen – das sind Slots. Das sind die Sachen, wo der Benutzer etwas einsetzen kann. Das heißt, dass beispielsweise ein Datum ein Slot ist. Ein Custom Slot ist das Wort „grün“ in dem Satz „Alexa, mach das Licht grün“. Diesen Custom Slot würde ich zum Beispiel color nennen. Alle Farben, die ich an dieser Stelle haben möchte, muss ich mit-definieren, wenn ich den Custom Slot definiere. So lernt Alexa auch andere Sachen zu verstehen, als sie momentan versteht.

Bei komplizierten Sachen steigt Alexa aus.

Das witzige ist aber, dass die Werte die man in so einem Custom Slot definiert, nicht die einzigen sind, die Alexa bei diesem Slot übergeben kann. Das ist ein bisschen verrückt und unverständlich. Wie ich in meinem Artikel zum Würfeln beschrieben habe, kann man sich den Spaß machen, einen Slot mit nur einem Wort zu definieren und ausgeben zu lassen, was bei diesem Slot zurückkommt.

Ich habe da mal einen Testslot gebaut; im Prinzip kann man Alexa so Sachen wiederholen lassen, die man sagt. Da sieht man aber auch, dass das Sprachverständnis doch eher schlecht ist. Sachen wie „Kindergarten“, die vom Erkennungsvektor her sehr klar sind, erkennt sie noch; bei komplizierteren Sachen steigt Alexa aus.

Sie erwähnen in Ihrem Artikel aber auch, dass das Sprachverständnis deswegen relativ gut ist, weil das Wortverständnis begrenzt ist. Was bedeutet das für die Anwendungen, die man entwickelt?

Marcel Naujeck: Das ist so: Angenommen, Sie haben in Ihrem Schema zwei Sätze, die Alexa erkennen soll: Einen ganz kurzen und einen ganz langen. Dann können Sie irgendetwas kurzes sagen, es ist egal was – Alexa wird immer denken, dass es der kurze Intent ist, den Sie meinen.

Man muss sehr darauf achten, alle Eventualitäten abzudecken.

Je nachdem, wie kompliziert das Modell wird, benutzt Alexa andere Vektoren um diese Sätze zu erkennen. Das ist im Prinzip wie ein Entscheidungsbaum mit einer erzwungenen Entscheidung: Wenn man irgendetwas sagt, wird Alexa nicht sagen, dass sie den Satz nicht erkannt hat. Alexa wird es als einen der beiden Sätze einordnen. Sie gibt höchstens dann eine Exception aus, wenn dort, wo sie einen Slot vermutet, irgendein Element erscheint, das sie gar nicht kennt oder erkennt. Man muss im Backend also sehr darauf achten, dass man alle Eventualitäten abdeckt.

Das heißt also, dass man in erster Linie darauf bedacht ist, relativ simple Sachen zu machen, um möglichst viele Fehler zu umschiffen?

Marcel Naujeck: Genau. Ich hatte gerade einen PoC, bei dem wir einen Eventkalender für das Haus der Kommunikation machen wollten, wo ich sitze, um zu zeigen, was Alexa zu kann. Man kann sagen, dass wir hier ein Konglomerat von Agenturen haben, aus jedem Bereich, und darum auch mal andere Leute mit irgendwelchen Ideen zu uns kommen. Da bin ich zum Beispiel auf ein ganz witziges Problem gestoßen. Und zwar habe ich zwei Sätze, die im Prinzip gleich sind und sich nur in den Datentypen unterscheiden. Bei Amazon gibt es da einmal die Duration, also die Möglichkeit, ein Zeitintervall anzugeben, und das Date.

Wir wollten nun, dass man Alexa nach Events fragen kann. Ein typischer Satz wäre da: „Welche Events gibt es nächsten Sonntag in Hamburg“. Wir wollten aber auch, dass man nach einem Zeitraum fragen kann: „Welche Events gibt es innerhalb der nächsten zwei Wochen im Hamburg?“. Da haben wir eine Duration und ein Date. Wenn man diese beiden Intents angibt, die sich im Prinzip nur durch den Datentyp unterscheiden, ist das Problem nun, dass Alexa das nicht hinbekommt. Alexa wird immer den ersten Intent nehmen. Das heißt, dass man darauf achten muss, dass sich die Sätze unterscheiden müssen. Amazon spricht in seinem Voice Design Guide von Identifiern, mit denen man Sätze eindeutig von einander unterscheiden kann. Das ist natürlich ein Problem, wenn man Sprach-Interfaces entwickelt: Man muss darauf achten, dass irgendwelche Elemente im Satz sind, durch die die Sätze eindeutig unterscheidbar sind.

Um das mal zusammenzufassen: Mit dem, was Alexa derzeit kann, ist sie ein nettes Spielzeug; wir sind aber noch ein Stück davon entfernt, sie für richtig harte Use Cases nutzen zu können.

Marcel Naujeck: Ja. Ich bin mir auch sicher, dass es egal ist, ob Siri, ob Google Home Kit – solange diese Systeme nicht peu à peu mit Teilen von Deep-Learning-Systemen verbunden werden, sodass man wirklich eine lexikalische Analyse des Satzes durchführen kann, wird das immer ein nettes Spielzeug bleiben. Das Verständnis der Sprache fehlt einfach.

Es ist natürlich so, dass man mit Siri schon ein bisschen länger arbeitet und es von Microsoft Cortana gibt, die vor allem auf der XBox am Anfang eine Rolle gespielt hat. Wir befinden uns, was diese sprachgeführten Assistenzsysteme angeht, aber ja doch noch relativ am Anfang. Wie lange beobachten Sie diesen Bereich bereits und was meinen Sie, wie schnell geht die Entwicklung gerade voran?

Marcel Naujeck: Ich kann das nur aus der Perspektive des Mobile-Bereichs betrachten. Da war es ja auch so, dass man gesehen hat, wie schnell Apple angefangen hat die APIs zu öffnen, nachdem man gesehen hat, dass Siri einigermaßen gut ankam. Mittlerweile kann Siri eingeschränkt auch von anderen Apps benutzt werden, genau so wie Siri Einzug auf dem MacOS-Desktop gehalten hat.

Ich denke also schon, dass das immer weiter forciert werden wird. Es ist halt so – wie soll man sagen – dass Menschen faul sind und sie alles nutzen, was ihnen in irgendeiner Form Arbeit abnehmen kann, gerade bei der Informationsbeschaffung. Ich finde die Idee auch super spannend, eine Box bei mir im Wohnzimmer zu haben, die mir über kurz oder lang auch mal kompliziertere Sachen beantworten oder abnehmen kann. Das ist definitiv ein Markt, und den werden sich die Global Player nicht entgehen lassen.

Was denken Sie, wie schnell wird das voranschreiten? Aus meiner persönlichen Sicht ist Mobile der komplett falsche Ansatz, weil ich nicht in öffentlichen Verkehrsmitteln oder sonst irgendwo meinem iPhone irgendwas diktieren möchte und antworten kriegen will, die im besten Fall jeder mitbekommt. Gerade im Home-Automation-Umfeld jedoch finde ich die Idee unglaublich spannend …

Marcel Naujeck: Da gebe ich Ihnen völlig Recht. Es ist ja letztlich so, dass alle Global Player versuchen in den Markt reinzukommen. Amazon war nun am schnellsten, und wie man an den langen Wartezeiten gesehen hat, werden die Absätze einfach kolossal sein. Meine private Alexa habe ich auch noch nicht bekommen. Ich habe eine vom Chef bekommen, der sie in den USA gekauft hatte; wir haben sie dann auf Deutsch geupdatet. Ansonsten hätte ich auch noch kein Gerät, mit dem ich das alles testen könnte.

Amazon reagiert sehr schnell und versucht, das SDK und die Möglichkeiten immer mehr zu erweitern.

Insofern sieht man ja, dass es eine wahnsinnige Nachfrage nach den Geräten gibt, auch anhand der Mails, die Amazon versendet hat. Auf der anderen Seite ist die Nachfrage aber auch deshalb so groß, weil die Leute noch nicht so genau wissen, was Alexa eigentlich kann. Wenn man sich die Roadshows ansieht, glaubt man, dass das Gerät fantastische Funktionen hat; wenn man anfängt damit zu arbeiten, ist das ein bisschen ernüchternd. Man sieht, dass nicht alles Gold ist, was glänzt. Man muss aber auch sagen, dass Amazon sehr schnell reagiert und versucht, das SDK und die Möglichkeiten immer mehr zu erweitern. Ich denke, das wird ein super spannender Bereich, vor allem wenn man sich auch ein wenig mehr in die Enterprise-Richtung bewegt. Im Moment ist es ja so, dass man einen Skill entweder im Development-Mode hat oder selbst published. Man kann aber noch keine Skills für eine Gruppe anlegen und auf Alexa alles andere ausschalten, sodass nur noch die definierten Skills funktionieren.

Auf der anderen Seite kommt aber im Januar der Alexa Voice Service nach Deutschland, mit dem man die Alexa-Steuerung quasi in seine eigene Anwendung mit einbauen kann. Darüber wird es natürlich dann möglich werden, die Funktionen einzuschränken, sodass man Enterprise-Geschichten machen kann; Skills also nicht im Skills-Store zu veröffentlichen, sondern zum Beispiel für eine Firma.

Vielen Dank für das Interview.

Marcel Naujeck

Marcel Naujeck (43) ist Senior Software Engineer bei hmmh. Bereits mit elf Jahren begann er mit dem Democoding. Heute nutzt er seine mehr als fünfzehn Jahre Enterprise-Erfahrung für die Planung und Entwicklung von E-Commerce-Lösungen, nativen iOS-Entwicklungen und Lead-Developer-Funktionen für Online-Pure-Player, aber auch für klassische Händler, die die Möglichkeiten der digitalen Transformation erkannt haben und für sich nutzen möchten.

Thomas Wießeckel war Redakteur bei Software & Support Media. Seine Themengebiete umfassten Webtechnologien und -Entwicklung sowie die Bereiche Mobile Development und Open Source. Er arbeitete an regelmäßig erscheinenden Magazinen wie dem Entwickler Magazin und dem PHP Magazin mit, rief den PHP User ins Leben, betreute Sonderhefte aus dem Bereich Mobile Development, war verantwortlich für die WebTech Conference und die Open Source Expo und lektorierte Bücher zu Themen rund um Webentwicklung. Vor seiner Zeit als Redakteur hat er Soziologie studiert und als freier PHP- und Frontend-Entwickler gearbeitet.