Maison >Périphériques technologiques >IA >Application de l'apprentissage profond dans l'analyse de la signification des mots de recherche Ctrip

Application de l'apprentissage profond dans l'analyse de la signification des mots de recherche Ctrip

王林
王林avant
2023-04-11 18:40:03883parcourir

À propos de l'auteur

L'équipe R&D Big Data et IA du département R&D de Ctrip Tourism fournit à la division tourisme une richesse de produits technologiques et de capacités techniques en matière d'IA.

1. Introduction générale

La recherche est l'un des aspects les plus importants du commerce électronique. La plupart des utilisateurs utilisent la recherche pour trouver les produits qu'ils souhaitent. Par conséquent, la recherche est le moyen le plus direct pour les utilisateurs d'exprimer leurs intentions. source de trafic avec le taux de conversion le plus élevé. La grande majorité des recherches de commerce électronique sont effectuées en saisissant des termes de recherche (requête) dans le champ de recherche. Par conséquent, l'analyse de la signification et la compréhension de l'intention des termes de recherche sont devenues une partie importante de la recherche.

L'analyse de la signification des mots de recherche grand public et la compréhension des requêtes nécessitent des étapes telles que la correction des erreurs, le remplacement des synonymes, la segmentation des mots, le marquage des parties du discours, la reconnaissance des entités, la reconnaissance des intentions, la pondération de l'importance des mots et la perte des mots. Prenons l'exemple de la recherche dans le scénario du tourisme, comme le montre la figure 1. Lorsque l'utilisateur saisit « Yunnan Xiangge Lira » comme requête dans la zone de recherche, le moteur de recherche doit d'abord corriger le terme de recherche afin de faciliter la suite. étapes. Analysez le contenu que l’utilisateur souhaite rechercher ; si nécessaire, un remplacement de synonyme sera effectué. Ensuite, effectuez une segmentation des mots et un marquage des parties du discours sur les termes de recherche pour identifier « Yunnan » en tant que province et « Shangri-La » en tant que ville ou marque d'hôtel. Ensuite, une reconnaissance d'entité sera effectuée pour rappeler les entités correspondant à. "Yunnan" et "Shangri-La" dans l'identifiant de la base de données en arrière-plan.

A cette époque, un désaccord est apparu. "Shangri-La" est peut-être à la fois une ville et une marque hôtelière. Lorsque les utilisateurs effectuent une recherche, la possibilité de prédire les catégories et entités correctes est d'une grande importance pour l'affichage précis des résultats de recherche et l'amélioration de l'expérience utilisateur. Par conséquent, nous devons identifier la catégorie que l'utilisateur souhaite réellement rechercher et trouver l'entité correspondante, sinon des résultats que l'utilisateur ne souhaite pas peuvent être donnés au premier rang de la page de liste de recherche. À en juger par les connaissances préalables des gens, lorsque les utilisateurs recherchent « Yunnan Shangri-La », il est très probable qu'ils souhaitent rechercher une ville. L'étape d'identification de l'intention consiste à réaliser cette fonction et à identifier la véritable intention de recherche de l'utilisateur, qui représente le « Shangri-La » de la ville.

Vous pouvez ensuite entrer dans l'étape de rappel de la recherche. Le rappel est principalement chargé de trouver des produits ou du contenu liés à l'intention du terme de recherche. Après avoir obtenu les identifiants du « Yunnan » et du « Shangri-La » au cours des étapes précédentes, vous pouvez facilement rappeler des produits ou du contenu liés à la fois au « Yunnan » et au « Shangri-La ». Cependant, parfois, les résultats du rappel sont vides ou trop rares. À ce stade, l'expérience utilisateur n'est pas bonne. Par conséquent, lorsque les résultats du rappel sont vides ou trop rares, une perte de mots et des opérations de rappel secondaires sont souvent nécessaires. De plus, certains mots omis ou qui interfèrent avec la recherche peuvent également être traités en perdant des mots.

Les mots dits perdus signifient perdre des mots relativement sans importance ou peu liés dans les termes de recherche et les rappeler à nouveau. Alors, comment mesurer l’importance ou la proximité de chaque mot ? Ici, nous devons introduire le module de pondération des termes, qui traite chaque mot comme un terme et calcule le poids de chaque terme à l'aide d'algorithmes ou de règles. Le poids de chaque terme détermine directement l'ordre d'importance et de proximité des termes. Par exemple, en supposant que le poids du terme "Yunnan" est de 0,2 et le poids du terme "Shangri-La" est de 0,8, alors si vous avez besoin de perdre des mots, vous devez d'abord perdre "Yunnan" et conserver "Shangri-La".

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

Figure 1 Étapes d'analyse de la signification des mots de recherche et de compréhension des requêtes

L'identification traditionnelle de l'intention de recherche utilisera la correspondance du vocabulaire, les statistiques de probabilité de catégorie et les règles définies artificiellement. La pondération des termes traditionnelle utilise également la correspondance de vocabulaire et des méthodes statistiques. Par exemple, sur la base des titres et du contenu de tous les produits, des données telles que TF-IDF, les informations mutuelles entre les mots précédents et suivants et l'entropie des voisins gauche et droit sont calculées et directement stockées. dans des dictionnaires et des partitions, permettant une utilisation en ligne, il peut être utilisé pour aider au jugement basé sur certaines règles. Par exemple, les noms propres de l'industrie donnent directement des poids de terme plus élevés, et les particules donnent directement des poids de terme inférieurs.

Cependant, les algorithmes traditionnels de reconnaissance des intentions de recherche et de pondération des termes ne peuvent pas atteindre des taux de précision et de rappel élevés, en particulier ne peuvent pas gérer certains termes de recherche rares, de nouvelles technologies sont donc nécessaires pour améliorer la précision et le rappel de ces deux modules, ainsi que pour les améliorer. la capacité de s’adapter à des termes de recherche rares. De plus, en raison de la fréquence d'accès élevée, l'analyse de la signification des mots de recherche nécessite une vitesse de réponse très rapide. Dans le scénario de recherche de voyage, la vitesse de réponse doit souvent atteindre le niveau de la milliseconde proche d'un chiffre, ce qui constitue un défi majeur pour le chercheur. algorithme.

2. Analyse des problèmes

Afin d'améliorer la précision et le rappel, nous utilisons l'apprentissage en profondeur pour améliorer la reconnaissance des intentions de recherche et les algorithmes de pondération des termes. L'apprentissage profond peut résoudre efficacement la reconnaissance d'intention et la pondération des termes dans diverses situations grâce à un apprentissage par échantillons. En outre, l'introduction de modèles linguistiques pré-entraînés à grande échelle pour le traitement du langage naturel peut renforcer davantage les capacités des modèles d'apprentissage profond, réduire la quantité d'étiquetage des échantillons et permettre d'appliquer l'apprentissage profond à la recherche, qui avait à l'origine un niveau élevé. les frais d'étiquetage.

Mais le problème rencontré par l'apprentissage profond est qu'en raison de la grande complexité du modèle et du grand nombre de couches de réseau neuronal, la vitesse de réponse ne peut pas répondre aux exigences élevées de la recherche. Par conséquent, nous utilisons la distillation et la compression du modèle pour réduire la complexité du modèle et réduire la consommation de temps du modèle d'apprentissage en profondeur tout en réduisant légèrement la précision et le taux de rappel, garantissant ainsi une vitesse de réponse plus rapide et des performances plus élevées.

3. Reconnaissance d'intention

La reconnaissance de catégorie est le composant principal de la reconnaissance d'intention. La reconnaissance de catégorie dans la reconnaissance d'intention est une méthode dans laquelle, après la segmentation de la requête de mot de recherche, le résultat de la segmentation est marqué avec la catégorie à laquelle il appartient et la valeur de probabilité correspondante est donnée. L'analyse de l'intention des termes de recherche de l'utilisateur est utile pour analyser les besoins de recherche directe de l'utilisateur, contribuant ainsi à améliorer l'expérience utilisateur. Par exemple, lorsqu'un utilisateur recherche « Yunnan Shangri-La » sur la page de voyage, la catégorie correspondant à « Shangri-La » saisie par l'utilisateur est « ville » au lieu de « marque d'hôtel », ce qui guide les stratégies de recherche ultérieures. biaisé en faveur des intentions de la ville.

Dans le scénario de voyage, les termes de recherche avec des catégories ambiguës saisies par les utilisateurs représentent environ 11 % du total, y compris un grand nombre de termes de recherche sans segmentation de mots. « Aucune segmentation de mots » signifie qu'il n'y a plus de segments détaillés après le traitement de segmentation de mots, et « ambiguïté de catégorie » signifie que le terme de recherche lui-même a plusieurs catégories possibles. Par exemple, lorsqu'un utilisateur saisit « Shangri-La », il n'y a pas de segmentation plus détaillée et il existe plusieurs catégories telles que « ville » et « marque d'hôtel » dans les données de catégorie correspondantes.

