# 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 è 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. 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.

## Definizione

Un knowledge graph, o grafo della conoscenza, ${\mathcal {G}}=\{E,R,F\}$, è una collezione di entità $E$, relazioni $R$, e fatti $F$. Un fatto è una tripla $(h,r,t)\in F$ che denota un collegamento $r\in R$ tra la testa, o 'head', $h\in E$ e la coda, o tail, $t\in E,$ della tripla stessa. Un'altra notazione che viene comunemente usata nella letteratura per rappresentare una tripla (o fatto) è $<head,relation,tail>$ o $(head,relation,tail)$. Questa notazione è chiamata resource description framework (RDF). 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. 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.
L'incorporamento di un knowledge graph traduce ogni entità e relazione del grafo, ${\mathcal {G}}$ in un vettore di dimensione $d$, anche detta dimensione di incorporamento. Nel caso generale, possiamo avere differenti dimensioni di incorporamento per le entità $d$ e per le relazioni $k$. 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.
L'incorporamento di un grafo della conoscenza è caratterizzato da quattro aspetti differenti:
* Spazio di rappresentazione: È lo spazio dimensionalmente più piccolo rispetto a quello di partenza che viene usato per rappresentare le entità e le relazioni.
* Funzione di punteggio: È una misura della correttezza della rappresentazione incorporata delle triple.
* Modello di codifica: È la modalità in cui la rappresentazione incorporata delle entità e delle relazioni interagiscono tra di loro.
* Informazioni aggiuntive: Qualunque informazione aggiuntiva proveniente dal grafo della conoscenza che può essere usata per arricchire la rappresentazione incorporata. 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.

### Procedura di incorporamento

Tutti i differenti modelli di incorporamento di un grafo della conoscenza seguono all'incirca la stessa procedura. 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 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. Di solito, la condizione di arresto è data dall'overfitting rispetto al training set. Ad ogni iterazione, viene campionata un insieme di $b$ 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. 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. 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. 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.

#### Pseudo codice

Di seguito viene riportato lo pseudo codice che viene generalmente usato per la procedura di incorporamento.

### Indicatori di performance

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. Dato Q un insieme di predizione classificate da un modello, è possibile definire tre indici di performance differenti: Hits@K, MR, and MRR.

#### Hits@K

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. Di solito viene usato $k=10$. Hits@K riflette la precisione di un modello di incorporamento nel predire correttamente la relazione tra due entità.
Hits@K$={\frac {|\{q\in Q:q<k\}|}{|Q|}}\in [0,1]$
Valori più grandi significano migliori performance predittive.

#### Mean rank (MR)

Mean rank è la media della posizione in classifica di un oggetto predetto da un modello tra tutti i possibili elementi che possono essere predetti.
$MR={\frac {1}{|Q|}}\sum _{q\in Q}{q}$
Più il valore è piccolo, più il modello di incorporamento è affidabile.

#### Mean reciprocal rank (MRR)

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 ${\frac {1}{2}}$ , e così via.
$MRR={\frac {1}{|Q|}}\sum _{q\in Q}{\frac {1}{q}}\in [0,1]$
Un indice più grande è sinonimo di un modello migliore.

## Applicazioni
### Task di addestramento automatico

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. In particolare, questa tecnica completa una tripla inferendo l'entità o relazione mancante. 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à.
La classificazione delle triple è un problema di classificazione binaria. 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. La decisione di classificazione viene presa in base alla funzione di punteggio del modello rispetto ad una data soglia. 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.

### Applicazioni nella vita quotidiana

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. 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. 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. L'incorporamento di grafi della conoscenza può essere anche usato nel dominio delle politiche sociali.

## Modelli

Data una collezione di triple (o fatti)${\mathcal {F}}=\{<head,relation,tail>\}$, l'incorporamento del grafo della conoscenza produce, per ogni entità e relazione presente nel grafo un vettore continuo che ne rappresenta la semantica. $(h,r,t)$ denota il corrispettivo incorporamento di una tripla con $h,t\in {\rm {I\!R}}^{d}$ e $r\in {\rm {I\!R}}^{k}$ , dove $d$ è la dimensione di incorporamento delle entità, e $k$ per le relazioni. La funzione di punteggio di un dato modello è denotata con ${\mathcal {f}}_{r}(h,t)$ 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.
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.

