Intégration du flux d'informations Taobao et mise à niveau du service hybride





Le système de recommandation est un système de filtrage d'informations utilisé pour prédire les préférences de l'utilisateur et filtrer le contenu qui pourrait l'intéresser à partir d'une grande quantité d'informations afin de faire des recommandations personnalisées. Un processus complet de système de recommandation comprend principalement des nœuds de traitement tels que le rappel multicanal -> l'achèvement des matériaux -> le tri fin et le filtrage -> le tri mixte -> la sortie d'adaptation. En tant que dernière couche de traitement avant la sortie des résultats, le brassage est principalement utilisé pour normaliser et trier les résultats des recommandations provenant de différentes sources. D'une part, il s'agit d'obtenir la séquence de tri avec le meilleur effet de recommandation pour les utilisateurs, et d'autre part. , cela peut également améliorer la diversité, la personnalisation et la portée des recommandations.



État actuel des liens technologiques


▐Lien existant  


Le flux d'informations Taobao est un système de recommandation typique. Dans le flux d'informations, il existe de nombreux types de cartes de visite, telles que des produits, des publicités, des thèmes cloud, de courtes vidéos, des diffusions en direct, etc. Nous diviserons les cartes de visite en deux catégories : les résultats publicitaires et les résultats de recommandations naturelles. Lors de l’étape de tri, deux modules de traitement en série seront divisés en deux types différents de résultats à mélanger et trier.


Diagramme schématique du processus de mélange des flux d'informations post-achat

  1. Résultats publicitaires : La publicité adopte principalement une stratégie d'affichage dynamique des stands. En appelant le service d'affichage dynamique fourni par la publicité, elle décide dans quels stands afficher les publicités, quels résultats publicitaires sont spécifiquement affichés et la facturation publicitaire correspondante. L'objectif de la prise de décision est une commercialisation optimale. . valeur. Lors de la prise de décisions, tous les ensembles de candidats recommandés seront saisis en tant que caractéristiques contextuelles, mais l'ordre des résultats naturels ne sera pas décidé.
  2. Résultats naturels : le processus de réorganisation des résultats naturels n'utilise pas l'ensemble de candidats publicitaires comme caractéristiques contextuelles pour prendre des décisions. De même, il ne prend pas de décisions supplémentaires sur le classement des ensembles de candidats publicitaires. Il se réorganise uniquement au sein des résultats naturels. , pour obtenir la séquence de tri de la valeur utilisateur optimale.

Dans la séquence de sortie finale des résultats, les résultats publicitaires seront priorisés dans les créneaux déterminés par le service d'affichage dynamique, et d'autres résultats de recommandations naturelles seront affichés dans les créneaux vacants restants.

▐Il y a un problème  


  1. Les stratégies algorithmiques ont des objectifs incohérents et ne peuvent pas obtenir les résultats optimaux globaux : la stratégie d'affichage publicitaire est davantage basée sur la valeur commerciale et moins de considération est accordée à la valeur utilisateur des résultats naturels, bien que le remplacement des indicateurs puisse être obtenu en ajustant le compromis. coefficient entre les deux. , mais il ne peut évidemment pas obtenir un résultat de séquence globalement optimal.
  2. Il existe un couplage élevé entre l'itération de stratégie algorithmique et l'itération de logique métier : dans le lien actuel, les étudiants en algorithmie doivent développer conjointement le même ensemble de code avec les étudiants en ingénierie. Dans le même temps, les différents modules politiques impliqués sont dispersés dans différentes étapes de développement. le pipeline, tel que le service de valeur ecpm publicitaire sur lequel s'appuie le service de ciblage dynamique publicitaire, sera appelé pendant la phase d'achèvement, tandis que les résultats de ciblage dynamique réels seront traités au cours d'une planification mixte, ce qui entraînera une plus grande complexité du système global et une plus grande stabilité coûts de maintenance.


▐Solution _  