Si le terme de recherche lui-même est une combinaison de plusieurs mots, la catégorie peut être clarifiée à travers le contexte du terme de recherche lui-même, et le terme de recherche lui-même sera prioritaire comme cible d'identification. Si la catégorie ne peut pas être déterminée à partir des termes de recherche eux-mêmes, nous ajouterons d'abord les termes de recherche historiques récents de l'utilisateur qui sont différents les uns des autres, ainsi que les enregistrements de clics récents sur la catégorie de produits. Si les informations ci-dessus ne sont pas disponibles, nous ajouterons le positionnement. stations comme corpus supplémentaire. Les termes de recherche originaux sont traités pour obtenir la requête R à identifier.

Ces dernières années, les modèles linguistiques pré-entraînés ont brillé dans de nombreuses tâches de traitement du langage naturel. Dans la reconnaissance de catégorie, nous utilisons les paramètres du réseau d'entraînement du modèle pré-entraîné pour obtenir la caractéristique de mot Outputbert contenant la sémantique contextuelle ; à l'aide du module de conversion de mots, la caractéristique de mot est combinée avec le codage de position :

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

à obtenir la segmentation de mot correspondante. Les fragments de caractères, tels que :

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

représentent les traits de caractère de longueur li correspondant au i-ième segment de mot. Basé sur le fragment de caractère Wi, le module de conversion de mots regroupe les caractéristiques Hwi de chaque mot. Les méthodes d'agrégation peuvent être le pooling maximum, le pooling minimum, le pooling moyen, etc. Les expériences montrent que le pooling maximum a le meilleur effet. La sortie du module est la caractéristique de mot OutputR du mot recherché R ; via un classificateur parallèle, les catégories correspondantes couvertes dans la base de données de catégories sont données pour chaque segment de la caractéristique de mot OutputR du mot recherché, et la catégorie correspondante reçoit la probabilité de correspondance.

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

Figure 2 Diagramme schématique de la structure globale de la reconnaissance des catégories

Le modèle de reconnaissance des catégories est basé sur le modèle BERT-base à 12 couches car le modèle est trop grand et ne répond pas aux exigences de vitesse de réponse. pour le fonctionnement en ligne, nous avons modifié le modèle Knowledge Distillation qui convertit le réseau d'un grand réseau en un petit réseau, conservant des performances proches de celles du grand réseau tout en répondant aux exigences de latence des opérations en ligne.

Le modèle de reconnaissance de catégorie initialement formé est utilisé comme réseau d'enseignants, et le résultat de sortie du réseau d'enseignants est utilisé comme cible du réseau d'étudiants. Le réseau d'étudiants est formé de sorte que le résultat p du réseau d'étudiants soit proche de. q. Par conséquent, nous pouvons écrire la fonction de perte comme :

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

Ici CE est l'entropie croisée (Cross Entropy), symétriqueKL est la divergence KL symétrique (divergence Kullback-Leibler), y est le codage à chaud de l'étiquette réelle. , q est la sortie du réseau d'enseignants et p est la sortie du résultat du réseau d'étudiants.

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

Figure 3 Diagramme schématique de la distillation des connaissances

Après la distillation des connaissances, la reconnaissance des catégories peut toujours atteindre des taux de précision et de rappel élevés, et en même temps, le temps de réponse global peut être atteint à 95 lignes de environ 5 ms.

Après l'identification de la catégorie, la liaison des entités et d'autres étapes sont nécessaires pour terminer le processus d'identification de l'intention finale. Pour un contenu spécifique, veuillez vous référer à l'article « Exploration et pratique de la technologie Ctrip Entity Link »​, qui ne sera pas développé dans cet article.

4. Pondération des termes

Pour les termes de recherche saisis par l'utilisateur, différents termes ont une importance différente par rapport à l'attrait sémantique principal de l'utilisateur. Dans le classement de rappel secondaire de la recherche, vous devez vous concentrer sur les termes de grande importance et, en même temps, vous pouvez ignorer les termes de faible importance lorsque vous perdez des mots. En calculant le poids de chaque terme de recherche saisi par l'utilisateur, le produit le plus proche de l'intention de l'utilisateur est rappelé deux fois pour améliorer l'expérience utilisateur.

Tout d'abord, nous devons trouver de véritables données de commentaires des utilisateurs en ligne sous forme de données d'annotation. La saisie de l'utilisateur dans la zone de recherche et les clics sur les mots associés reflètent dans une certaine mesure l'accent mis par l'utilisateur sur les mots dans la phrase de recherche. Par conséquent, nous sélectionnons les données saisies et cliquons sur les mots associés, les filtrons manuellement et les annotons secondairement en tant qu'annotation. des données du modèle de pondération des termes.

