Graphique de connaissances de recherche: création à partir de plusieurs sources



Je veux parler de ce qu'est un graphique des connaissances et de l'une des façons de le construire à partir de plusieurs sources thématiques.

Un grand nombre de requêtes dans la recherche contiennent une seule entité - l'objet sur lequel l'utilisateur demande. Il peut s'agir de demandes concernant certaines personnes, films, séries, objets musicaux ou géographiques. Lorsque l'utilisateur fait une telle demande, en la délivrant, on peut lui montrer une carte d'information supplémentaire dans l'espoir que les informations contenues dans la carte seront d'intérêt pour l'utilisateur. Les cartes décorent le problème et augmentent sa visibilité. À l'aide de cartes d'information, nous avons fait comprendre à une personne qu'elle utilisait un service intelligent, car le moteur de recherche s'est rendu compte qu'il avait en tête le type d'objet qu'il demandait. De plus, cette intelligence peut être étendue en répondant à la demande d'un utilisateur directement sur la page du problème. Par exemple, en réponse à «ce qu'il faut voir à Prague», nous pouvons immédiatement montrer les sites touristiques de cette ville.

Il y a des moments où l'utilisateur veut savoir quelque chose sur un objet, mais n'en sait absolument rien, à part le fait de son existence. Ou l'utilisateur souhaite poursuivre la recherche sur un sujet. Surtout pour ce cas, la carte montre ce pour quoi cet objet est connu, ainsi que les options possibles pour poursuivre la recherche dans le bloc "Voir aussi".

Graphique des connaissances


Toutes ces technologies sémantiques sont basées sur un graphe de connaissances - un graphe dont les nœuds sont des objets du monde réel, et les transitions sont des relations typées entre objets (par exemple, la relation pour le lieu de naissance est différente de la relation pour la date de naissance). Un exemple d'un petit graphique de connaissances est illustré à la Fig. 1.


Figure. 1. Exemple de graphique de connaissances

Il existe des graphiques de connaissances ouverts qui peuvent être téléchargés et utilisés. Des exemples et quelques statistiques sur les graphiques de connaissance ouverts les plus connus sont présentés dans le tableau. 1. La

table. 1. Statistiques sur les graphiques de connaissances ouvertes

Graphique des connaissancesNombre d'enregistrementsNombre d'objetsFréquence de mise à jour
FreebasePlus de 3 milliards49 millionsPas à jour
Wikidata748 millions18 millionsUne fois par semaine (incrémental - une fois par jour)
Dbpedia411 millions4 millionsDernière mise à jour en août 2019

Le problème avec les graphiques ouverts est que tous les domaines de connaissances ne sont pas couverts suffisamment en profondeur. Par exemple, des émissions de télévision russes. Ils ne sont pas très populaires dans le monde entier, mais ils nous sont particulièrement chers car les utilisateurs les interrogent. Cela signifie que nous devons trouver des informations sur ces séries et les apporter à la SERP (Search Engine Result Page). Le deuxième problème est les mises à jour plutôt rares. Mais lorsqu'un événement se produit, nous voulons apporter ces informations dès que possible et les afficher sur les pages de résultats de recherche.

Il existe au moins trois solutions possibles à ces problèmes.

Premièrement: ne rien faire, se réconcilier, fermer les yeux et continuer à vivre. Deuxièmement: ajoutez manuellement des informations avec précaution pour ouvrir les colonnes de connaissances, puis utilisez les données qui s'y trouvent. Et la troisième option: fusionner automatiquement les connaissances d'une source thématique avec le graphique. Pour les mêmes films et émissions de télévision, il existe de nombreuses sources de ce type: KinoPoisk, IMDb, Kino Mail.ru. De plus, dans les graphiques de connaissances, les objets ont généralement des liens vers des ressources thématiques populaires.

Nous avons commencé à mettre en œuvre la troisième approche. Avant de commencer à résoudre ce problème, vous devez vous préparer. Le fait est que les données des sources sont présentées sous différents formats. Par exemple, dans Wikidata, c'est JSON, dans Cinema Search - HTML. Ils doivent être convertis au même format. Nous convertissons en N-Triples, car il est pratique de le traiter en parallèle, et dans ce cas, il est vraiment important, car nous travaillons avec des mégadonnées. Un vidage JSON étendu de Wikidata prend environ 720 Go, et les pages HTML de recherche de film font 230 Go, donc presque toutes les tâches sont résolues sur un cluster à l'aide du paradigme MapReduce.