Sur la base des problèmes ci-dessus, nous espérons procéder à une mise à niveau unifiée du service de stratégie mixte actuel. Le service mis à niveau devrait avoir les caractéristiques suivantes :
  1. Ajustement de l'objectif de la stratégie de lecture aléatoire : le service de lecture aléatoire doit prendre en compte de manière globale la valeur utilisateur et la valeur commerciale, et maximiser la valeur globale de la page en tant qu'objectif de la stratégie de lecture aléatoire.
  2. Découplage de la stratégie et de l'activité : extraire la logique de stratégie de mélange du lien commercial côté serveur et la connecter en tant que service indépendant. Les mises à niveau itératives ultérieures seront maintenues par les collègues algorithmiques du nouveau service, et la stratégie de l'algorithme sera itérée. Elle est indépendante de l'itération commerciale du lien d'ingénierie, rendant la division du travail dans le développement plus claire et réduisant les coûts de maintenance correspondants.


Plan de mise en œuvre spécifique


▐Sélection technique  


Ce nouveau service de fusion hybride choisit xrec comme framework de code. xrec est un framework métier basé sur le moteur graphique tpp. Le framework comprend principalement les avantages suivants :

  1. Componentisation recommandée des processus métier : Le framework xrec peut résumer les nœuds métier du lien en composants.Les développeurs n'ont qu'à implémenter l'activité de chaque nœud conformément aux spécifications d'implémentation des composants convenues par le framework et à transmettre un fichier json au format fixe lors de l'organisation processus, il n’est pas nécessaire de considérer l’orchestration des processus métier au niveau du code.

  2. Optimisation des performances de concurrence entièrement asynchrone : différent du processus d'exécution rationalisé du framework TPE utilisé dans le lien d'ingénierie d'origine, le framework xrec améliore les performances de la scène en automatisant la concurrence multicanal et en encapsulant les opérations de données, et utilise une structure graphique pour décrire le processus métier. , afin que les utilisateurs n'aient pas besoin d'apprendre la programmation simultanée, vous pouvez obtenir une concurrence simultanée à grande échelle et sûre. Dans le même temps, la sérialisation/désérialisation des données, la conversion des données et les appels de service externes courants sont encapsulés dans les opérations de l'opérateur pour utilisation, et Des modules de plate-forme optimisés en termes de performances sont utilisés pour remplacer le code utilisateur inutilisé optimisé en termes de performances.


Le framework xrec évite beaucoup de travail aux développeurs d'algorithmes, mais il impose également plus de contraintes sur les règles de codage. Le processus de développement doit être effectué en stricte conformité avec les règles du framework.


▐Schéma de liens  


  • Solution de liaison de services mixte


Sur la base du framework xrec, nous avons construit un service TPP indépendant (xhuffle) pour entreprendre la logique de stratégie de brassage intégrée de toutes les publicités et résultats naturels. Le lien global du service est le suivant. Le service xhuffle appelle en interne le service d'estimation de la valeur ecpm publicitaire et le modèle de valeur unifié recommandé en parallèle pour obtenir les informations sur la valeur de la publicité et des résultats naturels. Le module de mécanisme de mélange de fusion résumera les informations sur la valeur de la publicité et des résultats naturels et prendra des décisions sur le tri. résultats de toutes les cartes, en fonction de la position de la carte ou en réorganisant les cartes, et enfin en appelant le service de facturation publicitaire pour obtenir des informations de facturation publicitaire pour les résultats publicitaires.

  1. Dans le lien d'ingénierie d'origine, les modules de services mixtes et dépendants sont dispersés à différentes étapes du pipeline. Après la création d'un nouveau service, la logique pertinente de mélange et de tri est intégrée dans un service indépendant, et elle peut être itérée séparément dans le nouveau service, réduisant considérablement les coûts de développement et de maintenance.
  2. Le modèle de valeur unifié de recommandation et le service d'estimation de l'ecpm publicitaire sont gérés respectivement par la recommandation et la publicité, et chacun est responsable de l'obtention de points de valeur de recommandation et de points de valeur publicitaire.
  3. Le module de mécanisme de mixage intégré est maintenu et itéré conjointement par les côtés publicité et recommandation.
  4. Le service de facturation publicitaire est géré par le côté publicitaire.En appelant le service publicitaire EADS, la génération des chaînes de facturation publicitaire est convergée au sein du service publicitaire pour assurer la sécurité des informations.

