O sistema de recomendação é um sistema de filtragem de informações usado para prever as preferências do usuário e filtrar conteúdo que possa interessar ao usuário de uma grande quantidade de informações para fazer recomendações personalizadas. Um processo completo do sistema de recomendação inclui principalmente nós de processamento, como recall multicanal -> conclusão de material -> classificação e filtragem fina -> classificação mista -> saída de adaptação. Como a última camada de processamento antes da saída dos resultados, o embaralhamento é usado principalmente para normalizar e classificar os resultados das recomendações de diferentes fontes.Por um lado, é para obter a sequência de classificação com o melhor efeito de recomendação para os usuários e, por outro lado, , também pode melhorar a diversidade, a personalização e o alcance das recomendações.
![](https://oscimg.oschina.net/oscnet/41c6b95b-9504-46cf-9d1b-47246d876a00.png)
▐Link existente
O fluxo de informações do Taobao é um sistema de recomendação típico. No fluxo de informações, existem diversos tipos de cartões de visita, como produtos, anúncios, temas de nuvem, vídeos curtos, transmissões ao vivo, etc. Dividiremos os cartões de visita em duas categorias: resultados de publicidade e resultados de recomendação natural. Na fase de classificação, dois módulos de processamento serial serão divididos em dois tipos diferentes de resultados para misturar e classificar.
![](https://oscimg.oschina.net/oscnet/582b59c5-8bf3-43d0-a917-d1abec3ffb9d.png)
-
Resultados publicitários : A publicidade adota principalmente uma estratégia de exibição dinâmica de poços. Ao chamar o serviço de exibição dinâmica fornecido pela publicidade, ela decide quais poços exibir anúncios, quais resultados publicitários são exibidos especificamente e o faturamento publicitário correspondente. O objetivo da tomada de decisão é a comercialização ideal . valor. Ao tomar decisões, todos os conjuntos de candidatos recomendados serão inseridos como recursos contextuais, mas a ordem dos resultados naturais não será decidida. -
Resultados naturais : O processo de reorganização dos resultados naturais não utiliza o conjunto de candidatos publicitários como recursos contextuais para tomar decisões. Da mesma forma, não toma decisões adicionais sobre a classificação dos conjuntos de candidatos publicitários. Ele apenas reorganiza dentro dos resultados naturais., para obter a sequência de classificação do valor ideal do usuário.
▐Há um problema
-
As estratégias de algoritmos têm objetivos inconsistentes e não podem obter resultados ótimos globais : a estratégia de exibição de publicidade é mais baseada no valor comercial e menos consideração é dada ao valor do usuário dos resultados naturais, embora a substituição de indicadores possa ser alcançada ajustando a compensação coeficiente entre os dois. , mas obviamente não pode obter um resultado de sequência globalmente ideal. -
Há um alto acoplamento entre a iteração da estratégia do algoritmo e a iteração da lógica de negócios : no link atual, os estudantes de algoritmos precisam desenvolver conjuntamente o mesmo conjunto de código com os estudantes de engenharia. Ao mesmo tempo, os vários módulos de política envolvidos estão espalhados em diferentes estágios de o pipeline, como O serviço de valor ecpm de publicidade do qual o serviço de segmentação dinâmica de publicidade depende será chamado durante a fase de conclusão, enquanto os resultados reais da segmentação dinâmica serão processados durante o agendamento misto, resultando em maior complexidade do sistema geral e maior estabilidade custos de manutenção.
▐Solução _
-
Ajuste do objetivo da estratégia shuffle : O serviço shuffle deve considerar de forma abrangente o valor do usuário e o valor comercial e maximizar o valor geral da página como objetivo da estratégia shuffle. Desacoplando estratégia e negócios : extraindo a lógica da estratégia combinada do link de negócios do lado do servidor e conectando-o como um serviço independente.As atualizações iterativas posteriores serão mantidas pelos colegas do algoritmo no novo serviço, e a estratégia do algoritmo será iterada. a iteração de negócios do link de engenharia, tornando mais clara a divisão do trabalho no desenvolvimento e reduzindo os custos de manutenção correspondentes.
Plano de implementação específico
▐Seleção técnica
Este novo serviço de fusão híbrida escolhe xrec como estrutura de código. xrec é uma estrutura de negócios baseada no mecanismo gráfico tpp. A estrutura inclui principalmente as seguintes vantagens:
Componentização recomendada de processos de negócios : A estrutura xrec pode abstrair os nós de negócios do link em componentes. Os desenvolvedores só precisam implementar o negócio de cada nó de acordo com as especificações de implementação do componente acordadas pela estrutura e passar um arquivo JSON de formato fixo ao organizar processos de negócios, não há necessidade de considerar a orquestração dos processos de negócios no nível do código.
Otimização de desempenho de simultaneidade totalmente assíncrona : Diferente do processo de execução simplificado da estrutura TPE usada no link de engenharia original, a estrutura xrec melhora o desempenho da cena automatizando a simultaneidade multicanal e encapsulando operações de dados, e usa uma estrutura gráfica para descrever o processo de negócios , para que os usuários não precisem aprender programação simultânea, você pode obter simultaneidade segura e em grande escala.Ao mesmo tempo, serialização/desserialização de dados, conversão de dados e chamadas de serviço externas comuns são encapsuladas em operações do operador para uso, e módulos de plataforma com desempenho otimizado são usados para substituir código de usuário não utilizado com desempenho aprimorado.
A estrutura xrec economiza muito trabalho aos desenvolvedores de algoritmos, mas também impõe mais restrições às regras de codificação.O processo de desenvolvimento precisa ser realizado estritamente de acordo com as regras da estrutura.
▐ Esquema de links
Solução de link de serviço misto
Com base na estrutura xrec, construímos um serviço TPP independente (xhuffle) para realizar a lógica estratégica de embaralhamento integrada de toda a publicidade e resultados naturais. O link geral do serviço é o seguinte. O serviço xhuffle chama internamente o serviço de estimativa de valor de publicidade ecpm e o modelo de valor unificado recomendado em paralelo para obter as informações de valor de publicidade e resultados naturais.O módulo de mecanismo de mistura de fusão resumirá as informações de valor de publicidade e resultados naturais e tomará decisões sobre a classificação resultados de todos os cartões., dada a posição do poço do cartão ou reordenando os cartões e, finalmente, ligando para o serviço de faturamento de publicidade para obter informações de faturamento de publicidade para os resultados de publicidade.
-
No link de engenharia original, os módulos de serviço mistos e dependentes estão espalhados em diferentes estágios do pipeline. Após a criação de um novo serviço, a lógica relevante de mistura e classificação é integrada em um serviço independente e pode ser iterada separadamente no novo serviço, reduzindo significativamente os custos de desenvolvimento e manutenção. -
O modelo de valor unificado de recomendação e o serviço de estimativa de ecpm de publicidade são mantidos por recomendação e publicidade, respectivamente, e cada um é responsável por obter pontos de valor de recomendação e pontos de valor de publicidade. -
O módulo de mecanismo de mistura integrado é mantido e iterado em conjunto pelas partes de publicidade e recomendação. -
O serviço de cobrança de publicidade é mantido pelo lado publicitário. Ao chamar o serviço de publicidade EADS, a geração de strings de cobrança de publicidade é convergente dentro do serviço de publicidade para garantir a segurança da informação.
![](https://oscimg.oschina.net/oscnet/6c7c099c-685f-4047-afc5-675c251b8195.png)
Além disso, como ainda existem algumas estratégias de direcionamento de negócios no fluxo de informações pós-aquisição, como temas de nuvem, direcionamento de vídeos curtos, etc., esta parte da estratégia não foi considerada na estratégia original de arranjo misto. da segmentação de negócios, A estratégia de embaralhamento ainda pode determinar as posições dos boxes, o que fará com que esses cartões de negócios interfiram nos resultados do embaralhamento, afetando diretamente os indicadores de dados de negócios. No serviço xhuffle, fornecemos esta parte das informações do poço de negócios como uma entrada de serviço para o módulo de embaralhamento e evitamos proativamente essa parte do poço, garantindo que os resultados da mistura e os resultados do poço de negócios não interfiram entre si.
Plano de chamada de serviço de link de engenharia
Opção 1: Dividir a fase de classificação e chamar serviços em paralelo
-
Estágio de pré-classificação : Este estágio realiza principalmente alguma filtragem de cartão de pré-classificação. Após obter a sequência de cartões pré-filtrados, inicie chamadas paralelas ao serviço de embaralhamento e demais serviços externos do link de engenharia. -
Estágio de pós-classificação : Neste estágio, a sequência de cartas será classificada e truncada com base nos resultados do embaralhamento para determinar a sequência final de cartas que precisa ser adaptada para saída.
![](https://oscimg.oschina.net/oscnet/0c3a3c25-d189-4a1e-a5b5-69b3be819e62.png)
方案二:串行调用服务
![](https://oscimg.oschina.net/oscnet/ff50d3fd-b1a0-4034-ba8a-dcba69bb34e5.png)
这种调用方式对链路的RT压力会更大,由于是串行执行,服务调用的耗时会直接体现到整体链路耗时上。为了缓解RT的压力,我们采取了以下两个方面的措施:
xhuffle服务本身的链路优化。混排服务中耗时占比最大的是推荐统一价值模型的调用,在最初的方案中是通过调用外部tpp服务进行处理,目前已优化为在服务中直接进行RTP调用来处理,同时调用所需的qinfo数据直接使用商品召回的缓存数据,不用重新生成。
购后工程链路在不影响用户体验的前提下,适当放宽超时限制,以此降低端上的超时率。目前,各场景均将场景超时限制放宽50ms。
两种方案对比
优点 |
缺点 |
并行调用对链路整体的RT影响较小 |
将工程链路其他处理前置,会带来下游服务承接的卡片数量增长三至四倍,带来冗余的资源消耗 |
链路改造成本小,无冗余资源消耗 |
服务耗时会直接体现在链路整体耗时上,对系统稳定性的压力更大 |
经过综合考虑后,我们认为方案一带来的冗余资源消耗是不可接受的,最终选择了方案二作为正式的链路改造方案。
![](https://oscimg.oschina.net/oscnet/9bad6b4a-8a54-4cbe-82fe-b3f05c63e0e6.png)
▐ 链路稳定性结果
-
混排服务场景指标:入口场景的服务调用平均RT保持在30ms以内,P99保持在70ms以内。服务调用超时率稳定在0.5%以内。 -
入口场景整体的系统稳定性指标:链路整体耗时可控,整体超时率保持在0.3%以内。 -
端上用户体验指标:由于各场景均扩了超时RT限制,我们通过端上接口的耗时变化来反映对用户体感上的影响。从扩RT前后分端接口耗时来看,用户体感上没有明显的变化。
▐ 未来展望
-
短视频、直播等业务的混排策略升级,减少业务定坑对混排的约束。 -
类目打散等规则化策略的融入。 -
建设通用化的混排服务链路接入方案,以同一套方案为更多场景提供混排策略服务。
![](https://oscimg.oschina.net/oscnet/1c483fc6-0eec-4b2f-97b6-f1b26c66cad9.jpg)
这里有巨大的流量,可以满足你对高并发大规模分布式系统练手的畅想;
这里有前沿的算法应用场景,可以玩转各种智能创新;
这里有严苛的系统指标要求,可以让你感受到优化复杂系统化的快感~
本文分享自微信公众号 - 大淘宝技术(AlibabaMTT)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。