目录
|
推荐系统算法总结:
|
协同过滤:应用最广泛的其实还是协同过滤算法;在协同过滤算法中,最常见的两种算法分别是:基于用户的协同过滤(UserCF)和基于物品的系统过滤(ItemCF)
推荐系统中比较经典,并且使用广泛的一种算法; 包含两个部分:线上实时协同,线下离线的过滤; 协同: 找到用户可能喜欢的商品作为推荐列表,过滤一些不太可能的推荐商品数据&评分高 但是已经买过
分为3种:
UserCF核心思想: 对于当前用户u而言,根据用户u和其它用户的历史行为数据/用户-物品评分信息,找出和用户u最相似的K个近邻用户,然后将这K个近邻用户喜好的物品推荐给用户u。 用户相似度度量方式: 本质的思想其实都是一样的;对于用户u和用户v而言,用户u和用户v之间的相似度其实是受用户u和用户v共同评价过的商品分数影响的。 “找出和用户u最相似的K个近邻用户,然后将这K个近邻用户喜好的物品推荐给用户u”这个过程其实是反过来计算的; 用户u对于未产生行为物品i的喜好程度/评分的计算过程: 获取所有评论过物品i的其它用户,然后再这些其它用户中计算和当前用户u最相似的K个用户,然后使用这K个用户对物品i的评分计算得到用户u对于物品i的评分(评分计算公式:加权平均求和、基于均值计算的加权平均求和、基于偏置项计算的加权平均求和) ===> 利用的是相似用户喜好的物品是类似的这种意思 迭代第一步,计算出用户u对于所有物品的喜好程度/评分。 获取用户u对于所有物品评分中最高的N个评分物品作为最终的推荐列表 |
ItemCF
“根据用户u历史的偏好信息/偏好的物品列表,找出和列表中物品最相似的K个近邻物品,然后将这K个近邻物品推荐给用户u”这个过程其实是反过来计算的;
根据用户u历史的偏好信息/偏好的物品列表,对物品列表中的每个物品做一下操作; 用户u对于未产生行为物品i的喜好程度/评分的计算过程:
用户id和物品id一般我们可以直接用数据库中获取即可;
|
基于模型(model_based)的协同过滤:利用机器学习的思路建立推荐系统的模型
找出N项频繁项集。认为用户购买频繁项集中的一个商品u的时候,同时购买其他商品的概率是最大的,那么用户浏览某个商品u的时候,我们就可以将这个商品的对应的关联的其他商品(N项集中的其他商品)推荐给当前用户,这个就是累死亚马逊或者当当上的一起购买的展示信息 基于隐语义模型/矩阵分解做协同过滤 将原始的评分矩阵进行分解,从而得到最终的预测模型
思想和UserCF/ItemCF类似,我们可以按照用户/物品的特性基于一定的距离公式进行聚类。如果基于用户聚类,可以按照一定的距离度量公式分为不同的人群,将相同人群中评分比较高的物品推荐给当前群体的其他用户。
以用户id和物品id作为特征属性矩阵(一般会加入物品的相同特性的特征属性),然后将用户对于物品的评分区间化(将用户评分按照高低,分成几个区间)作为y值,转换为分类算法;一般情况下使用二分类比较多,logistic回归比较多
直接构建一个回归算法模型,来训练出一个能够得到目标用户对于某个物品评分的这样一个模型
核心:将原来一个隐藏模型的形式 转换为 多隐藏模型 来推荐 |
混合过滤多种推荐算法模型 产生的推荐列表 进行融合的一种方式
假设现在有三个推荐模型,对于同一个用户u,现成产生的推荐列表分别是: model1: item1:4.5, item2:4.3, item4:4, item6:3.8, item8:3.8 对于model1~3,可认为都是在实际评分值附近,可以将model1~3结果作为特征矩阵X,实际的评分作为Y,训练出一个X—> Y 的映射函数,从而可以得到最终的推荐模型,可以认为最终的推荐模型就是普通的回归算法,一般为线性回归
也就是这里需要将model1~3的结果作为X,实际值作为Y进行训练model4,model4输出一个评分函数,这个评分按照从大到小进行排序,作为最终的推荐结果 |
推荐系统 --协同过滤
最新推荐文章于 2024-06-23 12:15:05 发布