Schéma global des liens du service xhuffle

De plus, comme il existe encore certaines stratégies de ciblage commercial dans le flux d'informations post-acquisition, telles que les thèmes cloud, le ciblage de vidéos courtes, etc., cette partie de la stratégie n'a pas été prise en compte dans la stratégie d'arrangement mixte initiale. du ciblage des entreprises, la stratégie de brassage peut toujours déterminer les positions des stands, ce qui entraînera une interférence de ces cartes de visite avec les résultats du brassage, affectant directement les indicateurs de données commerciales. Dans le service xhuffle, nous fournissons cette partie des informations de la fosse commerciale en tant qu'entrée de service au module de brassage, et évitons de manière proactive cette partie de la fosse, en veillant à ce que les résultats du mélange et les résultats de la fosse commerciale n'interfèrent pas les uns avec les autres.


  • Plan d'appel du service de liaison d'ingénierie


Une fois le service xhuffle introduit, le moment de l’invocation du service est une préoccupation clé du lien d’ingénierie en amont. L'idée de base est qu'une fois le pré-filtrage effectué lors de l'étape de tri, le service xhuffle est appelé pour prendre des décisions sur les ensembles de candidats pré-filtrés en matière de publicité et de résultats naturels, puis la séquence finale des cartes de sortie est déterminée en fonction du mélange. résultats. D'une part, cela permet d'éviter de prendre des décisions sur des cartes filtrées et d'améliorer le taux d'utilisation des stands ; d'autre part, cela réduit également le nombre d'ensembles candidats, ce qui peut réduire dans une certaine mesure la pression sur les services.

Ici, nous proposons deux schémas d’invocation de liens.

Option 1 : Diviser la phase de tri et appeler les services en parallèle


Étant donné que le lien existant est exécuté en série lors de la phase de tri, compte tenu de l'ajout d'un nouvel appel de service externe, dans la solution 1, nous divisons la phase de tri en deux phases :
  1. Étape de pré-tri : Cette étape effectue principalement un filtrage des cartes de pré-tri. Après avoir obtenu la séquence de cartes pré-filtrée, lancez des appels parallèles vers le service de lecture aléatoire et d'autres services externes de la liaison d'ingénierie.
  2. Étape de post-tri : Dans cette étape, la séquence de cartes sera triée et tronquée en fonction des résultats de la brassage afin de déterminer la séquence de cartes finale qui doit être adaptée pour la sortie.
Schéma de liaison d'ingénierie du schéma 1

这种并行调用的方式看似减轻了链路RT的压力,实际上引入了一个新的问题。排序阶段输入的候选集序列大小一般是数倍于最终排序输出的序列大小,例如在购物车场景,每次请求最终返回的卡片序列数量为20,而排序阶段输入的卡片序列数量一般可达到100。在原有链路中,工程链路其他处理过程只会承接最终确认好顺序的20张卡片。如果将这部分处理前置,即使经过了前置过滤,这部分的服务实际承接的卡片序列数量还是将增长三至四倍,无形中加重了下游服务的压力。

在这部分外部服务中,UMP导购券后价接口的问题比较突出,这主要是因为UMP接口限制了接口一次调用承接的卡片数量不能超过15个,超出数量限制就需要分批发起多次调用,原本承接20张卡片就需要发起两次调用。如果承接的卡片数量增多,那么会直接增加对下游服务的请求量。

在前期小流量验证阶段,我们发现在实验流量上,对UMP服务接口的调用QPS增长了约3倍左右,这一现象也符合我们上述对该方案的分析。在小流量实验上并不能暴露出QPS增长带来的具体问题,但是如果采用这种方案进行推全,全量后下游的UMP接口将承载入口流量六至八倍的流量,压力实在太大,并且最终输出的卡片序列数量并没有增多,这部分新增的资源消耗并不是有效消耗,而是冗余消耗。



方案二:串行调用服务


考虑到上述方案带来的冗余资源消耗问题,我们提出了第二种链路调用方案,将xhuffle服务作为整体排序阶段的一个串行模块,在前置过滤完成后,直接串行执行服务调用。
方案二工程链路示意


