最近抽空看了第四范式程晓澄的《机器学习在推荐系统中的应用》视频,觉得收货良多,也总结了一些学习要点和个人看法,分享给大家。
视频是饭团“AI产品经理大本营”团友@明德分享出来的,链接我也会放在最后。有兴趣的朋友可以抽空看看。
整个分享分为三个部分:
一、推荐系统的诞生土壤以及早期演进
二、推荐系统当下的基本架构
三、搭建推荐系统的过程
一、推荐系统的诞生土壤以及早期演进
1.推荐系统的诞生土壤
1)推荐系统产生的背景是长尾理论的兴起,以前我们发现80%的收益来自20%的商品,广受大众喜爱的商品非常少,但是大众的兴趣是十分广泛的,其他80%的商品可能不是受众广,但对某一类人群的吸引力更大,人们也愿意去消费。因此长尾需求对社会来讲也非常值得关注。
2)随着互联网的兴起,人们发现原来的门户网站类在把握用户行为上有一定劣势。人们更愿意参与到内容中去,因此形成了UGC等形式的网站综合体。
3)UGC内容兴起后,重要的是UGC的分发。因此出现了利用个人经验/公式的内容分发模式(个人感觉就是基于规则的分发),比如下图右方的公式,可以通过论文被引用次数等评估因素,对论文的质量进行评估
还有对网站推广水平进行测算的公式这里就不再列举。(个人总结:这一类的规则都有一个相同点,会通过某个指标、某些因素去计算出一个最终推荐结果。正是因为在得出结果前,我们已经确定了自变量和计算公式,从而部分被我们忽略的因素就被排除在外,很可能会造成结果很大的偏移)
2.亚马逊的推荐方式:协同过滤
这个过滤规则主要基于两个假设:
1)用户购买了一个商品后,后面有很大的概率会购买相似物品
2)可以给口味相似的用户做出物品推荐
以下是规则公式:
评分矩形:
横轴是用户,纵轴是物品。中间的数值是用户对物体的打分,由此可以计算出两个物品的相似程度(公式1item based recommendation,基本函数cos可计算)。再通过加权公式(ueser based rencommendation)可以计算用户之间是否对同一系列物品打分规律一致。
可以看到协调过滤不一定适合每个用户和每个物品,因为在假设上我们就做了约束。因此此时引入机器学习。
3.机器学习推荐原理
假设用户和物品之间有一个未知的实际函数关系(真理)F,我们最终目的就是要找到和这个实际函数关系非常非常相近的函数G。这个函数G是通过用户以往的历史数据,在算法的训练下得到的。下图是直播中的PPT解释:
如上图所示:表示了一个未知的真理(f)通过以往数据(D),在假设空间(H)里经过算法的训练(A),最后得到一个函数g。函数G是和真理F非常相近的。
> 如何去评估函数G和真理F的接近程度呢?
利用损失函数cost函数:cost(Y,g(X))
> 如何评估算法A?
cost 越小,g与F越相似。因此要最小化cost,使得g逼近f。
4.机器学习的多种特征
可以从兴趣维度、rank方法(用户信息、商品信息、当前上下文信息,历史销售记录)等切入,每一种特征的权重由模型自己去学习【本句总结by@明德】
二、推荐系统下当下的基本结构
总的结构分为三步:
1.候选集的召回
2.机器学习推荐模型排序(算法排序)
3.生成推荐列表(推荐结果获取)
1.候选集的召回
候选集有百亿级甚至千亿级的内容量,因此我们需要对候选集有一个初步筛选:
1)排序召回(最新、最热、最近、最新光顾、各种经验上的评分公式)
2)简单模型、rank召回(item based/user based、矩阵分解)
3)规则召回(天气、近期搜索浏览、朋友的购买、同期过往习惯等)
感觉以上三种方式都是我们以往用来直接进行推荐的筛选方式
2.模型排序
1)模型排序需要考虑更多因素,这些因素都会影响推荐的效果。
比如:时间、季节、运营商信息、现在所在场景、行为序列、社交关系等等
2)排序模型:(wide&Deep Models)
观看、收藏、购买、搜索序列可以用RNN处理
图片信息可以用CNN处理
文字信息可以用word2vec处理
通过模型处理,最终能够得到一个输出结果。但是通常情况我们会取输出结果的上一层hidden layer的数据而不是最终的数据。因为在上一层的分析里,数据更多样化,比如说有人喜欢梅西,不可能一直推荐给他梅西的相关新闻,我们能推荐给他体育类、足球类这样多类型的信息。
3.生成模型结果
1)数据输出多样化
2)数据准确性vs多样性vs新颖性
> 个人总结
运用机器学习的推荐系统,首先需要在候选集召回池里进行规则性地初筛,再通过模型将这些候选集进行排序,最后输出结果后根据数据多样化决策最终的模型结果。
> 个人思考
产品了解到整个推荐系统的流程后,每个部分的关注点可能是:
1.候选集的完整性、多样性、关联性
2.模型排序的方式(需要在排序前提出对结果输出的设想也就是需求)
3.模型结果:验证应该是必不可少的一步,关注数据的转化。比如更新模型后的点击率、阅读率等等。
三、搭建一个推荐系统
1.架构模型(关注线上)
2.线下数据闭环
1)物料库里的候选集通过表格的形式做记录
2)物品特征与用户特征进行在线拼接,接着再同行为反馈数据特征进行拼接,最终更新到机器学习模型中
3.工程实践:数据分析、算法实验
1)可响应产品、性能、算法需求的架构
2)可同时进行多个实验,以获取丰富数据
4.目前推荐系统面临的挑战
1)速度:
a.数据量大,需要在有限的时间内完成模型
b.更大维度的模型意味着更多成本的投入
c.需要有专门为机器学习任务优化的计算框架
2)可扩展性:
a.业务的增长除了量的增长还有维度的增长(更多场景、更多用户和更多)
b.快速发展的企业公司需要能匹配自己增长全周期的机器学习解决方案
5.研究方向
假设整个排序过程用Y=f(x)表示:
对于输出结果Y:更多产品设计、交互形式
对于函数f:模型匹配与相匹配的优化算法
对于自变量x:
更多种类的特征:挖掘图像、音频、文本特征、Session类特征
特征工程:通过特征组合、特征变换、丰富假设空间
四、后记
程晓澄直播回看视频: https://v.douyu.com/show/oERALvEn3Pn71Vw0
(复制粘贴到浏览器打开)
我是在AI道路上不断探索的一名产品
和我一起不断进步
▼