本文一共2105字,专业人士建议阅读5-10分钟,非专业认识建议阅读15-30分钟并结合体验以下几款产品(今日头条-推荐、淘宝-猜你喜欢、网易云音乐-每日音乐推荐)最佳。
实战代码可参看《推荐系统实战》与《集体智慧编程》两本优秀著作。
0.序言
因为最近开了一个知乎live,有些是没有推荐算法相关背景的同学,所以在live开始前先来个背景知识介绍,由于笔者水平有限,难免有聱牙诘曲的地方,望各位多多包涵!
1.什么是推荐系统
首先我们来了解一下推荐系统是什么?其实我们对他并不陌生。
1.1维基百科的定义
推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”。
1.2限定在电商购买决策过程的定义
1.2.1用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程”。来一个经典配图
1.2.2其实上图隐含了2个重要的推荐系统的核心功能
–1.2.2.1路径优化(弱化主动筛选功能):从看了A再看B再看C最后买了C, 到用户看了A, 推荐系统推荐马上C,用户下单
–1.2.2.2兴趣发现(贴心小秘书):从你上淘宝不知道买什么的时候,告诉你你可能喜欢什么
–1.2.2.3来看看大家常用的推荐产品
2.推荐系统是怎么做到的
2.1 其实推荐系统做的事可以类比于生活中的贴心男友或者女友,那我们就当他是男友吧,来看看他是怎么做的
–2.1.1上知天文,下通地理: 下雨了,男友知道你没带伞,把伞送到送到了公司
–2.1.2察言观色:你最近一直在看包包,尤其是LV的,第二天男友就买了一个LV给你
–2.1.3人情练达:男友看到和你玩的好的几个闺蜜都买了某款口红,然后没过几天他就买了这款口红
–2.1.4念念不忘:你经常说的偶像、崇拜的人他会记住,一旦他们出了新作品,他就会买给你
–2.1.5体贴入微:男友知道你大姨妈来的时候比较喜欢吃甜品,所以到了那几天他都会带你去吃
–2.1.6紧跟时尚:新品发布,非常流行的那几款,他都会买给你
2.2 推荐系统怎么来做到上面这些方面呢
–2.2.1上下文: 推荐系统会在给你推荐商品时将考虑你所在的城市、天气、季节等因素;梅雨天伞比平时好卖,夏天空调需求比秋天高等,北方人比南方人更喜欢保湿的化妆品
–2.2.2 用户画像: 男-女/经期时间/甜品这些都可以做成标签,作为推荐的依据,上次你买的姨妈巾/纸尿裤/奶粉多少天会用完,19岁男生一般不会(低概率)买女性比基尼
–2.2.3 协同过滤(以下3点):
---2.2.3.1.基于用户:在茫茫购物的人海中,总有那么一些人是跟你非常像的(类似上面的闺蜜);推荐系统根据你们的行为(浏览、点击、购买)计算跟你最像的那些用户,当他们看了/买了什么的时候,他就可能会推荐这些商品。
---2.2.3.2 基于商品: 在茫茫商品中,总有一些商品他们的属性、描述很像,或者他们经常被一起购买;推荐系统将会计算物品与物品之间的相似或关联程度,当你看了某个商品的时候,他将会把最相似/最相关的那几个商品推荐给你。
---2.2.3.3基于模型(这个比较抽象): 利用数学建模的手段,评估你的购买意图,将模型计算出来的得分最高的推荐给你
–2.2.4基于内容:在茫茫商品中,总有一些商品他们的属性、描述很像;当你看了某些商品后,推荐系统会将内容上最相似的那些上商品推荐给你
–2.2.5其它:基于统计/知识等
目前主流推荐系统都是以上各个策略的混合
3.以上过程中的几个细节点相关问题(以下为相对技术一些的论述)
3.1那具体怎么计算用户与用户,商品与商品、内容与内容的相似度呢?主要思想就是交集除以并集,实际应用中有大量的调整和变形,但思想没变,直观的可理解为以下2图
—3.1.1在计算用户与用户相似性时就是两个用户购买的商品的交集除以两个用户购买的商品的并集,当交集与并集相等时,两个用户相似度为1,当交集为空时,两个用户相似度为0,所以用户间相似度值在0-1之间
—3.1.2在计算商品与商品相似性时就是两个商品的购买用户的交集除以两个商品的购买用户的并集,当交集与并集相等时,两个商品相似度为1,当交集为空时,两个商品相似度为0,所以商品间相似度值在0-1之间
—3.1.3在计算商品与商品相似性时就是两个商品的内容的交集除以两个商品的内容的并集,当交集与并集相等时,两个商品相似度为1,当交集为空时,两个商品相似度为0,所以商品间相似度值在0-1之间
3.2上面说大部分推荐系统都是几个策略的混合模型,那怎么混合呢?哪个在前哪个在后?我用过的推荐系统好像几种方式都有。
-3.2.1级联型:使用后一个推荐方法优化前一个;特征递增:前一个作为后一个的输入;特征组合:将来自不同推荐数据源的特征组合,由其它推荐技术使用;元层次混合:将不同的推荐模型融合;混合:将多种不同的推荐算法的结果混合在一起;切换:根据问题背景和实际情况采用不同的推荐技术;加权融合:将多种推荐类型的计算混合产生推荐。
4.其它相关技术(以下为相对技术一些的论述,有时间后面几讲再展开吧)
我见过的推荐系统好像没有这么简单的,那推荐系统还有哪些技术和黑科技呢?
4.1上面几种算法的使用场景
4.2 点击率/转化率预估: 基本使用在基于召回的商品池子做进一步的预估,通过计算用户和待推荐的商品对匹配程度(用户点击/购买的概率)来再排序
4.3 新颖性、多样性、惊喜性、信任度、鲁棒性、实时性、商业目标等指标的约束
4.4如果是一个新用户、新商品,上面很多东西都无法计算的时,冷启动问题的解决方案
4.5收集各类数据来支持相似度的计算
4.6线上架构部署模型和推荐策略
4.7 用户、商品标签的选取与构建
4.8 特征工程
4.9产品/模型的效果评估
5.来个架构图和用户画像构建吧,下次开讲
以上论述的只是从外部架构论述推荐系统,各个环节均涉及了大量机器学习、数据挖掘算法及调优方法,并且大架构下的某些组件已省略,有时间我们一起来逐步深挖。
还有关于机器学习和用户画像的介绍可以移步以下2个专栏: 1.什么是机器学习 - 知乎专栏2.比你更了解你,浅谈用户画像 - 知乎专栏
相对推荐算法有进一步的了解的可以移步我的知乎live
live地址:知乎 Live - 全新的实时问答