Semantic IDs

Reichern Sie immer wieder dieselbe Art von Entität an, und Sie entdecken immer wieder dieselben realen Dinge — dasselbe Unternehmen, dieselbe Arzneimittel-Nebenwirkung, dieselbe Person — jedes Mal mit leicht unterschiedlichen Worten beschrieben. Eine semantische ID ist eine stabile, organisationsbezogene Kennung, die Entity Enricher einem Objekt aus seinen Schlüsselfeldern zuweist, sodass diese Beinahe-Duplikate zu einer Identität zusammenfallen, nach der Sie gruppieren, deduplizieren und verknüpfen können.

Das Problem: dasselbe, aber anders formuliert

Die Identität eines Objekts wird aus seinen Schlüsselfeldern gebildet – und es kann eines oder mehrere geben. Zwei Beispiele:

Ein Schlüssel

Ein Seiteneffekt, der über name identifiziert wird

Es erscheint über verschiedene Durchläufe und Sprachen hinweg als Headache, Céphalée und Cephalalgia. Ein Schlüsselfeld, drei Schreibweisen, ein reales Konzept.

Zwei Schlüssel

Ein Unternehmen, identifiziert über Name + Land

Acme Inc. · United States und Acme Incorporated · United States sind dasselbe Unternehmen – Acme Inc. · Germany hingegen ist ein anderes. Der zweite Schlüssel sorgt für Eindeutigkeit; deshalb kann ein Objekt mehr als einen tragen.

Einfacher Zeichenkettenabgleich scheitert an all diesen Fällen; ein Mensch weiß, welche identisch sind. Semantische IDs kodieren diese Einschätzung automatisch.

Was eine semantische ID ist

So funktioniert es

Nachdem das Modell sein Ergebnis geliefert hat, löst Entity Enricher jede semantische ID in sechs Schritten auf — die günstigsten zuerst. Die vier Schritte vor dem Embedding sind reiner Textvergleich; eine dort geklärte Identität kostet also überhaupt nichts:

1
Den Identitätstext verfassen
Fügen Sie die Schlüsselfelder des Objekts in Ihrer Hauptsprache zu einer einzigen Zeichenkette zusammen. Auch der Schlüssel einer verschachtelten Entität trägt dazu bei, als Unterscheidungsmerkmal: Ein Film, dessen Titel auch ein anderer Film trägt, lässt sich am Namen seines Regisseurs unterscheiden. Die Kehrseite: Jedes Geschwisterelement, das sich auf dieselbe verknüpfte Entität bezieht, führt denselben Wert mit sich – entfernen Sie einen verknüpften Schlüssel daher aus den Bestandteilen, wenn er Geschwisterelemente nur gleich aussehen lässt. Elemente innerhalb von Arrays werden nie einbezogen: Jedes Array-Element besitzt seine eigene Identität. Die Liste Identitätsbestandteile im Schema-Editor zeigt genau, welche Werte den Text bilden, und lässt Sie diese umsortieren oder ändern – Schemas, die dieselben Bestandteile in derselben Reihenfolge wählen, erzeugen identische IDs. Der Text wird normalisiert (Kleinschreibung, Klammerzusätze entfernt, Leerraum zusammengefasst), um triviale Unterschiede zu verringern. Wenn alle diese Schlüsselfelder leer zurückkommen, gibt es nichts, woran sich das Objekt erkennen ließe, und es kann keine ID vergeben werden – das Objekt wird daher entfernt, statt anonym bestehen zu bleiben, ohne dass sich irgendetwas gruppieren, verknüpfen oder deduplizieren ließe: Ein verschachteltes Objekt wird im übergeordneten Objekt zu null, und ein Element in einer Liste fällt aus der Liste heraus. Die angereicherte Entität selbst wird nie entfernt; sie hat lediglich keine ID.
2
Nach einer exakten Übereinstimmung suchen
Wenn genau dieser normalisierte Text in Ihrer Organisation bereits gesehen wurde, wird seine vorhandene ID sofort wiederverwendet – kein Modellaufruf, keine Kosten.
3
Über einen Code abgleichen, sofern vorhanden
Ist einer der eigenen Identitätsschlüssel des Objekts ein Code – ein Feld mit Mustereinschränkung oder eines, dessen Beispiele wie Bezeichner aussehen –, wird er zuerst zusammengesetzt und für sich allein verglichen (der Code einer verknüpften Entität tritt nie an seine Stelle: Jedes Geschwisterelement, das sich auf diese Entität bezieht, teilt ihn). Eine exakte Code-Übereinstimmung klärt die Identität sofort, unabhängig vom umgebenden Wortlaut – LC-39A vereint also alle Schreibweisen des übrigen Textes. Ebenso wichtig: Es funktioniert auch umgekehrt – ein abweichender Code legt sein Veto gegen eine Zusammenführung ein, die der Embedding-Schritt sonst akzeptiert hätte, denn zwei Dinge mit unterschiedlichen Bezeichnern sind zwei Dinge, so ähnlich sie sich auch lesen mögen.
4
Über dieselben Wörter in beliebiger Reihenfolge abgleichen
Bevor ein Embedding aufgewendet wird, werden die Wörter selbst als Menge verglichen: Sind die Wörter des einen Textes in denen des anderen enthalten, handelt es sich um dieselbe Identität in unterschiedlicher Ausführlichkeit — „Boeing“ und „The Boeing Company“. So werden genau die Ausführlichkeitsunterschiede erfasst, die Embeddings als weit entfernt messen — und das kostenlos: Wie beim Schritt mit exaktem Textvergleich bedeutet ein Treffer hier keinen Embedding-Aufruf und keine Kosten.
5
Einbetten & vergleichen
Andernfalls wird der Text eingebettet und anhand der Bedeutung mittels Vektorähnlichkeit mit vorhandenen Konzepten desselben Konzepttyps (standardmäßig der Name des Entitätstyps — im Editor überschreibbar, sodass unterschiedlich benannte Schemas einen Konzeptraum teilen) verglichen — sodass „Acme Inc.“ und„Acme Incorporated“ nebeneinander landen.
6
Den Prüfer fragen
Die nächstgelegenen Konzepte werden an ein kleines Sprachmodell übergeben, das eine einzige Frage beantwortet: Benennt eines davon dieselbe reale Sache? Es sieht jede Bezeichnung als beschriftete Bestandteile — nie den Ähnlichkeitswert, der es nur dazu verleiten würde, der Geometrie zu vertrauen. Sagt es ja, wird diese ID wiederverwendet und die neue Formulierung als weitere Schreibweise desselben Konzepts gespeichert, sodass das nächste Vorkommen kostenlos ist. Sagt es nein oder kann es sich nicht festlegen, wird eine brandneue ID angelegt — nie umgekehrt, denn zwei Zeilen lassen sich später leicht zusammenführen, eine fälschlich fusionierte Zeile nicht.

