Der richtige Ansatz um ein Skill für Amazon Alexa zu entwicklen!?

Erst vor kurzem haben wir mal durchgewurschtelt wieso aktuelle Skills für Amazon Alexa derzeit noch so fürchterbarschlimmschlecht sind. Klar, meckern kann jeder, aber wenn man dann Lösungen liefern soll, verschwindet der Welpe ganz schnell wimmernd unter dem Bett und macht ein Pfützchen. Nö, nicht Wir! Wir stellen uns dieser Herausforderung und versuchen mal einen Versuch um einen grundlegenden Entwicklungsansatz finden, ohne gleich Informatik und Liguistik studiert haben zu müssenwollendürfenkönnen.

*Räusper*

Werfen wir einfach mal einen Blick auf aktuelle Skills. Da werden dem Nutzer als Hilfestellung ein paar Sätze mitgegeben, damit er weiß wie er zu sprechen hat damit Alexa ihn versteht. Aha! Ähm, echt jetzt? Der Mensch soll sich in seiner Sprache also der Maschine anpassen? Es dürfte wohl relativ klar sein das dies im Ansatz schon falsch sein dürfte. Grundsätzlich sollte der Sprachassistentent den Mensch so verstehen, wie er auch spricht und ihm nicht erst diktieren müssen wie er zu sprechen hat. Ergo, darf es für den Nutzer eigentlich auch keinerlei Hilfestellung geben, da der Sprachassistent nunmal die menschliche Sprache zu verstehen hat und er nicht andersherum die Sprache der Maschinen zu erlernen hat.

„Der Mensch muss, ohne die Sprache der Maschine erlernen zu müssen, ohne weitere Hilfestellung von der Maschine möglichst gut verstanden werden!“

Sprache macht es möglich, einen gemeinten Inhalt auf viele verschiedene Arten zu beschreiben:

  • Gibst du mir bitte ein Stück Kuchen?
  • Ich hätte gern ein Stück Kuchen.
  • Kuchen!
  • Kuchen?
  • Gibma Kuchen.
  • Jetzt gibt doch mal ein Stück Kuchen.
  • Lang mal den Süßkrams rüber.
  • Hau mal das Gebäck her.
  • und so weiter…

Dieser Variantenvielfalt muss der Sprachassistent so gut es geht Rechnung tragen um den Menschen zu verstehen. Für den Menschen ist es logisch, das es immer um einen Kontext z.B Kuchen geht. Die Maschine aber, kann ohne Kontext und Semantik, in vielen Fällen nichts mit einer oder vielen dieser Phrasen anfangen. Entsprechend muss der Entwickler vor allem dies in seiner Programmierung (Utterances bei Alexa) vorsehen und so semantisch dabei vorgehen wie es nur möglich ist. Wie wäre das am besten zu bewerkstelligen?

Ignorieren wir an dieser Stelle einfach mal die technischen Grenzen der Sprachassistentsysteme und damit z.B auch solche Dinge wie Timeouts, oder den Verlust der Sitzung. etc.

Ignorieren wir am besten auch gleich den Wunsch nach dem kürzesten Weg zur Antwort, den sich Informatiker ja immer so sehr wünschen. In der Regel wird der Weg das Ziel sein, da der Mensch nunmal kein Computer ist und immer direkt alle Informationen mitgibt die der Sprachassistent braucht um die richtige Antwort ausliefern zu können. Vieles schliesst der Mensch eben einfach aus dem Kontext. Diesen Findungsprozess per Maschine macht ein jeder von uns tagtäglich im Internet, indem er z.B bei der Suche in einem Shop die einzelnen Suchkriterien so zusammenstellt, bis er die gewünschte Information gefunden hat.

Somit täte also im Grunde ein jeder Skill-Entwickler erstmal gut daran, sich das Wurst-Käse…äh…Worst-Case Szenario vorzustellen: Der Mensch weiß nicht was er will! Diesem Szenario kann er nur entkommen wenn er den Menschen solange Löcher in den Bauch fragt bis die gewünschte Information gefunden und ausgegeben werden kann. Doch selbst wenn „eine“ Zielinformation vom Sprachassistenten gefunden wurde, muss der Sprachassistent trotzdem weiter verifizieren ob es nicht doch eine andere ähnliche sein könnte.

„Der Sprachassistent muss über möglichst viele Eingaben des Nutzers die Information ausliefern die im entsprechenden Kontext am richtigsten erscheint und diese nochmals verifizieren und Alternativen anbieten!“

  • Nutzer: „Ich möchte ein Auto“
  • Sprachassistent: „Was willst du damit machen?“
  • Nutzer: „Damit fahren“
  • Sprachassistent: „Willst du darin sitzen oder etwas Ferngesteuertes?“
  • Nutzer: „Ein Ferngesteuertes!“
  • Sprachassistent: „Ich finde über 2000 Modelle. Kannst du deinen Wunsch eingrenzen? z.B über den Preis, die Farbe, Bewertungen, Antriebsart?“
  • Nutzer: „Ich will damit im Gelände fahren!“
  • Sprachassistent: „Ich habe 200 Modelle gefunden. Kannst du es weiter eingrenzen?“
  • Nutzer: „Nicht über 200 Euro“
  • Sprachassistent: „Ich habe 4 Modelle gefunden. Möchtest du es weiter eingrenzen?“
  • Nutzer: „Nein, beschreib mir das Modell mit den besten Bewertungen“
  • Sprachassistent: „Das Model…………blablabla…“
  • etc.

Natürlich ist neben Kontext und Sematik, auch die Künstliche Intelligenz extrem ausschlaggebend für die Ergebniss die der Sprachassistent liefert. Jedoch gibt es derzeit zu den aktuell am Markt befindlichen Sprachassistenten quasi keinerlei Untersuchungen oder Vergleiche die irgendwelche handfesten Beweiswerte haben würden um die Effizienz oder Qualität der KI zu zeigen. Auch ist die Anwendung von künstlicher Intelligenz über Sprachassistenten im Alltag noch viel zu jung um verwertbare Erfahrungen liefern zu können.

Das bedeuted schlicht, das der Entwickler eines Skills, vor allem über den indirektesten Weg zur Zielinformation gehen muss um möglichst viele Informationen vom Nutzer aufzunehmen und in das Ergebnis einbringen zu können. Der kürzeste Weg dürfte hier in der Regel also eher der falscheste sein. Damit wird die unbeliebte „Behandlung von Fehlerfällen“ eigentlich zm ultimativen Werkzeug um den Sprachassistenten menschlich und smart zu machen. Passt irgendwie, kaum etwas ist so fehlerbehaftet wie der Mensch. Warum also, sollte man eine Software für den Menschen nicht über Fehler entwerfen?

„Die meisten Erfahrungen liefern die besten Ergebnisse. Entsprechend ist der längste Weg zur Ziel am richtigsten und nie eindeutig!“

Werbung