拖了两个月,终于要进入正题了,本章开始折腾真正的算法(ps:其实也没那么高深)。
第一个要说的肯定是经典的协同过滤了,从算法的主体来分可以分为两种:基于用户的协同过滤(user-CF)和基于物品的协同过滤(item-CF),CF就是collaborative filtering,所谓协同就是在大家都要对结果有贡献。
其基本思想是兴趣相似的用户其行为也相似,反之也成立,实现协同过滤的关键在于怎么算行为相似,用什么样的标准去度量相似度。
|
a |
b |
c |
101 |
5 |
1 |
3 |
102 |
5 |
2 |
- |
行是item,列是用户,交叉点是评分。
从图中我们可以看出来101和102都对a和b评分了,且评分基本一致,说明他们俩兴趣应该相似,这个时候可以把c推荐给102。下面把这个过程数学化一下:
1、计算101与102的相似度
可以把它们对item的评分看成两个向量(只包含两个用户共同评价的item):(5,1)、(5,2),把这两个向量看成坐标轴上的两个点:
然后可以把这两个点之前的距离做为101和102之间的相似度,计算公式大家应该都知道了,就是初中学的平面几何了。
w=sqrt((5-5)^2+(1-2)^2) = 1
本来打算昨天写完,但是iteye的编辑器实在不好用,不支持LaTex不说,连潜入个图片都这么麻烦。长话短说,先把主要意思写完吧,回头博客会搬到csdn上去。
上面的公式其实就是欧几里得距离啦,很简单是吧,如果item多了也是这么着算,这里就不贴公式了(蛋疼。。。)
2、推荐
我们可以为每一个用户都维护一个列表,用于存储于他相似的用户,然后,从这些用户评过分的item中挑一些推荐给他,过滤他评过分的item,具体到这个例子中就是把101评过分的c推荐给102。
当然这个过程还有很多细节问题,比如如果与用户A相似的用户有很多,他们评过分的商品也有很多,那么如何从这么多的商品中挑选出一部分推荐给A呢?还有,挑选出的商品如何排序?此系后话,且听下回分解……
上面讲的是USER-CF,ITEM-CF同理,其实一般常用的是ITEM-CF,因为对于B2C网站来说,商品有限,而用户无限,计算量会小得多,但是因为USER-CF讲起来比较容易理解,所以这里就以USER-CF为例。
=================================华丽的分隔线=============================
下面以item-CF为例进行讲解
上面的讲的方法是根据用户对商品的评分,那么如果用户对于商品只有购买而没有评分,或者评分数据太少怎么办呢?
这其实就是我要讲的重点,对于用户和商品之间只有购买与不购买的关系,我们可以称之为布尔矩阵,购买是1,不购买是0,这个时候如果也使用欧几里得距离去计算的话,会发现很不合适,那我们怎么得出用户之间的相似度呢?
{N(a) ^ N(b)} / {N(a) * N(b)}(凑合着看吧。。。)
N(a):买了商品a的用户
N(b):买了商品b的用户
分子的意思是同时买了a和b的用户的数量
分母是买了a的用户的个数与买了b的用户的个数的积
这样我们就得出了商品a和b之间的相似度,推荐的话,如果a和b相似,就可以给买了a的用户推荐b。
这就是item-CF了,也很简单是吧。
但是简单不代表不强大,这里面有很多可以优化的地方,其实主要看你的源数据的形态了,下一篇我们会讲增强版的协同过滤,如果有时间我会把这一篇完善下,公式填上去,真不爽,真心希望iteye能对这个编辑器改进一下,学学Wordpress
分享到:
相关推荐
电子商务系统中协同过滤推荐算法研究-电子商务.doc
作者提出了三种新颖的方法,例如协同过滤,人工神经网络以及最后的支持向量机来解决CCS和ICS问题。 基于特定的深度神经网络SADE,我们可以删除产品的特征。 通过使用顺序激活的用户和产品特性,我们可以适应最新...
个性化推荐算法是电子商务推荐系统中最核心的技术,在很大程度上决定了 电子商务推荐系统性能的优劣。协同过滤是应用最为广泛的一种个性化推荐技术。协 同过滤主要分为基于用户的协同过滤和基于项目的协同过滤。 ...
本项目是一套基于SSM的电子商务推荐系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都...
在本论文中,首先分析了目前电子商务推荐系统的现状,然后介绍了推荐系统的架构以及常用的几种推荐算法,并重点研究了协同过滤算法。通过对协同过滤算法的研究,提出了一种基于协同过滤技术的个性化旅游推荐系统,...
评分数据的极端稀疏性是制约协同过滤(CF)算法在电子商务推荐中有效应用的关键瓶颈。为此,提出一种新颖的隐空间多源迁移协同过滤(latent multi-source transfer collaborative filtering,LMTCF)方法,在某个...
Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐: 1.项目背景 2.项目目标 3.项目流程说明 4.项目步骤与流程 5.数据获取 6.探索性数据分析 7.数据预处理 8.构建智能推荐模型 9.模型评价
基于本体和EM聚类的协同过滤推荐系统研究,刘伟成,李权,针对电子商务中用户-项目评级矩阵稀疏所产生的推荐准度问题,提出一种基于本体和EM聚类的协同过滤(CF)推荐系统。首先使用期望最�
个性化推荐系统的出现提供了一个解决电子商务网站的商品信息过载问题的强大工具,而协同过滤技术被认为是最有前途的个性化推荐技术之一。文章从协同过滤技术的基本原理出发,系统评述了协同过滤各类常用算法的特点,...
电子商务个性化推荐系统中协同过滤算法分析和应用.pdf
协同过滤是一种常用的推荐算法,通过分析用户的历史行为和兴趣,找到与其相似的其他用户或物品,从而进行个性化的推荐。本论文主要研究了协同过滤推荐算法的原理、实现方法以及在实际应用中的效果评估等方面。 适用...
是在协同过滤算法上的一个改进,从而设计出的一个个性化推荐算法
电子商务中的推荐系统是利用数据挖掘等技术,分析访问者在电子商务网站的访问行为,产生能帮助访问顾客访问感兴趣的产品信息的推荐结果.
协同过滤是电子商务推荐系统中广泛应用的推荐技术, 但面临着严重的用户评分数据高维化和稀疏性问题. 同时, 传统协同过滤中的相似度度量方法没有考虑用户评分行为对其他...
电子商务系统中协同过滤推荐算法研究.doc
随着互联网的普及,网络资源的激增,用户很难快速找到需要 的信息。为了提供精确而又快速的推荐, 研究者...目前,许多电子商务网站都已经使用了推荐系统, 如 Amazon、CDNow、Drugstore,当当网上书店和Moviefinder 等。
本项目是一套基于SSM的电子商务推荐系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都...
基于协同过滤和word2vec算法的邮箱平台推荐系统,谷元庆,张洪刚,网上信息量的大幅增长,用户在面对大量信息时无法迅速获得对自己真正有用的那部分,出现信息过载的问题。推荐系统在电子商务、互
介绍了现有协同过滤推荐的几种主要算法。它们对数据稀疏性问题都有一定的缓和作用。通过在数据集MovieLens上的实验,分析了各个算法在不同稀疏度下的推荐质量,为针对不同数据稀疏度的系统实现提供了可靠依据。