La complétion des graphes de connaissances (KGC) est une tâche cruciale dans le domaine de l'intelligence artificielle et de la représentation des connaissances, visant à déduire les informations manquantes dans un graphe de connaissances. Le Transformer, une puissante architecture de réseau neuronal, a montré un grand potentiel dans diverses tâches de traitement du langage naturel et peut également être appliqué efficacement à KGC. En tant que fournisseur de Transformer, je partagerai comment utiliser Transformer pour compléter les graphiques de connaissances dans ce blog.


Comprendre l'achèvement du Knowledge Graph
Un graphe de connaissances est une représentation structurée des connaissances sous la forme d'entités et de relations entre elles, généralement modélisées comme un ensemble de triplets (sujet, prédicat, objet). Par exemple, (Albert Einstein, développé, Relativité Générale) est un triplet dans un graphe de connaissances. La complétion du graphe de connaissances implique de prédire les entités ou relations manquantes dans ces triplets. Cette tâche est importante pour de nombreuses applications, telles que les systèmes de questions-réponses, les systèmes de recommandation et la recherche sémantique.
Pourquoi utiliser Transformer pour KGC
L'architecture Transformer, présentée dans l'article « Attention Is All You Need », présente plusieurs avantages qui la rendent adaptée à la réalisation de graphes de connaissances :
- Mécanisme d'auto-attention: Le mécanisme d'auto - attention du Transformer lui permet de capturer les dépendances à longue portée dans la séquence d'entrée. Dans le contexte de la complétion de graphes de connaissances, il peut modéliser efficacement les relations entre différentes entités et prédicats dans un triple.
- Traitement parallèle: Contrairement aux réseaux de neurones récurrents (RNN), le Transformer peut traiter l'intégralité de la séquence d'entrée en parallèle, ce qui accélère considérablement le processus de formation et d'inférence.
- Transférer l'apprentissage: Les modèles Transformer pré-entraînés, tels que BERT, ont montré d'excellentes performances dans diverses tâches de traitement du langage naturel. Ces modèles pré-entraînés peuvent être ajustés pour la réalisation de graphiques de connaissances, en tirant parti des connaissances acquises à partir de corpus de textes à grande échelle.
Étapes pour utiliser Transformer pour KGC
1. Préparation des données
La première étape consiste à préparer les données pour la réalisation du graphe de connaissances. Les données consistent généralement en un ensemble de triplets, qui peuvent être divisés en ensembles de formation, de validation et de test. Les triplets doivent être codés dans un format que le Transformer peut traiter. Une approche courante consiste à convertir les entités et les prédicats en intégrations. Par exemple, nous pouvons utiliser des intégrations de mots pré-entraînées ou apprendre des intégrations d'entités et de prédicats à partir du graphe de connaissances lui-même.
2. Conception du modèle
Nous pouvons concevoir un modèle basé sur Transformer pour la complétion des graphes de connaissances. Une solution consiste à utiliser un encodeur Transformer pour traiter les triples d’entrée. L’entrée de l’encodeur Transformer peut être une séquence d’intégrations d’entités et de prédicats. La sortie de l'encodeur peut être utilisée pour prédire l'entité ou le prédicat manquant dans un triplet.
Voici un exemple simple d'un modèle basé sur Transformer pour KGC dans PyTorch :
importer torch importer torch.nn en tant que nn depuis torch.nn importer TransformerEncoder, classe TransformerEncoderLayer TransformerKGC(nn.Module): def __init__(self, d_model, nhead, num_layers, dim_feedforward): super(TransformerKGC, self).__init__() encoder_layer = TransformerEncoderLayer(d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward) self.transformer_encoder = TransformerEncoder(encoder_layer, num_layers=num_layers) self.fc = nn.Linear(d_model, num_entities) def forward(self, src) : sortie = self.transformer_encoder(src) sortie = self.fc(output[:, 0, :]) sortie de retour
Dans cet exemple,d_modèleest la dimension des plongements,nheadest le nombre de têtes d'attention,num_layersest le nombre de couches d'encodeur du transformateur, etdim_feedforwardest la dimension du réseau de rétroaction dans la couche d'encodeur du transformateur.
3. Formation du modèle
Une fois le modèle conçu, nous pouvons l'entraîner sur les données d'entraînement. L'objectif de la formation est généralement de minimiser la fonction de perte, telle que la perte d'entropie croisée. Pendant la formation, nous pouvons utiliser des techniques telles que la normalisation par lots, l'abandon et la planification du taux d'apprentissage pour améliorer les performances du modèle.
importer torch.optim en tant que modèle optim = TransformerKGC (d_model = 128, nhead = 4, num_layers = 2, dim_feedforward = 512) critère = nn.CrossEntropyLoss () optimiseur = optim.Adam (model.parameters (), lr = 0,001) pour l'époque dans la plage (num_epochs): running_loss = 0,0 pour i, données dans enumerate(train_loader, 0) : entrées, étiquettes = données optimiseur.zero_grad() sorties = modèle(entrées) perte = critère(sorties, étiquettes) loss.backward() optimiseur.step() running_loss += loss.item() print(f'Epoch {epoch + 1}, Perte : {running_loss / len(train_loader)}')
4. Évaluation
Après la formation, nous devons évaluer le modèle sur les ensembles de validation et de test. Les mesures d'évaluation courantes pour l'achèvement des graphiques de connaissances incluent le classement moyen (MR), le classement réciproque moyen (MRR) et Hits@k. Ces métriques mesurent dans quelle mesure le modèle peut classer les entités ou prédicats corrects parmi tous les candidats possibles.
à partir de sklearn.metrics, importez Mean_rank_score, Mean_reciprocal_rank_score model.eval() avec torch.no_grad() : all_labels = [] all_preds = [] pour les données dans test_loader : entrées, étiquettes = données sorties = modèle (entrées) all_labels.extend(labels.tolist()) all_preds.extend(outputs.tolist()) mr = Mean_rank_score (all_labels, all_preds) mrr = Mean_reciprocal_rank_score (all_labels, all_preds) print (f'Rang moyen : {mr}, Rang réciproque moyen : {mrr}')
Nos produits de transformateurs pour KGC
En tant que fournisseur de Transformers, nous proposons une large gamme de produits Transformer de haute qualité qui peuvent être utilisés pour la réalisation de graphiques de connaissances. Par exemple, notreTransformateur de type sec de classe 10 kV série SC(ZB)9fournit une alimentation stable pour l'infrastructure informatique requise pour la formation et l'exécution des modèles Transformer. LeSZ 11 - Transformateur de distribution triphasé immergé dans l'huile série Mest également un choix fiable pour les centres de données à grande échelle impliqués dans des tâches de réalisation de graphes de connaissances. De plus, notreTransformateur de puissance immergé dans l'huile de régulation de charge à double enroulement 35kVpeut garantir le fonctionnement efficace du système électrique pendant le processus de calcul de haute intensité.
Conclusion
L'utilisation de Transformer pour la complétion des graphes de connaissances est une approche prometteuse qui peut exploiter la puissance de l'architecture Transformer pour améliorer les performances de KGC. En suivant les étapes de préparation des données, de conception du modèle, de formation et d'évaluation, nous pouvons créer un modèle efficace basé sur Transformer pour la réalisation de graphiques de connaissances. En tant que fournisseur de transformateurs, nous nous engageons à fournir des produits et une assistance technique de haute qualité pour vous aider à obtenir de meilleurs résultats dans la réalisation de graphiques de connaissances. Si vous êtes intéressé par nos produits ou si vous avez des questions sur l'utilisation du transformateur pour KGC, n'hésitez pas à nous contacter pour l'achat et d'autres discussions.
Références
- Vaswani, A., Shazer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, An, ... et Polosukhin, I. (2017). L'attention est tout ce dont vous avez besoin. Progrès dans les systèmes de traitement de l’information neuronale.
- Devlin, J., Chang, MW, Lee, K. et Toutanova, K. (2018). BERT : Pré - formation de transformateurs bidirectionnels profonds pour la compréhension des langues. Préimpression arXiv arXiv:1810.04805.
