Maison > Article > Périphériques technologiques > Modèle de qualité et pratique du système complet de recommandation commerciale de Meituan
Auteur : Yong Haogengen, Wang Xin et autres
L'activité intégrée en magasin de Meituan (ci-après dénommée l'activité globale) est l'un des segments importants de l'activité en magasin de Meituan, couvrant le bain, KTV et industries de la beauté, beauté médicale, parent-enfant, mariage, sports et fitness, divertissement, éducation et formation, ameublement, animaux de compagnie, bars, services de vie et d'autres dizaines de sous-secteurs clés pour répondre aux divers besoins de la vie locale de des centaines de millions d'utilisateurs.
Le système de recommandation est un maillon important pour parvenir à une adéquation efficace de l'offre et de la demande, et constitue le débouché pour la transmission de la valeur des données. La qualité du système de recommandation détermine la perte de l'effet de correspondance. Comme le montre la figure 1 ci-dessous, les données sont traitées par l'entrepôt de données et l'algorithme, puis envoyées à divers systèmes d'entreprise via les services de données. Enfin, elles sont retransférées à l'entrepôt de données via le client, formant un « effet volant ». Les données et la qualité sont exactement cela. Le point clé de l'engrènement des engrenages dans un lien est une condition préalable importante pour améliorer l'efficacité et garantir l'efficacité.
Une assurance qualité doit être réalisée autour de la mesure afin qu'elle soit "visible", "clarifiée" et "corrigée". Cependant, les indicateurs traditionnels de qualité du service backend ne peuvent pas décrire correctement la qualité du « volant de données » actuel. Nous espérons que grâce à la construction d'un modèle de qualité pour un système complet de recommandation commerciale, nous pourrons fournir une nouvelle perspective de réflexion et une référence pratique pour une mesure de la qualité d'un système similaire multi-secteurs d'activité et orientée vers les effets.
Figure 1 « Volant de données » du système de recommandation
Le système de recommandation est un système basé sur les effets et ses caractéristiques de qualité sont différentes des systèmes fonctionnels. Généralement, les systèmes fonctionnels affecteront considérablement l'expérience utilisateur après avoir été rétrogradés. Cependant, si le résultat de la recommandation renvoie A ou A', il est difficile pour les utilisateurs de le remarquer clairement. Mais en fait, si l'effet de correspondance s'aggrave, cela affectera directement l'expérience implicite de l'utilisateur et doit être identifié. Les systèmes fonctionnels construisent généralement des systèmes d'index de qualité dont la convivialité est la base. Dans la pratique commerciale des systèmes complets de recommandation commerciale, nous avons constaté que la convivialité et d'autres indicateurs présentent les limites suivantes :
Dans la construction de qualité, le niveau de défaut était utilisé comme objectif dans le passé. Le cycle de vérification était long et contingent, et la relation entre l'objectif et la dérivation logique des actions n'était pas forte. De plus, la panne elle-même est une réflexion secondaire, et cette approche axée sur les problèmes n'est pas propice à la poursuite des opérations. En général, avec la convivialité comme objectif, il existe divers problèmes dans les calculs de mise en œuvre réels, nous envisageons donc de construire un modèle de qualité pour le système de recommandation, basé sur la convivialité, puis d'ajuster la méthode de calcul pour guider les opérations de qualité raffinées.
Pour construire un modèle de qualité, revenons d'abord à la compréhension de l'essence de la qualité. Selon l'Organisation internationale de normalisation (ISO), la qualité est la somme des caractéristiques qui reflètent la capacité d'une entité à répondre à des « besoins » explicites ou implicites. Un autre concept de qualité couramment utilisé est la stabilité. Le cœur de la stabilité est de permettre au système de fonctionner dans l'état « attendu » pendant une longue période. Qu’il s’agisse de qualité ou de stabilité, il est important de comprendre à quels besoins et attentes le système doit répondre. Dans le scénario de recommandation, cet objet est le produit et l'algorithme. Les produits commerciaux comprennent les scénarios des utilisateurs, résument les besoins des utilisateurs et proposent les exigences du produit à l'équipe de recommandation, ce qui se reflète dans les itérations externes du produit. Dans le même temps, l'équipe du système de recommandation collabore en interne pour apprendre la meilleure stratégie de modèle d'optimisation, qui se reflète dans les itérations des algorithmes au sein de l’équipe de données.
Comme le montre la figure 2 ci-dessous, dans la formule de calcul de la disponibilité, le temps long est mis en avant, tandis que le « besoin » et les « attentes » ne se reflètent que dans la fourniture de services externes. Il y a une certaine rationalité ici. Premièrement, la disponibilité est un indicateur courant dans l'industrie, et la définition doit être généralisée. Ensuite, le point commun et l'essentiel de la qualité sont de fournir des services externes ; les services externes sont pour la plupart fournis dans les catégories « entre » et « aucun », il existe également une certaine marge pour une dégradation des services. Cependant, pour les systèmes de recommandation dont l'objectif principal est l'efficacité, il existe un long spectre de « bons » et de « mauvais » effets entre les fonctions « avec » et « sans ». Dans notre itération de réflexion sur la qualité du système de recommandation, le changement fondamental passe du « oui » et du « non » des services externes aux « bons » et « mauvais » des services externes. C'est aussi le point de départ de la transformation. la méthode de calcul de l’utilisabilité.
Figure 2 La perception des défauts affecte la mesure de la qualité
Le fait de ne pas répondre aux « besoins » ou aux « attentes » produira des défauts, et les défauts sont la cause d'une perte de qualité . Modèle de qualité logicielle ISO/IEC 25010 (2011) Le modèle de qualité logicielle définit les défauts logiciels et peut être considéré comme l'ensemble complet des défauts. Il comprend l'adéquation fonctionnelle, l'efficacité des performances, la compatibilité, la disponibilité, la fiabilité, la sécurité et la maintenabilité. et 31 sous-fonctionnalités de portabilité. Certaines fonctionnalités de qualité ne sont pas couvertes par les services backend (Esthétique de l'interface utilisateur, facilité d'apprentissage, etc.), et certains éléments exceptionnels ne constituent pas la qualité côté C dans les perceptions actuelles (Modularité, coexistence, non- répudiation, fiabilité, etc.) Réutilisabilité etc). En combinant les caractéristiques commerciales et les problèmes de qualité à haute fréquence du système de recommandation, nous nous concentrons à ce stade sur la considération des caractéristiques de qualité illustrées dans la figure 3 ci-dessous comme source de défauts.
Figure 3 Caractéristiques de qualité du système de recommandation
Nous avons constaté que les mesures d'utilisabilité traditionnelles se concentrent principalement sur la fiabilité, l'exhaustivité fonctionnelle et l'exactitude, mais pour la plupart de l'exactitude et de la pertinence fonctionnelles et du manque de mesure de la sécurité, qui sont étroitement liés à la qualité et à l’efficacité des recommandations. L’impact de l’exactitude et de la pertinence sur l’effet est relativement intuitif, tandis que d’autres sont plus indirects. Par exemple, en matière de sécurité, prenons comme exemple l'accès des robots d'exploration. Parce que le comportement d'accès des robots d'exploration n'est pas conforme aux habitudes réelles du comportement humain, cela affectera le recyclage des indicateurs de base tels que l'UVCTR, ce qui entraînera une mauvaise appréciation des effets ; Dans le même temps, si les données du robot ne peuvent pas être identifiées et éliminées, le bruit affectera davantage la précision de la formation du modèle. Les problèmes de qualité des données sont la « pilule empoisonnée » de « l’effet volant » des données, qui générera des retours positifs et amplifiera continuellement les défauts. Nous quantifierons les défauts ci-dessus et élargirons la portée de l'utilisabilité dans le chapitre 4 Règles de calcul.
La disponibilité peut être divisée en méthode de mesure et méthode de calcul : la mesure est ce que l'on appelle souvent N neuf, et le calcul est mesuré en fonction du temps moyen entre les pannes et du temps moyen de récupération. En termes de méthodes de mesure, les méthodes de mesure de la qualité couramment utilisées dans l'industrie sont présentées dans la figure 4 ci-dessous :
Figure 4 Méthodes de mesure
Le choix de quelques points pour la méthode de mesure n'est pas au centre du score de qualité à ce stade. Les N neuf utilisés pour la convivialité elle-même sont assez simples et comparables, nous nous concentrons donc sur la méthode de calcul. En raison du grand nombre de secteurs d'activité complets et du système de recommandation en tant que produit de plate-forme, la relation entre le système et l'entreprise est N:N. Il est difficile de calculer la disponibilité du système actuel pour chaque secteur, projet et entreprise. Une position de trafic peut être attribuée au secteur des loisirs et du divertissement, au projet de destruction de scripts, à une partie du chemin principal d'affichage ou à un type de recommandation de contenu. Ce type d'attribution flexible peut être utilisé pour agréger les calculs. sont les plus appropriés. Comme le montre la figure 5 ci-dessous, si la disponibilité est fonction des demandes, elle peut inclure non seulement les fonctionnalités de qualité qui nous intéressent dans la section précédente, mais également des statistiques de qualité significatives pour l'entreprise dans plusieurs dimensions.
Figure 5 Mesurer la qualité du point de vue des demandes
Selon les idées de construction du chapitre précédent, de défauts en défauts, de "oui" et "non" dans le résultats de la recommandation concernant les « bons » et les « mauvais » effets de la recommandation, de l'ensemble à chaque entreprise, nous décrivons les caractéristiques que devrait avoir un bon score de qualité. Dans ce chapitre, nous nous concentrons sur la logique de calcul des indicateurs, sélectionnons les défauts clés, définissons la « réponse réussie à la demande » et ajoutons la dimension d'agrégation commerciale des scores de qualité.
Combinée aux caractéristiques de qualité décrites au chapitre 3.2, la qualité du système est évaluée du point de vue de la proportion de demandes réussies dans le calcul de la mise en œuvre réelle, elle peut être divisée en quatre niveaux de défauts suivants. :
Si une demande présente un défaut dans une partie quelconque du cycle de vie, le résultat est défini comme une réponse au défaut. Le lien de défaut spécifique est la dimension de l'analyse et de l'exploration. Nous sélectionnons les problèmes typiques (Points douloureux de l'entreprise, problèmes de qualité à haute fréquence) à partir des caractéristiques de qualité du chapitre 3.2 et des quatre aspects des défauts ci-dessus pour le calcul. Prenez la figure 6 ci-dessous comme exemple :
. Figure 6 Méthode de calcul du score de qualité
Les caractéristiques commerciales du système de recommandation complet sont plusieurs secteurs d'activité, de grandes différences sectorielles et de nombreux emplacements de matériaux recommandés. Cela reflète la mesure de la qualité. tous les niveaux pour guider le raffinement. Le fonctionnement est illustré dans la figure 7 ci-dessous :
Figure 7 Analyse d'agrégation de chaque niveau d'activité
Il existe de nombreux services à moyenne et basse fréquence dans le réseau intégré. Dans le temps, la fluctuation du ratio est grandement affectée par la valeur absolue de la demande. Pour ces scénarios, certains petits bits de trafic peuvent être regroupés et surveillés uniquement au niveau de l'industrie ou du projet, à la minute près.
Comme le montre la figure 8 ci-dessous, nous traitons une demande répondue par le système de recommandation comme un comportement de livraison de produit. La proportion de ces demandes qui sont sans défaut est le score de qualité du système de recommandation, qui est. l’indicateur de qualité de sortie de haut niveau. Sur la base du cycle de vie de la demande, des indicateurs d'entrée de premier niveau peuvent être établis pour mesurer l'état de qualité du processus principal, tels que le taux de défauts de rappel, le taux de défauts de tri, etc. Les indicateurs de premier niveau peuvent également être démontés davantage pour obtenir les indicateurs d'entrée de deuxième niveau. Par exemple, lorsque le taux de défauts de rappel est relativement élevé, le taux de rappel nul, le taux de temporisation de rappel, etc. peuvent être mesurés. Les demandes des utilisateurs peuvent également être regroupées verticalement, horizontalement et dans le temps en fonction de l'activité pour obtenir des scores de qualité avec des attributs commerciaux, qui seront plus ciblés et ciblés.
Figure 8 Système d'indicateurs de qualité
Cet ensemble amélioré de scores de qualité, avec les requêtes comme unité de base, résout dans une certaine mesure ses limites par rapport à la méthode de calcul de disponibilité originale : Il est sensible aux défauts et peut inclure l'impact des liaisons de données pour faciliter l'analyse globale de plusieurs dimensions commerciales.
Les statistiques de qualité sont basées sur la granularité des demandes. Dans les services d'application de données, les demandes ne sont qu'une des formes de sortie de données vers le monde extérieur. Après avoir obtenu le score de qualité de base, le cycle de vie de la demande doit être étendu à l'ensemble de la liaison de données, afin que la mesure de la qualité soit complète. A ce moment, nous nous appuyons sur la relation sanguine des données pour associer table de données - système métier - trafic côté C pour construire un portrait panoramique de qualité, comme le montre la figure 9 ci-dessous :
Figure 9 Données relation de sang du système de recommandation
La relation de sang est la relation interpersonnelle générée par le mariage et l'accouchement dans la société humaine, telle que la relation entre parents et enfants, la relation entre frères et sœurs et d'autres relations de parenté qui en dérivent. peut également être fusionné et transformé pour générer des relations de sang de relation. La relation de sang des données est divisée en bases de données, tableaux de données et champs à différents niveaux, qui sont généralement utilisés pour les actifs de données (calcul de la popularité des citations, compréhension du contexte des données), le développement des données (analyse d'impact, analyse d'attribution), et la gouvernance des données (lien Quatre aspects : suivi des statuts, gestion de l'entrepôt de données), et la sécurité des données (inspection de conformité de sécurité, diffusion des labels). Dans le cadre de l'idée actuelle des scores de qualité du système recommandés, l'analyse d'impact est principalement utilisée pour étendre les scores de qualité, et toutes les demandes provenant de nœuds défectueux sont marquées et les scores correspondants sont déduits.
Sous la sémantique métier du système de recommandation, nous avons défini six types de métadonnées métier : instantanés, solutions, composants, index, modèles et fonctionnalités. Sur la base des métadonnées, nous construisons un lignage, qui peut être divisé en accès aux tâches. , analyse de lignage, export de données. L'accès aux tâches est divisé en un module de collecte et un module d'entreposage. Une fois l'accès aux tâches terminé, les nœuds et leurs relations seront stockés dans la base de données graphique, et l'algorithme graphique sera utilisé pour établir les relations sanguines. Une fois la relation sanguine établie, l'anomalie du nœud lui-même prend en charge la découverte du système et le marquage manuel, et l'analyse d'impact peut être effectuée automatiquement. Lorsqu'une anomalie se produit dans un nœud, un message est notifié et les informations anormales se propagent le long de la lignée, ce qui affectera alors le calcul du score de qualité des liens en aval.
Lorsque l'exception affecte l'utilisateur final, nous essayons de re-décrire la perte en langage commercial. Sur la base du modèle de revenus complet, la valeur de chaque UV d'intention de chaque secteur d'activité peut être calculée (les visites des utilisateurs sur les pages de détails des commerçants et les pages de détails des commandes de groupe sont appelées visites d'intention), puis utiliser le trafic pour calculer automatiquement l'année. -état des visites sur l'année. Dérivation des pertes commerciales.
La méthode de mise en œuvre du système de score de qualité repose sur les points d'enfouissement et le diagnostic. Il est recommandé que le lien complet inclut la saisie des paramètres, le prétraitement du rappel, le rappel, le post-traitement du rappel, le tri grossier, le tri fin, le réarrangement, etc. Chaque lien peut échouer, la collecte de données doit donc couvrir les exceptions d'exécution et la saisie clé. et les informations de sortie de chaque lien, etc. Comme le montre la figure 10 ci-dessous, nous collectons de manière asynchrone des données cachées via Kafka, puis effectuons le traitement des données selon des scénarios : dans l'environnement de production, ES en temps quasi réel crée un index pour fournir des services de requête rapides pour les 4 derniers jours, et les journaux d'il y a 4 jours sont archivés dans Hive. De plus, les données des points enterrés sont analysées via le moteur Flink. Après le diagnostic nécessaire, les scores sont calculés en temps réel et les informations d'alarme sont transmises dans l'environnement de test, les journaux sont triés vers MySQL. en temps réel pour faciliter les tests et le dépannage. Enfin, un affichage structuré de la qualité des recommandations aux différentes étapes améliore la lisibilité des résultats.
Figure 10 Mise en œuvre du système de score de qualité
L'amélioration du système de score doit être progressivement encouragée Pour les systèmes de recommandation, le manque de résultats recommandés est le problème de qualité le plus grave. La première chose que nous collectons et calculons est le résultat nul de recommandation, qui correspond au taux de défaut de résultat et au taux de défaut de rappel dans les indicateurs de premier niveau et au taux de résultat nul et au taux de rappel nul dans les indicateurs de deuxième niveau. Dans le même temps, en raison des caractéristiques commerciales de l'entreprise globale, il existe de nombreuses industries et l'offre est inégalement répartie dans le temps et dans l'espace, un grand nombre de conditions de filtrage qui se croisent auront également des résultats vides, affectant le calcul des scores de qualité. .
Comment éliminer les résultats vides qui répondent aux attentes de l'entreprise et éliminer le bruit de qualité Sur la base de la prise de conscience des points cachés, le diagnostic devient très important. En prenant comme exemple les résultats vides, nous les identifions principalement sous trois aspects : le diagnostic des paramètres, le diagnostic des données et le diagnostic des liens. Le diagnostic des données fait référence au moment où une condition de filtrage en ligne produit un résultat vide, retournant à la source pour vérifier les données sous-jacentes une seconde fois et demandant si les données de la table inférieure sont vides. S'il n'y a effectivement aucun approvisionnement pertinent dans le tableau du bas, la règle sans alarme sera précipitée et la période de validité sans alarme sera définie. Au cours d'une période de temps, l'industrie actuelle dans la ville actuelle manque d'approvisionnement pertinent, et. le résultat vide ne sera pas inclus dans le calcul du score de qualité.
S'il y a une alimentation dans le tableau du bas, cela signifie qu'il y a une anomalie dans le processus de traitement des données ou de service, ce qui rend impossible le rappel. Ensuite, le lien d'erreur sera déterminé par le diagnostic du lien et inclus dans le correspondant. calcul du score de qualité. Comment établir un mécanisme de correspondance de règles (c'est-à-dire un moteur de règles) est la clé du moteur de diagnostic. Il existe aujourd'hui de nombreux choix de moteurs de règles, tels que EasyRule, Drools, Zools, Aviator, etc. Selon l'analyse ci-dessus, le moteur de diagnostic doit être capable d'effectuer un diagnostic de règles sur les paramètres de requête, les liens recommandés et les données sous-jacentes. Le diagnostic des paramètres de requête et des liens recommandés peut être effectué via les paramètres de mémoire, tandis que le diagnostic des données nécessite des informations provenant d'un stockage tiers, dont certaines doivent donc être personnalisées et développées. Compte tenu de la maturité et de la commodité des outils humains, le moteur d’expression Aviator est plus adapté. Afin de s'adapter au contenu qui doit être diagnostiqué, la primitive de diagnostic d'expression conçue est la suivante :
<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//参数诊断-原语表达</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//是否符合一定参数的诊断原语</span><br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">check</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">aviator</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cityId</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">include</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">string</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">split</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'1,2,3,4,5,6,7,8,9,10,16,17'</span>,<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">','</span>),<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">str</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cityId</span>))]<br><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//链路诊断-原语表达</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//1、召回异常诊断原语</span><br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallException</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recall</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#exception</span>#}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">check</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">aviator</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallException</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallException</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span> ]<br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//2、召回空无异常的诊断原语</span><br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallEmpty</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recall</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#after</span>#}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">check</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">aviator</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallEmpty</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallEmpty</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span> ]<br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//3、召回不为空,过滤规则执行后为空的诊断原语</span><br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallEmptyCode</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recall</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#after</span>#}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">predictFiltersEmptyCode</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">predict</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#after</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#filters</span>#}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">check</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">aviator</span>[(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallEmptyCode</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">==</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">||</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">recallEmptyCode</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">==</span><span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span>)<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">predictFiltersEmptyCode</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span>]<br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//4、执行某一具体过滤规则后,导致无结果的匹配</span><br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">filterEmptyCode</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">PredictStage</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#filter</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#after</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">#_compSkRef</span>#}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">check</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">aviator</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">filterEmptyCode</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">filterEmptyCode</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">==</span><span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'deleteItemByConditionalFilter'</span> ]<br><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//数据诊断-原语表达(判断底层是否有数据,若没有则为true,否则为false)</span><br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">keys</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">keySpread</span>[<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">@</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">prefix</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">138_</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">ymtags_</span>][<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">@</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">crossOrder</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">city_$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cityId</span>}<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">_platform_$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">platformNo</span>}<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">_surgery_prj_$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">genericLvlIds</span>}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cnt</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cellar</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">@</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cellar</span>[<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">@</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">count</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">$</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">keys</span>}],<br><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">global</span>:<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">check</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">aviator</span>[<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cnt</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nil</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cnt</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">!=</span><span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">&&</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">long</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cnt</span>) <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0</span> ]</span>
Les points de qualité peuvent être utilisés pour la surveillance en temps réel et l'examen opérationnel, et les membres de l'équipe devez suivre les changements en temps opportun. Généralement, les systèmes d'alarme communs aux entreprises configurent les destinataires des alarmes en fonction de la granularité du nom du service. Les services de plate-forme tels que les systèmes de recommandation fournissent des services via une interface unifiée, mais les stratégies modèles sont gérées par différents étudiants et il existe un certain seuil de connaissance et de compréhension du secteur entre les entreprises. Le type d'alarmes diffusées par défaut peut facilement provoquer des tempêtes d'alarmes. Chacun ne peut pas se concentrer sur les problèmes de ses propres modules et manque parfois des alarmes. Dans un souci de taux de suivi (comme le montre la figure 11 ci-dessous), nous avons développé une fonction de suivi basée sur les alarmes existantes, acheminant les alarmes de niveaux de trafic spécifiques vers la personne en charge dédiée et enregistrant le suivi. flux d'état -up pour faciliter la notification en temps opportun et l'examen ultérieur. En termes d'opérations, nous construisons un tableau de bord qualité à travers des rapports de données et examinons régulièrement les fluctuations de qualité des différentes entreprises.
Figure 11 Processus de suivi des alarmes
La mise en œuvre du score de qualité commence par le taux nul de résultat, et démonte et collecte le taux nul de rappel et le taux nul de prédiction du modèle en fonction le processus, réorganisez le taux nul de l'opérateur et agrégez-le en plusieurs dimensions de plate-forme, d'activité, de forme, de projet et de position du trafic en fonction de l'activité. Les actions et résultats de gouvernance sont répartis selon les aspects suivants :
Après la gestion et l'identification des résultats nuls, le taux nul actuel du trafic principal est de 0,01%, ce qui signifie que 99,99% des demandes de trafic principal ont des résultats. Lors de la création de scores de qualité, le taux de découverte du système et le suivi des alarmes sont garantis. . taux de progression.
Le système de recommandation fournit la valeur des données Ce n'est que lorsque les données sont capitalisées que cette valeur peut être durable et ajouter de la valeur. Le processus de création d’un modèle de qualité du système de recommandation concerne également l’accumulation d’actifs de données. Une fois les données collectées, elles deviennent un atout et doivent généralement remplir les quatre conditions suivantes : fluides, mesurables, contrôlables et à valeur ajoutée. Celles-ci sont toutes couvertes dans la méthode de calcul du chapitre 4. Le processus de fonctionnement des indicateurs est également le processus d’accumulation d’actifs de connaissances de qualité. Comment le modèle de défaut logiciel affecte-t-il la qualité de livraison du produit final ? Existe-t-il une corrélation ou une causalité entre eux ? Cet impact est-il explicitement impliqué dans le calcul du score ou est-il indirect ? Au cours du processus de sous-opération qualité, nous pouvons progressivement remplir la carte de qualité dans notre esprit et former des relations topologiques entre les indicateurs, les défauts, et les indicateurs et les défauts. Il s'agit d'un processus de capitalisation de la qualité. Par exemple, grâce aux pratiques commerciales des systèmes de recommandation, nous avons constaté que 80 % des échecs en ligne sont causés par la publication et que 80 % des échecs de publication sont causés par la publication de données. Cela peut nous guider pour réduire les échecs en ligne grâce à la gouvernance de la publication des données.
Sur la base de la convivialité, nous avons ajusté la méthode de calcul et établi un score de qualité du système de recommandation à plusieurs niveaux, et l'avons étendu à divers matériaux recommandés et divers modules commerciaux. des services provenant de parties externes. L'itération cognitive de la « présence ou de l'absence » au « bon ou mauvais » des services externes est également la base d'opérations raffinées en termes de qualité. Le plan de suivi consiste à continuer à enrichir le calcul et la couverture des liens du modèle de qualité ; d'autre part, nous effectuerons davantage de travaux de gouvernance de la qualité basés sur certaines des directions sur lesquelles nous nous concentrerons et que nous répéterons dans le modèle. L'avenir comprend :
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!