Semantic IDs – Entity Enricher Dokumentation

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, die das Objekt selbst identifizieren in Ihrer Hauptsprache zu einer einzigen Zeichenfolge zusammen. Ein verschachteltes Objekt, das eine eigenständige Entität ist, bleibt außen vor: Sein Schlüssel benennt es selbst, nicht das darauf verweisende Objekt, und jedes Geschwisterfeld, das auf dieselbe Entität verweist, würde denselben Wert tragen — zwei Missionen mit demselben Startplatz läsen sich fast identisch und drohten zu einer einzigen zu verschmelzen. Verschachtelte Objekte, die lediglich Felder gruppieren, tragen weiterhin bei; ebenso der Schlüssel einer verwandten Entität, wenn Sie ihn selbst hinzufügen. 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 erlaubt es Ihnen, sie umzusortieren oder zu ä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 dieser Schlüsselfelder leer zurückkommen, gibt es nichts, woran sich das Objekt identifizieren ließe, und es kann keine ID vergeben werden — das Objekt wird daher entfernt, statt als anonymes Objekt erhalten zu bleiben, über das sich nichts gruppieren, verknüpfen oder deduplizieren lässt: Ein verschachteltes Objekt wird im übergeordneten Objekt zu null, und ein Element in einer Liste wird aus der Liste entfernt. 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
Wenn einer der Identitätsschlüssel ein Code ist – ein musterbeschränktes Feld oder eines, dessen Beispiele wie Bezeichner aussehen –, wird er zuerst gebildet und für sich verglichen. Eine exakte Code-Übereinstimmung entscheidet die Identität sofort, unabhängig vom umgebenden Wortlaut, sodass LC-39A alle Schreibweisen des übrigen Textes vereint. Ebenso wichtig ist die Gegenrichtung: Ein abweichender Code verhindert eine Zusammenführung, 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
Wiederverwenden oder neu erzeugen
Liegt die beste Übereinstimmung über dem Ähnlichkeitsschwellenwert (Standard 0.92, pro Eigenschaft einstellbar), wird die ID dieses Konzepts wiederverwendet. Andernfalls wird eine völlig neue ID erzeugt und für das nächste Mal gespeichert. Eine Ausnahme setzt sich über einen hohen Wert hinweg: Bestehen beide Texte aus denselben Wörtern, nur anders gezählt„zweite Stufe“ und„dritte Stufe“ –, gelten sie als verschiedene Dinge, denn genau die Zählung unterscheidet sie. Dieselbe Zahl in zwei Schreibweisen (2 undII) passt weiterhin zusammen.

Schwellenwert-Kompromiss: Ein höherer Schwellenwert ist strenger (weniger versehentliche Zusammenführungen); ein niedrigerer ist lockerer (aggressivere Deduplizierung). Passen Sie ihn pro Eigenschaft an, wenn der Standardwert 0,92 zu viel oder zu wenig zusammenführt.

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:

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.