En termes de prétraitement des données, les données annotées que nous pouvons obtenir sont des phrases et leurs mots-clés correspondants. Afin de rendre la répartition des poids pas trop extrême, un certain nombre de petits poids sont attribués aux non-mots-clés, et les poids restants. sont distribués Pour chaque mot d'un mot-clé, si une certaine phrase apparaît plusieurs fois dans les données et que les mots-clés correspondants sont différents, les poids de ces mots-clés seront attribués en fonction de la fréquence du mot-clé, et chaque mot sera ensuite attribué. poids.

La partie modèle essaie principalement BERT comme méthode d'extraction de fonctionnalités et s'adapte en outre au poids de chaque terme. Pour une entrée donnée, convertissez-la en une forme que BERT peut accepter, compressez le tenseur après BERT à travers la couche entièrement connectée, obtenez un vecteur unidimensionnel, effectuez le traitement Softmax et utilisez ce vecteur pour pondérer le vecteur résultat pour l'ajustement. , le cadre du modèle spécifique est présenté dans la figure ci-dessous :

Application de lapprentissage profond dans lanalyse de la signification des mots de recherche Ctrip

Figure 4 Cadre du modèle de pondération des termes

Étant donné que le BERT chinois est basé sur des caractères, les poids de tous les mots dans chaque terme doivent être additionnés, obtenant ainsi finalement le poids du terme.

Dans l'ensemble du cadre du modèle, à l'exclusion de certains hyperparamètres de formation, les parties réglables comprennent principalement deux parties : Premièrement, lors de la génération de l'intégration via BERT, vous pouvez choisir la dernière couche de BERT, ou combiner la première et la dernière couche de BERT. L'intégration est générée de manière couche par couche ; la seconde concerne la sélection de la fonction de perte, en plus d'utiliser la perte MSE pour mesurer l'écart entre le poids prédit et le poids réel, nous essayons également d'utiliser la somme des poids prédits. de mots sans importance comme perte pour le calcul, mais cette perte est plus adaptée à une utilisation avec un seul mot-clé.

Le modèle génère finalement chaque poids de terme sous la forme d'une décimale. Par exemple, les résultats de poids de terme de ["Shanghai", "'s", "Disney"] sont [0,3433, 0,1218, 0,5349].

Ce modèle est destiné à la recherche et a des exigences strictes en matière de vitesse de réponse. Étant donné que le modèle BERT est globalement relativement volumineux, il est difficile de répondre aux exigences de vitesse de réponse dans la partie inférence. Par conséquent, à l'instar du modèle de reconnaissance de catégorie, nous distillons davantage le modèle BERT formé pour répondre aux exigences en ligne. Dans ce projet, quelques couches de transformateurs sont utilisées pour adapter l'effet du transformateur à 12 couches de base BERT. En fin de compte, la vitesse d'inférence globale du modèle est environ 10 fois plus rapide avec la perte d'une partie acceptable du modèle. performance. Au final, l'ensemble des 95 lignes du service en ligne Term Weighting peut atteindre environ 2 ms.

5. Avenir et perspectives

Après avoir utilisé l'apprentissage profond, la recherche de voyages a considérablement amélioré ses capacités d'analyse de la signification des mots pour les termes de recherche rares à longue traîne. Dans les scénarios de recherche en ligne réels actuels, les méthodes d'apprentissage en profondeur sont généralement combinées avec les méthodes traditionnelles d'analyse de la signification des mots de recherche, qui peuvent non seulement garantir des performances stables des termes de recherche courants dans la tête, mais également améliorer les capacités de généralisation.

À l'avenir, l'analyse de la signification des mots de recherche s'engage à offrir une meilleure expérience de recherche aux utilisateurs. Avec la mise à niveau de la technologie matérielle et de la technologie de l'IA, l'informatique haute performance et l'informatique intelligente deviennent de plus en plus matures, et l'analyse de la signification des mots de recherche. utiliserons la reconnaissance d'intention et la pondération des termes. À l'avenir, nous évoluerons vers des objectifs de performance plus élevés. En outre, des modèles de pré-formation à plus grande échelle et des modèles de pré-formation dans le domaine du tourisme contribueront à améliorer encore la précision et le taux de rappel du modèle. L'introduction de davantage d'informations et de connaissances sur les utilisateurs contribuera à améliorer l'effet de la reconnaissance des intentions en ligne. Les commentaires des utilisateurs et l'itération du modèle contribuent à améliorer l'efficacité de la pondération des termes. Ce sont les directions que nous essaierons à l’avenir.

En plus de la reconnaissance d'intention et de la pondération des termes, d'autres fonctions de recherche, telles que le marquage d'une partie du discours, la correction d'erreurs, etc., peuvent également utiliser la technologie d'apprentissage en profondeur à l'avenir pour obtenir des fonctions plus puissantes et de meilleurs résultats tout en répondant aux exigences. exigences de vitesse de réponse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer