🚀 Essayez Zilliz Cloud, la version entièrement gérée de Milvus, gratuitement—découvrez des performances 10x plus rapides ! Essayez maintenant>>

milvus-logo
LFAI
  • Home
  • Blog
  • Recommandation de contenu à l'aide de la recherche vectorielle sémantique

Recommandation de contenu à l'aide de la recherche vectorielle sémantique

  • Scenarios
June 08, 2021
milvus

Avec 71 % des Américains qui obtiennent leurs recommandations d'actualités à partir de plateformes sociales, le contenu personnalisé est rapidement devenu le mode de découverte des nouveaux médias. Qu'il s'agisse de rechercher des sujets spécifiques ou d'interagir avec des contenus recommandés, tout ce que les utilisateurs voient est optimisé par des algorithmes pour améliorer le taux de clics, l'engagement et la pertinence. Sohu est un groupe chinois de médias en ligne, de vidéo, de recherche et de jeux, coté au NASDAQ. Il s'est appuyé sur Milvus, une base de données vectorielles open-source créée par Zilliz, pour créer un moteur de recherche vectorielle sémantique dans son application d'actualités. Cet article explique comment l'entreprise a utilisé les profils des utilisateurs pour affiner les recommandations de contenu personnalisées au fil du temps, améliorant ainsi l'expérience et l'engagement des utilisateurs.

Les profils des utilisateurs de Sohu News sont construits à partir de l'historique de navigation et ajustés au fur et à mesure que les utilisateurs recherchent et interagissent avec le contenu des actualités. Le système de recommandation de Sohu utilise la recherche vectorielle sémantique pour trouver des articles d'actualité pertinents. Le système identifie un ensemble de tags susceptibles d'intéresser chaque utilisateur en fonction de son historique de navigation. Il recherche ensuite rapidement les articles pertinents et trie les résultats en fonction de leur popularité (mesurée par le CTR moyen), avant de les proposer aux utilisateurs.

Le New York Times publie à lui seul 230 articles par jour, ce qui donne une idée de l'ampleur du nouveau contenu qu'un système de recommandation efficace doit être capable de traiter. L'ingestion de gros volumes d'informations exige une recherche de similarités à la milliseconde et une mise en correspondance des étiquettes avec le nouveau contenu toutes les heures. Sohu a choisi Milvus parce qu'il traite des ensembles de données massifs de manière efficace et précise, réduit l'utilisation de la mémoire pendant la recherche et prend en charge les déploiements à hautes performances.

Comprendre le flux de travail d'un système de recommandation de nouvelles

La recommandation de contenu basée sur la recherche sémantique vectorielle de Sohu repose sur le modèle sémantique structuré profond (DSSM), qui utilise deux réseaux neuronaux pour représenter les requêtes des utilisateurs et les articles d'actualité sous forme de vecteurs. Le modèle calcule la similarité en cosinus des deux vecteurs sémantiques, puis le lot d'actualités le plus similaire est envoyé au pool de candidats à la recommandation. Ensuite, les articles sont classés en fonction de leur CTR estimé, et ceux dont le taux de clics prédit est le plus élevé sont affichés aux utilisateurs.

Codage des articles d'actualité en vecteurs sémantiques avec BERT-as-service

Pour encoder les articles d'actualité en vecteurs sémantiques, le système utilise l'outil BERT-as-service. Si le nombre de mots d'un élément de contenu dépasse 512 lors de l'utilisation de ce modèle, une perte d'informations se produit au cours du processus d'intégration. Pour y remédier, le système extrait d'abord un résumé et l'encode dans un vecteur sémantique à 768 dimensions. Ensuite, les deux sujets les plus pertinents de chaque article sont extraits, et les vecteurs de sujets pré-entraînés correspondants (200 dimensions) sont identifiés sur la base de l'ID du sujet. Ensuite, les vecteurs thématiques sont intégrés au vecteur sémantique de 768 dimensions extrait du résumé de l'article, formant ainsi un vecteur sémantique de 968 dimensions.

De nouveaux contenus arrivent en permanence par Kafta et sont convertis en vecteurs sémantiques avant d'être insérés dans la base de données Milvus.

Extraction d'étiquettes sémantiquement similaires à partir de profils d'utilisateurs avec BERT-as-service

L'autre réseau neuronal du modèle est le vecteur sémantique de l'utilisateur. Des étiquettes sémantiquement similaires (par exemple, coronavirus, covid, COVID-19, pandémie, nouvelle souche, pneumonie) sont extraites des profils d'utilisateurs en fonction des intérêts, des requêtes de recherche et de l'historique de navigation. La liste des balises acquises est triée en fonction de leur poids et les 200 premières sont divisées en différents groupes sémantiques. Les permutations des étiquettes au sein de chaque groupe sémantique sont utilisées pour générer de nouvelles phrases d'étiquettes, qui sont ensuite encodées dans des vecteurs sémantiques par l'intermédiaire de BERT-aservice

Pour chaque profil d'utilisateur, les ensembles de mots-clés ont un ensemble correspondant de sujets qui sont marqués par un poids indiquant le niveau d'intérêt de l'utilisateur. Les deux sujets les plus importants parmi tous les sujets pertinents sont sélectionnés et encodés par le modèle d'apprentissage machine (ML) pour être insérés dans le vecteur sémantique de l'étiquette correspondante, formant ainsi un vecteur sémantique de l'utilisateur à 968 dimensions. Même si le système génère les mêmes étiquettes pour différents utilisateurs, des poids différents pour les étiquettes et leurs sujets correspondants, ainsi qu'une variance explicite entre les vecteurs de sujets de chaque utilisateur, garantissent que les recommandations sont uniques

Le système est capable de faire des recommandations d'actualités personnalisées en calculant la similarité en cosinus des vecteurs sémantiques extraits à la fois des profils d'utilisateurs et des articles d'actualité.

Sohu01.jpg Sohu01.jpg

Calcul de nouveaux vecteurs sémantiques de profils d'utilisateurs et insertion dans Milvus

Les vecteurs sémantiques des profils d'utilisateurs sont calculés quotidiennement, les données de la période de 24 heures précédente étant traitées le soir suivant. Les vecteurs sont insérés individuellement dans Milvus et exécutés dans le processus d'interrogation afin de fournir aux utilisateurs des résultats d'actualité pertinents. Le contenu des actualités est intrinsèquement d'actualité, ce qui nécessite un calcul toutes les heures pour générer un fil d'actualité contenant un contenu dont le taux de clics prédit est élevé et qui est pertinent pour les utilisateurs. Le contenu des actualités est également trié en partitions par date, et les anciennes actualités sont éliminées quotidiennement.

Réduction du temps d'extraction des vecteurs sémantiques de plusieurs jours à quelques heures

L'extraction de contenu à l'aide de vecteurs sémantiques nécessite de convertir chaque jour des dizaines de millions de mots-clés en vecteurs sémantiques. Il s'agit d'un processus fastidieux qui prendrait plusieurs jours, même en utilisant des processeurs graphiques (GPU), qui accélèrent ce type de calcul. Pour résoudre ce problème technique, les vecteurs sémantiques issus de l'intégration précédente doivent être optimisés de manière à ce que les vecteurs sémantiques correspondants soient directement récupérés lorsque des mots-clés similaires font surface.

Le vecteur sémantique de l'ensemble existant de phrases-clés est stocké, et un nouvel ensemble de phrases-clés généré quotidiennement est encodé dans des vecteurs MinHash. La distance de Jaccard est utilisée pour calculer la similarité entre le vecteur MinHash de la nouvelle phrase-clé et le vecteur de la phrase-clé sauvegardée. Si la distance de Jaccard dépasse un seuil prédéfini, les deux ensembles sont considérés comme similaires. Si le seuil de similarité est atteint, les nouvelles phrases peuvent exploiter les informations sémantiques des enregistrements précédents. Les tests suggèrent qu'une distance supérieure à 0,8 devrait garantir une précision suffisante dans la plupart des situations.

Grâce à ce processus, la conversion quotidienne des dizaines de millions de vecteurs mentionnés ci-dessus est ramenée de plusieurs jours à environ deux heures. Bien que d'autres méthodes de stockage des vecteurs sémantiques puissent être plus appropriées en fonction des exigences spécifiques d'un projet, le calcul de la similarité entre deux mots-clés à l'aide de la distance de Jaccard dans une base de données Milvus reste une méthode efficace et précise dans une grande variété de scénarios.

Sohu02.jpg Sohu02.jpg

Surmonter les "mauvais cas" de la classification des textes courts

Lors de la classification de textes d'actualité, les articles courts ont moins de caractéristiques à extraire que les articles plus longs. C'est pourquoi les algorithmes de classification échouent lorsque des contenus de différentes longueurs sont traités par le même classificateur. Milvus aide à résoudre ce problème en recherchant plusieurs éléments d'information sur la classification des textes longs avec une sémantique similaire et des scores fiables, puis en utilisant un mécanisme de vote pour modifier la classification des textes courts.

Identification et résolution des textes courts mal classés

La classification précise de chaque article d'actualité est essentielle pour fournir des recommandations de contenu utiles. Étant donné que les articles courts ont moins de caractéristiques, l'application du même classificateur à des articles de longueurs différentes entraîne un taux d'erreur plus élevé pour la classification des textes courts. L'étiquetage humain est trop lent et imprécis pour cette tâche, c'est pourquoi BERT-as-service et Milvus sont utilisés pour identifier rapidement les textes courts mal classés dans les lots, les reclasser correctement, puis utiliser les lots de données comme corpus pour l'entraînement contre ce problème.

BERT-as-service est utilisé pour coder en vecteurs sémantiques un nombre total de cinq millions d'articles d'actualité longs dont le score du classificateur est supérieur à 0,9. Après avoir inséré les articles longs dans Milvus, les nouvelles courtes sont codées en vecteurs sémantiques. Chaque vecteur sémantique de nouvelles courtes est utilisé pour interroger la base de données Milvus et obtenir les 20 premiers articles longs présentant la plus grande similarité en cosinus avec la nouvelle courte cible. Si 18 des 20 articles longs les plus similaires sur le plan sémantique semblent appartenir à la même classification et que celle-ci diffère de celle de l'article court interrogé, la classification de l'article court est considérée comme incorrecte et doit être ajustée pour s'aligner sur les 18 articles longs.

Ce processus permet d'identifier et de corriger rapidement les classifications inexactes des textes courts. Les statistiques d'échantillonnage aléatoire montrent qu'une fois les classifications de textes courts corrigées, la précision globale de la classification des textes dépasse 95 %. En tirant parti de la classification de textes longs à haute fiabilité pour corriger la classification de textes courts, la majorité des cas de mauvaise classification sont corrigés en peu de temps. Il s'agit également d'un bon corpus pour l'entraînement d'un classificateur de textes courts.

![Sohu03.jpg](https://assets.zilliz.com/Sohu03_a43074cf5f.jpg "Organigramme de découverte des "mauvais cas" de classification de textes courts.")

Milvus peut alimenter la recommandation de contenu d'actualités en temps réel et plus encore

Milvus a considérablement amélioré les performances en temps réel du système de recommandation de nouvelles de Sohu et a également renforcé l'efficacité de l'identification des textes courts mal classés. Si vous souhaitez en savoir plus sur Milvus et ses différentes applications :

  • Lisez notre blog.
  • Interagissez avec notre communauté open-source sur Slack.
  • Utilisez ou contribuez à la base de données vectorielle la plus populaire au monde sur GitHub.
  • Testez et déployez rapidement des applications d'IA avec notre nouveau bootcamp.

Like the article? Spread the word

Continuer à Lire