Semantische ID's - Entity Enricher-documentatie

Semantische ID's

Verrijk hetzelfde soort entiteit keer op keer en je blijft dezelfde dingen uit de echte wereld opnieuw ontdekken — hetzelfde bedrijf, dezelfde bijwerking van een medicijn, dezelfde persoon — elke keer met net iets andere woorden beschreven. Een semantische ID is een stabiele, tot de organisatie beperkte identifier die Entity Enricher aan een object toekent op basis van zijn sleutelvelden, zodat die bijna-duplicaten samenvallen tot één identiteit waarop je kunt groeperen, dedupliceren en joinen.

Het probleem: hetzelfde, andere woorden

De identiteit van een object wordt opgebouwd uit de sleutelvelden — en dat kunnen er een of meerdere zijn. Twee voorbeelden:

Eén sleutel

Een neveneffect met sleutel name

Het verschijnt als Headache, Céphalée en Cephalalgia door verschillende runs en talen heen. Eén sleutelveld, drie schrijfwijzen, één echt concept.

Twee sleutels

Een bedrijf met als sleutel naam + land

Acme Inc. · United States en Acme Incorporated · United States zijn hetzelfde bedrijf — terwijl Acme Inc. · Germany een ander bedrijf is. De tweede sleutel maakt het onderscheid; daarom kan een object er meer dan één dragen.

Eenvoudige tekstvergelijking faalt bij al deze gevallen; een mens weet welke hetzelfde zijn. Semantische ID's leggen dat oordeel automatisch vast.

Wat een semantische ID is

Hoe het werkt

Nadat het model zijn resultaat heeft geretourneerd, lost Entity Enricher elke semantische ID op in vier stappen — de goedkoopste eerst:

1
Stel de identiteitstekst samen
Voeg alle sleutelvelden van het object samen — plus de sleutels van eventuele 1-op-1 geneste objecten die het bevat — tot één string, in je primaire taal. Items binnen arrays worden niet meegenomen: elk array-item heeft zijn eigen identiteit. De tekst wordt genormaliseerd (kleine letters, tussen haakjes weggelaten, witruimte samengevoegd) om triviale verschillen te verkleinen.
2
Zoek naar een exacte overeenkomst
Als diezelfde genormaliseerde tekst eerder in jouw organisatie is gezien, wordt de bestaande ID meteen hergebruikt — geen model-aanroep, geen kosten.
3
Embedden en vergelijken
Anders wordt de tekst ingebed en op betekenis vergeleken met bestaande concepten van hetzelfde type via vectorgelijkenis — zodat “Acme Inc.” en“Acme Incorporated” naast elkaar terechtkomen.
4
Hergebruiken of aanmaken
Als de dichtstbijzijnde match hoger scoort dan de gelijkeniswaarde (standaard 0,92, per property instelbaar), wordt de ID van dat concept hergebruikt. Anders wordt een gloednieuwe ID aangemaakt en opgeslagen voor de volgende keer.

Drempel-afweging: een hogere drempel is strenger (minder onbedoelde samenvoegingen); een lagere is losser (agressievere deduplicatie). Stel deze per eigenschap af wanneer de standaardwaarde van 0,92 te veel of te weinig samenvoegt.

Invoer-ID's vs. gegenereerde ID's

Of er een ID wordt gegenereerd hangt ervan af of er al een aanwezig is in de invoer voor dat object. Dit is wat je in staat stelt om een round-trip te doen: verrijk één keer om ID's te verkrijgen en geef een bekend ID later terug bij volgende runs om nieuwe feiten aan dezelfde identiteit te koppelen — goedkoper en ondubbelzinnig.

ID al aanwezig in de invoer → behouden (lookup)

Als het object dat je verstuurt al een semantische ID bevat, wordt het als een lookup behandeld: de ID wordt letterlijk behouden, het record wordt aan dat bestaande concept gekoppeld en er is geen embedding — geen kosten, geen match-of-mint. Je vertelt het platform “dit object is al geïdentificeerd in onze database.”

Geen ID in de invoer → gegenereerd

Als het object geen semantische ID heeft, genereert het platform er een met de vier bovenstaande stappen. Die ID wordt vanaf dat moment de stabiele identificator van het object in de database van je organisatie.

Een aanwezige maar onherkenbare waarde (geen echte concept-ID) wordt genegeerd en er wordt in plaats daarvan een ID gegenereerd.

Zo schakel je het in

1
Kies een embeddingmodel (eenmalig per organisatie)
Een eigenaar kiest in Model Management een embedding-geschikt model als het standaard embedding-model van de organisatie. Het is vrijwel onveranderlijk: zodra er concepten bestaan kan het alleen worden gewist, niet gewisseld (opgeslagen vectoren zijn niet vergelijkbaar tussen modellen). Zonder dit worden semantische ID's simpelweg overgeslagen.
2
Semantische ID's toevoegen aan het schema
Twee manieren, beide in de Schema-editor:
  • Automatisch bij het genereren — vink “Semantic ID's voor types genereren” aan; elk object met een sleutel (een eigen sleutel of een sleutel op een 1-op-1 genest object) krijgt er een, inclusief de root-entity.
  • Handmatig — gebruik de knop “+ Semantische ID toevoegen” op een object of de entiteitsvoettekst.

Resolutie kost een klein beetje embeddinggebruik per enrichment (afgerekend zoals elke modelaanroep). De exacte-match-cache maakt herhalingen gratis en door de invoer aangeleverde ID's kosten niets.

Waar de ID's verschijnen en wat je ermee doet

Geresolvede ID's verschijnen in de JSON-uitvoer van de enrichment (het id-veld op elk object) en in de semantische concepten van het recorddetail. Gebruik ze om:

Vult multi-model fusie aan

Fusie verzoent meningsverschillen tussen modellen binnen één run; semantische ID's verzoenen dezelfde entiteit over runs en tijd heen. De twee werken samen.