蜻蜓FM实时推荐系统的发展和演进

01

背景简介

1. 关于我们

蜻蜓FM——中国移动互联??频的领跑者, 国内?家?频媒体平台,以敏锐独到的视?传播世界的声?业内?创PUGC专业主播?态,打造品质感的?频内容体系上架10年,突破4.5亿?户,?态流量?活跃?户量1.3亿。

2. 推荐业务场景

?前推荐场景分布??feeds流,超级会员?猜你喜欢、频道?feeds流,我听?猜你喜欢等多种场景,涵盖专辑、节?、听单、直播间等多种形态。

02推荐系统的演进

推荐系统是帮助?户可以?效率的找到??感兴趣的内容,在我们的推荐场景的定位是帮助?户更快更好的发现新的内容,?且保证千?千?,?户在平台在追的专辑回溯源头基本是发?在??feeds, ??feeds承接着平台绝大部分的流量,所以??feeds推荐系统的好坏?关重要,蜻蜓FM推荐系统经过?年的?程和算法不断迭代和更新,推荐??样式从固定模块推荐变为feeds流推荐,推荐效率逐渐完成了从天级别的离线推荐、到分钟级别的近实时推荐和ms级别的实时推荐的转变,召回策略也逐渐从常规个性化模型到深度召回模型进?转变,排序模型也从树模型替换为复杂的深度学习模型,并在线上取得了?幅的指标的提升。

03实时推荐系统架构

