工业界推荐系统实践总结-- 持续更新

从学校毕业从19年实习在美团做广告推荐,然后20年开始一直在华为做视频推荐,从业时间不长,但是较学校的认知相比,还是完善了很多,故此总结,方便以后回顾。

端到端流程

实践中的推荐系统或者“推荐”这个需求的设计,相对来说是一个比较长的链路,

初始阶段:了解推荐需求,了解业务特点,设计需要采集样本特征、标签

推荐模型应用到不同阶段,需要解决的问题不同,对于不同的业务场景,看重的指标也不同。因此,在工业界实践中,第一步也是最重要的一步明确业务诉求,制定评估指标

和学术界的单一评估指标不同,实际应用中根据业务发展的不同阶段,业务场景的不同,可能涉及的优化指标不同。

比如不同的业务场景:广告推荐、短视频推荐、电影推荐、小说推荐,在乎的指标都有所差异,比如广告场景不仅仅在乎CTR,从广告主的角度还在乎投资回报率RIO,但是这些转化因为转化时间比较长,所以label比较难以采集,怎么有效的采集转化,根据实际场景的不同又可以细分;小说推荐因为小说本身连载的性质,从业务角度来看更在乎用户的留存率。
再比如同一个业务的不同栏目,栏目定位不同,需求和评估指标也会有所差异,ee场景,要求探究用户的隐藏兴趣,就不能以ctr作为评估指标,更多的要以一些多元化的指标作为评估指标。

中间涉及的一些名词:
CTR::点击率 = 点击量 / 曝光量
CVR:转化率 = 转化量 / 点击量
ROI:投资回报率 = 订单额/消费量(即广告费用)

第二步:根据需要优化的目标,设计样本采集流程
新同学进入社会的第一步最不适应的点在于,可选择性太大了。之前在做kaggle比赛,或者写论文的时候,数据集都是固定的,也没有什么可挑选的。能做好的效果上限已经由数据集决定了,工作只用聚焦在特征工程、模型调参去适应这个小样本即可。

工业实践中,最痛苦的事情就在于,你并不确定上限在哪,你也不知道哪些特征可能是有用的,哪些没用,你可以选择的特征太多了,你可以选择的样本也太多了。
以淘宝购物来说,比如你是做女装分会场推荐的,只选择用户的女装点击购买数据,你也可以选择全淘宝的购买数据,你可以选择近一个月的,也可以选择近一年的,也可以选择近10年的,甚至对于淘系整个推荐大服务来说,一些用户画像的数据,比如年龄,购买力这些,可能有20个组给你提供了用户画像,你选择哪一个。还有就是什么算曝光了,这个定义是什么,是在界面上展现过就采集么?那如果用户快速上滑呢?或者该物品只展现了上边缘,到底算不算曝光了?

而且这个问题最吊诡的原因在于,可能你优化了一年的模型达到的提升效果,不如别人调研了一个星期,加了一些有用的效果提升大。

特别是,提数据需求是一个需要多项目组合作的工作,前端设置打点,数据组加工数据,很多涉及到项目排期问题,所以作为一个算法工程师,提前想好需要哪些特征,标签,是一个非常重要的事情,而且要具备前瞻性,因为可能你的诉求提上去,就变更不了了。

这里总结一些博主在实践中比较成功的一次方法论【后面可能会有更好的方法论,期待ing】,可以遵循以下步骤:
下面将以电影推荐为例介绍如何设计特征:

  1. 根据生活经验、博客等,梳理所有所有和用户观影行为可能相关的因素,比如:流行度、流量明星、不同的发行商(欢喜传媒等)、知名的导演(李安等)
  2. 根据核心因素,扩展成多维的具体指标:要把上面的那些因素扩展成具体的指标,比如流行度是一个比较笼统的概念,你可以扩展为近x天的播放量、完播量、观看人数、播放超过10%的数量/用户数量等,这个时间窗口也是一个很魔幻的点,对于一些效应性电影,特别是某些流量鲜肉们拍的,一般只有近7天的活跃度,不太会有人重复播放;对于一些经典老电影,播放量比较平均。所以这里不妨多设计几个窗口,在后面的特征选择中,选择最好的几个时间窗口。
  3. 小数据初步探究,进一步多维度扩展:还有一点在实践中非常重要的是用户和物品的冷启动,如何利用少量数据完成个性化推荐,用户群和物品群的概念非常重要,可以挖掘一些显式的标签用户群,比如经常半夜两点登陆的用户喜欢看什么电影?
  4. 初步审核特征:特征是否可以在实际中应用,还需要评估以下因素:(1)覆盖率 (2)线上线下特征的一致性 (3)数据可采集的可获得性、准确性 确定数据获取方案【根据现网实际技术水平评估,比如你的前端告诉你,我可以根据屏幕的反射判断用户是否看见物品啦,这种🐂,看官还是需要审慎,有些不确定的东西,用了不如不用】(4)时效性:需要确定数据就位时间,从技术层面可以给下游的同学进行一些大数据任务优化的指导,或者向现实屈服换一些数据。这个阶段,最好要配合数据组的同学校验数据质量,告诉他们详细的计算指标,以便提前了解数据质量,预先发现数据问题。

总之,第一阶段的主要目标是构造所有可用的特征。

阶段一:检查数据质量、初步挑选特征

经过漫长的等待后,拿到数据的小伙伴仍然不可以掉以轻心,接下来将进入工作量最大的一个阶段:特征工程。
这里其实包括 特征选择特征加工两个部分,这两个部分通常交叉进行。

特征加工的目的在于:将特征转化成有效的特征表示。
特征选择的目的在于:选择有用特征,降低数据维度,避免维度灾难,降低模型学习难度。

特征选择在方法论上filter法:依次判断单个变量和目标变量的相关性;wapper法:特征子集逐步回归、前向选择、后向选择;embeeding法:RF、LGB等。
但是实际操作中,我只喜欢用树模型。

在具体的实际操作中,可以遵循以下步骤:

  1. 1. 剔除易识别的无效的特征无效的id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值