Menü
Developer

Machine Learning: Googles ActiveQA soll die richtigen Fragen stellen

Das Tool setzt auf verstärkendes Lernen, um durch Umformulieren einer Frage die passenden Antworten zu finden.

Von
vorlesen Drucken Kommentare lesen 2 Beiträge
Machine Learning: ActiveQA soll die richitge Fragestellung lernen

Das Team von Google AI Research hat mit ActiveQA ein Tool als Open-Source-Software veröffentlicht, das die am besten passenden Antworten auf beliebige Fragen finden soll. Google veröffentlicht das Werkzeug als TensorFlow-Paket. Die Aufgabe ist eine der Standardherausforderungen in der Verarbeitung natürlicher Sprache (Natural Language Processing, NLP).

Das Besondere an ActiveQA ist, dass es auf Methoden des verstärkenden Lernens (Reinforcement Learning, RL) setzt, während die meisten Systeme Methoden des überwachten Lernens (Supervised Learning) verwenden. Laut dem Google-AI-Blog ist letzteres Vorgehen zwar effizient, aber nicht in der Lage mit Ungenauigkeiten so umzugehen wie Menschen. Diese sind in der Lage, die Frage im Kopf so umzuformulieren, dass sie die passende Antwort geben können.

ActiveQA orientiert sich an dem menschlichen Vorgehen und formuliert im ersten Schritt die Frage um. Das Google-AI-Team hat zu dem Ansatz eine Abhandlung veröffentlicht, die sich unter anderem bei den Fragen der Spielshow Jeopardy bedient, was unweigerlich Erinnerungen an IBMs Watson wachruft. Als simples Beispiel für das Frageantwortspiel nennt der Blogbeitrag die Frage "When was Tesla born?", die es zunächst intern in eine Frage nach dem Geburtstag ("When is Tesla's Birthday?") und eine nach dem Geburtsjahr ("Which year was Tesla Born?") umformuliert. Aus den Ergebnissen kann das System schließlich die Geburt von Nikola Tesla als 10. Juli 1856 kombinieren.

Die Frage "Wann wurde Tesla geboren" lässt sich als die Frage nach dem Jahr und nach dem Geburtstag umformulieren.

(Bild: Google)

Um beliebige Fragen so umzuformulieren, dass sie zu guten Antworten führen, setzen die Macher auf verstärkendes Lernen. Bei diesem Machine-Learning-Ansatz erhält das System keine Vorgaben darüber, wie es vorgehen soll, sondern entwickelt selbsttätig eine Strategie. Die menschliche Steuerung liegt in einem Belohnungssystem, anhand dessen die Software erkennt, welches Vorgehen gut beziehungsweise zielführend ist. Ein erfolgreiches Beispiel für ein RL-System ist Googles AlphaGo, das durch wiederholte Partien gegen sich selbst das Brettspiel und erfolgreiche Strategie dafür gelernt hat.

ActiveQA lernt dadurch, dass es die neu formulierten Fragen wiederholt dem QA-System (Frage-Antwort) übergibt und die erhaltenen Antworten auswertet. Letztere bestimmen quasi die Belohnung für das verstärkende Lernen. Vereinfacht gesagt bedeutet eine gute Antwort, dass die Frage gut gestellt ist. Umgekehrt weisen unpassende oder unvollständige Antworten auf Verbesserungsbedarf bei der Fragestellung hin.

Das TensorFlow-Paket ActiveQA enthält den Code zu drei Komponenten: Die erste formuliert die Frage um, die zweite wählt die Antwort aus und die dritte dient als Umgebung. Für das Umformulieren kommt ein Sequence-to-Sequence-Modell zum Einsatz, das ebenso arbeitet wie Systeme zur maschinellen Übersetzung, nur dass es in dieselbe Sprache übersetzt. Als Grundlage dient das NMT-TensorFlow-Paket (Neural Machine Translation).

Für die Auswahl der passenden Antwort setzt ActiveQA auf ein künstliches neuronales Netz, genauer ein Convolutional Neural Network (CNN), das für die Auswahl öffentlich verfügbare, vortrainierte Worteinbettungen verwendet (Global Vectors for Word Representation). Die Basis für die Umgebung als dritte Komponente bildet das BiDAF-Netz (Bi-directional Attention Flow).

Weitere Details lassen sich dem Google-AI-Blog entnehmen. ActiveQA ist auf GitHub unter der Apache-2-Lizenz verfügbar. Das Repository bietet auch eine Anleitung zum Verwenden des TensorFlow-Paket. Informationen zum Einsatz des Pakets mit anderen Sprachen als Englisch sind auf Anhieb nicht zu finden. (rme)