Double collage


L'une des tâches les plus difficiles lors de la fusion de graphiques de connaissances consiste à coller des doublons. Par exemple, nous avons des graphiques et deux objets en eux, qui sont un objet du monde réel. Nous voulons les coller ensemble dans notre graphique résultant afin qu'il soit un objet dans le graphique de connaissances. La solution que nous avons trouvée dès le début est assez simple. Prenons et collons tous les objets qui portent le même nom. Nous avons donc appris qu'il y avait au moins deux personnes célèbres avec le nom de Brad Pitt, un peu moins de quarante films et séries appelés «The Bridge», et environ le même nombre d'Ivanovs sur lesquels il y a un article sur Wikipédia.

De toute évidence, une approche aussi simple ne fonctionne pas, quelque chose de plus compliqué est nécessaire. Et puis nous avons trouvé une solution en trois parties. La première partie est un générateur candidat pour la liaison. Le second est un classificateur qui essaie de répondre à la question de savoir si deux objets doivent être collés ensemble. Et la troisième est une étape de collage supplémentaire: nous collons quelque chose qui n'a pas fonctionné pour une raison quelconque à coller à l'étape précédente.

Un générateur est nécessaire afin de réduire le nombre de candidats pour la liaison (essayer de lier chaque objet avec chacun est trop cher). Par conséquent, nous nous limitons à un petit nombre de candidats, puis nous exécutons le classificateur uniquement pour ce petit ensemble. L'idée de base est que les noms des objets qui peuvent être liés doivent être similaires d'une manière ou d'une autre. Nous avons décidé de commencer par une correspondance complète de sous-chaînes, mais avec la possibilité de réorganiser les mots. Cela signifie que si deux objets n'ont pas le même ordre de mots (par exemple, le nom et le prénom de la personne sont mélangés), ils seront toujours appariés. Nous utilisons à la fois des noms russes et des noms étrangers originaux. Nous utilisons également des surnoms, des alias et des synonymes pour les objets que nous avons collectés à partir des redirections Wikipedia.

Avant d'entraîner le modèle, il serait bien d'obtenir des données quelque part. Nous avons eu de la chance, tout le nécessaire était déjà dans les graphiques ouverts de la connaissance. Par exemple, dans Wikidata, il y a un peu moins de 200 000 objets, des liens vers des films et des émissions de télévision de KinoPoisk, et un peu moins de 100 000 liens vers des gens de KinoPoisk. Nous serons formés sur ces données.

Tous les attributs sont basés sur l'idée que le même objet dans deux colonnes devrait avoir un contexte similaire. Une idée similaire est utilisée pour résoudre le problème de liaison d'entité. De plus, le contexte dans le graphique ne signifie pas les objets voisins de cet objet, mais leurs descriptions de chaînes. Plus formellement, le contexte d'un objet dans un graphique sera considéré comme toutes les lignes adjacentes à celui-ci, ainsi que les noms des objets qui lui sont incidents et les types. En figue. 2 lignes appartenant au contexte de cet objet sont surlignées en gras.


Figure. 2. Contexte d'objet Il

existe plusieurs façons de travailler avec des chaînes. Tout d'abord, considérer la coïncidence des chaînes, les faire correspondre dans leur ensemble, c'est-à-dire en ne prenant en compte que la coïncidence complète. Deuxièmement, nous pouvons utiliser la chaîne comme un sac de mots, diviser la chaîne en mots et sacrifier l'ordre. Nous utilisons les deux approches.

Les chaînes peuvent être utilisées simultanément ou regroupées selon les types de relations par lesquelles elles sont associées à l'objet. Les correspondances absolues et relatives par groupe sont également prises en compte.

Prenons deux objets: Lionel Messi (Lionel Messi) et Lionel Richie (Lionel Richie), tab. 2. La

table. 2. Quelques relations pour les objets Lionel Messi et Lionel Richie.

Nom de la relationLionel MessiLionel Richie
NomLionel Messi"Lionel Richie"
anniversaire24 juin 1987"20 juin 1949"
club de footballFC Barcelona-

Les noms ne correspondent pas entièrement, donc une correspondance complète dans le nom sera nulle. Mais le nombre de correspondances de mots dans le nom est 1, car le nom d'origine «Lionel» correspond aux deux objets. Le coefficient Jacquard (le rapport entre la taille de l'intersection et la taille de l'union) pour le nom sera de 0,2:

