Im Jahr 2019 veröffentlichte FloQast ein Produkt namens AutoRec, wodurch der Kontenabstimmung automatisiert wird und Buchhalter Stunden oder Tage sparen, die sie sonst damit verbringen würden, jeden Monat manuell Transaktionen zu durchsuchen, um echte Ausnahmen zu identifizieren oder Artikel abzugleichen. Dies wird häufig durch den Vergleich zweier Datensätze erreicht, z. B. das Hauptbuch mit dem Kontoauszug.
Um diese Aufgabe zu erfüllen, haben wir eine Matching-Engine entwickelt, die zahlreiche Algorithmen verwendet, um die Daten zu durchsuchen und Transaktionen im Namen des Benutzers automatisch abzugleichen. Aber mit der Anzahl der AutoRec-Benutzer stieg auch die Anzahl der Variationen in der Art und Weise, wie Matches für verschiedene Kunden erstellt werden. Dies führte zu einer wachsenden Anzahl von Konfigurationsoptionen und einer erhöhten Komplexität der Engine sowie zu einer wachsenden Anzahl von benutzerdefinierten Konfigurationen, die für einzelne Kunden verwaltet werden mussten. Wir brauchten eine skalierbarere Lösung!
Also haben wir uns gefragt, können wir hier maschinelles Lernen einsetzen? Zu der Zeit war ich neu im Motorenteam und hatte keine Erfahrung mit maschinellem Lernen. Ich hatte mehr Fragen als Antworten.

Noch heute gibt es eine Reihe von Fragen zum maschinellen Lernen (und auch zu einigen Fehlbezeichnungen) und seinen Funktionen. Deshalb werde ich versuchen, Ihnen zu helfen, eine grundlegende Intuition dafür zu entwickeln, was maschinelles Lernen ist und wie es funktioniert.
Eine (sehr) kurze Einführung in maschinelles Lernen
Der Begriff „maschinelles Lernen“ ist in den letzten Jahren sehr populär geworden, aber es ist nicht immer klar, was genau „gelernt“ wird und wie. Und obwohl dies ein riesiges Studienfeld mit vielen verschiedenen Techniken, Algorithmen und Anwendungen ist, werden wir anhand eines einfachen Beispiels das Kernkonzept veranschaulichen, das im Mittelpunkt des maschinellen Lernens steht.
Lassen Sie uns damit beginnen, wie wir Menschen aus Daten lernen können, die uns präsentiert werden. Angenommen, Sie haben die folgenden Daten erhalten und Sie werden gebeten, herauszufinden, für welche Werte EIN und B könnte sein:
(A x 2) + (B x 10) = 30 (A x 3) + (B x 20) = 55 (A x 5) + (B x 30) = 85
Sie sind wahrscheinlich zu dem Schluss gekommen, dass A = 5 und B = 2 ist [Anmerkung der Redaktion: Ich habe verstanden, dass es keine Mathematik geben würde...]. Denken Sie nun über den Prozess nach, der in Ihrem Kopf stattgefunden hat, als Sie das Problem gelöst haben. Es könnte ungefähr so ausgesehen haben:
- Erraten Sie die Anfangswerte für A und B
- Berechnet das Ergebnis für jede Zeile anhand der ausgewählten Werte
- Vergleichen Sie die Ergebnisse mit den angegebenen Antworten
- Passen Sie die Werte für A und B an und wiederholen Sie den Vorgang, bis die Ergebnisse mit den Antworten übereinstimmen (so gut wie möglich)
Wir haben gerade eine beschrieben Trainingsschleife! Das gleiche Verfahren wird beim maschinellen Lernen verwendet, wo das Ziel darin besteht, die optimalen Werte für A und B zu lernen (auch bekannt als Gewichte) basierend auf den gegebenen Antworten. Und da wir die Antworten erhalten, gegen die wir abwägen können, heißt das betreutes Lernen.
In diesem Beispiel haben wir zwei Eingaben Eigenschaften, die Werte [2, 3, 5] und [10, 20, 30], die den Gewichten A bzw. B entsprechen, aber in Wirklichkeit könnte es Hunderte oder Tausende von Merkmalen geben, die verschiedene Daten repräsentieren. Die Funktionen sind die Datenpunkte, die das Problem beschreiben, das Sie zu lösen versuchen. Wenn Sie also versuchen, die Immobilienpreise vorherzusagen, könnten Ihre Funktionen Dinge wie Quadratmeterzahl, Anzahl der Schlafzimmer, Anzahl der Badezimmer usw. beinhalten.
Das wirft natürlich die Frage auf:

Wie genau weiß die Maschine, wie man den oben genannten Prozess des Erratens und Einstellens der Gewichte nachahmt?
Wie sich herausstellt, gibt es Algorithmen, die genau wissen, wie das geht! Tatsächlich besteht maschinelles Lernen im Wesentlichen aus einer Reihe etablierter Algorithmen, die Lernen ermöglichen. Ein solcher Algorithmus heißt Abstieg mit Steigung. Die Anfangsgewichte können mit Nullen oder Zufallswerten beginnen. Der interessantere Teil ist, wie es die Gewichte anpasst, um den richtigen Antworten näher zu kommen, indem es die Minimierung der Kosten (der Unterschied zwischen den aktuellen Ergebnissen und den gegebenen Antworten) bei jeder Iteration. Dabei werden Formeln verwendet, die auf Derivaten basieren, um zu bestimmen, ob jedes Gewicht erhöht oder verringert werden sollte.

Nun, da wir die optimalen Gewichte anhand der angegebenen Eingabedaten gelernt haben (auch bekannt als Trainingsdaten), wir haben eine Modell (Lesenswert: Gewichtssatz), der verwendet werden kann, um die Ausgabe für neue Daten vorherzusagen, für die wir keine Antworten haben.
Möglicherweise haben Sie auch eine binäre Klassifikation Problem, bei dem die Trainingsantworten entweder 1 (ja) oder 0 (nein) sind und das Modell trainiert wird, einen Wert vorherzusagen (auch bekannt als Wahrscheinlichkeit) zwischen 0 und 1, in diesem Fall könnten Sie eine Wahrscheinlichkeit von 0,5 oder höher als Ja-Vorhersage betrachten.
Zurück zu unserem Transaktionsabgleichsproblem
Wenn wir einen Schritt zurücktreten und uns ansehen, was maschinelles Lernen macht, lernt es die relative Wichtigkeit (Gewicht) der einzelnen Merkmale im Verhältnis zum vorhergesagten Output.
Für die Matching-Engine haben wir also erkannt, dass, wenn wir eine Methode (d. h. Funktionen) finden könnten, um darzustellen, wie ein passendes Transaktionspaar aussieht, wir maschinelles Lernen verwenden können, um ein Modell zu trainieren, das vorhersagen kann, ob wir eine Übereinstimmung haben. Und noch besser: Wir müssen keine benutzerdefinierte Konfiguration verwenden, um die Unterschiede zwischen den FloQAST-Benutzern zu berücksichtigen, da das Modell diese Variationen ganz von selbst lernen kann, und am Ende haben wir praktisch eine Matching-Engine ohne Konfiguration, die nicht an Komplexität zunehmen muss, wenn mehr Kunden sie verwenden.
Es erleichtert auch unseren Kunden und unserem Support-Team das Leben, da sie sich nicht mehr die Daten ansehen und versuchen müssen, ihre eigenen Matching-Regeln zu erstellen, die vom Benutzer entworfen und verwaltet werden müssen, um die besten Matches zu erzielen.