In meiner Wissensdatenbank habe ich nach „Leckagetest" gesucht. Zurück kam ein Abschnitt über die Dichtheitsprüfung. Das Wort „Leckagetest" kommt in dem Dokument kein einziges Mal vor. Die alte Volltextsuche hätte nichts gefunden.
Das ist der Punkt, an dem so ein System aufhört, eine Suche zu sein, und anfängt, nützlich zu werden.
Wörter werden zu Punkten im Raum
Bevor ein Modell mit Text arbeitet, verwandelt es ihn in Zahlenreihen. Nicht in eine Zahl, sondern in Hunderte. Die Bedeutung steckt in der Reihe als Ganzes und nicht in einer einzelnen Stelle, weshalb sich zu einer einzelnen Zahl in aller Regel nicht sagen lässt, wofür sie steht. Es sind keine benannten Kategorien, sondern Richtungen, die sich aus Millionen Texten ergeben haben.
Man kann sich das als Punkt in einem Raum vorstellen, nur hat dieser Raum nicht drei Achsen, sondern zum Beispiel 1.536. Diese Zahlenreihe heißt Einbettung, auf Englisch Embedding.
Der Trick daran: Ähnliche Bedeutung liegt nah beieinander. „Dichtheitsprüfung" und „Leckagetest" landen fast an derselben Stelle, weil sie in den Trainingstexten in denselben Zusammenhängen vorkamen. „Dichtheitsprüfung" und „Angebotssumme" liegen weit auseinander.
Eine Suche wird damit zur Rechenaufgabe: Die Frage wird zu einem Punkt, und gesucht sind die Abschnitte, deren Punkte am nächsten liegen. Kein Wörterbuch, keine Synonymliste, die jemand pflegen müsste. Nur Abstand.
Neu ist diese Idee nicht. Bekannt wurde sie 2013 mit word2vec, das Wortvektoren aus großen Textmengen lernte und damit syntaktische wie semantische Wortähnlichkeit messbar machte (Mikolov u. a., 20131). Die heutigen Modelle bauen auf derselben Grundidee auf, nur mit sehr viel mehr Zahlen und mit Rücksicht auf den Satzzusammenhang.
Was das für die eigene Datenbank bedeutet
Beim Aufbau meiner Wissensdatenbank standen an dieser Stelle drei Entscheidungen an, die im Nachhinein teuer werden:
- Welches Einbettungsmodell. Es entscheidet, was als ähnlich gilt. Meine Erfahrung: Bei überwiegend englisch trainierten Modellen habe ich mit deutschen Fachbegriffen die schlechteren Treffer gesehen. Ein Wechsel kostet den gesamten Bestand, denn Punkte aus verschiedenen Modellen sind nicht vergleichbar und müssen neu berechnet werden.
- Wie groß die Abschnitte sind. Der Punkt beschreibt einen ganzen Abschnitt. Ist er zu lang, verwischt die Bedeutung zu einem Durchschnitt aus allem, was darin steht; ist er zu kurz, fehlt der Zusammenhang. Eine andere Aufteilung heißt wieder: Bestand neu einlesen.
- Was mit Tabellen und Zahlen passiert. Zahlen sind für ein Einbettungsmodell nicht bedeutungslos: In einer Untersuchung von 2019 gaben GloVe und word2vec die Größenordnung von Zahlen bis etwa 1.000 richtig wieder (Wallace u. a., 20192). Für die Suche nach einem bestimmten Wert nützt mir das nichts. Eine Tabelle wandert als Ganzes in einen Punkt, und je mehr Werte darin stehen, desto weniger sagt er über den einzelnen. Für solche Suchen läuft bei mir deshalb zusätzlich eine klassische Suche über die Werte.
Der Punkt, an dem es kippt
Nähe im Raum ist nicht dasselbe wie Richtigkeit. Ein Abschnitt über die Dichtheitsprüfung nach einer alten Fassung liegt genauso nah an meiner Frage wie der über die geltende. Beide handeln vom selben Thema, und der Abstand allein sagt nicht, welcher der beiden gilt. Genauso landet ein Abschnitt weit vorn, der zwar vom Thema handelt, die gesuchte Angabe aber gar nicht enthält. Der Abstand misst das Thema, nicht den Gehalt.
Deshalb steht bei jeder Antwort in meinem System die Fundstelle dabei, mit Dateiname und Datum. Wie ich von dort aus weiterprüfe, habe ich in Wie ich eine Antwort prüfe beschrieben. Die Ähnlichkeit findet den Abschnitt. Ob er noch gilt, entscheide ich.
Quellen
- 1Mikolov u. a., 2013 arxiv.org
- 2Wallace u. a., 2019 arxiv.org