Wie funktioniert der Akinator?
Das Internet vergisst nichts, sagt man. Das stimmt so nicht, aber es ist durchaus richtig, dass manche Phänomene sich so hartnäckig weigern zu sterben, als wären sie Rasputin. (Der russische Mönch wurde der Legende nach vergiftet, erschossen und schließlich – nachdem er sich immer noch ans Leben klammerte – im eiskalten Wasser eines Flusses versenkt, in dem er schließlich ertrank.) So ist es auch mit dem Akinator, der nun schon knapp ein Jahrzehnt existiert, aber in schöner Regelmäßigkeit in Facebook-Feeds und Twitter-Mentions auftaucht, weil wieder jemand die Seite entdeckt hat und irrsinnig beeindruckt ist, mit welcher Treffsicherheit sie irgendwelche obskuren Dinge oder Personen errät. Und immer wieder kommt die ehrfürchtige Frage: Wie geht das?
Natürlich machen die Betreiber vom Akinator ein großes Geheimnis darum, aber das Prinzip dahinter ist so simpel, dass vermutlich jeder am Ende dieses Texts total enttäuscht sein wird, weil man sich von so einem billigen Trick beeindrucken ließ. Man möge dies als Spoilerwarnung verstehen und bitte davon absehen, mir abgetrennte Pferdeköpfe ins Bett zu legen.
Am erstaunlichsten ist die Tatsache, dass es nicht viel mehr solche Seiten gibt, denn als junger, saftstrotzender Gymnasiast musste ich so ein System schon als Übungsaufgabe im Leistungskurs Informatik programmieren, und das nicht, weil meine Lehrerin besonders kreativ war, sondern weil ein schnödes Lehrbuch es vorgab und unter dem Namen „Expertensystem“ einführte. Um die Sache nicht zu kompliziert zu machen, beschränke ich mich in meinen Erklärungen auf Ja/Nein-Fragen, aber mit mehr Antwortmöglichkeiten funktioniert es im Grunde genauso.
Am Anfang gibt man nur eine Lösung vor. Nehmen wir zum Beispiel mal an, wir sagen dem allerersten Besucher: „Du denkst an Napoleon.“ Vermutlich wird er strengstens gegen diese Unterstellung protestieren. Falls der erste Besucher der türkische Präsident Erdoğan ist, wird er deswegen auch noch den deutschen Botschafter einbestellen und mit der Kündigung des Flüchtlingsabkommens drohen.
Also fragen wir ihn, woran er denn gedacht hat und welche Frage diese Person oder Sache von Napoleon unterscheidet. Es ist also gut möglich, dass er sagt, er hätte an Angela Merkel gedacht und die Frage wäre: „Ist es ein Mann?“, und die Antwort für „Angela Merkel“ wäre „nein“. (Ein Teil von mir denkt, das müsste ich nicht schreiben. Ein anderer Teil weiß, dass sonst blöde Bemerkungen kommen würden. )
Daher setzen wir diese Frage an den Anfang und geben dem nächsten Besucher je nach Antwort die Lösung „Napoleon“ oder „Angela Merkel“.
Vermutlich wird auch er an etwas anderes gedacht haben, zum Beispiel an ein Fahrrad. Er antwortet also auf die Frage, ob es ein Mann ist, mit nein, bekommt Angela Merkel präsentiert und gibt an, dass diese Lösung falsch ist. Und wieder fragt ihn das Programm, woran er gedacht hat und mit welcher Entscheidungsfrage man Angela Merkel von einem Fahrrad unterscheiden könnte, etwa „Ist es ein Gegenstand?“ Also setzen wir an die Stelle von „Angela Merkel“ diese Frage, nehmen dafür „Angela Merkel“ als Nein-Antwort und „Fahrrad“ als Ja-Antwort. Wenn jemand also an ein Fahrrad oder an Angela Merkel denkt, muss er zwei Fragen beantworten und bekommt die richtige Lösung. Wer an Napoleon denkt, muss nur eine Frage beantworten.
Das Prinzip sehen wir also schon: Es baut sich langsam ein kleines Bäumchen auf, dessen Blätter die möglichen Lösungen sind, während alle anderen Knoten die Fragen sind. Das Schöne daran ist: Jeder Besucher, dessen „Gedanke“ erraten wird, ist total beeindruckt. Jeder Besucher, bei dem das System versagt, bringt ihm aber etwas Neues bei und sorgt so dafür, dass andere Besucher besser beeindruckt werden können.
Der große Vorteil so einer Baumstruktur ist, dass man damit viele Daten effizient filtern kann. Bei einer Beschränkung auf Ja/Nein-Fragen kann man mit einer einzigen Antwort die Hälfte der bislang noch infrage kommenden Lösungen streichen. Um aus einer Million gespeicherter Personen oder Gegenstände die richtige Lösung herauszufinden, braucht man bei so einem Binärbaum also nur zwanzig Fragen, wenn der Baum einigermaßen ausbalanciert ist. (Die Zahl der möglichen Antworten lässt sich mit 2n berechnen, wobei n die Zahl der zu stellenden Fragen ist.) Wenn man (wie der Akinator) mehr Antworten pro Frage erlaubt, erhöht sich auch die Zahl der Daten, die man in so einem Bäumchen speichern und mit einer bestimmten Anzahl von Fragen hintereinander herausfiltern kann.
Übrigens kann man das System so programmieren, dass es schon beim Einfügen neuer Daten notfalls Fragen tauscht und die Antworten neu verknüpft, um den Baum auszubalancieren und so dafür zu sorgen, dass weiterhin effizient gesucht werden kann. Daher werden dem tausendsten Besucher die Fragen nicht zwangsläufig in derselben Reihenfolge gestellt wie dem hundertsten.
Weil die Datenmenge, die man speichern muss, mit der Zeit ganz schön gewaltig werden kann, wird man tatsächlich anfangen, die Zahl der Ebenen in diesem Baum zu beschränken, indem man zum Beispiel vorgibt, dass etwas in 20 oder 30 Fragen erraten werden muss. Sollte das System dann immer noch nicht das liefern, was der Besucher erwartet, dann findet es sich damit ab und bietet ihm nicht an, sein Wissen auch noch in die Datenbasis einzufügen. Mit den bereits gespeicherten Daten schafft man es auch so, immer noch genug Leute zu verblüffen.
Nun gibt es ein Geheimnis weniger auf der Welt, und ihr könnt nun auf Facebook richtig unsympathisch klugscheißen, wenn mal wieder jemand mit kindlichem Erstaunen den Link zum Akinator postet und hinter der ganzen Sache Magie vermutet.
Vielen Dank an nekoli für das Bild.