个性化推荐系列之推荐系统实践
这是个性化推荐系统系列的最后一篇,该系列将完结;后续将开始研究信息架构模块的内容;
1)、个性化推荐系列之初步认识推荐系统;2)、个性化推荐系列之初步认识机器学习;3)、个性化推荐系列之推荐系统的演化及常见推荐算法;4)、个性化推荐系列之协同过滤推荐算法总结;5)、个性化推荐系列之推荐系统实践;详见知乎专栏--产品打杂https://zhuanlan.zhihu.com/zhoulink
--------------------------------------------------------------------------------------------------------------------------------------------------------------
我们前面说过,推荐系统是一个通过推荐算法来解决互联网时代信息过载问题,以帮助用户快速获取信息并使用消费的系统;
那么推荐系统怎么解决信息过载问题,我们前面几个部分做过一些总结,可以通过协同过滤推荐算法,将不同属性的用户和不同属性的物品,基于不同属性的特征进行匹配;
协同过滤作为推荐算法中最经典的类型,包括在线协同和离线过滤两部分;
所谓在线协同,就是通过在线数据找到用户可能喜欢的物品;而离线过滤,则是过滤掉一些不值得推荐的数据,比比如推荐值评分低的数据,或者虽然推荐值高但是用户已经购买的数据;
那么一个推荐系统到底包含哪些部分,到底是怎么工作的呢;
一套完整的推荐系统框架包括三个部分:
1)、数据层(数据生产、数据存储);2)、候选集层;3)、规则过滤排序层(融合处理、重排序展示);
整体下来,一套完整的推荐系统包含以下五层;
1)、数据生产层;主要是利用各种数据处理工具(ETL、spark等)获取系统用户日志数据,并对用户日志数据进行清洗,通过系统化处理方式对数据进行转换整理,处理成格式化的数据;
2)、数据存储层;将日志数据库中经过格式化处理并清洗的数据存储到各自不同所属类型的数据存储系统中,例如索引数据存储在索引系统中、结构化日志数据存储在日志系统中、场景数据存储在场景系统中,通过将数据分布式归集存储,以供下一层的算法和模型使用;
3)、候选集层;候选集层是基于用户的历史行为数据、实时行为数据、地理位置数据等角度利用各种触发策略产生推荐的候选集数据,这部分数据即为经过推荐算法(协同过滤等)的某个引擎计算出来符合目标用户推荐的内容集合;
4)、融合过滤层;将候选集层通过用户实时、历史数据经过推荐算法计算出来的候选内容进行高度融合操作,对推荐内容进行处理,提高推荐策略的覆盖度和精度;同时,该部分还要对这部分产生的内容进行高度解耦过滤,通过运营手段、人工规则,将不符合条件的内容过滤处理;
5)、重排序层;利用机器学习的模型对候选集层筛选出来的候选集内容进行重排序,展示给前端用户;
到这里,我们基本了解一个推荐系统是怎么工作的了;那么什么才是好的推荐系统;
一个完整的推荐系统一般存在三个参与方:1)、用户;2)、物品提供者;3)、推荐系统所属网站;
这里为了简洁明了说清楚问题,我们以图书推荐为例;
1)、首先推荐系统要满足用户的需求,即给用户推荐那些令他们感兴趣的书籍;
2)、然后推荐系统要让每个出版社的图书都能够被系统腿讲给其感兴趣用户,而不是只推荐某几个大型出版社的书;
3)、最后好的推荐系统设计,能够让推荐系统本身收集到高质量用户的反馈,不断完善推荐的之类,增加用户和网站的交互,提高网站的收入;
因为在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够让参与的三方共赢的系统;