Warum ein Modell und keine Zahl: Ähnlichkeit allein liegt in beide Richtungen falsch. Zwei Schreibweisen derselben Werft können weit auseinanderliegen, während ein Zustand und sein Gegenteil („akut“ gegenüber „chronisch“) fast identisch bewertet werden. Kein Schwellenwert trennt das; nur das Wissen darum, was die Wörter bedeuten. Die Prüferschwelle (Standard 0.5, pro Eigenschaft einstellbar) legt nur fest, wie weit nach Kandidaten gesucht wird, die eine Frage wert sind — über die Identität entscheidet sie nie.

Eingabe-IDs vs. generierte IDs

Ob eine ID generiert wird, hängt davon ab, ob für dieses Objekt bereits eine in der Eingabe vorhanden ist. Genau das ermöglicht den Round-Trip: Reichern Sie einmal an, um IDs zu erhalten, und geben Sie später eine bekannte ID zurück, um neue Fakten derselben Identität zuzuordnen — günstiger und eindeutig.

ID bereits in der Eingabe → beibehalten (Nachschlagen)

Wenn das gesendete Objekt bereits eine semantische ID enthält, wird es als Nachschlagevorgang behandelt: Die ID wird unverändert übernommen, der Datensatz wird mit diesem bestehenden Konzept verknüpft, und es findet kein Embedding statt – keine Kosten, kein Match-or-Mint. Sie teilen der Plattform mit: „Dieses Objekt ist in unserer Datenbank bereits identifiziert.“

Keine ID in der Eingabe → generiert

Hat das Objekt keine semantische ID, erzeugt die Plattform eine mit den obigen Schritten. Diese ID ist von da an der stabile Bezeichner des Objekts in der Datenbank Ihrer Organisation.

Ein vorhandener, aber nicht erkennbarer Wert (keine echte Konzept-ID) wird ignoriert, und stattdessen wird eine ID generiert.

So aktivieren Sie es

1
Wählen Sie ein Embedding-Modell (einmal pro Organisation)
Ein Eigentümer wählt unter Einstellungen → Organisation → Standardwerte ein embedding-fähiges Modell als Standard-Embedding-Modell der Organisation (eine tarifabhängige Einstellung; unter Modelle & Preise sehen Sie, welche Modelle Embeddings erzeugen können). Gespeicherte Vektoren sind zwischen Modellen nicht vergleichbar; sobald Konzepte existieren, lässt sich die Einstellung daher nur noch löschen — ein Wechsel läuft als Migration über die Seite „Semantische IDs“, die jedes Konzept neu einbettet und dessen ID beibehält. Ohne Modell werden semantische IDs einfach übersprungen.
2
Semantische IDs zum Schema hinzufügen
Zwei Möglichkeiten, beide im Workflow Editor:
  • Automatisch bei der Generierung – aktivieren Sie „Semantische IDs für Typen generieren“; jedes Objekt mit einem Schlüssel (einem eigenen oder einem an einem 1-zu-1 verschachtelten Objekt) erhält eine, einschließlich der Root-Entität.
  • Manuell – verwenden Sie das Steuerelement „+ Semantische ID hinzufügen“ an einem beliebigen Objekt oder in der Fußzeile der Entität.

Die Auflösung verursacht pro Enrichment einen geringen Embedding-Verbrauch (wie jeder Modellaufruf abgerechnet). Der Exact-Match-Cache macht Wiederholungen kostenlos, und über die Eingabe bereitgestellte IDs kosten nichts.

Wo die IDs erscheinen und was damit zu tun ist

Aufgelöste IDs erscheinen im Ausgabe-JSON der Anreicherung (das Feld id in jedem Objekt), in den semantischen Konzepten der Datensatzdetails und gesammelt auf der Seite „Semantische IDs“, wo das daraus entstehende Vokabular durchsucht und kuratiert wird. Verwenden Sie sie, um:

So sieht eine aufgelöste ID aus Sicht des Vokabulars aus: mehrere Schreibweisen, ein Konzept, eine Gesamtnutzung — und das Tag auto kennzeichnet die Form, die der Identitäts-Judge zusammengeführt hat.

Ergänzt die Multi-Modell-Fusion

Fusion gleicht Unstimmigkeiten zwischen Modellen innerhalb eines einzelnen Laufs ab; semantische IDs gleichen dieselbe Entität über Läufe und Zeit hinweg ab. Beide arbeiten zusammen.