Le film dans lequel il y avait de la terre. Recherche sur Yandex et bref historique de la recherche par sens

Parfois, les gens se tournent vers Yandex pour trouver un film dont le nom leur est sorti de la tĂȘte. Ils dĂ©crivent l'intrigue, des scĂšnes mĂ©morables, des dĂ©tails saisissants: par exemple, [quel est le nom du film oĂč un homme choisit une pilule rouge ou bleue]. Nous avons dĂ©cidĂ© d'Ă©tudier les descriptions des films oubliĂ©s et de dĂ©couvrir ce dont les gens se souviennent le plus dans les films.

Aujourd'hui, nous partagerons non seulement un lien vers nos recherches , mais nous parlerons Ă©galement briĂšvement de l'Ă©volution de la recherche sĂ©mantique de Yandex. Vous apprendrez quelles technologies aident la recherche Ă  trouver la rĂ©ponse mĂȘme s'il est tout simplement impossible de formuler la demande exacte.

Et nous avons également ajouté des curseurs d'énigmes avec des exemples de demandes de personnes réelles - sentez-vous comme un moteur de recherche et essayez de deviner la réponse.


Tous les moteurs de recherche ont commencĂ© par une recherche de mots. Yandex dĂ©jĂ  au dĂ©part Ă©tait capable de prendre en compte la morphologie de la langue russe, mais c'Ă©tait toujours la mĂȘme recherche de mots Ă  partir d'une requĂȘte sur des pages du rĂ©seau. Nous avons conservĂ© des listes de toutes les pages connues pour chaque mot. Si la demande contenait une phrase, il suffisait de traverser les listes de mots - voici la rĂ©ponse. Cela fonctionnait trĂšs bien Ă  l'Ă©poque oĂč il y avait peu de sites, et la question du classement n'Ă©tait pas encore aussi aiguĂ«.

Runet s'est dĂ©veloppĂ©, les sites sont devenus de plus en plus nombreux. Deux autres facteurs ont Ă©tĂ© ajoutĂ©s au facteur de croisement de mots. D'une part, les utilisateurs eux-mĂȘmes nous ont aidĂ©s. Nous avons commencĂ© Ă  rĂ©flĂ©chir aux sites et aux requĂȘtes qu'ils choisissaient. Il n'y a pas de correspondance exacte des mots, mais le site rĂ©sout-il le problĂšme humain? Ceci est un signal utile. En revanche, les liens entre sites qui ont permis d'Ă©valuer la signification des pages sont venus Ă  la rescousse.

Trois facteurs sont trÚs peu nombreux. Surtout quand ils sont souvent essayés par les optimiseurs de moteur de recherche trÚs talentueux. Mais digérer davantage à la main était difficile. Et c'est ici qu'a commencé l'Úre de l'apprentissage automatique. En 2009, nous introduisons Matrixnet basé sur le boost de gradient (plus tard, cette technologie a formé la base de la bibliothÚque open source plus avancée CatBoost ).

Depuis lors, il y a eu de plus en plus de facteurs, car nous n'avons plus Ă  rechercher manuellement les relations entre eux. Une voiture l'a fait pour nous.

Pour l'histoire de tous les changements ultérieurs dans la recherche, non seulement le message, mais aussi les livres suffiront, nous allons donc essayer de nous concentrer sur les plus importants.


Le classement n'est pas seulement une comparaison des mots de la requĂȘte et de la page depuis longtemps. Deux exemples.

En 2014, nous avons introduit la technologie d'annotation de documents avec des requĂȘtes caractĂ©ristiques. Supposons que dans le passĂ© il y ait eu une demande [une sĂ©rie du BrĂ©sil sur le roi de la viande], pour laquelle une bonne rĂ©ponse est dĂ©jĂ  connue. Ensuite, un autre utilisateur saisit une requĂȘte [la sĂ©rie brĂ©silienne dans laquelle il y avait un roi de la viande et un roi du lait], pour laquelle la machine ne connaĂźt pas encore la rĂ©ponse. Mais ces requĂȘtes ont de nombreux mots communs. C'est un signal que la page trouvĂ©e sur la premiĂšre demande peut ĂȘtre pertinente sur la seconde.

Un autre exemple. Prenons des enquĂȘtes [la sĂ©rie brĂ©silienne dans laquelle il y avait un roi de la viande et un roi du lait] et [un hĂ©ritage fatal en sĂ©rie]. Sur le total, ils n'ont qu'un seul mot - "sĂ©rie", et cela ne suffit pas pour une correspondance explicite des demandes. Dans ce cas, nous avons commencĂ© Ă  prendre en compte l'historique de la recherche. Si deux demandes diffĂ©rentes sont demandĂ©es sur les mĂȘmes sites lors de l'Ă©mission, alors nous pouvons supposer que les demandes sont interchangeables. Ceci est utile car nous allons maintenant utiliser le texte des deux requĂȘtes pour rechercher des pages plus utiles. Mais cela ne fonctionne que pour les demandes rĂ©pĂ©tĂ©es lorsqu'il existe dĂ©jĂ  au moins quelques statistiques. Que faire des nouvelles demandes?

Le manque de statistiques peut ĂȘtre compensĂ© par l'analyse de contenu. Et dans l'analyse de donnĂ©es homogĂšnes (texte, voix, images), les rĂ©seaux de neurones se montrent le mieux. En 2016, nous avons d'abord parlĂ© Ă  la communautĂ© Habr de la technologie Palekh , qui est devenue le point de dĂ©part d'une utilisation plus large des rĂ©seaux de neurones dans la recherche.