### Modelli di decomposizione del tensore

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, che è esplorabile solo in parte dovutamente al fatto che il grafo della conoscenza non è in grado di rappresentare completamente un dominio. 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. Il tensore è una metodologia adatta a rappresentare un grafo della conoscenza poiché tiene conto dell'esistenza o meno delle relazioni tra entità e per questo motivo è semplice e non c'è bisogno di una conoscenza pregressa a proposito della struttura della rete, rendendo questa classe di modelli leggera, facile da addestrare anche se soffrono di sparsità ed alta dimensionalità dei dati.

#### Modelli bilineari

Questa famiglia di modelli utilizza un'equazione lineare per incorporare la connessione tra le entità connesse attraverso una relazione. In particolare, la rappresentazione incorporata delle relazioni è una matrice bidimensionale. 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.
* DistMult: Dal momento che la matrice di incorporamento della relazione è una matrice diagonale, la funzione di punteggio non può distinguere i fatti asimmetrici.
* ComplEx: Come DistMult utilizza una matrice diagonale per rappresentare le relazioni. ComplEx aggiunge una rappresentazione nello spazio vettoriale complesso e il prodotto hermitiano, ed è in grado di distinguere fatti simmetrici e asimmetrici. Questo approccio è scalabile anche in un grafo della conoscenza di grandi dimensioni in termini di costi di tempo e spazio.
* ANALOGY: Questo modello codifica nell'incorporamento la struttura analogica del grafo della conoscenza per simulare il ragionamento induttivo. Utilizzando una funzione obiettivo differenziabile, ANALOGY ha una buona generalità teorica e scalabilità computazionale. È dimostrato che l'incorporamento prodotto da ANALOGY può essere visto come un caso speciale dell'incorporamento di DistMul, ComplEx e HolE.
* SimplE: 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. SimplE risolve il problema dell'apprendimento indipendente delle due entità incorporate utilizzando una relazione inversa e mediando il punteggio CPD di $(h,r,t)$ e $(t,r^{-1},h)$. 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.

#### Modelli non bilineari

* HolE: HolE utilizza la correlazione circolare per creare una rappresentazione incorporata del grafo della conoscenza, 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. HolE collega gli embedding olografici e complessi poiché se usato insieme a Fourier può essere visto come un caso speciale di ComplEx.
* TuckER: 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. I pesi del tensore centrale vengono appresi insieme agli incorporamenti e rappresentano il livello di interazione delle entità. 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. 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.

### Modelli geometrici

Lo spazio geometrico definito da questa famiglia di modelli codifica la relazione come trasformazione geometrica tra la testa e la coda di una triple. Per questo motivo, per calcolare l'incorporamento della coda, è necessario applicare una trasformazione $\tau$ all'embedding della testa, e una funzione di distanza $\delta$ è utilizzata per misurare la bontà dell'incorporamento o per valutare l'affidabilità di un fatto.
${\mathcal {f}}_{r}(h,t)=\delta (\tau (h,r),t)$
I modelli geometrici sono simili al modello di decomposizione tensoriale, ma la differenza principale tra i due è che devono preservare l'applicabilità della trasformazione $\tau$ nello spazio geometrico in cui è definita.

#### Modelli puramente traslativi

