个性化推荐系统从0到1

1、背景

在互联网信息爆炸式增长的当今,通过传统人工筛选运营方式提供服务时代已然过去,能通过用户历史行为精准推荐用户感兴趣内容成为必然趋势,主流个性化推荐系统流程包括用户行为采集、分类提取、离线用户建模、在线用户模型预测等。结合目前手机QQ浏览器软件应用App分发业务发展需求,历时半年多时间,从无到有搭建一套个性化推荐系统支撑专区App分发业务。

2、业务整体Review

目前推荐场景覆盖包括专区首页猜你喜欢模块推荐,打底推荐与QB内垂直搜索,对应效果如下图红框标识:

进过半年的优化打磨,关键阶段效果提升汇总如下:

3、整体框架

在输出整体架构图前,先回归最初产品个性化推荐需求,技术方案选型最终都要服务于需求

【个性化推荐需求】

根据活跃用户的长期兴趣推荐用户最感兴趣的AppList,效果评价指标是推荐App的CTR

【技术方案选型】

工程Part

在线模块:分粗排阶段和精排阶段

1、粗排阶段根据用户长期兴趣画像召回相关度较高的Item,同时减轻精排阶段压力;

2、精排阶段则根据粗排召回的ItemList,通过离线训练好的排序模型预测CTR,最终下发TopN ItemList作为推荐结果;

离线模块:

1、用户长期兴趣:负责在线粗排召回,通过离线累计用户消费行为,映射成兴趣体系,最终积累成用户长期兴趣画像,最终将画像导入在线系统;

2、排序模型:负责在线精排阶段排序模型的训练,训练阶段需要用户消费日志,同时收集用户特征和Item特征,最终整合成训练样本集,通过Spark等分布式计算框架训练模型并导入在线系统;

算法Part

粗排召回:粗排的召回效果直接影响推荐的效果,不过项目初期的方案不太适合制定太复杂的策略,初期我们先敲定一个热度计算公式对备选Item进行全排序:HOT(x) = LOG(下载量(x)) + 评分(x) * 0.2,最后根据Item分类构建待召回反向索引结构

精排模型:产品制定推荐效果评价指标是App按天CTR,即排序模型是pCTR模型,结合业界成熟方案以及团队技术积累准备度,选用LR作为pCTR模型

【整体架构图】

1、将用户在专区预推荐位的Item曝光和点击行为上报到离线集群

2、用户实时拉取推荐结果,粗排备选池会预先Ready(对应架构图中的备选优化,策略参考上面算法Part的粗排召回),通过用户关联历史兴趣画像,根据画像获取关联度Top的ItemList,同时进行列表退避;然后用召回ItemList关联Item特征,用户关联用户特征,部分特征需要走特征工程处理,加载离线训练好的LR模型,预测每一个Item的pCTR,进行排序;产品策略会在兼顾用户体验维度对下发列表进行干预,比如多样性,游戏App占比等;最终下发排序结果列表

3&4、将用户交互行为与推荐结果等数据导入离线计算集群:1)根据按天用户行为计算按天兴趣画像,同时和历史画像进行合并构成用户兴趣长期画像;2)用用户对Item点击或曝光作为样本原,与Item特征、用户特征关联形成训练样本集,通过Spark API训练得到稳定的LR模型

5、按天将用户累计长期兴趣画像和LR模型结果导出到HDFS路径

6、用户兴趣画像定期刷入在线Cache

7、将LR模型按天导入在线DB,在线服务定时加载LR模型以及查询用户长期兴趣画像

4、优化小结

将个性化推荐系统Pipeline搭建上线后,目光就转移到推荐效果的优化,优化主要分三部分:

1)LR模型特征优化,主要包括常用特征工程方法以及引入新的业务特征;

2)LR训练工具Spark API训练性能提升加学习率曲线绘制;

3)粗排召回阶段引入基于Item的协同过滤;

【特征优化】

1、特征工程

在当前项目中,我们主要采用的特征工程方案包括:

离散枚举:性别(男性1,女性2,未知3),单维特征扩展成三维,一条样本仅设置一维

连续等距:比如用户年龄,可观察在如下样本中用户年龄的分布图(x坐标表示年龄,y坐标表示对应用户群累计占比),14-46岁间隔用户群分布均匀(且为相对有效年龄),且占整体用户群99%以上,这类特征可以对样本进行等值切分,间隔可根据模型效果调整

归一化LOG:比如App下载量,如下是样本中App对应的下载量分布图(x坐标表示下载量,y坐标表示对应用户群累计占比),对比年龄分布图,App群50%占比以上比较均匀,但是前50%跨度较大,此时我们使用的方案是对整体下载量求LOG,然后再进行等值One-Hot

