ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从LR到MMOE:得物社区推荐精排模型演进与多目标优化实践

从LR到MMOE:得物社区推荐精排模型演进与多目标优化实践 1. 从“猜你喜欢”到“懂你所需”得物社区推荐精排的挑战与机遇在任何一个内容社区里推荐系统都扮演着“隐形编辑”的角色它决定了用户打开App后最先看到什么以及能否持续获得愉悦的浏览体验。得物社区作为一个以潮流、穿搭、生活方式为核心的年轻化内容平台其推荐系统面临的挑战尤为独特。用户来这里不只是为了“看”更是为了“发现”和“种草”——发现最新的潮流趋势种草心仪的球鞋、服饰或是学习一种新的穿搭风格。因此传统的“点击率CTR至上”的推荐逻辑在这里会显得单薄甚至失效。一个用户可能因为封面图好看而点击了一篇关于某款限量球鞋的帖子高CTR但进去后发现内容空洞、图片模糊或者根本不是自己关心的尺码、配色那么这次点击带来的就是负向体验用户可能会快速划走甚至降低对平台推荐质量的信任。这就是精排模型需要解决的终极问题在召回和粗排筛选出的海量候选内容中精准地预测用户对每一个内容的综合满意度而不仅仅是“会不会点”。这个满意度在得物社区的场景下是一个多目标的复合体它包括了点击概率、点赞、收藏、评论、分享、完播率对于视频、甚至最终引导至电商交易的转化意向。精排模型就是那个在最后一道关卡通过复杂的计算给每个内容打出一个“综合得分”的裁判。它的演进历程本质上是一部平台如何从“流量思维”转向“用户价值思维”的技术奋斗史。我经历过从简单逻辑回归LR到复杂深度模型迭代的全过程深知每一次模型升级背后都是业务目标、数据理解和工程架构的一次深度碰撞。今天我们就来深入拆解得物社区推荐精排模型的演进之路看看它是如何一步步变得更“懂”用户的。2. 基石从LR到DeepFM特征工程的“黄金时代”在推荐系统的早期精排模型的核心是逻辑回归LR。它的优势非常明显模型简单、可解释性强、线上服务性能压力小。但LR是广义线性模型它无法自动捕捉特征之间的非线性交互关系。在得物社区这种非线性关系无处不在。举个例子“用户性别男”和“内容标签口红教程”这两个特征单独看可能对点击的预测都是负向的。但一个对美妆有浓厚兴趣的男性用户这是一个更高阶的组合特征看到优质的口红教程内容时点击概率反而可能很高。LR模型无法直接学习到“男性 美妆兴趣 口红教程”这个组合的效应。因此那个时代的算法工程师核心工作就是“特征工程”。我们需要凭借业务直觉和经验手动构造大量的交叉特征、组合特征比如“用户历史点击球鞋品类”与“当前内容球鞋品牌”的交叉“用户所在城市”与“内容提及的线下店铺位置”的组合。这就像一位老厨师凭借手感将各种食材特征预先处理好、搭配好再交给LR这个简单的灶台去烹饪。特征工程的好坏直接决定了模型效果的上限。我们团队当时维护着上千个人工组合的特征每天都有新的交叉想法被提出、实验、上线或废弃。DeepFM模型的引入是第一个里程碑。DeepFM巧妙地将因子分解机FM与深度神经网络DNN结合。FM部分负责学习低阶特征交互比如二阶交叉它通过为每个特征学习一个隐向量任意两个特征的交互度就可以通过其隐向量的内积来估计这自动涵盖了所有我们曾经需要手动构造的二阶交叉特征。而DNN部分则通过多层非线性变换自动学习高阶的、更复杂的特征交互模式。在得物社区的实践中上线DeepFM带来的效果提升是显著的。CTR预估的AUC衡量排序能力的指标有了肉眼可见的提升。更重要的是它解放了生产力。算法工程师可以从繁重的、试错性质的手工特征组合中部分解脱出来将更多精力投入到更本质的特征挖掘和业务理解上比如如何更好地刻画用户的“潮流敏感度”如何定义内容的“美学质量”。然而DeepFM依然是一个以优化CTR为单一目标的模型。随着业务发展我们很快发现CTR的提升并不总能带来用户体验和平台长期价值的增长。3. 破局多目标建模MMOE与用户长期价值的博弈我们遇到了瓶颈一个标题党、封面惊艳但内容空洞的帖子可能获得很高的点击率但用户进去后很快退出不会点赞、收藏更不会产生购买意愿。相反一篇干货满满、但封面平淡的深度测评可能点击率一般但用户的阅读时长、互动率和后续的搜索、购买行为却非常可观。如果精排模型只优化CTR就会倾向于将前者排到前面长期来看这会损害社区的内容生态和用户体验。多目标建模Multi-Task Learning成为必然选择。我们的目标从一个CTR变成了多个点击CTR、点赞率、收藏率、评论率、有效阅读时长或视频完播率。我们希望模型能同时学好这些任务找到一个最优的排序使得排在前面的内容既能吸引点击又能引发深度互动。初期我们尝试了Shared-Bottom结构即所有任务共享同一个底层特征表示层DNN然后在上面为每个任务接一个独立的小塔Tower进行最终预测。这种方式简单但存在一个严重问题任务冲突。例如优化“点击”和优化“完播率”所需学习的特征模式可能存在差异甚至矛盾。共享的底层网络在同时学习多个任务时可能会陷入“左右为难”的境地导致所有任务的效果都不如单任务模型。这就像让一个厨师同时做川菜和粤菜共用一套底料结果可能两道菜都做得不伦不类。MMOEMulti-gate Mixture-of-Experts模型的引入完美地解决了这一困境。它的设计非常精妙专家网络Experts模型包含多个“专家”网络每个专家都是一个独立的DNN可以理解为不同领域的“资深厨师”有的擅长做川菜捕捉点击相关模式有的擅长做粤菜捕捉深度互动模式。门控网络Gates为每一个预测任务如CTR、点赞率都配备一个独立的门控网络。这个门控网络的作用是根据当前的输入特征用户、内容上下文动态地决定“邀请”哪些专家、以多大的权重来共同完成当前任务。动态组合对于“点击预测”任务它的门控网络可能会给“标题党特征识别专家”和“封面美学专家”很高的权重。而对于“完播率预测”任务它的门控网络则可能更倚重“内容深度专家”和“作者权威性专家”。在得物社区上线MMOE后效果是立体的。不仅CTR指标保持稳定更关键的是点赞率、收藏率等深度互动指标得到了显著提升。从线上AB测试的数据看用户的人均停留时长和次日留存率也有了正向增长。这意味着模型推荐的內容更能留住用户让他们觉得“有用”、“想看”。这背后是模型学会了更精细的权衡牺牲一点点对“标题党”的偏好换取更多对“优质内容”的曝光。这里有一个重要的实操心得多目标权重的设置并非一劳永逸。在业务初期我们可能给予CTR较高的权重以保证流量分发的效率。当社区内容生态初步建立后就需要逐步提高点赞、收藏等反映内容“净价值”的权重。这个调权过程需要紧密结合业务数据如用户留存、创作者积极性进行分析是一个持续迭代的过程。4. 深化序列建模与动态兴趣捕捉无论是DeepFM还是MMOE它们处理的主要是“静态”的特征用户的性别、年龄、长期兴趣标签内容的类别、标签、质量分。然而用户的兴趣是动态的、有会话Session概念的。一个用户今天上午可能一直在看篮球鞋的测评他的短期兴趣高度集中在“篮球”和“球鞋”上。到了晚上他可能想放松一下兴趣点切换到了“潮流穿搭”或“街头文化”。如果模型只依赖他的长期画像可能显示他是一个“运动爱好者”那么晚上给他推篮球鞋内容的效果就不会好。这就需要序列建模来捕捉用户的动态兴趣。我们引入了如Transformer或更轻量级的GRU等序列模型来处理用户最近一段时间如过去1小时、过去20次点击的行为序列。这个行为序列每个行为可以用当时点击的内容的嵌入向量来表示。模型通过序列网络能够学习到用户兴趣的演变模式。例如序列模型可能识别出“浏览A品牌球鞋 - 浏览B品牌球鞋对比 - 点击球鞋保养攻略”这样一个兴趣深化的路径。那么当用户再次出现时模型会基于他最近的序列预测他当前最可能感兴趣的内容是“球鞋清洁产品推荐”还是“其他品牌球鞋”而不是泛泛的“运动内容”。在工程实现上这是一个巨大的挑战。因为精排阶段需要为每个用户-内容对进行实时预测如果每次都要实时运行一个序列模型计算开销是无法承受的。我们的实践方案是两阶段处理近线更新用户每发生一次新的行为就触发一次异步计算用序列模型更新该用户的“短期兴趣向量”一个固定长度的稠密向量并存入高速缓存如Redis。在线服务精排模型在线推理时直接从缓存中读取该用户的“短期兴趣向量”作为一个强大的动态特征与其他的静态特征一同输入到MMOE等精排模型中进行预测。这种方式既享受了序列建模带来的效果提升又将绝大部分计算压力转移到了离线或近线保障了线上服务的低延迟。实测下来引入高质量的短期兴趣向量能够带来显著的点击率和互动率提升尤其是在信息流这种强时效性的场景下。5. 融合多模态内容理解与“美学”因子注入得物社区的内容形式丰富图文、短视频、直播并存。尤其是潮流内容其“颜值”或“美学价值”至关重要。一张构图精巧、光线专业的球鞋照片一段剪辑节奏感强、调色出众的穿搭视频其吸引力远胜于平庸的视觉内容。传统的文本和类别标签无法充分刻画这种视觉层面的信息。因此多模态内容理解成为精排模型演进的新方向。我们利用计算机视觉模型来提取内容的视觉特征图像/视频质量清晰度、亮度、对比度、有无水印等基础质量分。美学评分通过美学评估模型预测内容在构图、色彩搭配、主题突出等方面的主观美感得分。这对于穿搭、潮物分享类内容至关重要。物体与场景识别识别图片/视频中出现的具体潮品牌、鞋款、服饰类型、场景室内、街头、秀场等。风格特征提取内容的视觉风格向量如街头风、复古风、简约风、高街风。这些视觉特征与文本特征标题、正文的关键词、情感、作者特征、上下文特征等融合在一起构成了内容端的丰富表征。在模型中这些多模态特征可以参与FM部分的交叉也可以进入DNN进行更深层的融合。例如模型可能会学习到这样的模式“用户历史偏好视觉美学分高的内容” “当前内容具有高美学分” “内容中包含用户关注品牌的视觉特征” 会产生一个非常高的综合预测分数。这相当于将编辑的“审美眼光”数据化、模型化让机器也能一定程度上判断内容的“好看”程度并将其作为排序的重要依据。注意多模态特征的引入会显著增加特征维度和模型复杂度。在工程上需要对视觉特征进行充分的降维和编码并做好线上服务的性能监控。我们通常采用预训练好的视觉模型提取高层语义特征向量而不是使用原始的像素数据。6. 实战精排模型上线与持续迭代的工程心法模型的演进不只是算法论文的复现更是一场漫长的工程战役。一个在离线测试集上AUC提升0.5%的复杂模型如果因为线上延迟增加50ms而导致请求超时、推荐失败那么业务效果将是负向的。6.1 离线训练与样本工程精排模型的训练样本来自于线上的曝光日志。这里有几个关键陷阱样本选择偏差模型只能学到它曾经曝光过的内容上的用户反馈。那些从未被曝光过的优质内容冷启动问题在样本中不存在模型自然学不会推荐它们。我们通过探索与利用策略例如Thompson Sampling或Bandit算法在线上保留一小部分流量进行随机或探索性曝光为模型收集“盲区”数据。延迟反馈用户的“收藏”、“下单”等行为可能发生在点击后的几个小时甚至几天。如果只用短期日志训练模型会低估那些能带来长期价值的内容。我们建立了延迟反馈处理机制使用等待窗口或引入“假负样本”等技术来缓解这一问题。特征一致性离线训练的特征管道和线上服务的特征管道必须保持绝对一致。任何细微的差异如分桶边界不一致、缺失值处理方式不同都会导致线上线下效果不一致俗称“线下涨点线上崩盘”。我们通过将特征处理代码封装成统一的、线上线下共享的库来解决这个问题。6.2 在线服务与性能优化精排模型是推荐系统的性能瓶颈所在因为它需要为每个用户对数百个候选item进行实时神经网络前向推理。模型轻量化在模型结构设计时就要考虑效率。例如使用更小的嵌入维度用MoE结构中的“门控”来实现条件计算并非所有专家网络每次都被激活对DNN层进行剪枝、量化。高性能推理框架我们从通用的TensorFlow Serving迁移到了针对推荐场景深度优化的TensorRT或自研推理引擎。这些框架可以对计算图进行极致优化包括算子融合、内存复用、利用GPU Tensor Core等能将推理耗时降低数倍。缓存策略对于用户侧变化不频繁的特征如长期兴趣向量、人口属性可以进行短期缓存减少特征获取的IO开销。6.3 评估体系与迭代闭环精排模型的评估绝不能只看离线AUC。我们建立了一个分层的评估体系离线评估AUC、LogLoss等常规指标用于快速验证模型结构和特征的有效性。在线AB测试这是黄金标准。我们将流量随机分成多个桶对比新模型实验桶和旧模型基线桶在核心业务指标上的表现。指标包括效率指标CTR、人均点击次数。互动深度指标点赞率、收藏率、评论率、分享率、有效阅读时长。长期价值指标用户留存率次日、7日、核心用户活跃度。生态指标内容分发多样性、新内容/新作者的曝光比例。人工评估定期抽样查看不同模型推荐的结果从内容相关性、新颖性、多样性、质量等主观维度进行评判。这对于发现模型潜在的“偏见”或“奇怪”行为非常有效。每一次模型迭代都必须走完“离线实验 - 小流量AB测试 - 全流量放量”的完整流程。在AB测试中我们不仅看大盘均值更关注分人群、分场景的效果差异。例如新模型可能对资深用户效果提升明显但对新用户效果持平或略降这就需要我们深入分析原因并考虑是否需要对不同人群采用不同的模型策略。精排模型的演进是一个算法、工程、产品、运营深度协同的过程。它没有终点因为用户的需求和市场的潮流永远在变。从LR到DeepFM我们解决了特征交互的问题从单目标到MMOE多目标我们平衡了短期点击和长期价值从静态画像到序列建模我们跟上了用户兴趣的动态变化从文本到多模态我们开始理解内容的“美感”。未来强化学习、因果推断等更前沿的技术可能会被引入以更好地处理推荐中的长期收益和偏差问题。但无论如何演进核心目标始终不变让得物社区的每一次推荐都更贴近用户那颗追求潮流、热爱分享的心。作为这个系统的建设者最大的成就感莫过于看到用户因为我们的推荐发现了心爱之物收获了灵感从而更愿意留在这个社区。这就是技术价值的最终体现。
返回列表