推荐系统-利用用户行为数据

本文介绍了如何利用SVD进行推荐系统构建,通过矩阵分解将数据降维,找到用户和项目的相关性。通过新用户评分向量找到相似用户,进行个性化推荐。文章探讨了SVD的时间复杂度问题及相似度计算方法选择,并提出了推荐策略的优化方向。
摘要由CSDN通过智能技术生成
用户的行为数据介绍:
     用户的行为主要分为两种-显性反馈行为 和 隐性反馈行为 ,显性反馈行为主要包括 评分 和喜欢/不喜欢 ,youtube最早是使用是使用五分评价系统的,但是只有用户很不满意和特别满意的情况下才会评分,因此又把它变成了二级评分系统。 隐式反馈行为就是页面的浏览行为。
用户的行为分析:
    用户的数据分布大都满足一种长尾分布,就是 每个单词出现的频率和他在热门排行榜的排名成反比。反映在网络行为上就是越是新用户越倾向于选择热门的产品越是老用户越是倾向于冷门产品 。
基于用户的行为的推荐算法就是协同过滤算法,包括 基于邻域的算法 , 隐语义模型 基于图的随机游走算法 ,而基于邻域的算法包括 基于用户的,和基于物品的
    我们在评测算法的时候往往使用 准确率 召回率 覆盖率(最终的推荐列表中包含多大比例的物品,如果所有物品都至少被推荐给了一个用户,那么覆盖率就是100%)流行度(流行度越高推荐物品的新颖度越小)
基于邻域的算法:
基于用户的协同过滤
(1) 找到和目标用户兴趣相似的用户集合、
(2) 找到这个集合中用户喜欢的 且目标用户没见过的推荐给目标用户

计算公式(jaccard): graphic
余弦相似度: graphic
其中N(u)是u用户感兴趣的物品们;
但是这样就会导致我们计算大量的 为空时候,我们还需要计算分母,导致计算资源的浪费。
所以我们建立 物品到用户的倒排表,可以扫描每个物品栏对应的所有用户,每两对用户对应的C[u][v]加1,C为我们的用户和用户的关系矩阵
改进:两个user对热门的物品的行为相似并不能说明两个人的兴趣的相似性,只有对冷门的物品采用相同的态度才能证明两个人的兴趣相似,因此我们给每个物品加上一个权重既 流行度的倒数 越是冷门的物品的权重越大,N(i)为喜欢第i个物品的人
graphic

基于物品的协同过滤:
基于物品的协同过滤是目前用处最多的算法,比如amazon youtube,他可以利用用户的历史行为给推荐系统的结果提供解释。
(1)计算物品之间的相似度
(2)根据物品的相似度和用户的历史行为给用户生成推荐列表
相似度: 和上述方法类似为了避免过多的浪费计算资源,我们先建立用户-物品的倒排表。我们就可以得到一个物品-物品之间的关系表。同样为了避免那些很活跃的用户对关系表的干扰(他们可能会让所有关系表的位置都加1)因此对他们的贡献加以限制
graphic

比较:usercf常常用于新闻的推荐,itemcf常常用于购物网站视频的推荐
usercf的推荐结果看重与反映和用户兴趣相似的小群体的热点,更社会化。比较粗粒度,所以特别适合想新闻这种没有细粒度的个性存在的领域,并且新闻的更新非常快就是item比较多,维护一张user-user的关系表比维护一张item-item的表更加easy,热门性和实效性才是个性化新闻推荐的热点
而itemcf算法更加重视细粒度的个性,维系用户的历史兴趣,帮助用户发现和他领域相关的物品,所以图书,电子商务,电影网站更加倾向于itemcf,这样需要维系一张item-item的表格,物品相似度比较稳定,新用户只要对一个物品产生行为,就可以推荐给他相关的物品。

隐语义模型(lfm):
之前的方法是使用统计的方法,隐语义模型主要是用优化的手段,首先找到用户的兴趣分类,然后从分类中挑选他喜欢的物品,lfm通过以下方式计算用户u对物品i的兴趣

graphic
p度量了用户u对隐分类k的关系,q度量了i物品和隐分类k的关系,由于是要机器学习的,所以我们可以随机采样得到负样本,既用户没有产生交互的数据,最终优化的式子为:

 采用最简单的梯度下降法来解,K为我们的训练集。
lfm模型是不能因为用户行为的实时变化来调整结果的,为了解决这一问题我们将r增加一部分,

graphic
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值