目录
本文地址:推荐系统全流程落地实施方案
从以下一张总体脑图开始:
整体上分为三个阶段:离线计算、推荐结果的实时获取、推荐结果的评估。
离线计算是推荐系统的核心部分,涉及从数据收集、内容画像、用户画像、召回、排序几个关键环节,这几个环节也提现出,推荐的本质是进行内容和用户的匹配。
核心工作概括如下图所示:
需要收集的数据有两大类:用户行为数据和内容本身的描述数据。前者可以反映用户对于内容的偏好程度,后者可以对内容本身做画像。
数据收集的更新频率根据推荐系统整体的时效性来定义,也会受限于资源成本考量。
内容画像部分解决对内容的描述问题,在推荐模型中如何理解一个内容。有了内容画像,可以计算内容之间的相似性。有了相似性就可以出基于内容的推荐策略。这是在冷启动期用户行为数据有限时很有效的推荐方式。
内容画像的生成,会用到关键词生成算法(TextRank*IDF),补充增加一个选词标准,比如TOP10。为了更能区分一个内容相对其他内容的差异性,还会用到主题词模型(一种方式是使用TextRank&TFIDF)。
通过用户画像可以计算相似内容了,即两两内容之间的相似性。
方法是:
1. 由主题词生成主题词向量,word2vec常用的算法,定义一个内容的所有主题词向量的均值作为内容的向量。
2. 两两计算相似度。数据量小时,可以全量计算,量大时可以采用一些优化算法,分类别、LSH等。
解决内容的向量化描述之后,接下来利用行为数据对用户做画像。
前述用户行为数据,实际上是用户与内容的互动关系,根据业务领域知识,定义一个评分规则,即行为转化成对内容的评分,形成用户评分表。通过用户评分表反映了每个用户对每个内容的偏好程度,借此对每个用户的评分内容做个排序,选取主题词作为用户画像中的主题词列表。
召回实际上是一个海选的过程。召回方式有很多种,也是推荐系统中算法模型最丰富的部分。
召回最后的输出是一个用户推荐的内容列表。
冷启动召回,基于内容本身的特性进行选择,与特定用户没有直接关系,但有可能有间接关系,比如基于他最近访问的内容直接找相似内容。
多路召回,会开始关注用户行为数据或者说用户画像了。基于历史喜欢的内容,ALS,协同过滤都是常用的模型。
排序是一个精选的过程,进一步优化推荐质量。
算法模型是关于点击率预测方面的。有LR回归、Wide&Deep、深度学习。
就工程实践而言,一个完整的推荐系统包括推荐模型运算,也必须要有接入产品的实时推荐结果输出系统。推荐结果可以保存在Hbase这种大规模、易扩展的存储系统中,借助缓存技术、rpc技术得到最大的吞吐量。
评估系统是进行推荐模型迭代优化的基础条件。
事前的样本评估,事中的AB实验,事后的问卷调查。通过这些来指导模型的优化路线,获得更高的产品效果(比如转化率、活跃度等)。