代码详解推荐36式【近邻推荐】人以群分,仙落凡尘官网你是什么人就看到什么世界-小树大数据
极客时间的推荐36式,结合更加实际的列子来讲解推荐
推荐系统的演进
人工运营
随机、 根据运营目的、根据领域知识优点:方便推广特定内容、易解释缺点:×千人一面×耗费人力×过于主观
基于统计推荐? 热度榜分群热度榜、 用户分群、 物品分群
优点:ü简单粗暴效果好有公信力宫学斌,易解释缺点:×千人一面×马太效应×效果很容易达到天花板
个性化推荐? 基于内容推荐 协同过滤? 基于邻域尚志一中? 基于模型、基于社交网络、混合模型......优点:ü 简单粗暴效果好ü有公信力铁鞭草,易解释缺点:×门槛较高×成本较高
个性化推荐里面包含很多的算法和模型,我们今天从简单的基于近邻推荐来讲解
协同过滤以及k近邻
协同过滤
已知用户喜欢 A喜欢 A 的用户通常也会喜欢 B做法稻草芭比?给用户推荐他喜欢的物品的相似物

如何定义喜欢金石圭?行为定义、显式行为倾城弃妃?评分/购买/收藏/点赞?隐式行为?点击/观看/收听/阅读?行为矩阵构建?每个物品可以表示为 n 维向量(n 是用户数)

基于用户的协同过滤

最相邻的K个用户
相似度求解 假设求解到user1 与 A、B、C的相似度为 0.25 、0.8
小米盒子: 1*0.25 = 0.25
note2: 1*0.25 = 0.25
蜡烛: 1*0.25 = 0.25
润肤霜: 1*0.8 = 0.8
肥皂: 1*0.8+1*0.25=1.05
然后给user1推荐按照相似度排序
相似度怎么计算,然后又什么技巧
相似度的度量方式
?普通的Jaccard相、皮尔逊系数、修正余弦相似度
相似度计算的技巧? 热度惩罚、冷门行为加权、活跃用户降权
从物品 i 出发, 用被共同喜欢的用户数衡量相似度
1、相似度(杰卡德)

喜欢物品 i 的用户数 作为分母归一化
共同喜欢的用户数、 越大表示两个物品关联越密切
这个里面存在着热度问题,热门物品与其他的都相似
2、相似度(余弦)

共同喜欢的用户数、 越大表示两个物品关联越密切
喜欢物品 i 的用户数 作为分母归一化
喜欢物品 j 的用户数、 物品 j 越热, 两者相似度越小(热度降权)
余弦里面也有修正余弦相似度 解决一下不同用户评价标准不一致问题。
也有如下修正方法给热度再度打压

α: 热度阈值 α=0: 最大限度打压热门α=1: 不打压热度
当然也可以对分子打压

被共同喜欢的用户数越大表示两个物品关联越密切
N(K)代表用户 k 喜欢物品数 ,用户兴趣越广泛 对两物品的贡献越小
代码
计算邻居

得分排序

完整代码可以加微信bigdataxiaoshuye获取
K近邻
K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表,黄子珈它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别机甲战车,其中K通常是不大于20的整数何冰冰。KNN算法中吉食送,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别
距离度量方法

计算两者之间的距离

从数据集R中根据S的特征找到各个对象的K个近邻

R的数据集(预测数据)

S的数据集(训练样本)

这篇就大概讲了协同过滤以及k近邻算法这个是推荐的基本算法
在做召回中也是常用的技巧明智左马介,当然做一下推荐小场景也是常见的不一定非要深度学习,xgboost来做。
后面关注公众号和加助教微信获取代码和详细的数据
小树叶大数据需要你的支持