ID semantici - Documentazione di Entity Enricher

ID semantici

Arricchisca lo stesso tipo di entità ripetutamente e continuerà a riscoprire le stesse cose del mondo reale — la stessa azienda, lo stesso effetto collaterale di un farmaco, la stessa persona — descritte ogni volta con parole leggermente diverse. Un ID semantico è un identificatore stabile, con ambito a livello di organizzazione, che Entity Enricher assegna a un oggetto a partire dai suoi campi chiave, così quei quasi-duplicati collassano in un'unica identità su cui è possibile raggruppare, deduplicare e unire i dati.

Il problema: stessa cosa, parole diverse

L'identità di un oggetto è costruita a partire dai suoi campi chiave — che possono essere uno o più. Due esempi:

Una chiave

Un effetto collaterale indicizzato per name

Compare come Headache, Céphalée e Cephalalgia nelle diverse esecuzioni e lingue. Un solo campo chiave, tre grafie, un unico concetto reale.

Due chiavi

Un'azienda identificata da nome + paese

Acme Inc. · Stati Uniti e Acme Incorporated · Stati Uniti sono la stessa azienda — mentre Acme Inc. · Germania è un'altra. La seconda chiave disambigua; ecco perché un oggetto può contenerne più di una.

Il semplice confronto di stringhe fallisce in tutti questi casi; una persona sa quali sono uguali. Gli ID semantici codificano automaticamente quel giudizio.

Che cos'è un ID semantico

Come funziona

Dopo che il modello ha restituito il risultato, Entity Enricher risolve ogni ID semantico in sei passaggi — a partire dal più economico. I quattro passaggi precedenti all’embedding sono puro confronto testuale, quindi un’identità risolta a quel livello non ha alcun costo:

1
Componi il testo dell'identità
Unisce i campi chiave che identificano l'oggetto stesso in un'unica stringa, nella lingua principale. Un oggetto annidato che costituisce un'entità a sé stante viene escluso: la sua chiave identifica esso, non ciò che vi fa riferimento, e ogni elemento di pari livello che rimanda alla stessa entità porterebbe lo stesso valore — due missioni che condividono il medesimo sito di lancio risulterebbero quasi identiche, con il rischio di essere fuse in una sola. Gli oggetti annidati che si limitano a raggruppare campi continuano invece a contribuire; lo stesso vale per la chiave di un'entità correlata, se la si aggiunge manualmente. Gli elementi contenuti negli array non vengono mai inclusi: ogni elemento dell'array possiede un'identità propria. L'elenco partecipanti all'identità dell'editor di schema mostra esattamente quali valori compongono il testo e permette di riordinarli o modificarli — schema che selezionano gli stessi partecipanti nello stesso ordine generano ID identici. Il testo viene normalizzato (conversione in minuscolo, rimozione degli incisi tra parentesi, spazi compattati) per ridurre le differenze irrilevanti. Se tutti questi campi chiave risultano vuoti, non resta nulla con cui identificare l'oggetto e nessun ID può essere assegnato — l'oggetto viene quindi rimosso, anziché mantenuto come oggetto anonimo su cui non è possibile effettuare raggruppamenti, join o deduplicazioni: un oggetto annidato diventa null nel suo genitore e un elemento all'interno di una lista viene eliminato dalla lista. L'entità arricchita non viene mai rimossa: semplicemente resta priva di ID.
2
Cerca una corrispondenza esatta
Se quel testo normalizzato esatto è già stato visto nella sua organizzazione, il suo ID esistente viene riutilizzato immediatamente, senza chiamate al modello né costi.
3
Corrispondenza su un codice, se presente
Quando una delle chiavi di identità è un codice — un campo vincolato da un pattern, o i cui esempi somigliano a identificatori — viene composto per primo e confrontato separatamente. Una corrispondenza esatta del codice determina immediatamente l'identità, qualunque sia la formulazione circostante: così LC-39A unifica tutti i modi in cui è stato scritto il resto del testo. Altrettanto importante, vale anche il contrario: un codice diverso pone il veto su un'unione che il passaggio di embedding avrebbe altrimenti accettato, perché due cose con identificatori diversi sono due cose distinte, per quanto simili possano sembrare.
4
Corrispondenza sulle stesse parole in qualsiasi ordine
Prima di spendere un embedding, le parole stesse vengono confrontate come insiemi: se le parole di un testo sono contenute in quelle dell’altro, si tratta della stessa identità scritta con lunghezze diverse — “Boeing” e “The Boeing Company”. Questo intercetta esattamente le differenze di verbosità che gli embedding misurano come molto distanti, e non costa nulla: come per il passaggio sul testo esatto, una corrispondenza qui significa nessuna chiamata di embedding e nessun addebito.
5
Incorpora e confronta
In caso contrario, il testo viene sottoposto a embedding e confrontato, per significato, con i concetti esistenti dello stesso tipo di concetto (per impostazione predefinita il nome del tipo di entità, modificabile nell’editor affinché schemi con nomi diversi condividano un unico spazio concettuale) tramite la similarità vettoriale, così “Acme Inc.” e“Acme Incorporated” finiscono vicini l’uno all’altro.
6
Riutilizza o genera
Se la corrispondenza più vicina supera la soglia di similarità (valore predefinito 0.92, regolabile per proprietà), l'ID di quel concetto viene riutilizzato. Altrimenti viene generato un ID completamente nuovo e memorizzato per le volte successive. Un'eccezione prevale su un punteggio elevato: quando i due testi sono le stesse parole conteggiate in modo diverso“secondo stadio” e“terzo stadio” — vengono trattati come cose diverse, perché è proprio il conteggio a distinguerli. Lo stesso numero scritto in due modi (2 eII) corrisponde comunque.