J(Messi,Richie)=|«Lionel»||«»,«»,«Lionel»,«Messi»,«Richie»|


Nous n'avons pas immédiatement compris que si un objet n'a pas la bonne relation, alors cela n'a aucun sens de se précipiter et d'écrire zéro dans ce signe, il vaut mieux écrire la valeur manquante. Après tout, lorsque nous ajoutons un graphique thématique à un grand graphique, il n'a souvent pas de relation, et vous devez être en mesure de distinguer les cas où les deux relations ne correspondent pas et lorsque l'un des objets n'a tout simplement pas la relation nécessaire . Suivant cette logique, le nombre de mots correspondants pour la relation football_club sera Valeur manquante. Le nombre de correspondances de lignes complètes dans toutes les relations est nul et le nombre de mots correspondants est de deux («Lionel» et «June»).

La cote des meilleures fonctionnalités utilisées par le modèle est indiquée sur la Fig. 3.


Figure. 3. Les signes les plus importants utilisés

Le meilleur attribut de notre modèle est la coïncidence relative totale des mots. Ce nom complexe cache la somme des coefficients Jacquard pour toutes les relations. Il est intéressant de noter que si nous éliminons complètement tout apprentissage automatique de cette tâche et laissons un seuil plus ou moins adéquat de la valeur de cet attribut, la qualité du modèle parF1-la mesure ne baissera que de 20%. Si nous prenons les signes décrits ci-dessus, leur apprenons XGBoost hors de la boîte, 250 arbres avec une hauteur de 4, alors nous obtenons de très bonnes mesures.

Table. 3. Mesures du modèle de qualité sur les données de test.

Nom métriqueValeur
Précision0,961531
Intégralité (rappel)0,963220
F10,962375
Auc0,999589

Mais il y a un problème: sur ces métriques, certains objets que nous ne collons pas ne sont pas visibles. Ce sont les soi-disant «gros objets» qui ont de nombreuses relations. Villes, pays, occupation - ce sont les objets qui sont associés à un grand nombre d'autres objets. En figue. La figure 4 montre à quoi cela pourrait ressembler sur SERP. Tout semble assez inoffensif:


Figure. 4. Le problème des "gros" objets

. Nous avons des doublons sur la carte. Il semblerait que ce soit correct, mais en fait le problème est beaucoup plus profond, la cohérence des données en souffre. En effet, dans nos données d'entraînement, il n'y a aucun objet de ce type. Ici, il est nécessaire d'appliquer une approche différente, d'utiliser un grand nombre de relations de ces objets pour leur propre bénéfice. En figue. 5 montre un schéma de cette approche. Soit deux objets X et Y, qui sont reliés par le classificateur. Ces objets appartiennent à différents graphiques et chaque objet est associé à d'autres objets dans son graphique. L'objet X est associé aux objets A, B, C via des relationsr1, r2, r3et l'objet Y avec les objets D, E et F à l'aide de relations r1, r2et r4. Mais maintenant, nous savons que les objets X et Y sont en fait un objet du monde réel.


Figure. 5. Collage supplémentaire Avançons

deux hypothèses:

  • H1:P(D|A)=p=P(D|¬A)- un objet Dpas connecté en aucune façon et se produit indépendamment de l'objet A.
  • H2:P(D|A)=p1p2=P(D|¬A)- une sorte de relation entre Det Atout est comme ça.

Ensuite, nous pouvons appliquer le test du rapport de vraisemblance et accepter l'une des deux hypothèses. Ainsi, nous pouvons coller ensemble de gros objets.

La solution finale s'est avérée assez universelle, de sorte qu'il est possible de coller des doublons pour d'autres sources thématiques, augmentant constamment la couverture et la profondeur des sujets dans le graphique des connaissances.

Conclusion


L'article considère l'une des solutions possibles au problème du collage d'objets identiques de graphes de connaissances différents. Lorsque le graphique des connaissances est déjà construit, nous pouvons afficher des cartes d'informations sur la page avec les résultats de la recherche, utiliser les connaissances du graphique pour répondre aux faits, ou proposer une autre application intéressante pour plaire aux utilisateurs.

J'espère que c'était intéressant de lire un peu comment tout cela fonctionne de l'intérieur. S'il y a des moments incompréhensibles, posez des questions, j'essaierai d'y répondre.

All Articles