什么是?个好的实时推荐系统,应该?少满?以下四点:

  • 架构既能处理海量数据,?能及时响应?户交互;
  • 快速迭代推荐策略、算法;
  • 优雅降级,即使在服务出现问题的时候,也能推荐出个性化的结果;
  • 及时、准确、全?的记录?户反馈。
  • 我们整个推荐系统由主要有四个部分组成,包括offline层,Pipeline层、Online层,业务层,其中业务层包括多个推荐场景,其中?部分场景使?的是同?套推荐框架,如何快速?效地迁移部署到其他推荐场景,是我们需要考虑的问题,每层各司其职,如何保证各?任务的稳定性以及保证推荐系统的实时性是?关重要的。

  • ?个是如何实时获取?户的实时兴趣?常关键,?户通过与app发?交互,产??些播放、收藏、搜索点击等隐式?为,从算法的?度准确计算出?户的实时兴趣,及时推荐相关内容,满??户需求,从?可以让?户停留在平台更多时间,产?沉浸式的体验;
  • 第?个是要从架构上要满?实时性的性能要求,从?户触发推荐-召回-粗排-精排-重排,每个环节都需要保证短时间内在推荐链路?成推荐结果,以及保证架构的稳定性,特别是精排和重排环节,是最后展现内容给?户的环节,实时性必须保证在ms级别,?模型越好,往往模型越复杂,模型复杂,往往会带来线上性能压?,但是好的模型,线上提升指标是巨?的。
  • 04

    召回层回顾

    在传统的实时推荐系统中,存在着?个级联结构,在我们的推荐场景下包括专辑池、召回、精排、重排四个模块,他们像是?个漏??样不断筛选出?户感兴趣的专辑,其中召回模块是?较重要的?个模块,它是通过?些算法策略从?万量级的专辑池筛选出数百量级的?户感兴趣的专辑投?到精排进?排序,通过减?专辑的量级,从?减轻线上排序服务性能的压?。

    我们之前的召回?案路线是根据?户的?短期兴趣、热度、标签等开发多路召回策略,根据各个召回策略在线上的表现优劣分为不同的优先级,然后以集合(topK)为建模?标,按照优先级进?多路召回的融合,这种?法的优点是速度快、算??,缺点也很明显,从10万量级到数百量级,这样的筛选漏?过?,带来的信息损失也?较?,?且我们所有融合的策略都是基于?些??经验进?主导,从?会导致召回的准确率的不?。

    难点和挑战:

    如何提升召回阶段的准确率?直是?个难点,也是我们需要解决的问题。

    05

    粗排层回顾

    ?对召回阶段的挑战,这边我们的解决思路是在召回模块和精排模块添加?个名叫粗排的模块,我们的?的是通过模型代替??经验进?筛选,从?带来准确率提升,粗排模块我们采?的是根据DSSM深度学习模型进?改进的双塔模型,其中它的?络特点是整个?络结构是由?户塔和物品塔组成,每个塔都有各?输?特征和?络结构,然后通过最后?层输出固定维度的embedding向量,然后进?内积计算,在线上部署时,我们可以将相对静态的专辑embedding向量异步写?到向量索引库?,通过线上实时获取相对动态的?户embedding向量,然后从专辑向量索引库中召回topK的相关专辑列表。

    它的优点有很多:

  • ?户塔和专辑塔结构是解耦的,他们在最后进?内积计算之前没有模型结构的交叉;
  • ?且内积计算相关算?较?,部署线上后,性能得到保证;
  • 我们可以添加?定义?络结构,增强泛化能?;
  • 也可以通过加??户实时?为序列特征,获取?户的实时兴趣;
  • 也可以获得?定程度的排序能?,因为训练的时候使?了部分曝光未播放的样本,从?具有?定程度的排序能?,表达能?强。
  • 线上收益:

    模型部署到我们??feeds个性推荐后,带来了?较?的指标提升,其中?级指标,包括?户?均收听提升了5.44%,有效UV-PTR提升了 3.26%,?级指标包括?均点击次数、ItemCTR,会员专辑UV-PTR、PV-PTR也带来了不同程度的提升。

    难点和挑战:

    双塔模型的解耦的模型特点导致了它?法更好地使??户和物品的交叉特征,从?限制了它的泛化和表达能?,接下来计划尝试的解决?案有:

  • 借鉴模型蒸馏的思想,将精排的模型训练时产?的预测结果部分代?到双塔训练过程中,将精排模型良好的泛化能?迁移到双塔;
  • 拓宽双塔模型的宽度,当前的双塔模型是由多层的MLP组成,可以在同?层上?添加DCN,Self-attention等具有?阶特征交叉能?的模型结构,由单塔的MLP变为多塔,并在最后?层设置动态权重,从?达到增加泛化和表达能?的?的。
  • 06

    排序层回顾

    上线基于DeepFM的深度学习排序模型:

    最近两年我们的线上排序主?模型?直是Xgboost模型,它具有特征?程简单,效果优秀,?持并?训练,跨语?跨平台部署的优点,我们在Xgboost的基础上,迭代了?版,在线上指标也取得了很?提升,但是呢,随着特征维度变得越来越?,模型也变得越来越复杂,以及随着我们推荐场景的不断丰富,需要在线预测的地?越来越多,在线预测的性能压?变得越来越?,性能优化的成本与我们线上获得的收益不再是成正?的关系,线上性能越来越成为我们的瓶颈,这时我们急需?种新的模型框架进?替代。

    新模型替换XGboost同样?临着不同的困难与挑战:

  • 新的模型框架意味着之前开发xg所积累的经验不再可?,需要从头进?数据基础设施建设,意味着成本问题;
  • 这同样也意味着?险,因为XG模型迭代了多个版本,?前效果也达到了相对最优,新模型可能有达不到?前效果的?险;
  • 在保证效果的同时,同样还需要满?严苛的线上性能要求,也就是效果与性能之间需要进?trade-off。
  • 通过?段时间的调研,我们决定采?deepFM深度学习排序模型,它是2017年华为诺亚??实验室和哈??共同推出的算法模型,?前已经成功应?在各??线互联?的推荐系统中,业界有?较多的成熟经验参考,deepFM整个算法框架主要分为两个部分组成,其中FM部分可以理解为?个浅层的神经?络层,它具有?定特征交叉的能?,它使模型具有?定的记忆能?,DNN部分可以使特征进?更?维度的交叉,这使得模型具有?定的泛化能?,不但可以?定程度减???特征挖掘的?作量,?且这两部分的Embedding?络层是共享的,这就??减?了模型的复杂度,它更擅?处理?规模的ID类稀疏特征,像我们??万个的专辑ID,其实也可以作为?种特征加?模型中进?训练,这些都是deepFM?xgboost有优势的地?。?且我们也同时做了其他??的优化的尝试:

  • 重新定制了多种适配deepFM的特征库;
  • 我们前期利?Spark Streaming实时计算框架开发定制了多种实时动态序列特征,可以更好的捕获?户的实时兴趣;
  • 我们把特征?程和预测服务做成了统?的API接?供外部调?,并部署到我们的容器云平台;
  • 在上线前,我们多次进?代码优化,模型结构的简化,在保证训练效果的同时,尽量减?模型复杂度,同时我们还在线下多次进?的线上真实场景的模拟压测,我们平均rt时间控制在30ms左右,基本满?我们的性能要求。
  • 线上收益:

    我们把新模型部署在了多个推荐场景,其中??feeds的个性推荐场景,?级指标?户收听时?提升10.94%,有效UV-PTR提升9.26%,有效收听ItemPTR提升7.83%,其中?级指标也得到很?提升。

    同时我们也把deepFM部署在??的投放场景和频道?的推荐场景,可以看到上线前和上线后的指标的提升幅度都很?。

    07

    节?推荐上线

    为了探索推荐系统更多的可能性,我们进?了节?推荐第?期的探索,?的是挖掘触发推荐时进?节??效率召回的?式,包括节?对节?,节?对专辑,专辑对节?的相互影响和发现。

    节?召回:

    针对节?推荐的特点,?前我们已经开发了以下?种召回策略:

  • 基于GraphEmbedding的EGES向量相似召回策略:针对?般的Word2vec的embedding?法?法对?户顺播节?序列准确获取节?向量,以及新上线的节??法获取embedding的冷启动问题,采取了基于EGES的图的embedding训练?法,在节?ID的基础上,获取类别ID、tagID等多维度的Side-Information,通过DeepWalk的随机游?采样?法以及Skip-gram的模型训练?法,准确?效获取节?的embedding结果,在缓解新节?上线的冷启动以及中?尾节?的覆盖度问题上,效果有了很?提升。
  • 基于Bert的语义相似召回策略(覆盖节?3万左右,可作为补充策略):基于业界先进的Bert?然语?预训练模型,提取各个节?标题的?本向量,借助近似近邻搜索框架faiss,为每个节?标题匹配最相似的topK的相关节?,利??本多分类的下游任务进?微调,使提取的节?标题语义向量更加准确,使效果进?步提升。
  • 基于?级分类的热播节?召回策略(时间窗?2周), 兼顾热度和时间衰减。
  • 追更策略:作为每?强插策略与当前节?召回进?融合, 通过计算出?户有追更状态的专辑,向?户推荐新上线的节?。
  • 线上收益:

    同时线上我们进?了专辑和节?的不同形式的穿插,以及如何?效过滤, 节?推荐样式的AB实验, 最终取得了第?阶段不错的收益,其中专辑+节?的整体收益中,?级指标包括?均收听时?提升了5%、有效收听UVPTR提升了7%,其他指标均得到了?幅度的提升。

    改进?向:

    当前专辑召回和节?召回都是各?独?构建同构图,最终?成Embedding向量,后?会考虑将专辑和节?表征到同?个向量空间,?Metapath2vec的?法共同构成异构图,基于元路径指导图上节点的游?,采样出序列后,经过skip-gram?成Metapath语义下的表征,最后对表征做?个融合,得到节点的最终表征。

    节?排序上线MMoE:

    最近我们通过分析发现,?户的?均收听时?,专辑完播率,收藏专辑次数和?户留存率成正相关的关系,这些隐式?为在?定程度上影响着?户的留存,我们?前的建模是单?标的预测,?标是通过直接提升PTR,来间接提升?户收听时?,这?有个问题就是假如只关注专辑是否播放,那么?户播放后,可能会发现不喜欢或者专辑质量差,觉得体验太差,?户可能流失,也有可能?户很喜欢,愿意加?收藏,等有时间接着听,间接增加?户粘性和回访率,所以我们在提?PTR的同时,还需要提升专辑的收藏转化率,这不但可以增加留存,还可以间接的推荐?质量的专辑给?户,提升?户体验。

    同样的这也适?于节?排序,?期我们开发了基于MMOE的多?标排序,其中以是否播放和是否完播作为我们的前期的预测?标,MMOE 相?ESMM这种基于Shared-bottom的模型,不同任务的gating networks可以学习到不同的组合experts的模式,捕捉到不同任务的相关性和区别,可以减?受到任务差异和数据分布带来的影响,所以MMoE作为我们?选的多?标排序模型。

    这边我们选择了三个Expert?络,可以看到不同Label对于不同的Expert的依赖程度是不?样的,?前来看,两个task通过Gate?络,分别获取了对不同expert?络的权重,其中Label1对expert2的依赖更?,Label2对expert1的依赖更?。

    线上收益:

    在??feeds上线?个?后,在专辑+节?的全局流量的?级指标中,包括UV-PTR和?均播放时?提升在3%左右。

    改进?向:

  • MMoE的?期特征中,?前只添加了30多维的特征,后期会挖掘更多的?效特征,包括交叉特征、序列特征等。
  • MMoE的?络结构中底层使?的简单的Embedding层concat的形式,后期会尝试参考DIN,DeepFM对现有的?络结构进?升级改造并融合Attention,FM的?络结构,增强泛化能?。
  • 当前?标是包括是否播放,是否完播的两个?标,后期会融?是否收藏、评论、下载等多个?标。
  • 后期会尝试使?PLE的多?标排序的新模型,相?MMoE的优点是消除了task tower network和其他任务的task-specific experts的联系,可以使得不同类型的experts进?各?更专注的学习,不互相?扰。
  • MMOE离线训练时,各task之间的loss的收敛速度和??可能不同,?如分类问题和回归问题,需要有机制可以在训练时动态调整各loss的权重,?如GradNorm。
  • MMOE部署上线时,各task的预测分值需要分别乘以对应的权重,获得最终分值之后进?排序,?前有加法融合和乘法融合两种?法,当前我们使?的是加法融合,也可以通过?叶斯优化的?法进?最优权重的寻找。
  • 08

    重排层回顾

    排序模型?般是按照point-wise的?式进?训练,很容易造成相似内容扎堆的现象,考虑到提升?户体验和内容多样性,我们也同时尝试了?种提升多样性的?法和策略:

    1. 动态刷新

    ?前feeds个性化推荐结果,在?户没有产?触发推荐?为的时候,理论上?户的整个推荐结果是不会产?变化的,从数据来看,大部分?户停留在前3?,所以?户在触发推荐之前,多次触达??,看到的内容可能是?样的,这时推荐多样性就会大打折扣,简单粗暴的对曝光过的专辑进?过滤,可能会过滤?些产??效曝光的专辑,?且过滤?度过?,还会造成没有优质专辑可推的局?。

    我们的?的是保证?户没有触发推荐的期间,每次打开??feeds,推荐结果都有?些变化,?定程度解决内容多样性的问题。

    在重排层加?动态刷新机制,在召回集基本不变的前提下,优先考虑在集合内部的排序上进?动态调整,也就是在排序打分的基础上除以?个降权系数weight,曝光次数较多的专辑,重排时后移,引?时间衰减,近期曝光的专辑更快后移,远期曝光的专辑回归到正常序列。

    2. MMR

    MMR是?种近似的贪?算法,全称是最?边缘相关模型(Maximal Marginal Relevance),第?个Sim代表是某个专辑的rank score,第?个Sim代表该专辑与?成的结果集中专辑的相似度,λ越?,越接近原始的排序结果,λ越?,越强调多样性。

    同时,我们在计算结果和?程效率上也做了部分优化,?个是mmr是基于多轮迭代的策略,候选集个数越多,计算量越?,所以我们只选择rank score在固定topK的候选集进?了mmr的计算,做了计算效率和多样性效果的trade-off,还有?个是为了突出?户兴趣的实时性,我们对个别候选集进?了乘以rate系数的加权操作,将部分候选集进?多样性打散后可以排在最前?。

    3. DPP

    ?列式点过程(Determinantal Point Process, DPP), 是?种基于?列式点过程的提升推荐多样性的算法,并使?贪?算法推理最优的?列式点过程,并利?Cholesky加速?列式点过程的推理,我们使?已计算好的word2vec的16维的embedding向量进?核矩阵的构建,并做了部分?程上的优化。

    线上收益:

    经过?段时间的ABtest,我们发现加权的MMR线上效果最好,它可以保证在其他转化指标不下降的情况下,提升多样性指标包括?均曝光?级类?、?级类?个数,均提升在10%以上。

    改进点:

    接下来会考虑使?list-wise的思路,从整体推荐列表的物品顺序的?度进?考虑,融合当前物品上下?信息,也就是列表其他物品的特征信息,利?RNN或者Transformer对每个输?对应位置经过特征融合,按照新预测的得分重新对物品排序,从?获得整体列表的最?收益。

    09

    推动特征?程与算法模型的微服务化

    在通常的算法开发?作中,需要我们有快速迭代,快速试错的能?,然?在以往的我们模型开发部署的过程中,我们经常会遇到部署效率的问题,原因是我们线上?般会同时部署多个模型多个版本进?ABtest,每开发?个新的排序模型,后端同学都需要把离线的特征拼接环节在线上进?复现?遍,其中我们的离线训练是scala语?开发,线上是go语?开发,在这种跨语?跨平台的场景下,特征拼接极易出现线上线下不?致的问题,出现问题需要??review逐步排查,费事费?不说,定位问题也?较困难,同时迁移部署到其他推荐场景时,还要徒增重复代码,不但部署效率??减低,?且还增加了出现问题的概率和隐患。

    同样的,解决这个问题会遇到?些困难和挑战:

  • 如何省去???对特征拼接结果的过程,并保证特征?程线上线下?致性;
  • 如何进?特征?程和模型的多版本部署、多模型扩展和热加载;
  • 如何可以提升部署效率、快速迁移部署到其他推荐场景。
  • 解决?案:

  • ?先我们进?了特征?程配置化处理,我们把每个版本的对应特征处理的配置?件存?到redis中,并分别制定stg和prd流程,?便stg线下测试后,线上部署prd环境;
  • 通过配置中?实现多场景、多版本、多模型的统?部署和管理,通过配置中?可以控制读取不同类型不同版本的模型?件路径,读取对应版本的特征?程配置?件,?便进??键部署和版本回退;
  • 将这个服务框架开发成端到端的微服务框架,部署到容器云平台进?统?管理,?便多场景迁移部署,后端通过发送deviceID,recallSet,modelType以及modelVersion就可以很?便的获取?户最后的专辑推荐列表。
  • 线上收益:

  • 线上部署模型效率值的提升,5个工作日缩短至半个工作日;
  • 模型从离线训练到部署上线周期,数月缩短至数周;
  • 提高模型快速迭代、快速试错的能力;
  • 整个框架已在上海算法平台进行推广,现已成功应用在推荐、搜索的多个推荐场景。
  • 10

    总结和展望

    蜻蜓FM作为国内?频内容领域top级别的产品,推荐系统始终扮演着重要??,我们也始终关注着推荐领域相关算法的前沿动态,并结合我们对于业务的深刻理解,从算法和?程?度出发,不断进?摸索和实践,并且取得了不错的效果, 希望能给相关从业的同学以思考和启发,同时也让我们挖掘出很多改进的点,接下来我们也会从如何保证推荐系统的实时性、提?推荐内容的多样性,保证推荐内容质量、以及提升?户对推荐内容的满意度,提升?户留存等?个?向出发,不断完善我们推荐系统和内容?态,以期为?户带来更好的收听体验。

    今天的分享就到这里,谢谢大家。

    分享嘉宾:

    分享嘉宾:雷鸣 蜻蜓FM 算法专家

    出品平台:DataFunTalk

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年9月10日
    下一篇 2021年9月10日

    相关推荐