Nous avons commencĂ© Ă  former le rĂ©seau neuronal pour comparer la proximitĂ© sĂ©mantique (sĂ©mantique) du texte de la requĂȘte et du titre de la page. Deux textes sont reprĂ©sentĂ©s sous forme de vecteurs dans un espace multidimensionnel de sorte que le cosinus de l'angle entre eux prĂ©dit bien la probabilitĂ© de choisir une page par une personne, et donc la proximitĂ© sĂ©mantique. Cela vous permet d'Ă©valuer la proximitĂ© des significations mĂȘme des textes dans lesquels il n'y a pas d'intersection de mots.

Un exemple d'architecture de couches pour les curieux
image

De la mĂȘme maniĂšre, nous avons commencĂ© Ă  comparer des textes de requĂȘte afin d'identifier des liens entre eux. Un exemple rĂ©el sous le capot d'un moteur de recherche: pour une requĂȘte [la sĂ©rie amĂ©ricaine sur la façon dont la mĂ©thamphĂ©tamine est bouillie], c'est le rĂ©seau de neurones qui trouve les expressions [signifiant mauvais] et [cassant] comme ayant un sens similaire.

Les demandes et les en-tĂȘtes sont dĂ©jĂ  bons, mais nous n'avons pas renoncĂ© Ă  espĂ©rer utiliser les rĂ©seaux de neurones dans le texte intĂ©gral des pages. De plus, lorsque nous recevons une demande de l'utilisateur, nous commençons Ă  sĂ©lectionner les meilleures pages parmi des millions de pages d'index, mais Ă  Palekh, nous avons utilisĂ© des modĂšles de rĂ©seau neuronal uniquement aux toutes derniĂšres Ă©tapes du classement (L3) - pour environ 150 des meilleurs documents. Cela peut entraĂźner la perte de bonnes rĂ©ponses.

image

La raison en est prévisible - ressources limitées et exigences élevées en termes de vitesse de réponse. Les limites strictes des calculs sont liées à un simple fait: vous ne pouvez pas forcer l'utilisateur à attendre. Mais ensuite, nous avons trouvé quelque chose.


En 2017, nous avons présenté la mise à jour de la recherche Korolev, qui comprenait non seulement l'utilisation élargie des réseaux de neurones, mais également un travail sérieux sur l'architecture pour économiser les ressources. Plus en détail, avec des diagrammes de couches et d'autres détails que nous avons déjà racontés dans un autre post sur Habré, mais maintenant nous allons rappeler l'essentiel.

Au lieu de prendre le titre du document et de calculer son vecteur sĂ©mantique lors de l'exĂ©cution de la requĂȘte, vous pouvez prĂ©-calculer ce vecteur et l'enregistrer dans la base de donnĂ©es de recherche. En d'autres termes, nous pouvons faire une partie substantielle du travail Ă  l'avance. Bien sĂ»r, en mĂȘme temps, nous avions besoin de plus d'espace pour stocker des vecteurs, mais cela nous a fait gagner du temps processeur. Mais ce n'est pas tout.

Un autre schéma pour les curieux
image

Nous avons construit un index supplĂ©mentaire. Il est basĂ© sur l'hypothĂšse: si vous prenez une liste suffisamment grande des documents les plus pertinents pour chaque mot ou expression pour une requĂȘte de plusieurs mots, alors parmi eux il y aura des documents qui seront pertinents en mĂȘme temps pour tous les mots. En pratique, cela signifie cela. Pour tous les mots et paires de mots populaires, un index supplĂ©mentaire est formĂ© avec une liste de pages et leur pertinence prĂ©liminaire Ă  la requĂȘte. Autrement dit, nous transfĂ©rons une partie du travail de l'Ă©tape L0 Ă  l'Ă©tape d'indexation et, Ă  nouveau, nous enregistrons.

En conséquence, un changement d'architecture et une redistribution des charges nous ont permis d'utiliser des réseaux de neurones non seulement au stade L3, mais aussi pour L2 et L1. De plus, la possibilité de former un vecteur à l'avance et avec des exigences de performance moins strictes nous a permis d'utiliser non seulement le titre de la page, mais aussi son texte.


Plus c'est plus. Au fil du temps, nous avons commencĂ© Ă  utiliser les rĂ©seaux de neurones au tout dĂ©but du classement. Nous enseignons aux rĂ©seaux de neurones Ă  identifier les modĂšles implicites dans l'ordre des mots et leurs positions relatives. Et mĂȘme pour rĂ©vĂ©ler la similitude sĂ©mantique des textes dans diffĂ©rentes langues. Chacun de ces domaines est attirĂ© par un article distinct, et nous essaierons de revenir avec eux dans un proche avenir.



Aujourd'hui, nous avons rappelé une fois de plus comment les moteurs de recherche apprennent à trouver la réponse dans les conditions d'une vague interrogation et d'un manque d'informations. La recherche de films par leur description n'est pas seulement un cas particulier de telles demandes, mais aussi un grand sujet de recherche . De là, vous apprendrez: ce qui est le plus retenu par les gens du cinéma, avec quels différents genres et cinématographes de différents pays sont associés, quels mouvements de l'intrigue font une impression particuliÚre.

Source: https://habr.com/ru/post/fr464315/


All Articles