2、引入新特征

项目初期使用的特征包括如下脑图中的蓝色与绿色特征,训练的样本量是按周,采样的正负比例是1:5,最终的AUC是0.6890;

在专注特征优化阶段,主要的方向是引入更多的特征,通过梳理,将脑图中的标黄和标灰特征纳入到引入阶段。在具体引入优先级的排期中,需要权衡特征收集的复杂度、特征的覆盖度等因素,最终在优化阶段确定引入脑图中的标黄特征,结果AUC提升到0.7592

【Spark API 训练优化】

详见文章Spark MLlib LR 实战笔记

【协同过滤】

分类粗排召回策略的优势是对主打用户长期兴趣方向定向,缺点是很难引入Item相关度较高但并非同类的Item,也就是较难发现用户隐含兴趣;协同过滤的目标就是对分类粗排召回策略缺点的一种补充。

常用的协同过滤Based-Memory包括User-Based与Item-Based,对标两种模型有如下对比:

通过调研目前项目的推荐场景优选Item-Based,接入流程上,回到整体架构图,采用离线训练Item-Item相似度矩阵并离线根据用户历史安装App进行预测,最终刷入在线Cache,供在线服务在召回流程查询协同过滤推荐结果,进而统一精排下发

5、项目展望

1、LR模型引入更多新特征 以及 特征工程更多的尝试,可参考参考文献5

2、pCTR预测模型尝试GBDT + LR

3、App分类互斥策略

感谢过程中Carbonzhang & Meifangli 的大力支持

参考文献

1《practical lessons from predicting clicks on ads at facebook》https://pdfs.semanticscholar.org/daf9/ed5dc6c6bad5367d7fd8561527da30e9b8dd.pdf

2《Spark MLlib 机器学习算法、源码及实战详解》

3《Spark 技术内幕》

4《机器学习实战》

5 特征工程 http://km.oa.com/group/22605/articles/show/295781

原文链接:

编辑于

罗鑫骥的专栏

1 篇文章2 人订阅

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏牛客网

头条推荐算法offer面经

2330
来自专栏人工智能头条

解读Etsy如何利用热力学帮你找到适合“极客”的东西

1425
来自专栏CSDN技术头条

从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例

作者 | HCY崇远 01 前言 本文源自于前阵子连续更新的推荐系统系列,前段时间给朋友整理一个关于推荐系统相关的知识教学体系,刚好自身业务中,预计明年初随着业...

46411
来自专栏AI科技评论

学界|如何捕捉冗长讨论里的目标信息?谷歌推出最大标注数据集

AI科技评论按:很多读者在思考,“我和AI科技评论的距离在哪里?”答案就是:一封求职信。 信息爆炸时代,如何在浩瀚如海的网络中找到自己的需求?谷歌研究团队推出了...

31714
来自专栏Spark学习技巧

什么是数据分析的漏斗模型?

作者:李启方 很早之前就知道漏斗模型,但没有做更多的了解和运用,后来对漏斗模型的了解稍加深入之后,觉得它不仅仅是一个模型,更是一种可以普遍适用的方法论,或者说是...

2277
来自专栏新智元

阿里妈妈首次公开新一代智能广告检索模型,重新定义传统搜索框架

1795
来自专栏达观数据

技术干货 | 达观数据新用户推荐的三大利器

推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣。但对于新用户而言,没有任何的用户行为,如何进行最有效的推荐呢?这就衍生了用户冷启动问题。 在当下...

2703
来自专栏达观数据

【经验分享】点击模型:达观数据提升算法精度的利器

? 在搜索、推荐、广告引擎中,系统会通过复杂算法生成一个最终的结果列表。用户在看到这个结果列表时,未必都会对排序满意,比如有时觉得排序的顺序有问题,或者发现一...

37610
来自专栏AI科技评论

电商交易欺诈层出不穷,如何用深度学习系统布下天罗地网?

AI科技评论按:交易欺诈对电子商务带来了巨大的威胁,来自清华大学交叉信息研究院博士后、物理学博士王书浩近日在AI研习社的青年分享会上介绍了基于循环神经网络的交易...

2807
来自专栏灯塔大数据

洞察|美国大选倒计时:R 语言和蒙特卡洛算法预测希拉里赢面高达89%

距总统大选不到一周,来预测一下竞选结果还是很有挺有趣的。虽然关于选举,有的是博客和网站的预测,但确切告诉你他们究竟用了什么模型,或者告诉你怎么做这个预测的却寥...

3489

扫码关注云+社区