Questa classe di modelli si ispira all'idea di invarianza traduttiva introdotta in word2vec. 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. 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. La vicinanza delle entità incorporate è data da una certa misura di distanza e quantifica l'attendibilità di una tripla.
* TransE: 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: $h+r=t$. 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: È un'evoluzione di TransE che introduce un iperpiano come spazio geometrico per risolvere il problema di rappresentare correttamente i tipi di relazioni. In TransH, ogni relazione ha una diversa rappresentazione incorporata, su un diverso iperpiano, in base alle entità con cui interagisce. 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.
* TransR: TransR è un'evoluzione di TransH perché utilizza due spazi diversi per rappresentare la rappresentazione incorporata delle entità e delle relazioni, e separa completamente lo spazio semantico delle entità da quello delle relazioni. Anche TransR utilizza una matrice di proiezione relazionale per tradurre l'incorporamento delle entità nello spazio delle relazioni.
* TransD: Dato un fatto, in TransR, la testa e la coda di un fatto potrebbero appartenere a due diversi tipi di entità, ad esempio nella tripla$(Obama,president\_of,USA)$Obama e USA sono due entità ma una è una persona e l'altra è un paese. La moltiplicazione matriciale è una procedura costosa in TransR che viene usata per calcolare la proiezione. 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. Il primo vettore è utilizzato per rappresentare il significato semantico delle entità e delle relazioni, il secondo per calcolare la matrice di mappatura.
* TransA: Tutti i modelli traslazionali definiscono una funzione di punteggio nel loro spazio di rappresentazione, ma semplificano eccessivamente questa metrica. Dal momento che la rappresentazione vettoriale delle entità e delle relazioni non è perfetta, una pura traslazione di $h+r$ potrebbe essere distante da $t$, 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à.

#### Modelli traslativi con informazioni aggiuntive

È possibile associare informazioni aggiuntive a ciascun elemento nel grafo della conoscenza insieme ai loro modi comuni di rappresentazione. 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. 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.
* STransE: Questo modello è il risultato della combinazione di TransE e dell'incorporamento della struttura in modo tale da poter rappresentare al meglio le relazioni uno-a-molti, molti-a-uno e molti-a-molti. Per fare ciò, il modello prevede due ulteriori matrici indipendenti $W_{r}^{h}$ e $W_{r}^{t}$per ogni relazione incorporata $r$ nel grafo della conoscenza. Ogni matrice aggiuntiva viene utilizzata in base al fatto che la specifica relazione interagisce con la testa o la coda della tripla. In altre parole, dato un fatto $(h,r,t)$, prima di applicare la traslazione vettoriale, la testa $h$ viene moltiplicato per $W_{r}^{h}$ e la coda viene moltiplicata per $W_{r}^{t}$.
* CrossE: Le interazioni crossover possono essere utilizzate per la selezione delle informazioni correlate e potrebbero essere molto utili per la procedura di embedding. Le interazioni crossover forniscono due contributi distinti nella selezione delle informazioni: interazioni da relazioni a entità e interazioni da entità a relazioni. Ciò significa che una relazione, ad es. "president_of" seleziona automaticamente i tipi di entità che collegano il soggetto all'oggetto di un fatto. 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. CrossE, per farlo, apprende una matrice di interazione aggiuntiva $C$, ed utilizza il prodotto elemento per elemento per calcolare l'interazione tra $h$ e $r$. Anche se CrossE non si basa su un'architettura di rete neurale, è dimostrato che questa metodologia può essere codificata in tale architettura.

#### Modelli roto-traslativi

Questa famiglia di modelli, in aggiunta o in sostituzione ad una traslazione, impiegano una trasformazione a rotativa.
* TorusE: 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. 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. TorusE definisce le funzioni di distanza per sostituire la norma L1 e L2 di TransE.
* RotatE: RotatE si ispira all'identità di Eulero e prevede l'uso del prodotto Hadmard per rappresentare una relazione $r$ come una rotazione dalla testa $h$ verso la coda $t$ nello spazio complesso. 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. È dimostrato che il modello è in grado di incorporando relazioni simmetriche, asimmetriche, di inversione e di composizione dal grafo della conoscenza.

### Modelli di apprendimento profondo

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. Questi modelli hanno la generalità di distinguere il tipo di entità e relazione, informazioni temporali, informazioni sul percorso, informazioni strutturate sottostanti e risolvono i limiti dei modelli basati sulla distanza e sulla corrispondenza semantica nel rappresentare tutte le caratteristiche di un grafo della conoscenza. 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.