这种调用方式对链路的RT压力会更大,由于是串行执行,服务调用的耗时会直接体现到整体链路耗时上。为了缓解RT的压力,我们采取了以下两个方面的措施:

  1. xhuffle服务本身的链路优化。混排服务中耗时占比最大的是推荐统一价值模型的调用,在最初的方案中是通过调用外部tpp服务进行处理,目前已优化为在服务中直接进行RTP调用来处理,同时调用所需的qinfo数据直接使用商品召回的缓存数据,不用重新生成。

  2. 购后工程链路在不影响用户体验的前提下,适当放宽超时限制,以此降低端上的超时率。目前,各场景均将场景超时限制放宽50ms。


两种方案对比


优点

缺点

并行调用对链路整体的RT影响较小

将工程链路其他处理前置,会带来下游服务承接的卡片数量增长三至四倍,带来冗余的资源消耗

链路改造成本小,无冗余资源消耗

服务耗时会直接体现在链路整体耗时上,对系统稳定性的压力更大


经过综合考虑后,我们认为方案一带来的冗余资源消耗是不可接受的,最终选择了方案二作为正式的链路改造方案。


总结与展望


在进行上述的链路改造后,xhuffle服务已在购中后信息流推全,好价版信息流正在逐步接入中。经过一系列优化迭代,目前的xhuffle服务在保证了系统稳定性前提下,取得了自然&广告双涨的结果。

  链路稳定性结果


  1. 混排服务场景指标:入口场景的服务调用平均RT保持在30ms以内,P99保持在70ms以内。服务调用超时率稳定在0.5%以内。
  2. 入口场景整体的系统稳定性指标:链路整体耗时可控,整体超时率保持在0.3%以内。
  3. 端上用户体验指标:由于各场景均扩了超时RT限制,我们通过端上接口的耗时变化来反映对用户体感上的影响。从扩RT前后分端接口耗时来看,用户体感上没有明显的变化。

  未来展望


  1. 短视频、直播等业务的混排策略升级,减少业务定坑对混排的约束。
  2. 类目打散等规则化策略的融入。
  3. 建设通用化的混排服务链路接入方案,以同一套方案为更多场景提供混排策略服务。

网络包传输

淘天集团首页&信息流技术-首页团队,目前负责集团电商平台的首页和信息流推荐,其中手机淘宝首页、信息流、NewDetail等场景每天服务数亿用户,大促核心系统峰值QPS千万计,工作涉及全链路端到端性能优化,流量效率提升、用户体验、提高商家及达人参与淘宝的积极性,优化商业生态运行机制。在过去的几年时间,我们一直专注手机淘宝首页、推荐信息流核心链路业务支持和业务平台抽象,与业界领先的算法团队紧密协作,不断拓展业务边界并将核心业务指标一次次踩在脚下。
这里有巨大的流量,可以满足你对高并发大规模分布式系统练手的畅想;
这里有前沿的算法应用场景,可以玩转各种智能创新;
这里有严苛的系统指标要求,可以让你感受到优化复杂系统化的快感~


¤  拓展阅读  ¤

3DXR技术 |  终端技术 |  音视频技术
服务端技术  |  技术质量 |  数据算法


本文分享自微信公众号 - 大淘宝技术(AlibabaMTT)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Tauri v2 支持 Android 和 iOS,跨平台开发新选择 PostgreSQL 90% 的新代码仅由 50 人完成,拓数派荣占一席 联想 2024 年将发布全新 AI OS 操作系统 微软为 Windows 11 引入原生 Sudo 命令支持 Redox OS 计划移植更多 Linux 软件 谷歌向 Rust 基金会捐赠 100 万美元,改进 Rust 与 C++ 的互操作性 曾被 Mozilla 放弃的 Web 引擎项目“Servo”在 2024 年迎来重生 Zig 编程语言 2024 年全新路线图发布 Go 语言之父总结成功因素:吉祥物功不可没 谷歌已从搜索结果页面删除“缓存链接”
{{o.name}}
{{m.name}}

Je suppose que tu aimes

Origine my.oschina.net/u/4662964/blog/10924141
conseillé
Classement