Incorporamento del grafo di conoscenza
Nella disciplina dell'apprendimento delle relazioni, l'incorporamento del grafo di conoscenza, o knowledge graph embedding (KGE) in inglese, anche riferito con il nome di knowledge representation learning (KRL), o apprendimento multi relazionale[1] è un campo dell'apprendimento automatico che si occupa di apprendere una rappresentazione a bassa dimensionalità delle entità e relazioni che costituiscono un grafo della conoscenza o anche detto knowledge graph, cercando di preservare il loro significato semantico.[1][2][3] Sfruttando la rappresentazione incorporata del grafo della conoscenza è possibile usare questo tipo di informazione per varie applicazioni come la predizione di collegamenti, la classificazione delle triple, il riconoscimento di entità, il raggruppamento, e l'estrazione di relazioni.[1][4]
Definizione
[modifica | modifica wikitesto]Un knowledge graph, o grafo della conoscenza, , è una collezione di entità , relazioni , e fatti .[5] Un fatto è una tripla che denota un collegamento tra la testa, o 'head', e la coda, o tail, della tripla stessa. Un'altra notazione che viene comunemente usata nella letteratura per rappresentare una tripla (o fatto) è o . Questa notazione è chiamata resource description framework (RDF).[1][5] Un knowledge graph è usato per rappresentare la conoscenza relativa ad un dominio, e sfruttando la rappresentazione strutturata di questo, è possible inferire un pezzo di nuova conoscenza dallo stesso dopo alcuni passaggi di raffinamento.[6] Ad ogni modo, oggi giorno, bisogna tenere in considerazione della sparisità [cosa significa?] dei dati e l'inefficienza computazionale nell'usarli in un'applicazione reale.[3][7]
L'incorporamento di un knowledge graph traduce ogni entità e relazione del grafo, in un vettore di dimensione , anche detta dimensione di incorporamento.[7] Nel caso generale, possiamo avere differenti dimensioni di incorporamento per le entità e per le relazioni .[7] La collezione dei vettori di tutte le entità e relazioni di un knowledge graph sono una più densa ed efficiente rappresentazione del dominio che può essere più facilmente sfruttata per molti casi d'uso.[7]
L'incorporamento di un grafo della conoscenza è caratterizzato da quattro aspetti differenti:[1]
- Spazio di rappresentazione: È lo spazio dimensionalmente più piccolo rispetto a quello di partenza che viene usato per rappresentare le entità e le relazioni.[1]
- Funzione di punteggio: È una misura della correttezza della rappresentazione incorporata delle triple.[1]
- Modello di codifica: È la modalità in cui la rappresentazione incorporata delle entità e delle relazioni interagiscono tra di loro.[1]
- Informazioni aggiuntive: Qualunque informazione aggiuntiva proveniente dal grafo della conoscenza che può essere usata per arricchire la rappresentazione incorporata.[1] Di solito, per ogni informazione aggiuntiva, viene definita una funzione di punteggio ad hoc che verrà poi integrata con la funzione di punteggio generale del modello.[1][5][8]
Procedura di incorporamento
[modifica | modifica wikitesto]Tutti i differenti modelli di incorporamento di un grafo della conoscenza seguono all'incirca la stessa procedura.[7] Prima di tutto, per poter imparare una rappresentazione incorporata di un grafo della conoscenza, i vettori incorporati delle entità e delle relazioni sono inizializzati a valori casuali[7] Dopodiché, iniziando da un training set (o insieme di addestramento), finché non viene raggiunta una condizione di arresto, l'algoritmo continuamente ottimizza la rappresentazione incorporata degli elementi che costituiscono il grafo della conoscenza.[7] Di solito, la condizione di arresto è data dall'overfitting rispetto al training set.[7] Ad ogni iterazione, viene campionata un insieme di triple dal training set, e per ogni tripla di questo insieme viene generata una tripla corrotta casualmente, i.e. una tripla in cui il fatto che essa rappresenta non corrisponde ad una verità del grafo di conoscenza.[7] La corruzione di una tripla involve la sostituzione della testa, o della coda, (o entrambe) della tripla con un'altra entità che rende falso il fatto.[7] La tripla originale, assieme alla tripla corrotta, viene aggiunta all'insieme che costituisce il training set, e successivamente l'incorporamento degli elementi del grafo vengono ottimizzati seguendo il valore della funzione di punteggio.[5][7] Alla fine dell'algoritmo, l'incorporamento appreso dovrebbe poter estrarre il significato semantico dalle triple e dovrebbe essere in grado di classificare correttamente triple vera ma che non sono presenti all'interno del grado di conoscenza.[5]
Pseudo codice
[modifica | modifica wikitesto]Di seguito viene riportato lo pseudo codice che viene generalmente usato per la procedura di incorporamento.[7][9]
algoritmo Calcolo dell'incorporamento delle entità e delle relazioni is input: Dato un training set , L'insieme delle entità , L'insieme delle relazione , La dimensione di incorporamento output: I vettori di incorporamento delle entità e delle relazione Entity
inizializzazione: i vettore di incorporamento delle entità e delle relazione sono inizializzati casualmente
while condizione di arresto do // Dal training set vengono estratte casualmente un collezione di b triple for each in do // estrazione e corruzione della tripla end for Aggiornamento dei valori di incorporamento minimizzando la funzione di perdita end while
Indicatori di performance
[modifica | modifica wikitesto]Questi indici vengono spesso usati per misurare la qualità dell'incorporamento di un modello. La semplicità degli indici li rende applicabili per valutare le performance di un algoritmo di incorporamento anche in di grandi dimensioni.[10] Dato Q un insieme di predizione classificate da un modello, è possibile definire tre indici di performance differenti: Hits@K, MR, and MRR.[10]
Hits@K
[modifica | modifica wikitesto]Hits@K o in breve, H@K, è un indice di performance che quantifica la probabilità di trovare la predizione corretta tra le prime K migliori predizioni del modello.[10] Di solito viene usato .[10] Hits@K riflette la precisione di un modello di incorporamento nel predire correttamente la relazione tra due entità.[10]
Hits@K
Valori più grandi significano migliori performance predittive.[10]
Mean rank (MR)
[modifica | modifica wikitesto]Mean rank è la media della posizione in classifica di un oggetto predetto da un modello tra tutti i possibili elementi che possono essere predetti.[10]
Più il valore è piccolo, più il modello di incorporamento è affidabile.[10]
Mean reciprocal rank (MRR)
[modifica | modifica wikitesto]Mean reciprocal rank misura il numero di triple che sono predette correttamente. Se la prima tripla è predetta correttamente, allora viene sommato 1, se la seconda tripla è predetta correttamente viene sommato , e così via.[10]
Un indice più grande è sinonimo di un modello migliore.[10]
Applicazioni
[modifica | modifica wikitesto]Task di addestramento automatico
[modifica | modifica wikitesto]Il completamento di un grafo di conoscenza, o knowledge graph completion (KGC) in inglese, è un insieme di tecniche di inferenza per estrarre nuova conoscenza dalla rappresentazione incorporata del grafo di conoscenza.[11] In particolare, questa tecnica completa una tripla inferendo l'entità o relazione mancante.[11] I sotto task corrispondenti sono denominati predizione dell'entità o del collegamento, i.e. il compito di predire l'entità dall'incorporamento o, inferire la più probabile relazione che connette due entità.[11]
La classificazione delle triple è un problema di classificazione binaria.[1] Data una tripla, il modello di incorporamento valua la plausibilità di una tripla usando la sua rappresentazione incorporata per determinare se il fatto è vero o falso.[11] La decisione di classificazione viene presa in base alla funzione di punteggio del modello rispetto ad una data soglia.[11] Il raggruppamento è un'altra applicazione che sfrutta la rappresentazione incorporata di grafo di conoscenza sparso per condensare la rappresentazione di entità con una simile semantica vicine in una spazio bidimensionale.[4]
Applicazioni nella vita quotidiana
[modifica | modifica wikitesto]L'uso del knowledge graph embedding è sempre più pervasivo in molte applicazioni. Nel caso dei sistemi di raccomandazione, l'uso dell'incorporamento nei grafi di conoscenza può aiutare a superare le limitazioni dell'apprendimento per rinforzo.[12][13] Per addestrare questo tipo di sistemi per le raccomandazioni è necessario aver a disposizione un grande numero di informazioni dagli utenti, ma sfruttando l'uso di un grafo che è già stato costruito per rappresentare la conoscenza rispetto alla correlazione degli elementi e usando l'incorporamento si può inferire delle raccomandazioni, risolvendo le precedenti limitazioni.[12] Il drug repurposing, è il riutilizzo di un farmaco già presente sul mercato, ma per uno scopo terapeutico differente da quello iniziale. Sfruttando le molti informazioni dalla letteratura è possibile generare un grafo delle conoscenza con informazioni biomediche ed usando il task della predizione dei collegamenti è possibile predire una nuova connessione tra un farmaco ed una malattia.[14] L'incorporamento di grafi della conoscenza può essere anche usato nel dominio delle politiche sociali.[4]
Modelli
[modifica | modifica wikitesto]Data una collezione di triple (o fatti), l'incorporamento del grafo della conoscenza produce, per ogni entità e relazione presente nel grafo un vettore continuo che ne rappresenta la semantica.[7] denota il corrispettivo incorporamento di una tripla con e , dove è la dimensione di incorporamento delle entità, e per le relazioni.[7] La funzione di punteggio di un dato modello è denotata con e misura la distanza dall'incorporamento della testa dall'incorporamento della coda dato l'incorporamento della relazione, o in altra parole, quantifica la plausibilità della rappresentazione incorporata di un fatto.[5]
Rossi et al. ha proposto una tassonomia dei modelli di incorporamento ed identifica tre principali famiglie: Modelli di decomposizione del tensore, modelli geometrici, e modelli di apprendimento profondo.[5]
Modelli di decomposizione del tensore
[modifica | modifica wikitesto]I modelli di decomposizione del tensore sono una famiglia di modelli di incorporamento di grafi della conoscenza che usano una matrice multidimensionale per rappresentare il grafo,[1][5][15] che è esplorabile solo in parte dovutamente al fatto che il grafo della conoscenza non è in grado di rappresentare completamente un dominio.[5] In particolare, questi modelli usano un tensore tridimensionale, che poi viene scomposto in vettori di dimensioni inferiori che sono la rappresentazione (embedding) delle entità e delle relazioni.[5][15] Il tensore è una metodologia adatta a rappresentare un grafo della conoscenza poiché tiene conto dell'esistenza o meno delle relazioni tra entità[15] e per questo motivo è semplice e non c'è bisogno di una conoscenza pregressa a proposito della struttura della rete,[16] rendendo questa classe di modelli leggera, facile da addestrare anche se soffrono di sparsità ed alta dimensionalità dei dati.[5][15]
Modelli bilineari
[modifica | modifica wikitesto]Questa famiglia di modelli utilizza un'equazione lineare per incorporare la connessione tra le entità connesse attraverso una relazione.[1] In particolare, la rappresentazione incorporata delle relazioni è una matrice bidimensionale.[5] Questi modelli, durante la procedura di incorporamento, utilizzano solo i singoli fatti per calcolare la rappresentazione incorporata e ignorano le altre associazioni alla stessa entità o relazione.[17]
- DistMult[18]: Dal momento che la matrice di incorporamento della relazione è una matrice diagonale,[5] la funzione di punteggio non può distinguere i fatti asimmetrici.[5][17]
- ComplEx[19]: Come DistMult utilizza una matrice diagonale per rappresentare le relazioni.[5][15] ComplEx aggiunge una rappresentazione nello spazio vettoriale complesso e il prodotto hermitiano, ed è in grado di distinguere fatti simmetrici e asimmetrici.[5][15] Questo approccio è scalabile anche in un grafo della conoscenza di grandi dimensioni in termini di costi di tempo e spazio.[19]
- ANALOGY[20]: Questo modello codifica nell'incorporamento la struttura analogica del grafo della conoscenza per simulare il ragionamento induttivo.[1][5][20] Utilizzando una funzione obiettivo differenziabile, ANALOGY ha una buona generalità teorica e scalabilità computazionale.[20] È dimostrato che l'incorporamento prodotto da ANALOGY può essere visto come un caso speciale dell'incorporamento di DistMul, ComplEx e HolE.[20]
- SimplE[21]: Questo modello è il miglioramento della decomposizione poliadica canonica (CPD), in cui vengono appresi un vettore di immersione per la relazione e due vettori di immersione indipendenti per ciascuna entità, a seconda che sia come testa o come coda nel fatto del grafico della conoscenza.[21] SimplE risolve il problema dell'apprendimento indipendente delle due entità incorporate utilizzando una relazione inversa e mediando il punteggio CPD di e .[7][15] In questo modo SimplE raccoglie la relazione tra entità mentre appaiono nel ruolo di soggetto o oggetto all'interno di un fatto, ed è in grado di incorporare relazioni asimmetriche.[5]
Modelli non bilineari
[modifica | modifica wikitesto]- HolE[22]: HolE utilizza la correlazione circolare per creare una rappresentazione incorporata del grafo della conoscenza,[22] che può essere vista come una compressione del prodotto matrice, ma è più efficiente e scalabile dal punto di vista computazionale mantenendo le capacità di esprimere una relazione asimmetrica poiché la correlazione circolare non è commutativa.[17] HolE collega gli embedding olografici e complessi poiché se usato insieme a Fourier può essere visto come un caso speciale di ComplEx.[1]
- TuckER[23]: TuckER vede il grado della conoscenza come un tensore che potrebbe essere scomposto utilizzando la scomposizione di Tucker in una raccolta di vettori, ovvero gli incorporamenti di entità e relazioni, con un nucleo condiviso.[5][23] I pesi del tensore centrale vengono appresi insieme agli incorporamenti e rappresentano il livello di interazione delle entità.[24] Ogni entità e relazione ha la propria dimensione di inclusione e la dimensione del tensore principale è determinata dalla dimensione delle entità e della relazione con cui interagisce.[5] L'incorporamento del soggetto e dell'oggetto di un fatto vengono sommati allo stesso modo, rendendo TuckER pienamente espressivo, e altri modelli di incorporamento come RESCAL, DistMult, ComplEx e SimplE possono essere espressi come una formulazione speciale di TuckER.[23]
Modelli geometrici
[modifica | modifica wikitesto]Lo spazio geometrico definito da questa famiglia di modelli codifica la relazione come trasformazione geometrica tra la testa e la coda di una triple.[5] Per questo motivo, per calcolare l'incorporamento della coda, è necessario applicare una trasformazione all'embedding della testa, e una funzione di distanza è utilizzata per misurare la bontà dell'incorporamento o per valutare l'affidabilità di un fatto.[5]
I modelli geometrici sono simili al modello di decomposizione tensoriale, ma la differenza principale tra i due è che devono preservare l'applicabilità della trasformazione nello spazio geometrico in cui è definita.[5]
Modelli puramente traslativi
[modifica | modifica wikitesto]Questa classe di modelli si ispira all'idea di invarianza traduttiva introdotta in word2vec.[7] Un modello traslazionale puro si basa sul fatto che i vettori di incorporamento delle entità sono vicini tra loro dopo aver applicato una corretta traslazione relazionale nello spazio geometrico in cui sono definiti.[17] In altre parole, dato un fatto, quando l'incorporamento della testa viene sommato all'incorporamento della relazione, il risultato atteso dovrebbe essere l'incorporamento della coda.[5] La vicinanza delle entità incorporate è data da una certa misura di distanza e quantifica l'attendibilità di una tripla.[15]
- TransE[9]: Questo modello utilizza una funzione di punteggio che obbliga gli incorporamenti a soddisfare una semplice equazione di somma vettoriale in ogni fatto in cui compaiono: .[7] L'incorporamento sarà esatto se ogni entità e relazione compare in un solo fatto e, per questo motivo, in pratica non rappresenta bene le relazioni uno-a-molti, molti-a-uno e asimmetriche.
- TransH[25]: È un'evoluzione di TransE che introduce un iperpiano come spazio geometrico per risolvere il problema di rappresentare correttamente i tipi di relazioni.[25] In TransH, ogni relazione ha una diversa rappresentazione incorporata, su un diverso iperpiano, in base alle entità con cui interagisce.[7] Pertanto, per calcolare, ad esempio, la funzione di punteggio di un fatto, la rappresentazione incorporata della testa e della coda deve essere proiettata utilizzando una matrice di proiezione relazionale sull'iperpiano corretto della relazione.[1][7]
- TransR[26]: TransR è un'evoluzione di TransH perché utilizza due spazi diversi per rappresentare la rappresentazione incorporata delle entità e delle relazioni,[1][17] e separa completamente lo spazio semantico delle entità da quello delle relazioni.[7] Anche TransR utilizza una matrice di proiezione relazionale per tradurre l'incorporamento delle entità nello spazio delle relazioni.[7]
- TransD[27]: Dato un fatto, in TransR, la testa e la coda di un fatto potrebbero appartenere a due diversi tipi di entità, ad esempio nella triplaObama e USA sono due entità ma una è una persona e l'altra è un paese.[7][27] La moltiplicazione matriciale è una procedura costosa in TransR che viene usata per calcolare la proiezione.[7][27] In questo contesto, TransD impiega due vettori per ogni coppia di relazione-entità per calcolare una mappatura dinamica che sostituisce la matrice di proiezione riducendo la complessità dimensionale.[1][7][27] Il primo vettore è utilizzato per rappresentare il significato semantico delle entità e delle relazioni, il secondo per calcolare la matrice di mappatura.[27]
- TransA[28]: Tutti i modelli traslazionali definiscono una funzione di punteggio nel loro spazio di rappresentazione, ma semplificano eccessivamente questa metrica.[28] Dal momento che la rappresentazione vettoriale delle entità e delle relazioni non è perfetta, una pura traslazione di potrebbe essere distante da , e una distanza euclidea sferica equipotenziale rende difficile distinguere quale sia l'entità più vicina. TransA, invece, introduce una distanza di Mahalanobis adattiva per pesare gli incorporamenti, insieme a superfici ellittiche per rimuovere l'ambiguità.[1][7][28]
Modelli traslativi con informazioni aggiuntive
[modifica | modifica wikitesto]È possibile associare informazioni aggiuntive a ciascun elemento nel grafo della conoscenza insieme ai loro modi comuni di rappresentazione.[1] Ogni entità e relazione, infatti, può essere arricchita con descrizioni testuali, pesi, vincoli e altro al fine di migliorare la descrizione complessiva del dominio con un knowledge graph.[1] Durante l'incorporamento del grafico della conoscenza, queste informazioni possono essere utilizzate per apprendere incorporamenti specializzati per queste caratteristiche insieme alla consueta rappresentazione vettoriale di entità e relazioni, al costo di rendere l'apprendimento più oneroso.[5]
- STransE[29]: Questo modello è il risultato della combinazione di TransE e dell'incorporamento della struttura[29] in modo tale da poter rappresentare al meglio le relazioni uno-a-molti, molti-a-uno e molti-a-molti.[5] Per fare ciò, il modello prevede due ulteriori matrici indipendenti e per ogni relazione incorporata nel grafo della conoscenza.[29] Ogni matrice aggiuntiva viene utilizzata in base al fatto che la specifica relazione interagisce con la testa o la coda della tripla.[29] In altre parole, dato un fatto , prima di applicare la traslazione vettoriale, la testa viene moltiplicato per e la coda viene moltiplicata per .[7]
- CrossE[30]: Le interazioni crossover possono essere utilizzate per la selezione delle informazioni correlate e potrebbero essere molto utili per la procedura di embedding.[30] Le interazioni crossover forniscono due contributi distinti nella selezione delle informazioni: interazioni da relazioni a entità e interazioni da entità a relazioni.[30] Ciò significa che una relazione, ad es. "president_of" seleziona automaticamente i tipi di entità che collegano il soggetto all'oggetto di un fatto.[30] In modo simile, l'entità di un fatto determina in modo inadeguato quale è il percorso di inferenza che deve essere scelto per prevedere l'oggetto di una tripla correlata.[30] CrossE, per farlo, apprende una matrice di interazione aggiuntiva , ed utilizza il prodotto elemento per elemento per calcolare l'interazione tra e .[5][30] Anche se CrossE non si basa su un'architettura di rete neurale, è dimostrato che questa metodologia può essere codificata in tale architettura.[1]
Modelli roto-traslativi
[modifica | modifica wikitesto]Questa famiglia di modelli, in aggiunta o in sostituzione ad una traslazione, impiegano una trasformazione a rotativa.[5]
- TorusE[31]: Il termine di regolarizzazione di TransE fa sì che l'entità incorporate costruiscono uno spazio sferico, e di conseguenza, questo spazio perde le proprietà di traslazione dello spazio geometrico.[31] Per risolvere questo problema, TorusE sfrutta l'uso di un gruppo di Lie compatto che in questo caso specifico è spazio toroidale n-dimensionale ed evita l'uso della regolarizzazione.[1][31] TorusE definisce le funzioni di distanza per sostituire la norma L1 e L2 di TransE.[5]
- RotatE[32]: RotatE si ispira all'identità di Eulero e prevede l'uso del prodotto Hadmard per rappresentare una relazione come una rotazione dalla testa verso la coda nello spazio complesso.[32] Per ogni elemento della tripla, la parte complessa dell'incorporamento descrive una rotazione antioraria rispetto ad un asse, che può essere descritta con l'identità di Eulero, mentre il modulo del vettore della relazione è 1.[32] È dimostrato che il modello è in grado di incorporando relazioni simmetriche, asimmetriche, di inversione e di composizione dal grafo della conoscenza.[32]
Modelli di apprendimento profondo
[modifica | modifica wikitesto]Questo gruppo di modelli di incorporamento utilizza le rete neurali profonde per apprendere la semantica dal grafo della conoscenza che è il dato di input alla rete.[5] Questi modelli hanno la generalità di distinguere il tipo di entità e relazione, informazioni temporali, informazioni sul percorso, informazioni strutturate sottostanti[17] e risolvono i limiti dei modelli basati sulla distanza e sulla corrispondenza semantica nel rappresentare tutte le caratteristiche di un grafo della conoscenza.[1] L'uso dell'apprendimento profondo per l'incorporamento del grafo della conoscenza ha mostrato buone prestazioni predittive anche se sono più costosi nella fase di addestramento, hanno bisogno di maggiori quantità di dati per l'addestramento e spesso richiedono una rappresentazione di incorporamento pre-addestrata del grafo della conoscenza proveniente da un modello diverso.[1][5]
Reti neurali convoluzionali
[modifica | modifica wikitesto]Questa famiglia di modelli, invece di utilizzare livelli neurali completamente connessi, impiega uno o più livelli convoluzionali che applicano la convoluzione sui dati di input applicando un filtro a bassa dimensionalità in grado di incorporare strutture complesse con pochi parametri, apprendendo caratteristiche non lineari.[1][5][17]
- ConvE[33]: ConvE è un modello di incorporamento che rappresenta un buon compromesso tra espressività dei modelli di apprendimento profondo e dispendio computazionale,[15] infatti è dimostrato che utilizzato 8 volte meno parametri, rispetto a DistMult.[33] ConvE utilizza una unidimensionale matrice di incorporamento di dimensione per rappresentare le entità e le relazioni di un grafo della conoscenza.[5][33] Per calcolare la funzione punteggio di una tripla, ConvE applica una semplice procedura: prima concatena gli incorporamenti della testa della tripla e la relazione in un unico dato , quindi questa matrice viene utilizzata come input per il livello convoluzionale 2D.[5][15] Il risultato viene quindi passato attraverso ad uno strato neurale denso che applica una trasformazione lineare parametrizzata dalla matrice e alla fine, con il prodotto interno è legato alla coda della tripla.[17] ConvE è anche particolarmente efficiente nella procedura di valutazione: utilizzando un punteggio 1-N, il modello abbina, data una testa e una relazione, tutte le possibili code contemporaneamente, risparmiando molto tempo nella valutazione rispetto alla valutazione 1-1 degli altri modelli.[17]
- ConvR[34]: ConvR è un network convoluzionale adattivo volto a rappresentare in profondità tutte le possibili interazioni tra le entità e le relazioni.[34] Per questa attività, ConvR calcola il filtro convoluzionale per ogni relazione e, quando richiesto, applica questi filtri all'entità di interesse per estrarre le caratteristiche convolute.[34] La procedura per calcolare il punteggio del triplo è la stessa di ConvE.[5]
- ConvKB[35]: ConvKB, to compute score function of a given triple , it produces an input of dimension without reshaping and passes it to series of convolutional filter of size .[35] This result feds a dense layer with only one neuron that produces the final score.[35] The single final neuron, makes this architecture as a binary classifier in which the fact could be true or false.[5] A difference with ConvE is that the dimensionality of the entities is not changed.[15]
ConvKB, per calcolare la funzione punteggio di una data tripla , genera un input di dimensione senza cambiarne le dimensioni e lo trasferisce a una serie di filtri convoluzionali di dimensioni .[35] Questo risultato alimenta uno strato neurale denso con un solo neurone che produce il punteggio finale.[35] Il singolo neurone finale, rende questa architettura un classificatore binario in cui il fatto può essere vero o falso.[5] A differenza di ConvE, la dimensionalità delle entità non viene modificata durante il processo convolutivo.[15]
Reti neurali a capsula
[modifica | modifica wikitesto]Questa famiglia di modelli utilizza reti neurali a capsule per creare una rappresentazione più stabile in grado di riconoscere una caratteristica nell'input senza perdere informazioni spaziali.[5] La rete è composta da strati convoluzionali ma che sono organizzati in capsule, in gruppo, e il risultato complessivo di una capsula viene inviato ad un'altra capsula di livello superiore scelta da una routine di processo dinamica.[5]
- CapsE[36]: CapsE implementa una rete di capsule per modellare un fatto .[36] Come in ConvKB, ogni elemento della tripla è concatenato per costruire una matrice e viene usato per alimentare uno strato convoluzionale per estrarre le caratteristiche convoluzionali..[5][36] Queste caratteristiche vengono poi reindirizzate a una capsula per produrre un vettore continuo, più il vettore è lungo, più il fatto è vero.[36]
Reti neurali ricorrenti
[modifica | modifica wikitesto]Questa classe di modelli sfrutta l'uso della reti neurali ricorrenti.[5] Il vantaggio di questa architettura è memorizzare una sequenza di fatti, piuttosto che elaborare singoli eventi.[37]
- RSN[37]: Durante la procedura di incorporamento si presume comunemente che entità simili abbiano relazioni simili.[37] In pratica, questo tipo di informazioni non viene sfruttata, perché l'incorporamento viene calcolato solo sul fatto in corso piuttosto che sulla storia dei fatti.[37] Recurrent skipping network (RSN) utilizza una rete neurale ricorrente per apprendere il percorso relazionale utilizzando un campionamento casuale.[5][37]
Performance dei modelli
[modifica | modifica wikitesto]Il task della predizione dei collegamenti nel contesto dell'incorporamento dei grafi della conoscenza viene molto spesso usato per valutare la precisione dei modelli nell'apprendere l'incorporamento.[1][3][5][6][7][17] Rossi et al.[5] ha prodotto un benchmark estensivo sui modelli, ma anche altre analisi hanno prodotto risultati simili.[3][7][17][24] Il benchmark usa cinque dataset FB15k[9], WN18[9], FB15k-237[38], WN18RR[33], e YAGO3-10[39]. Più recentemente è stato discusso che questi dataset non rappresentano molto le applicazioni quotidiane e altri dataset dovrebbero essere integrati nel benchmark.[40]
Nome del dataset | Numero di entità differenti | Numero di relazioni differenti | Numero di triple |
---|---|---|---|
FB15k[9] | 14951 | 1345 | 584113 |
WN18[9] | 40943 | 18 | 151442 |
FB15k-237[38] | 14541 | 237 | 310116 |
WN18RR[33] | 40943 | 11 | 93003 |
YAGO3-10[39] | 123182 | 37 | 1089040 |
Nome del dataset | Complessità di memoria | FB15K (Hits@10) | FB15K (MR) | FB15K (MRR) | FB15K - 237 (Hits@10) | FB15K - 237 (MR) | FB15K - 237 (MRR) | WN18 (Hits@10) | WN18 (MR) | WN18 (MRR) | WN18RR (Hits@10) | WN18RR (MR) | WN18RR (MRR) | YAGO3-10 (Hits@10) | YAGO3-10 (MR) | YAGO3-10 (MRR) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DistMul[18] | 0.863 | 173 | 0.784 | 0.490 | 199 | 0.313 | 0.946 | 675 | 0.824 | 0.502 | 5913 | 0.433 | 0.661 | 1107 | 0.501 | |
ComplEx[19] | 0.905 | 34 | 0.848 | 0.529 | 202 | 0.349 | 0.955 | 3623 | 0.949 | 0.521 | 4907 | 0.458 | 0.703 | 1112 | 0.576 | |
ANALOGY[20] | 0.837 | 126 | 0.726 | 0.353 | 476 | 0.202 | 0.944 | 808 | 0.934 | 0.380 | 9266 | 0.366 | 0.456 | 2423 | 0.283 | |
SimplE[21] | 0.836 | 138 | 0.726 | 0.343 | 651 | 0.179 | 0.945 | 759 | 0.938 | 0.426 | 8764 | 0.398 | 0.631 | 2849 | 0.453 | |
HolE[22] | 0.867 | 211 | 0.800 | 0.476 | 186 | 0.303 | 0.949 | 650 | 0.938 | 0.487 | 8401 | 0.432 | 0.651 | 6489 | 0.502 | |
TuckER[23] | 0.888 | 39 | 0.788 | 0.536 | 162 | 0.352 | 0.958 | 510 | 0.951 | 0.514 | 6239 | 0.459 | 0.680 | 2417 | 0.544 | |
TransE[9] | 0.847 | 45 | 0.628 | 0.497 | 209 | 0.310 | 0.948 | 279 | 0.646 | 0.495 | 3936 | 0.206 | 0.673 | 1187 | 0.501 | |
STransE[29] | 0.796 | 69 | 0.543 | 0.495 | 357 | 0.315 | 0.934 | 208 | 0.656 | 0.422 | 5172 | 0.226 | 0.073 | 5797 | 0.049 | |
CrossE[30] | 0.862 | 136 | 0.702 | 0.470 | 227 | 0.298 | 0.950 | 441 | 0.834 | 0.449 | 5212 | 0.405 | 0.654 | 3839 | 0.446 | |
TorusE[31] | 0.839 | 143 | 0.746 | 0.447 | 211 | 0.281 | 0.954 | 525 | 0.947 | 0.535 | 4873 | 0.463 | 0.474 | 19455 | 0.342 | |
RotatE[32] | 0.881 | 42 | 0.791 | 0.522 | 178 | 0.336 | 0.960 | 274 | 0.949 | 0.573 | 3318 | 0.475 | 0.570 | 1827 | 0.498 | |
ConvE[33] | 0.849 | 51 | 0.688 | 0.521 | 281 | 0.305 | 0.956 | 413 | 0.945 | 0.507 | 4944 | 0.427 | 0.657 | 2429 | 0.488 | |
ConvKB[35] | 0.408 | 324 | 0.211 | 0.517 | 309 | 0.230 | 0.948 | 202 | 0.709 | 0.525 | 3429 | 0.249 | 0.604 | 1683 | 0.420 | |
ConvR[34] | 0.885 | 70 | 0.773 | 0.526 | 251 | 0.346 | 0.958 | 471 | 0.950 | 0.526 | 5646 | 0.467 | 0.673 | 2582 | 0.527 | |
CapsE[36] | 0.217 | 610 | 0.087 | 0.356 | 405 | 0.160 | 0.950 | 233 | 0.890 | 0.559 | 720 | 0.415 | 0 | 60676 | 0.000 | |
RSN[37] | 0.870 | 51 | 0.777 | 0.444 | 248 | 0.280 | 0.951 | 346 | 0.928 | 0.483 | 4210 | 0.395 | 0.664 | 1339 | 0.511 |
Librerie
[modifica | modifica wikitesto]- (EN) KGE, su GitHub.
- (EN) Pykg2vec, su GitHub.
- (EN) DGL-KE, su GitHub.
- (EN) PyKEEN, su GitHub.
- (EN) TorchKGE, su GitHub.
- (EN) AmpliGraph, su GitHub.
- (EN) OpenKE, su GitHub.
- (EN) scikit-kge, su GitHub.
- (EN) Fast-TransX, su GitHub.
Note
[modifica | modifica wikitesto]- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa Shaoxiong Ji, Shirui Pan, Erik Cambria, Pekka Marttinen e Philip S. Yu, A Survey on Knowledge Graphs: Representation, Acquisition, and Applications, in IEEE Transactions on Neural Networks and Learning Systems, 2021, pp. 1-21, DOI:10.1109/TNNLS.2021.3070843, ISSN 2162-237X .
- ^ (EN) Sameh K Mohamed, Vít Nováček e Aayah Nounu, Discovering Protein Drug Targets Using Knowledge Graph Embeddings, in Lenore Cowen (a cura di), Bioinformatics, 1º agosto 2019, pp. btz600, DOI:10.1093/bioinformatics/btz600, ISSN 1367-4803 .
- ^ a b c d Yankai Lin, Xu Han, Ruobing Xie, Zhiyuan Liu e Maosong Sun, Knowledge Representation Learning: A Quantitative Review, in arXiv:1812.10901 [cs], 28 dicembre 2018.
- ^ a b c (EN) Bilal Abu-Salih, Marwan Al-Tawil, Ibrahim Aljarah, Hossam Faris, Pornpit Wongthongtham, Kit Yan Chan e Amin Beheshti, Relational Learning Analysis of Social Politics using Knowledge Graph Embedding, in Data Mining and Knowledge Discovery, 12 maggio 2021, DOI:10.1007/s10618-021-00760-w, ISSN 1573-756X .
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as (EN) Andrea Rossi, Denilson Barbosa, Donatella Firmani, Antonio Matinata e Paolo Merialdo, Knowledge Graph Embedding for Link Prediction: A Comparative Analysis, in ACM Transactions on Knowledge Discovery from Data, vol. 15, n. 2, 2020, pp. 1-49, DOI:10.1145/3424672, ISSN 1556-4681 .
- ^ a b Heiko Paulheim, Knowledge graph refinement: A survey of approaches and evaluation methods, in Philipp Cimiano (a cura di), Semantic Web, vol. 8, n. 3, 6 dicembre 2016, pp. 489-508, DOI:10.3233/SW-160218.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab (EN) Yuanfei Dai, Shiping Wang, Neal N. Xiong e Wenzhong Guo, A Survey on Knowledge Graph Embedding: Approaches, Applications and Benchmarks, in Electronics, vol. 9, n. 5, maggio 2020, p. 750, DOI:10.3390/electronics9050750.
- ^ (EN) Shu Guo, Quan Wang, Bin Wang, Lihong Wang e Li Guo, Semantically Smooth Knowledge Graph Embedding, in Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), Beijing, China, Association for Computational Linguistics, 2015, pp. 84-94, DOI:10.3115/v1/P15-1009.
- ^ a b c d e f g Antoine Bordes, Nicolas Usunier, Alberto Garcia-Durán, Jason Weston e Oksana Yakhnenko, Translating embeddings for modeling multi-relational data, in Proceedings of the 26th International Conference on Neural Information Processing Systems - Volume 2, NIPS'13, Lake Tahoe, Nevada, Curran Associates Inc., maggio 2013, pp. 2787-2795.
- ^ a b c d e f g h i j Zhe Chen, Yuehan Wang, Bin Zhao, Jing Cheng, Xin Zhao e Zongtao Duan, Knowledge Graph Completion: A Review, in IEEE Access, vol. 8, 2020, pp. 192435-192456, DOI:10.1109/ACCESS.2020.3030076, ISSN 2169-3536 .
- ^ a b c d e Hongyun Cai, Vincent W. Zheng e Kevin Chen-Chuan Chang, A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications, in arXiv:1709.07604 [cs], 2 febbraio 2018.
- ^ a b Sijin Zhou, Xinyi Dai, Haokun Chen, Weinan Zhang, Kan Ren, Ruiming Tang, Xiuqiang He e Yong Yu, Interactive Recommender System via Knowledge Graph-enhanced Reinforcement Learning, in arXiv:2006.10389 [cs], 18 giugno 2020.
- ^ Chan Liu, Lun Li, Xiaolu Yao e Lin Tang, A Survey of Recommendation Algorithms Based on Knowledge Graph Embedding, in 2019 IEEE International Conference on Computer Science and Educational Informatization (CSEI), agosto 2019, pp. 168-171, DOI:10.1109/CSEI47661.2019.8938875.
- ^ Daniel N. Sosa, Alexander Derry, Margaret Guo, Eric Wei, Connor Brinton e Russ B. Altman, A Literature-Based Knowledge Graph Embedding Method for Identifying Drug Repurposing Opportunities in Rare Diseases, in Pacific Symposium on Biocomputing. Pacific Symposium on Biocomputing, vol. 25, 2020, pp. 463-474, ISSN 2335-6936 , PMC 6937428, PMID 31797619.
- ^ a b c d e f g h i j k l (EN) Mona Alshahrani, Maha A. Thafar e Magbubah Essack, Application and evaluation of knowledge graph embeddings in biomedical data, in PeerJ Computer Science, vol. 7, 18 febbraio 2021, pp. e341, DOI:10.7717/peerj-cs.341, ISSN 2376-5992 , PMC PMC7959619, PMID 33816992.
- ^ Maximilian Nickel, Volker Tresp e Hans-Peter Kriegel, A three-way model for collective learning on multi-relational data, in Proceedings of the 28th International Conference on International Conference on Machine Learning, ICML'11, Bellevue, Washington, USA, Omnipress, 28 giugno 2011, pp. 809-816, ISBN 978-1-4503-0619-5.
- ^ a b c d e f g h i j k (EN) Meihong Wang, Linling Qiu e Xiaoli Wang, A Survey on Knowledge Graph Embeddings for Link Prediction, in Symmetry, vol. 13, n. 3, 16 marzo 2021, p. 485, DOI:10.3390/sym13030485, ISSN 2073-8994 .
- ^ a b Bishan Yang, Wen-tau Yih, Xiaodong He, Jianfeng Gao e Li Deng, Embedding Entities and Relations for Learning and Inference in Knowledge Bases, in arXiv:1412.6575 [cs], 29 agosto 2015.
- ^ a b c Théo Trouillon, Johannes Welbl, Sebastian Riedel, Éric Gaussier e Guillaume Bouchard, Complex Embeddings for Simple Link Prediction, in arXiv:1606.06357 [cs, stat], 20 giugno 2016.
- ^ a b c d e Hanxiao Liu, Yuexin Wu e Yiming Yang, Analogical Inference for Multi-Relational Embeddings, in arXiv:1705.02426 [cs], 6 luglio 2017.
- ^ a b c Seyed Mehran Kazemi e David Poole, SimplE Embedding for Link Prediction in Knowledge Graphs, in arXiv:1802.04868 [cs, stat], 25 ottobre 2018.
- ^ a b c Maximilian Nickel, Lorenzo Rosasco e Tomaso Poggio, Holographic Embeddings of Knowledge Graphs, in arXiv:1510.04935 [cs, stat], 7 dicembre 2015.
- ^ a b c d Ivana Balažević, Carl Allen e Timothy M. Hospedales, TuckER: Tensor Factorization for Knowledge Graph Completion, in Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), 2019, pp. 5184-5193, DOI:10.18653/v1/D19-1522.
- ^ a b Mehdi Ali, Max Berrendorf, Charles Tapley Hoyt, Laurent Vermue, Mikhail Galkin, Sahand Sharifzadeh, Asja Fischer, Volker Tresp e Jens Lehmann, Bringing Light Into the Dark: A Large-scale Evaluation of Knowledge Graph Embedding Models Under a Unified Framework, in arXiv:2006.13365 [cs, stat], 29 dicembre 2020.
- ^ a b Zhen Wang, Knowledge Graph Embedding by Translating on Hyperplanes, in AAAI Publications, Twenty-Eighth AAAI Conference on Artificial Intelligence, 2014. URL consultato il 18 giugno 2021 (archiviato dall'url originale il 24 giugno 2021).
- ^ Yankai Lin, Zhiyuan Liu, Maosong Sun, Yang Liu e Xuan Zhu, Learning entity and relation embeddings for knowledge graph completion, in Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, AAAI'15, Austin, Texas, AAAI Press, 25 gennaio 2015, pp. 2181-2187, ISBN 978-0-262-51129-2.
- ^ a b c d e Guoliang Ji, Shizhu He, Liheng Xu, Kang Liu e Jun Zhao, Knowledge Graph Embedding via Dynamic Mapping Matrix, in Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), Beijing, China, Association for Computational Linguistics, luglio 2015, pp. 687-696, DOI:10.3115/v1/P15-1067.
- ^ a b c Han Xiao, Minlie Huang, Yu Hao e Xiaoyan Zhu, TransA: An Adaptive Approach for Knowledge Graph Embedding, in arXiv:1509.05490 [cs], 27 settembre 2015.
- ^ a b c d e Dat Quoc Nguyen, Kairit Sirts, Lizhen Qu e Mark Johnson, STransE: a novel embedding model of entities and relationships in knowledge bases, in Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, San Diego, California, Association for Computational Linguistics, giugno 2016, pp. 460-466, DOI:10.18653/v1/N16-1054.
- ^ a b c d e f g Wen Zhang, Bibek Paudel, Wei Zhang, Abraham Bernstein e Huajun Chen, Interaction Embeddings for Prediction and Explanation in Knowledge Graphs, in Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining, 30 gennaio 2019, pp. 96-104, DOI:10.1145/3289600.3291014.
- ^ a b c d Takuma Ebisu e Ryutaro Ichise, TorusE: Knowledge Graph Embedding on a Lie Group, in arXiv:1711.05435 [cs], 15 novembre 2017.
- ^ a b c d e Zhiqing Sun, Zhi-Hong Deng, Jian-Yun Nie e Jian Tang, RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space, in arXiv:1902.10197 [cs, stat], 26 febbraio 2019.
- ^ a b c d e f Tim Dettmers, Pasquale Minervini, Pontus Stenetorp e Sebastian Riedel, Convolutional 2D Knowledge Graph Embeddings, in arXiv:1707.01476 [cs], 4 luglio 2018.
- ^ a b c d Xiaotian Jiang, Quan Wang e Bin Wang, Adaptive Convolution for Multi-Relational Learning, in Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), Minneapolis, Minnesota, Association for Computational Linguistics, giugno 2019, pp. 978-987, DOI:10.18653/v1/N19-1103.
- ^ a b c d e f Dai Quoc Nguyen, Tu Dinh Nguyen, Dat Quoc Nguyen e Dinh Phung, A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network, in Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Short Papers), 2018, pp. 327-333, DOI:10.18653/v1/N18-2053.
- ^ a b c d e Dai Quoc Nguyen, Thanh Vu, Tu Dinh Nguyen, Dat Quoc Nguyen e Dinh Phung, A Capsule Network-based Embedding Model for Knowledge Graph Completion and Search Personalization, in arXiv:1808.04122 [cs], 6 marzo 2019.
- ^ a b c d e f Lingbing Guo, Zequn Sun e Wei Hu, Learning to Exploit Long-term Relational Dependencies in Knowledge Graphs, in arXiv:1905.04914 [cs], 13 maggio 2019.
- ^ a b Kristina Toutanova e Danqi Chen, Observed versus latent features for knowledge base and text inference, in Proceedings of the 3rd Workshop on Continuous Vector Space Models and their Compositionality, Beijing, China, Association for Computational Linguistics, luglio 2015, pp. 57-66, DOI:10.18653/v1/W15-4007.
- ^ a b F. Mahdisoltani, J. Biega e Fabian M. Suchanek, YAGO3: A Knowledge Base from Multilingual Wikipedias, in CIDR, 2015.
- ^ Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta e Jure Leskovec, Open Graph Benchmark: Datasets for Machine Learning on Graphs, in arXiv:2005.00687 [cs, stat], 24 febbraio 2021.