Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

王林
Freigeben: 2023-04-14 12:43:02
nach vorne
1350 Leute haben es durchsucht

Autor: Yong Haogengen, Wang KTV- und Schönheitsindustrie, medizinische Schönheit, Eltern-Kind-Branche, Ehe, Sport und Fitness, Unterhaltung, Bildung und Ausbildung, Heimtextilien, Haustiere, Bars, Lebensdienstleistungen und andere Dutzende wichtiger Teilsektoren, um den vielfältigen lokalen Lebensbedürfnissen gerecht zu werden Hunderte Millionen Benutzer.

Das Empfehlungssystem ist ein wichtiges Bindeglied zur effizienten Abstimmung von Angebot und Nachfrage und dient als Ventil für die Übermittlung des Datenwerts. Die Qualität des Empfehlungssystems bestimmt den Verlust des Matching-Effekts. Wie in Abbildung 1 unten dargestellt, werden die Daten vom Data Warehouse und dem Algorithmus verarbeitet und dann über Datendienste an verschiedene Geschäftssysteme gesendet. Anschließend werden sie über den Client zurück an das Data Warehouse übertragen, wodurch ein „Schwungradeffekt“ entsteht Daten und Qualität sind genau das. Der entscheidende Punkt des Zahneingriffs in einer Verbindung ist eine wichtige Voraussetzung für die Verbesserung der Effizienz und die Sicherstellung der Effektivität. Qualitätssicherung muss rund um die Messung erfolgen, damit diese „sichtbar“, „geklärt“ und „korrigiert“ werden kann. Allerdings können herkömmliche Qualitätsindikatoren für Back-End-Dienste die Qualität des aktuellen „Datenschwungrads“ nicht gut beschreiben. Wir hoffen, dass wir durch den Aufbau eines Qualitätsmodells für ein umfassendes Geschäftsempfehlungssystem eine neue Denkperspektive und praktische Referenz für ähnliche geschäftsfeldübergreifende, wirkungsorientierte Systemqualitätsmessungen bieten können.

Abbildung 1 „Datenschwungrad“ des Empfehlungssystems

2 Ist-Situationsanalyse Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

Das Empfehlungssystem ist ein wirkungsbasiertes System und seine Qualitätsmerkmale unterscheiden sich von funktionalen Systemen. Im Allgemeinen wirken sich funktionale Systeme nach einem Downgrade erheblich auf die Benutzererfahrung aus. Wenn das Empfehlungsergebnis jedoch A oder A' zurückgibt, ist es für Benutzer schwierig, dies deutlich zu erkennen. Wenn sich der Matching-Effekt jedoch verschlechtert, wirkt sich dies tatsächlich direkt auf die implizite Erfahrung des Benutzers aus und muss identifiziert werden. Funktionale Systeme bilden im Allgemeinen Qualitätsindexsysteme mit Benutzerfreundlichkeit als Kern. In der Geschäftspraxis umfassender Geschäftsempfehlungssysteme haben wir festgestellt, dass Benutzerfreundlichkeit und andere Indikatoren die folgenden Einschränkungen aufweisen:

Benutzerfreundlichkeit ist gegenüber einigen Mängeln nicht empfindlich: Benutzerfreundlichkeit ist eine Funktion der Unterbrechungshäufigkeit und -dauer und spiegelt die Fähigkeit des Systems wider, weiterhin Dienste bereitzustellen. Solange Systemfehler keine Auswirkungen auf externe Dienste haben, beeinträchtigen sie nicht die Benutzerfreundlichkeit, einige beeinträchtigen jedoch tatsächlich die Benutzererfahrung. Die hier auftretenden Mängel können erwartet (z. B. aktives Downgrade

) oder unerwartet (
    Verzögerung der Modellaktualisierung
  • ) sein und sollten in die Qualitätsmessung einbezogen werden. Aufgrund der Benutzerfreundlichkeit ist es schwierig, die gesamte Verknüpfung von Daten abzudecken: Die Verknüpfung des Empfehlungssystems umfasst Datenproduktion, -verarbeitung, -anwendung, -analyse und andere Verknüpfungen. Zum einen hat die Benutzerfreundlichkeit nichts mit der Qualität der Datentabelle zu tun, zum anderen können Leistungsmessungen, sofern verfügbar, nicht das vollständige Bild der Datenqualität widerspiegeln. Bei der Datenqualität müssen Merkmale wie Vollständigkeit, Genauigkeit, Aktualität und Sicherheit berücksichtigt werden, die über die Verfügbarkeit hinausgehen. Der international renommierte Wissenschaftler Andrew Ng sagte einmal, dass 80 % des Werts der künstlichen Intelligenz von Daten abhängt. Auch die Qualität des Empfehlungseffekts, der vom Empfehlungssystem geliefert wird (Klick-Conversion-Rate, Transaktions-Conversion-Rate, Verweildauer des Benutzers usw.). hängt vor allem von der Qualität der Daten ab.
  • Verfügbarkeit ist schwierig, Geschäftsunterschiede widerzuspiegeln: Meituan Zhizong deckt Hunderte von Branchen und Dutzende von Kanalseiten ab. Aufgrund von Effizienz- und Kostenüberlegungen im Empfehlungssystem können Unternehmen nicht vollständig isoliert werden Diese Methode macht es schwierig, Unternehmen für eine separate Bewertung zu unterscheiden. Verschiedene Dienste im Netzwerk variieren stark, mit unterschiedlichen Zugriffsfrequenzen, Spitzenverkehrszeiten und Geschäftsstrategien. Daher sind auch die Qualitätsmerkmale und die Problemverteilung unterschiedlich. Den aktuellen Verfügbarkeitsindikatoren fehlen Informationen zur Geschäftsdimension, was der Steuerung verfeinerter Qualitätsabläufe nicht förderlich ist.
  • In der Qualitätskonstruktion wurde in der Vergangenheit das Fehlerniveau als Ziel verwendet. Der Überprüfungszyklus war langwierig und kontingent, und die Beziehung zwischen dem Ziel und der logischen Ableitung von Maßnahmen war nicht stark. Darüber hinaus ist der Fehler selbst ein nachträglicher Einfall, und dieser problemorientierte Ansatz ist für den weiteren Betrieb nicht förderlich. Im Allgemeinen gibt es mit der Benutzerfreundlichkeit als Ziel verschiedene Probleme bei der tatsächlichen Implementierungsberechnung. Daher erwägen wir die Erstellung eines Qualitätsmodells für das Empfehlungssystem basierend auf der Benutzerfreundlichkeit und passen dann die Berechnungsmethode an, um verfeinerte Qualitätsvorgänge zu steuern.

    3 Konstruktionsideen

    3.1 Qualität im Geschäftskontext

    Um ein Qualitätsmodell zu erstellen, kehren Sie zunächst zum Verständnis des Wesens von Qualität zurück. Nach Angaben der International Organization for Standardization (ISO) ist Qualität die Summe von Merkmalen, die die Fähigkeit eines Unternehmens widerspiegeln, explizite oder implizite „Bedürfnisse“ zu erfüllen. Ein weiteres häufig verwendetes Qualitätskonzept ist Stabilität. Der Kern der Stabilität besteht darin, das System über einen langen Zeitraum im „erwarteten“ Zustand laufen zu lassen. Ob es um Qualität oder Stabilität geht, es ist wichtig zu verstehen, wessen Bedürfnisse und Erwartungen das System erfüllen muss. Im Empfehlungsszenario ist dieses Objekt das Produkt und der Algorithmus. Geschäftsprodukte verstehen Benutzerszenarien, abstrahieren Benutzeranforderungen und schlagen dem Empfehlungsteam Produktanforderungen vor, die sich in externen Produktiterationen widerspiegeln. Gleichzeitig arbeitet das Empfehlungssystemteam intern zusammen, um die beste Optimierungsmodellstrategie zu erlernen spiegelt sich in Algorithmusiterationen innerhalb des Datenteams wider.

    Wie in Abbildung 2 unten dargestellt, wird in der Berechnungsformel der Verfügbarkeit die lange Zeit betont, während sich „Bedarf“ und „Erwartung“ nur in der Bereitstellung externer Dienstleistungen widerspiegeln. Hier gibt es eine gewisse Rationalität. Erstens ist die Verfügbarkeit ein allgemeiner Indikator, und die Definition muss verallgemeinert werden. Zweitens besteht die Gemeinsamkeit und das Endergebnis der Qualität darin, externe Dienste bereitzustellen Externe Dienste werden meist in den Bereichen „Haben“, „Zwischen“ und „Keine“ bereitgestellt, es gibt auch Raum für eine Verschlechterung des Dienstes. Allerdings gibt es bei Empfehlungssystemen mit Wirkung als Kernziel ein langes Spektrum an „guten“ und „schlechten“ Wirkungen zwischen „mit“ und „ohne“ Funktionen. In unserem Nachdenken über die Qualität des Empfehlungssystems liegt der Kernwechsel vom „Ja“ und „Nein“ externer Dienste zum „Gut“ und „Schlecht“ externer Dienste. Dies ist auch der Ausgangspunkt für die Transformation die Methode zur Berechnung der Benutzerfreundlichkeit. Abbildung 2: Die Wahrnehmung von Mängeln beeinflusst die Qualitätsmessung. ISO/IEC 25010 Software-Qualitätsmodell (2011) Das Software-Qualitätsmodell definiert Softwarefehler und kann als vollständige Menge an Fehlern betrachtet werden. Es umfasst funktionale Eignung, Leistungseffizienz, Kompatibilität, Verfügbarkeit, Zuverlässigkeit, Sicherheit und Wartbarkeit und 31 Unterfunktionen der Portabilität. Es gibt einige Qualitätsmerkmale, die nicht von Backend-Diensten abgedeckt werden (Ästhetik der Benutzeroberfläche, Erlernbarkeit usw.

    ), und es gibt einige herausragende Elemente, die in der aktuellen Wahrnehmung keine C-seitige Qualität darstellen (

    Modularität, Koexistenz, Nicht- Ablehnung, Zuverlässigkeit, Wiederverwendbarkeit usw.Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan). Durch die Kombination der Geschäftsmerkmale und hochfrequenten Qualitätsprobleme des Empfehlungssystems konzentrieren wir uns in dieser Phase darauf, die in Abbildung 3 unten dargestellten Qualitätsmerkmale als Fehlerquelle zu betrachten. Abbildung 3: Qualitätsmerkmale des Empfehlungssystems die eng mit der Qualität und Wirksamkeit von Empfehlungen zusammenhängen. Der Einfluss von Genauigkeit und Angemessenheit auf die Wirkung ist relativ intuitiv, während andere eher indirekt sind. Nehmen wir zum Beispiel den Crawler-Zugriff im Sicherheitsbereich. Da das Zugriffsverhalten von Crawlern nicht den tatsächlichen menschlichen Verhaltensgewohnheiten entspricht, wirkt sich dies auf das Recycling von Kernindikatoren wie UVCTR aus, was zu einer Fehleinschätzung der Auswirkungen führt Wenn Crawler-Daten nicht identifiziert und beseitigt werden können, wirkt sich Rauschen gleichzeitig weiter auf die Genauigkeit des Modelltrainings aus. Datenqualitätsprobleme sind die „Giftpille“ im „Schwungradeffekt“ der Daten, der positives Feedback erzeugt und Fehler kontinuierlich verstärkt. Wir werden die oben genannten Mängel quantifizieren und den Umfang der Verwendbarkeit in Kapitel 4 Berechnungsregeln erweitern.

    3.3 Auswahl von Messung und Berechnung

    Die Verfügbarkeit kann in Messmethode und Berechnungsmethode unterteilt werden: Messung ist das, was wir oft N Neunen nennen, und die Berechnung wird anhand der Funktion der mittleren Zeit zwischen Ausfällen und der mittleren Wiederherstellungszeit gemessen. In Bezug auf Messmethoden sind die in der Branche am häufigsten verwendeten Qualitätsmessmethoden in Abbildung 4 unten dargestellt:

    Abbildung 4 Messmethoden

    Die Wahl einiger weniger Punkte für die Messmethode steht in dieser Phase nicht im Mittelpunkt der Qualitätsbewertung. Die für die Benutzerfreundlichkeit verwendeten N-Neunen selbst sind einfach genug und vergleichbar, daher konzentrieren wir uns auf die Berechnungsmethode. Aufgrund der großen Anzahl umfassender Geschäftsbereiche und des Empfehlungssystems als Plattformprodukt ist die Beziehung zwischen dem System und dem Unternehmen N:N. Es ist schwierig, die Verfügbarkeit des aktuellen Systems für jede Branche, jedes Projekt und jedes Unternehmen zu berechnen. Eine Verkehrsposition kann zum Freizeit- und Unterhaltungsgeschäft, zum Script-Killing-Projekt, zu einem Teil des Hauptanzeigepfads oder zu einer Art Inhaltsempfehlung gehören. Diese Art der flexiblen Zuordnung kann für Anfragen zur Aggregation von Berechnungen verwendet werden am besten geeignet. Wie in Abbildung 5 unten dargestellt, kann die Verfügbarkeit, wenn sie eine Funktion von Anfragen ist, nicht nur die Qualitätsmerkmale umfassen, die uns im vorherigen Abschnitt wichtig waren, sondern auch geschäftsrelevante Qualitätsstatistiken in mehreren Dimensionen.

    Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

    Abbildung 5 Qualitätsmessung aus Sicht der Anforderungen

    4 Berechnungsmethode

    Gemäß den Konstruktionsideen im vorherigen Kapitel, von Fehlern zu Mängeln, von „Ja“ und „Nein“ im Empfehlungsergebnisse zu In Bezug auf die „guten“ und „schlechten“ Empfehlungseffekte, vom Ganzen bis hin zu jedem Unternehmen, beschreiben wir die Merkmale, die ein guter Qualitätsfaktor haben sollte. In diesem Kapitel konzentrieren wir uns auf die Berechnungslogik von Indikatoren, wählen wichtige Mängel aus, definieren „erfolgreiche Anfrageantwort“ und fügen die Geschäftsaggregationsdimension von Qualitätsbewertungen hinzu.

    4.1 Berechnungsformel

    In Kombination mit den in Kapitel 3.2 beschriebenen Qualitätsmerkmalen wird die Systemqualität aus der Perspektive des Anteils erfolgreicher Anfragen bewertet und kann in die folgenden vier Fehlerstufen unterteilt werden :

    • Systemebene : Die Anfrage löst eine Systemausnahme aus, bei der es sich um eine Fehlerantwort handelt. Zu den häufigsten gehören: Rückruf-Timeout, Rückruffehler, Rückruf eines leeren Ergebnisses usw.
    • Datenebene: Wenn die in der Anfrage verwendeten Daten abnormal sind, handelt es sich um eine Fehlerantwort. Zu den häufigsten gehören abnormale Liefermengen, abnormale Etikettenverteilung usw. Die tatsächliche Auswirkung von Daten auf Benutzeranfragen hängt von der Festlegung der Datenherkunft und der Folgenabschätzung ab.
    • Algorithmusebene: Wenn die im Rückruf- und Sortierprozess dieser Anfrage verwendeten Funktionen, Modelle und Strategien abnormal sind, handelt es sich um eine Fehlerreaktion. Zu den häufigsten gehören verzögerte Modellaktualisierungen, fehlende Funktionen usw., die sich auf die Ausprägung von Empfehlungseffekten auswirken.
    • Geschäftsebene: Die Anfrage löst geschäftliche Eignungs- oder Sicherheits-Compliance-Anforderungen aus, und die Anfragen mit den oben genannten Ergebnissen sind fehlerhafte Antworten. Zu den häufigen operativen Rückmeldungen gehören schwerwiegende Bad Cases wie die Versorgungsqualität und die Inhaltssicherheit.

    Wenn bei einer Anfrage in irgendeinem Teil des Lebenszyklus ein Fehler auftritt, wird das Ergebnis als Fehlerreaktion definiert. Die spezifische Fehlerverknüpfung ist die Dimension der Analyse und des Drilldowns. Wir wählen typische Probleme (Business Pain Points, hochfrequente Qualitätsprobleme) aus den Qualitätsmerkmalen in Kapitel 3.2 und den vier Aspekten der oben genannten Mängel zur Berechnung aus. Nehmen Sie die Abbildung 6 unten als Beispiel:

    Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

    Abbildung 6 Methode zur Berechnung des Qualitätsfaktors

    4.2 Geschäftsverallgemeinerung

    Die Geschäftsmerkmale des umfassenden Empfehlungssystems sind mehrere Geschäftsbereiche, große Branchenunterschiede und viele Standorte empfohlener Materialien. Dies spiegelt sich in der Qualitätsmessung wider Der Vorgang ist in Abbildung 7 unten dargestellt:

    Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

    Abbildung 7 Aggregationsanalyse jeder Geschäftsebene

    Im integrierten Netzwerk gibt es viele Dienste mit mittlerer und niedriger Frequenz Zeitlich wird die Schwankung des Verhältnisses stark vom absoluten Wert der Anfrage beeinflusst. Für diese Szenarien können einige kleine Verkehrsbits aggregiert und nur auf Branchen- oder Projektebene auf Minutenebene überwacht werden.

    4.3 Indikatorsystem

    Wie in Abbildung 8 unten dargestellt, behandeln wir eine vom Empfehlungssystem beantwortete Anfrage als Produktlieferverhalten. Der Anteil dieser Anfragen ist fehlerhaft. „Free“ ist die Empfehlung. Der Qualitätsfaktor des Systems ist der Qualitätsindikator für die Ausgabe auf höchster Ebene. Basierend auf dem Lebenszyklus der Anfrage können Eingangsindikatoren der ersten Ebene festgelegt werden, um den Qualitätsstatus des Kernprozesses zu messen, z. B. Rückruffehlerrate, Sortierfehlerrate usw. Die Indikatoren der ersten Ebene können auch weiter zerlegt werden, um die Eingabeindikatoren der zweiten Ebene zu erhalten. Wenn beispielsweise die Rückruf-Fehlerrate relativ hoch ist, können die Rückruf-Null-Rate, die Rückruf-Timeout-Rate usw. gemessen werden. Benutzeranfragen können auch vertikal, horizontal und in Zeitdimensionen basierend auf dem Geschäft aggregiert werden, um Qualitätsbewertungen mit Geschäftsattributen zu erhalten, die gezielter und fokussierter sind.

    Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

    Abbildung 8 Qualitätsindikatorsystem

    Dies Der verbesserte Qualitätsfaktor verwendet Anfragen als Grundeinheit. Im Vergleich zur ursprünglichen Verfügbarkeitsberechnungsmethode löst er deren Einschränkungen bis zu einem gewissen Grad: Er reagiert empfindlich auf Fehler, kann die Auswirkungen von Datenverknüpfungen berücksichtigen und ermöglicht mehrere aggregierte Analysen von Geschäftsdimensionen .

    4.4 Blutlinienerweiterung

    Die Qualität wird anhand der Granularität der Anfrage in Statistiken unterteilt nur eine der Formen der externen Datenausgabe. Nach Abschluss der grundlegenden Qualitätsbewertung sollte der Lebenszyklus der Anfrage auf die gesamte Datenverbindung ausgedehnt werden, damit die Qualitätsmessung abgeschlossen ist. Zu diesem Zeitpunkt verlassen wir uns auf die Blutsverwandtschaft der Daten, um die Datentabelle – das Geschäftssystem – den C-seitigen Verkehr zu verknüpfen und ein Porträt in Panoramaqualität zu erstellen, wie in Abbildung 9 unten dargestellt:

    #🎜 🎜#

    Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

    Abbildung 9 Daten des Empfehlungssystems Blutsverwandtschaft

    Blutsverwandtschaft ist die zwischenmenschliche Beziehung, die durch entsteht Ehe und Geburt in der menschlichen Gesellschaft, wie z. B. die Beziehung zwischen Eltern und Kindern, die Beziehung zwischen Brüdern und Schwestern und andere daraus abgeleitete Verwandtschaftsbeziehungen, können Daten auch fusionieren und transformieren, um Blutsverwandtschaftsdaten zu erzeugen. Die Blutbeziehung von Daten ist in Datenbanken, Datentabellen und Felder auf verschiedenen Ebenen unterteilt. Sie wird im Allgemeinen für Datenbestände ( Zitierwärmeberechnung, Verständnis des Datenkontexts ) und Datenentwicklung (#🎜🎜) verwendet # Auswirkungsanalyse, Attributionsanalyse ), Data Governance (Linkstatusverfolgung, Data Warehouse-Management), Datensicherheit (Sicherheits-Compliance-Inspektion, Label-Weitergabe ) . Unter der aktuellen Idee der empfohlenen Systemqualitätsbewertungen wird die Auswirkungsanalyse hauptsächlich zur Erweiterung der Qualitätsbewertungen verwendet, und alle Anforderungen von fehlerhaften Knoten werden markiert und die entsprechenden Bewertungen werden abgezogen.

    Unter der Geschäftssemantik des Empfehlungssystems definieren wir sechs Arten von Geschäftsmetadaten: Snapshot, Schema, Komponente, Index, Modell, Feature. Wir bauen eine Blutsverwandtschaft auf und können in Aufgabenzugriff, Blutsverwandtschaftsanalyse und Datenexport unterteilt werden. Der Aufgabenzugriff ist in ein Sammelmodul und ein Lagermodul unterteilt. Wenn der Aufgabenzugriff abgeschlossen ist, werden die Knoten und ihre Beziehungen in der Diagrammdatenbank gespeichert und der Diagrammalgorithmus wird zum Erstellen von Blutsbeziehungen verwendet. Nachdem die Blutsverwandtschaft festgestellt wurde, unterstützt die Anomalie des Knotens selbst die Systemerkennung und manuelle Markierung, und die Auswirkungsanalyse kann automatisch abgeschlossen werden. Wenn auf einem Knoten eine Anomalie auftritt, wird eine Nachricht benachrichtigt und die anormalen Informationen werden entlang der Blutlinie weitergegeben, was sich dann auf die Berechnung des Qualitätsfaktors der Downstream-Links auswirkt.

    Wenn die Ausnahme die Benutzerseite betrifft, versuchen wir, den Verlust in der Geschäftssprache neu zu beschreiben. Gemäß dem umfassenden Umsatzmodell kann der Wert jeder Absichts-UV jedes Geschäftsbereichs berechnet werden (

    Benutzer besuchen die Händlerdetailseite und die Gruppenbestelldetailseite werden als Absichtsbesuche bezeichnet) und dann verwendet Aus dieser Verkehrslage können wöchentliche Besuche im Vergleich zum Vorjahr automatisch auf Geschäftsverluste schließen.

    5 Indikatorbetrieb

    5.1 Systemimplementierung

    Die Systemimplementierungsmethode des Qualitätsfaktors basiert auf der Vergrabung von Punkten und der Diagnose. Es wird empfohlen, dass der vollständige Link Parametereingabe, Rückruf-Vorverarbeitung, Rückruf, Rückruf-Nachbearbeitung, Grobsortierung, Feinsortierung, Neuanordnung usw. umfasst. Jeder Link kann fehlschlagen, daher muss die Datenerfassung Laufzeitausnahmen und Schlüsseleingaben abdecken und Ausgabeinformationen zu jedem Link usw. Wie in Abbildung 10 unten gezeigt, sammeln wir asynchron versteckte Daten über Kafka und führen dann die Datenverarbeitung entsprechend dem Szenario durch: In der Produktionsumgebung erstellt ES nahezu in Echtzeit einen Index, um schnelle Abfragedienste für die letzten 4 Tage bereitzustellen Protokolle von vor 4 Tagen werden in Hive archiviert. Darüber hinaus werden die vergrabenen Punktdaten nach der erforderlichen Diagnose in Echtzeit berechnet und die Protokolle in der Testumgebung sortiert in Echtzeit, um Tests und Fehlerbehebung zu erleichtern. Schließlich verbessert eine strukturierte Darstellung der Empfehlungsqualität in verschiedenen Phasen die Lesbarkeit der Ergebnisse.

    Qualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan

    Abbildung 10 Systemimplementierung des Qualitätsfaktors

    Die Verbesserung des Bewertungssystems muss schrittweise vorangetrieben werden. Bei Empfehlungssystemen ist der Mangel an empfohlenen Ergebnissen das schwerwiegendste Qualitätsproblem. Das erste, was wir sammeln und berechnen, ist das Empfehlungs-Null-Ergebnis, das der Ergebnis-Fehlerrate und der Rückruf-Fehlerrate in den Indikatoren der ersten Ebene sowie der Ergebnis-Null-Rate und der Rückruf-Null-Rate in den Indikatoren der zweiten Ebene entspricht. Gleichzeitig gibt es aufgrund der Geschäftsmerkmale des Gesamtgeschäfts viele Branchen und das Angebot ist zeitlich und räumlich ungleichmäßig verteilt. Eine große Anzahl sich überschneidender Filterbedingungen führt ebenfalls zu leeren Ergebnissen, was sich auf die Berechnung der Qualitätsbewertung auswirkt .

    Wie man leere Ergebnisse eliminiert, die den Geschäftserwartungen entsprechen, und Qualitätsrauschen beseitigt. Auf der Grundlage der Erkenntnis versteckter Punkte wird die Diagnose sehr wichtig. Am Beispiel leerer Ergebnisse identifizieren wir sie hauptsächlich anhand von drei Aspekten: Parameterdiagnose, Datendiagnose und Verknüpfungsdiagnose. Unter Datendiagnose versteht man, dass, wenn eine Online-Filterbedingung ein leeres Ergebnis liefert, zur Quelle zurückgekehrt wird, um die zugrunde liegenden Daten ein zweites Mal zu überprüfen und abgefragt wird, ob die Daten in der unteren Tabelle leer sind. Wenn in der unteren Tabelle tatsächlich kein relevantes Angebot vorhanden ist, wird die alarmfreie Regel ausgelöst und die alarmfreie Gültigkeitsdauer festgelegt. Innerhalb eines Zeitraums fehlt der aktuellen Branche in der aktuellen Stadt das relevante Angebot Das leere Ergebnis wird nicht in die Berechnung des Qualitätsfaktors einbezogen.

    Wenn in der unteren Tabelle ein Vorrat vorhanden ist, bedeutet dies, dass eine Anomalie in der Datenverarbeitung oder im Serviceprozess vorliegt, die einen Rückruf unmöglich macht. Anschließend wird der Fehlerlink durch die Linkdiagnose ermittelt und in die entsprechende Datei aufgenommen Berechnung des Qualitätsfaktors. Der Schlüssel zur Diagnose-Engine besteht darin, einen Regelabgleichsmechanismus (d. h. eine Regel-Engine) einzurichten. Heutzutage gibt es viele Möglichkeiten für Regel-Engines, wie EasyRule, Drools, Zools, Aviator usw. Gemäß der obigen Analyse muss die Diagnose-Engine in der Lage sein, eine Regeldiagnose für Anforderungsparameter, empfohlene Links und zugrunde liegende Daten durchzuführen. Die Diagnose von Anforderungsparametern und empfohlenen Links kann über Speicherparameter durchgeführt werden, während für die Datendiagnose Informationen aus dem Speicher von Drittanbietern erforderlich sind, sodass einige davon angepasst und entwickelt werden müssen. In Anbetracht der Reife und Bequemlichkeit menschlicher Werkzeuge ist die Aviator-Ausdrucks-Engine besser geeignet. Um den zu diagnostizierenden Inhalt anzupassen, lautet das entworfene Grundelement für die Ausdrucksdiagnose wie folgt:

    <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>
    Nach dem Login kopieren

    5.2 Alarmverfolgung

    Qualitätspunkte können für die Echtzeitüberwachung und Betriebsüberprüfung sowie für Teammitglieder verwendet werden Änderungen müssen zeitnah nachverfolgt werden. Im Allgemeinen konfigurieren gängige Alarmsysteme in Unternehmen Alarmempfänger basierend auf der Granularität des Dienstnamens. Plattformdienste wie Empfehlungssysteme stellen Dienste über eine einheitliche Schnittstelle bereit, die Modellstrategien werden jedoch von verschiedenen Studenten verwaltet, und es gibt einen bestimmten Schwellenwert für Branchenkenntnisse und Verständnis zwischen Unternehmen. Der Standard-Broadcast-Alarmtyp kann leicht zu Alarmstürmen führen. Jeder kann sich nicht auf die Probleme seiner eigenen Module konzentrieren und verpasst manchmal Alarme. Um die Nachverfolgungsrate zu erhöhen (wie in Abbildung 11 unten dargestellt), haben wir eine Nachverfolgungsfunktion entwickelt, die auf den vorhandenen Alarmen basiert, die Alarme für bestimmte Verkehrsaufkommen an die zuständige Person weiterleitet und die Nachverfolgung aufzeichnet -Up-Statusfluss zur Erleichterung einer rechtzeitigen Benachrichtigung und anschließenden Überprüfung. Im Hinblick auf den Betrieb erstellen wir anhand von Datenberichten ein Qualitäts-Dashboard und überprüfen regelmäßig die Qualitätsschwankungen verschiedener Unternehmen. Abbildung 11 Alarm-Folgeprozess Ordnen Sie im Prozess die Nullrate des Betreibers neu und aggregieren Sie sie je nach Geschäft in mehrere Dimensionen von Plattform, Geschäft, Form, Projekt und Verkehrsposition. Governance-Maßnahmen und -Ergebnisse werden in folgende Aspekte unterteilt:

    • Durch Verfolgung und Diagnose können wir feststellen, ob es sich bei den aktuellen Leerergebnissen um Versorgungsprobleme oder Qualitätsprobleme handelt, und 98 % der Leerergebnisse von der Einbeziehung in die Qualitätsbewertungsberechnung ausschließen, um Fehlalarme zu vermeiden. Die durchschnittliche Anzahl der Leerstände pro Tag Ergebnisalarme wurden von 40 auf 5 reduziert. .
    • Basierend auf der Analyse der Nullrate jedes Links im Linkprozess werden Governance-Maßnahmen ergriffen, einschließlich Datenspezifikationen (Standardisierung der Datenschichtung, Kennzeichnungsspezifikationen), Servicearchitektur (Geschäftsisolation, zugrunde liegende Daten-Dual-Media, Downgrade). ), Spezifikationen ändern (Online-Pipeline-Inspektion, Verkehrswiedergabe konfigurieren) und die Erkennungsrate leerer Ergebnissysteme über 60 % halten.
    • Maßgeschneiderte Entwicklung des Alarmroutings zur Vermeidung von Alarmübertragungen und zur Unterstützung der Markierung des Folgestatus. Die Folgerate der leeren Ergebnisse reicht von unzähligen bis zu 100 % Folgeverfolgung auf der Kernverkehrsebene.

    Nach der Verwaltung und Identifizierung von Nullergebnissen beträgt die aktuelle Nullrate des Kernverkehrs 0,01 %, was bedeutet, dass 99,99 % der Kernverkehrsanfragen Ergebnisse liefern, während die Systemerkennungsrate und die Alarmverfolgung garantiert sind . Fortschrittsrate.

    5.4 Asset Precipitation

    Das Empfehlungssystem liefert den Wert von Daten. Nur wenn Daten kapitalisiert werden, kann dieser Wert nachhaltig sein und einen Mehrwert schaffen. Beim Aufbau eines Qualitätsmodells für ein Empfehlungssystem geht es tatsächlich auch um die Ansammlung von Datenbeständen. Nachdem die Daten erfasst wurden, werden sie zu einem Vermögenswert und müssen im Allgemeinen die folgenden vier Bedingungen erfüllen: fließfähig, messbar, kontrollierbar und wertschöpfend. Diese werden alle in der Berechnungsmethode in Kapitel 4 behandelt. Der Prozess des Indikatorbetriebs ist auch der Prozess der Ansammlung hochwertiger Wissensbestände. Wie wirkt sich das Softwarefehlermodell auf die Qualität der Endproduktlieferung aus? Gibt es eine Korrelation oder Kausalität zwischen ihnen? Ist dieser Einfluss explizit in die Bewertungsberechnung einbezogen oder ist er indirekt? Während des Qualitätsunteroperationsprozesses können wir die Qualitätskarte in unserem Kopf schrittweise ausfüllen und topologische Beziehungen zwischen Indikatoren, Fehlern sowie Indikatoren und Fehlern bilden. Dies ist ein Prozess der Kapitalisierung von Qualität. Durch die Geschäftspraxis von Empfehlungssystemen haben wir beispielsweise festgestellt, dass 80 % der Online-Fehler durch Veröffentlichungen und 80 % der Veröffentlichungsfehler durch Datenfreigaben verursacht werden. Dies kann uns dabei helfen, Online-Fehler durch die Steuerung der Datenfreigabe zu reduzieren.

    6 Zukunftsplan

    Basierend auf der Benutzerfreundlichkeit haben wir die Berechnungsmethode angepasst, einen mehrstufigen Qualitätsfaktor für Empfehlungssysteme erstellt und ihn auf verschiedene empfohlene Materialien und verschiedene Geschäftsmodule ausgeweitet Die kognitive Iteration von der „Anwesenheit oder Abwesenheit“ zum „Gut oder Schlechte“ externer Dienste ist auch die Grundlage für qualitätsverfeinerte Abläufe. Der Folgeplan besteht darin, die Berechnungs- und Verknüpfungsabdeckung des Qualitätsmodells weiter zu bereichern. Andererseits werden wir auf der Grundlage des Qualitätsmodells weitere Qualitäts-Governance-Arbeiten durchführen Zu den künftigen Maßnahmen gehören:

    • Durch die Verbesserung der Verfolgung und Diagnose werden wir nach und nach Indikatoren auf allen Ebenen des Qualitätsbewertungssystems implementieren, die Konnotation von Qualitätsbewertungen bereichern und mehr Qualitätsprobleme berücksichtigen.
    • Durch die Erstellung flexibler Downgrades mit mehrstufigen Empfehlungen können Sie das Verständnis von Qualitätsbewertungen iterieren und die Auswirkungen verschiedener Downgrades auf das System quantifizieren.
    • Optimieren Sie die Genauigkeit, Abdeckung und Aktualität der Datenherkunft und beurteilen Sie die Auswirkungen von Qualitätsproblemen in einem bestimmten Link genauer und schneller.

    7

Das obige ist der detaillierte Inhalt vonQualitätsmodell und Praxis des umfassenden Geschäftsempfehlungssystems von Meituan. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage