龙空技术网

从零搭建推荐系统—框架篇

大数据与人工智能分享 135

前言:

今天咱们对“推荐系统模型不包括哪个模块”大概比较注重,各位老铁们都想要学习一些“推荐系统模型不包括哪个模块”的相关知识。那么小编在网摘上汇集了一些关于“推荐系统模型不包括哪个模块””的相关内容,希望同学们能喜欢,咱们一起来了解一下吧!

推荐系统本质是对用户不同行为,从海量物料中选取用户可能感兴趣的物料进行展示,通过策略、算法、规则等途径引导用户产生点击或其他交互行为,那从用户打开特定app起,到展示出相关内容到底经历了何种操作,海量的物料是怎样被筛选出来?如果业务越做越大,用户和物料数据积累越来越多,仅靠规则不能进一步提升用户对物料感兴趣程度,那么该如何升级成为推荐系统为用户带来更好的浏览体验?本系列文章将展示如何从0搭建一套较为完整的推荐系统,进而一窥其内部原理。

高屋建瓴,各公司业务系统和场景各有不同,系统有繁有简,技术栈和使用细节千差万别,要搭建推荐系统,我们先把系统模块和数据流梳理清,大多都具有如下模块和流程。

如图所示,数据流实线为在线流程,虚线为离线流程。一般在线流程指用户实时访问系统用于计算及使用的服务,离线流程指跟用户请求无直接关系可对数据单独统计计算的过程。

物料数据

首先要有被推荐的物料数据,而且必须要多,非常多,几十上百个的也就可以先退出 了,与其花大量精力搭建推荐系统,还不如多开垦业务场景,丰富内容,一把好枪还需要充足的弹药供应才能发挥威力不是。一般来说可推荐物料需要数万到数千万甚至上亿,每个物料具有唯一id,除此之外还应有其自身的各类基础信息,各家业务不同信息也各不相同,例如类型(文本、视频、图片)、类别(新闻、娱乐、体育)、标签(宝马,奥迪,东坡肘子.....)、时效、地域等等。物料数量规模庞大,再加上自身各类信息,那需要存储的物料池也会成倍增加,对不同规模的数据量就得盘一盘该如何存储,这里先简单抽象成一个物料池。

用户数据

有了物料数据还需要有用户数据,一般是系统日志通过埋点记录用户各类行为,通过日志收集系统计算处理,将有效的用户行为数据结构化并落到存储空间中,一般用数据仓库进行管理,便于后续分析、计算。用户行为一般是用户的浏览、点击、播放等普通行为以及点赞、评论、转发、下单等深层行为,结合访问时获取到的用户设备、时间、地域等,加上各行为打上时间戳,日积月累就能构造出一个用户的多维度行为轨迹和画像。

用户画像

用户数据结构化落仓后就方便后续对用户行为的统计分析了,结合用户时序信息,可以计算出所需维度的用户画像,例如用户的兴趣点标签,偏好什么内容,习惯在什么时段访问,常用的地理位置信息,通过浏览内容判断用户年龄段和性别等,深入些的后续还可进行用户聚类、分群等分析处理。

实时计算

这里还需要一个实时计算的环节,用于通过实时收集日志并解析物料与用户的实时统计信息,例如物料的曝光数、点击数、评论数等,可以丰富物料的基础信息;对用户来说可以收集用户实时曝光、点击及其他行为的实时数据,用于后续算法特征处理或在线规则处理。

算法模块

物料和用户数据齐备,就轮到推荐算法上场了,当然这里也是一个大模块,上面的数据虽有,但此数据非彼数据,算法需要用的还需要转化为特征和样本数据,绝大部分算法模型还是很挑食的,喂进去的数据必须要经过处理,否则再好的模型面对噪声数据也不会有好的结果。数据处理好,选好模型就可以训练了,结果不错皆大欢喜,效果不好不能直接把锅甩给模型不给力,还要分析数据、调整参数,经过几个来回后得到一个还不错的模型,就可以准备给用户使用啦。如果数据规模庞大还需要分布式训练。

推荐引擎

如果业务要求实时性不强,用户和数据量都不是很庞大,那么在离线按小时或天地频次直接计算各个用户可能的偏好物料即可,无论通过用户画像偏好匹配物料,还是使用训练好的模型进行直接预测排序,只要能满足业务要求就是一套好系统。但很多场景用户访问要求实时性高,业务特性复杂,就需要一套专门的推荐引擎将推荐系统及依赖的各模块整合起来,包括构建倒排索引、召回、排序、rerank及其他依赖模块,便于灵活开发与部署。另外评估推荐系统效果也需要科学的分桶实验系统也需要在推荐引擎模块中实现。

数据报表

截止目前一套完整的数据流已经可以跑通了,也可以为用户推荐计算好的结果,但还需要一个看起来不起眼却非常重要的模块——报表数据,用来展示推荐系统整体效果,包括AB实验效果,分标签、召回等维度效果等,用于后续迭代优化时提供数据支撑。

至此,推荐系统的蓝图已构思完毕,数据可以在纸面上完全流动起来形成闭环,不断积累数据,不断迭代算法策略,不断提升效果指标,不断产生业务收益,不断提升程序员的工资,想想是不是很开心?后面我们就把上述的这些坑一块一块填起来,完整实现一套推荐系统。

从零搭建推荐系统—数据篇

从零搭建推荐系统—引擎篇

从零搭建推荐系统—算法篇

标签: #推荐系统模型不包括哪个模块