不要犯战略性的失误——如何合理制定推荐系统的优化目标?

不要犯战略性的失误——如何合理制定推荐系统的优化目标?

本文要谈的是 推荐系统的优化目标 的问题。作为一名算法工程师来讲,最关心的往往是模型的创新、技术的演进。笔者在最开始工作的几年,也经历过这样的阶段,执着的追求于应用最新的技术,追踪最新的paper,更新最新的机器学习工具。这样持续学习的精神对于技术人员是必要的。但在更新自己技术储备的同时,我们往往对一个战略性的问题不够重视——推荐系统的优化目标是否合理。

某知名互联网人物说过“ 不要用战术上的勤奋掩盖战略上的懒惰 ”。这句话同样适用于技术的创新和应用。如果一项技术本身的新颖的、先进的,但应用的方向与实际需求的方向有偏差,那这项技术的成果不可能是显著的。同理在推荐系统中,如果你的推荐系统模型的优化目标是不准确的,即使模型的评估指标做的再好,也肯定与实际所需的目标南辕北辙。所以,不要犯战略性的失误、合理设定推荐系统的优化目标是每位从业者在构建推荐系统之前,首先也是着重要思考的问题。

设定一个“合理”的推荐系统优化目标,首先需要确立一个“什么是合理”的原则。对于一家商业公司而言,在绝大多数情况下,推荐系统的目标都是完成某个商业目的。所以根据商业目标来制定推荐系统的优化目标理应作为“合理”的战略性目标。下面通过YouTube和阿里推荐系统的例子来进一步说明这一点。

YouTube采用“用户时长”作为优化目标的合理性

YouTube是全球知名的UGC流媒体公司。用户观看YouTube的内容是免费的,YouTube无法通过会员费或者订阅费赚钱,因此其最主要的商业模式就是视频广告的收入。视频广告会阶段性的出现在视频播放之前和视频播放过程中,因此YouTube的广告收入是与用户观看时长成正比的。所以为了完成公司的商业目标,YouTube推荐系统的优化目标并不是点击率、播放率等,而是用户的播放时长。

不可否认的是,点击率等指标与用户播放时长有相关性,但二者之间仍存在着一些“优化动机”上的差异。如果以点击率为优化目标,那么推荐系统会倾向于推荐“标题党”,“预览图劲爆”的短视频,而以播放时长为优化目标,那么推荐系统则应把视频的长短,视频的质量等特征考虑进来,也许推荐一个高质量的“电影”或“连续剧”就是更好的选择。推荐目标的差异会导致推荐系统倾向性的不同,进而影响到能否完成“增加用户播放时长”这一商业目标。

图1 YouTube推荐系统的输出层

在YouTube的推荐系统模型中,引入播放时长作为优化目标的方式也非常有意思,大家可以参考。YouTube的Ranking模型原本是把推荐问题当作分类问题来对待的,即预测用户是否点击一个视频 。

(详细的过程可以参考之前的专栏文章:王喆:揭开YouTube深度推荐系统模型Serving之谜)

YouTube对于播放时长的预测符合其广告盈利模式和商业利益,而对于阿里巴巴等电商类公司来说,其优化目标又是另外的形式。

模型优化和应用场景的统一性

优化目标的制定还应该考虑的要素是模型优化场景和应用场景的统一性,这一点上,阿里的多目标优化模型给了我们一个很好的例子。

图2 训练空间和预测空间的不一致

在天猫、淘宝等电商类网站上做推荐,用户从登陆到购买的过程可以抽象成两步:

1.产品曝光,用户点击进入产品详情页;

2.用户在产品详情页产生购买行为。

与YouTube等视频网站不同,对于电商类网站而言,公司的商业目标是产生购买行为。因此按照优化目标应与公司商业目标一致的原则,电商类推荐系统模型应该是一个CVR(购买转化率预估)模型。

由于购买转化行为是在第二步产生的,因此在训练CVR模型时,直观的做法是采用点击数据+转化数据(图2 中灰色和深灰色区域数据)训练CVR模型。而在使用CVR模型时,因为用户登录后直接看到的并不是具体的产品详情页,而是首页或者列表页,因此CVR模型需要在产品曝光的场景(图2中最外层圈内的数据)下进行预估。这就导致了训练场景与预估场景的不一致。模型在不同的场景下肯定会产生有偏的预估结果,进而导致应用效果的损失。