Compromesso sulla soglia: una soglia più alta è più rigida (meno unioni accidentali); una più bassa è più permissiva (deduplicazione più aggressiva). Regolala per proprietà quando il valore predefinito di 0,92 unisce troppo o troppo poco.

ID di input vs. ID generati

Se un ID venga generato dipende dal fatto che ne sia già presente uno nell'input per quell'oggetto. È questo che consente il round-trip: arricchire una volta per ottenere gli ID, quindi restituire un ID noto nelle esecuzioni successive per associare nuovi dati alla stessa identità — più economico e privo di ambiguità.

ID già presente nell'input → mantenuto (lookup)

Se l'oggetto che invia ha già un ID semantico, viene trattato come un lookup: l'ID viene mantenuto letteralmente, il record viene collegato a quel concetto esistente e non c'è alcun embedding — nessun costo, nessun match-or-mint. Sta dicendo alla piattaforma “questo oggetto è già identificato nel nostro database”.

Nessun ID nell'input → generato

Se l'oggetto non ha un ID semantico, la piattaforma ne genera uno con i passaggi descritti sopra. Da quel momento tale ID diventa l'identificatore stabile dell'oggetto nel database della sua organizzazione.

Un valore presente ma non riconoscibile (non un vero ID di concetto) viene ignorato e al suo posto viene generato un ID.

Come abilitarlo

1
Scegliete un modello di embedding (una volta per organizzazione)
Un proprietario sceglie un modello con capacità di embedding in Impostazioni → Organizzazione → Predefiniti come modello di embedding predefinito dell’organizzazione (impostazione soggetta al piano; consulti Modelli e prezzi per sapere quali modelli supportano l’embedding). I vettori memorizzati non sono confrontabili tra modelli diversi, quindi, una volta che esistono dei concetti, l’impostazione può soltanto essere azzerata: il cambio avviene come migrazione dalla pagina ID semantici, che rigenera l’embedding di ogni concetto mantenendone gli ID. Senza un modello, gli ID semantici vengono semplicemente saltati.
2
Aggiungi ID semantici allo schema
Due modalità, entrambe nel Workflow Editor:
  • Automaticamente in fase di generazione — selezioni «Genera ID semantici per i tipi»; ogni oggetto con una chiave (propria o su un oggetto annidato 1-1) ne riceve uno, inclusa l'entità radice.
  • Manualmente — usi il controllo “+ Aggiungi ID semantico” su un qualsiasi oggetto o nel piè di pagina dell'entità.

La risoluzione comporta un piccolo consumo di embedding per ogni arricchimento (conteggiato come qualsiasi chiamata al modello). La cache a corrispondenza esatta rende gratuite le ripetizioni e gli ID forniti in input non hanno alcun costo.

Dove compaiono gli ID e cosa farne

Gli ID risolti compaiono nel JSON di output dell'arricchimento (il campo id di ciascun oggetto), nei concetti semantici del dettaglio del record e tutti insieme nella pagina ID semantici, dove il vocabolario che compongono viene consultato e curato. Utilizzarli per:

Complementa la fusione multi-modello

La fusione riconcilia i disaccordi tra modelli all'interno di una singola esecuzione; gli ID semantici riconciliano la stessa entità tra esecuzioni e nel tempo. I due meccanismi lavorano insieme.