#### Reti neurali convoluzionali

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.
* ConvE: ConvE è un modello di incorporamento che rappresenta un buon compromesso tra espressività dei modelli di apprendimento profondo e dispendio computazionale, infatti è dimostrato che utilizzato 8 volte meno parametri, rispetto a DistMult. ConvE utilizza una unidimensionale matrice di incorporamento di dimensione $d$ per rappresentare le entità e le relazioni di un grafo della conoscenza. 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 $[h;{\mathcal {r}}]$, quindi questa matrice viene utilizzata come input per il livello convoluzionale 2D. Il risultato viene quindi passato attraverso ad uno strato neurale denso che applica una trasformazione lineare parametrizzata dalla matrice ${\mathcal {W}}$ e alla fine, con il prodotto interno è legato alla coda della tripla. 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.
* ConvR: ConvR è un network convoluzionale adattivo volto a rappresentare in profondità tutte le possibili interazioni tra le entità e le relazioni. 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. La procedura per calcolare il punteggio del triplo è la stessa di ConvE.
* ConvKB: ConvKB, to compute score function of a given triple $(h,r,t)$, it produces an input $[h;{\mathcal {r}};t]$of dimension $d\times 3$ without reshaping and passes it to series of convolutional filter of size $1\times 3$. This result feds a dense layer with only one neuron that produces the final score. The single final neuron, makes this architecture as a binary classifier in which the fact could be true or false. A difference with ConvE is that the dimensionality of the entities is not changed.
ConvKB, per calcolare la funzione punteggio di una data tripla $(h,r,t)$, genera un input $[h;{\mathcal {r}};t]$ di dimensione $d\times 3$senza cambiarne le dimensioni e lo trasferisce a una serie di filtri convoluzionali di dimensioni $1\times 3$. Questo risultato alimenta uno strato neurale denso con un solo neurone che produce il punteggio finale. Il singolo neurone finale, rende questa architettura un classificatore binario in cui il fatto può essere vero o falso. A differenza di ConvE, la dimensionalità delle entità non viene modificata durante il processo convolutivo.

#### Reti neurali a capsula

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. 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.
* CapsE: CapsE implementa una rete di capsule per modellare un fatto $(h,r,t)$. Come in ConvKB, ogni elemento della tripla è concatenato per costruire una matrice $[h;{\mathcal {r}};t]$ e viene usato per alimentare uno strato convoluzionale per estrarre le caratteristiche convoluzionali.. Queste caratteristiche vengono poi reindirizzate a una capsula per produrre un vettore continuo, più il vettore è lungo, più il fatto è vero.

#### Reti neurali ricorrenti

Questa classe di modelli sfrutta l'uso della reti neurali ricorrenti. Il vantaggio di questa architettura è memorizzare una sequenza di fatti, piuttosto che elaborare singoli eventi.
* RSN: Durante la procedura di incorporamento si presume comunemente che entità simili abbiano relazioni simili. 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. Recurrent skipping network (RSN) utilizza una rete neurale ricorrente per apprendere il percorso relazionale utilizzando un campionamento casuale.

## Performance dei modelli

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. Rossi et al. ha prodotto un benchmark estensivo sui modelli, ma anche altre analisi hanno prodotto risultati simili. Il benchmark usa cinque dataset FB15k, WN18, FB15k-237, WN18RR, e YAGO3-10. Più recentemente è stato discusso che questi dataset non rappresentano molto le applicazioni quotidiane e altri dataset dovrebbero essere integrati nel benchmark.
Tabella riassuntiva delle caratteristiche dei dataset usati per valutare le perfomance dell'incorporamento dei modelli. :
| Nome del dataset | Numero di entità differenti | Numero di relazioni differenti | Numero di triple |
| FB15k | 14951 | 1345 | 584113 |
| WN18 | 40943 | 18 | 151442 |
| FB15k-237 | 14541 | 237 | 310116 |
| WN18RR | 40943 | 11 | 93003 |
| YAGO3-10 | 123182 | 37 | 1089040 |
Tabella riassuntiva della complessita della memoria usata dai modelli e la performance nella predizioni dei collegamenti secondo il test condotto da Rossi et al. in termini di Hits@10, MR, e MRR. In grassetto i migliori punteggi di predizioni Hits@10 per ogni dataset. :
| 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k^{2})(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k^{2})(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d^{2}+N_{r}k^{2})$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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 | ${\mathcal {O}}(N_{e}d+N_{r}k)(d=k)$ | 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

* (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.