我们当然可以换个思路解决问题,即针对第一步的场景,构建CTR预估模型;再针对第二步的场景,构建CVR预估模型,这也是电商或广告类公司经常采用的做法。但这个方案的尴尬之处在于,整个问题最终的优化目标是购买转化,并不是“点击”,在第一步过程中仅考虑点击数据,显然并不是全局最优化转化率的方案。

为了解决同时优化CTR和CVR模型的目的,阿里提出了一个多目标优化模型ESSM(Entire Space Multi-task Model)。ESSM可以被当作是一个同时模拟曝光到点击 和 点击到转化两个阶段的模型。

图3 阿里的多目标优化模型 ESSM

从模型结构(如图3)上看,最底层的embedding层是CVR部分和CTR部分共享的,共享Embedding层的目的主要是解决CVR任务正样本稀疏的问题,利用CTR的数据生成用户(user)和物品(item)更准确的特征表达。

中间层是CVR部分和CTR部分各自利用完全隔离的神经网络拟合自己的优化目标,pCVR和pCTR。最终,将pCVR和pCTR相乘得到pCTCVR。

这里pCVR,pCTR和pCTCVR的关系如上式所示。其中pCTR指post-view

click-through rate,即曝光后点击率;pCVR指post-click CVR,即点击后转化率;pCTCVR指曝光后点击转化序列的概率。

由于ESSM同时将pCVR,pCTR和pCTCVR融合进一个统一的模型,因此模型可以一次性得出所有三个优化目标的值,在模型应用的过程中,也可以根据合适的应用场景选择与之相对应的目标进行预测。这因为如此,阿里通过构建ESSM这一多目标优化模型同时解决了“ 训练空间和预测空间不一致 ”以及“ 同时利用点击和转化数据进行全局优化 ”两个关键的问题。

无论是YouTube,还是阿里,虽然其推荐系统的模型结构截然不同,但在设计其推荐系统优化目标时,他们都充分考虑到了真正的商业目标和应用场景,力图在训练模型的阶段“仿真”预测阶段的场景和目标,这是我们在设计自己的推荐系统时首先要遵循的原则。

优化目标是和其他团队的接口性工作

针对优化目标这个话题,笔者想强调的第三点不是技术型问题,而是团队合作的问题。构建成功的推荐系统是一个复杂的系统性问题,不是技术团队能够独立完成的,往往需要产品团队、运营团队、内容编辑团队等协调一致,才能够共同达成推荐系统的商业目标。

在协调的过程中,技术团队抱怨产品团队频繁修改需求,产品团队抱怨技术团队没有充分理解他们的设计意图的情况是难以避免的,二者之间也往往有结构性的矛盾。但是如果我们找一个最可能的切入点,最大限度的解耦产品团队和技术团队的工作,那么最合适的点就是推荐系统优化目标的设计。

只有设定好合适的优化目标,技术团队才能够专心于模型的改进和结构的调整,避免把过于复杂晦涩的推荐系统技术细节暴露给外界,带来困难的教育过程。而产品团队也只有设定好合理的优化目标,才能够让推荐系统服务于公司的整体商业利益和产品整体的设计目标。诚然,这个过程少不了各团队之间的矛盾、妥协与权衡,但只有在动手解决问题之前协商好优化目标,才能够在今后的工作中最大限度的避免战略性的错误和来回的推诿返工,尽可能最大化公司的商业利益和各团队的工作效率。

文章最后按惯例跟大家讨论两个问题,希望大家能分享自己的观点,讨论出真知:

1.在阿里的ESSM模型中,具体的训练过程是怎样的?因为样本同时有click和conversion两个label,模型的怎么更新的呢?

2.大家在跟其他团队协调优化目标的过程中有没有什么血泪史?你认不认为这是推荐系统的大坑?你是怎么完成非技术同事education的过程的?欢迎秀出你的故事。

欢迎加入 DataFunTalk推荐算法 交流群 ,跟同行零距离交流。如想进群,请加 逃课儿 同学的微信(微信号: DataFunTalker ),回复: 推荐算法 ,逃课儿会自动拉你进群。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章