协同过滤推荐算法研究

针对电子商务发展的需求,本文通过对协同过滤推荐算法的文献综述,提出传统过滤算法无法适用于用户多兴趣下的推荐问题进行了剖析,提出了一种基于用户多兴趣的协同过滤推荐改进算法,分析了基于用户多兴趣的协同过滤推荐算法的电子商务系统。
  一、引言
  电子商务迅猛发展的时代已经到来,网上购物的交易方式正在改变着传统的商业模式。2007年,电子商务的交易额达到了8900亿人民币。面对如此众多的商品,无疑会大大增加用户发现满意商品的困难。于是个性化推荐系统逐渐成为电子商务领域中的一项重要

大家好,又见面了,我是你们的朋友全栈君。

针对电子商务发展的需求,本文通过对协同过滤推荐算法的文献综述,提出传统过滤算法无法适用于用户多兴趣下的推荐问题进行了剖析,提出了一种基于用户多兴趣的协同过滤推荐改进算法,分析了基于用户多兴趣的协同过滤推荐算法的电子商务系统。

  一、引言

  电子商务迅猛发展的时代已经到来,网上购物的交易方式正在改变着传统的商业模式。2007年,电子商务的交易额达到了8900亿人民币。面对如此众多的商品,无疑会大大增加用户发现满意商品的困难。于是个性化推荐系统逐渐成为电子商务领域中的一项重要的研究内容,得到了广泛关注。

  研究电子商务推荐系统对企业和社会具有很高的经济价值。电子商务个性化推荐系统的关键是建立用户模型。推荐系统的热点问题是推荐技术和推荐算法的研究。推荐算法是整个推荐系统的核心,它的性能决定了最终推荐结果的好坏。为了建立合理的用户模型,满足不同用户对实时性、推荐方式等的要求,产生了一系列的推荐技术和算法。涉及的技术包括基于内容的过滤技术、协同过滤技术、关联规则挖掘技术、分类和聚类技术、神经网络技术等等。

  协同过滤推荐是迄今为止最成功的个性化推荐技术,被应用到很多领域中,协同过滤相当突出的优点是其决策基础是“人”而不是“内容的分析”,能针对任何形态的内容进行过滤,更能处理相当复杂和艰难的概念呈现,以获得意料之外的结论。

  文章重点研究电子商务系统中协同过滤推荐算法。

  二、电子商务推荐算法的研究

  目前的电子商务推荐系统中运用的推荐算法主要可分为三大类:基于内容的推荐算法(Content-based Recommendation Algorithm)、基于规则的推荐算法(Rule-based Recommendation Algorithm)和协同过滤推荐算法(Collaborative Filtering Recommendation Algorithm)。

  1.基于内容的推荐算法是信息过滤研究的派生和继续

  基于内容的推荐系统需要分析资源内容信息,根据用户兴趣建立用户档案(Profile),用户档案中包含了用户的品位、偏好和需求信息。然后根据资源内容与用户档案之间的相似性向用户提供推荐服务。在一个这样的系统中,通常采用相关特征来定义所要推荐的物品。

  2.关联规则挖掘技术在零售业得到了广泛的应用,它可以发现不同商品在销售过程中的潜在相关性

  随着数据挖掘的兴起,关联规则被应用于推荐系统,形成了一种新的推荐技术基于规则的推荐技术。基于规则的推荐技术在评价表上挖掘项目间的关联规则(项目关联)和用户间的关联规则为当前用户进行推荐。使用项目关联进行推荐时,每条项目关联的前件相当于一个兴趣组,而规则的后件则相当于这个兴趣组的推荐。如果当前用户对该规则前件中的所有项目都喜欢,那么就把规则的后件以一定可信度推荐给当前用户。而使用用户关联进行推荐时,用户关联的后件必须是当前用户,使用用户关联的前件中的用户的共同兴趣模拟当前用户的兴趣,模拟的可信度就是用户关联的可信度,以此作为推荐的依据。

  3.协同过滤(Collaborative Filtering)的基本概念就是把这种推荐方式变成自动化的流程

  协同过滤主要是以属性或兴趣相近的用户经验与建议作为提供个性化推荐的基础。透过协同过滤,有助于搜集具有类似偏好或属性的用户,并将其意见提供给同一集群中的用户作为参考,以满足人们通常在决策之前参考他人意见的心态。

  本人认为,协同过滤技术应包括如下几方面:(1)一种比对和搜集每个用户兴趣偏好的过程;(2)它需要许多用户的信息去预测个人的兴趣偏好;(3)通过对用户之间兴趣偏好相关程度的统计去发展建议那些有相同兴趣偏好的用户。

  三、协同过滤推荐现有算法的分类研究与分析

  正是因为传统协同过滤推荐算法存在着诸多问题,研究者们才不断提出改进的协同过滤推荐算法。

  1.全局数值算法

  全局数值算法每生成针对一个用户的推荐项目列表就需要扫描用户评价数据库一遍,这种方法能随数据的变化而变化,实现也比较简单,所以被大量才采用。但是在实践中数据稀疏性难以解决,面对庞大的用户数据库,推荐产生也非常耗时,从而使得整个电子商务推荐系统的实时性难以保证,成为全局数值算法面临的主要挑战。

  2.基于模型的算法

  基于模型的算法只需扫描一遍用户评分数据库就可以完成对所有用户的推荐。优点是建立的模型相对于原始数据集而言小得多,因此能有效缓解推荐算法的实时性问题。但模型具有滞后效应,为了保证模型的有效性,必须周期性的对模型进行更新。而模型的训练代价高,因此该算法不适合数据更新频率快的系统。

  3.组合推荐算法

   (1)协同过滤和基于内容的结合算法。两种算法的结合可以利用基于内容算法的优点,对项目进行相似度匹配,尤其当项目尚未得到用户评价的情况下也能推荐给用户,避免新项目问题;另一方面利用协同过滤的特点,当用户数和评价很多时,协同过滤推荐更准确。(2)协同过滤和基于关联规则的结合算法。关联规则技术用于协同过滤系统是利用Apriori算法通过挖掘用户的评价记录的关联来进行推荐。该算法往往首先对客户的购买行为进行关联规则挖掘,并进行单一客户的偏好建模;然后,应用协同过滤技术寻找与此客户兴趣相似的客户集,并从客户集中找出和目标最相似的客户;最后根据匹配集合求解推荐意见。规则模型的形成可以离线进行,协同过滤推荐算法与基于规则算法的结合可以保证有效推荐系统的实时性要求。

  四、协同过滤推荐算法的改进

  传统的协同过滤推荐算法是用邻居用户对某一项目的偏好信息来判断用户对该项目的偏好,邻居用户是和当前用户具有相似兴趣爱好的用户。但在传统的协同过滤推荐算法中,邻居用户和当前用户的共同兴趣爱好并不一定是要预测的项目方面的兴趣爱好,而可能是另一方面的兴趣爱好。如果还是用这些邻居用户来预测,其误差可想而知。

  1.基于用户多兴趣的协同过滤推荐算法

  基于此,我对传统协同过滤算法将作如下改进:(1)对用户兴趣进行分类,因为在系统中用户的兴趣是通过对项目的选择来进行了解的,所以把对用户兴趣的分类转化为对项目的分类,引入用户兴趣度的概念,来探讨用户在不同类别项目中所表现出来的兴趣差异,进而实现对用户多兴趣的了解。(2)对于同一用户,如预测项目所属类别不同,用来预测的邻居用户也不同,也就是邻居用户与待预测的项目在内容上具有一定相似性,从而保证用来预测的邻居用户与当前用户在待预测项目上具有相似的兴趣爱好。(3)用户具有多兴趣性,但用户对每类项目的兴趣也是不尽相同的,在推荐集中考虑以用户对不同类别项目的兴趣度作为权重,来分配每类项目的推荐数目。

  首先将项目采用某种技术按照某种标准划分为不同类别,然后把对此类项目有评价的用户的评价信息映射到此类,统计参数,计算用户在每类项目的兴趣度,当超过阈值时,认为该用户对该类项目有兴趣偏好,并由<优麦电子商务论文>这些用户形成聚类,从聚类中搜寻针对此类项目的邻居用户,产生推荐。

  (1)按照分类规则对项目进行分类。把整个项目空间划分成若干类别,每个项目可能属于多个类别,每个类别包含至少一个项目。目前对项目进行分类有众多方法。

  (2)映射评价信息,统计参数,计算用户兴趣度,建立用户兴趣度矩阵,构造用户兴趣偏好特征。假设提出了用户兴趣度Ai,j,即用户i对项目类别j的兴趣度,来衡量用户对某一类别项目的兴趣偏好。

  其中Mi,j表示用户i所评价的项目类别j中的项目数目;Nk表示项目类别k中包含的项目数目。

  (3)依据用户兴趣度矩阵和项目类别体系,进行用户聚类,形成用户兴趣模型。

  2.算法说明

  (1)由于对同一用户,需要分别在不同的项目类别中分别计算其邻居用户。

  (2)该算法对数据的稠密性要求比传统的协同过滤推荐算法要高。

  (3)用户的兴趣可能会随着时间而变化,有的项目类别可能会随着时间的推移使用户对他失去兴趣,所以推荐系统必须密切注意用户的兴趣是否改变,最好的办法就是持续跟踪。

  (4)推荐算法同样具有新异性,但不像传统算法那样更具有新异性,同另一角度也说明该推荐算法更具准确。因为新异性在一定程度上是和准确性相对的,不可能新异性和准确性同时很高,准确性高的算法必然会新异性低,反之亦然。

  五、基于用户多兴趣的协同过滤推荐算法的电子商务推荐系统分析

  协同过滤技术基本思想是基于评分相似的最近邻居的评分数据向目标用户产生推荐,推荐算法处理的基础数据是不同用户对项目的评价。评价可以是布尔型的也可以是实数,数值的大小代表喜欢的程度,也称为评分。协同过滤有利于判断符合用户兴趣的商品。例如在用户评价表中共有M个用户对N个商品进行了评分,要在M个商品项中找出符合用户兴趣的S个项向用户推荐。基于此,我们做如下推荐系统的分析:

  1.业务需求分析

  电子商务网站有两个方面需要个性化推荐系统,即改善客户关系和提高网站的销售能力。(1)改善客户关系。个性化推荐系统要能够在用户的使用过程中尽可能的满足用户的需求,实时地和用户保持互动和联系,及时获得用户的需求并做出响应,能根据用户的反馈信息进行学习和自我完善。(2)提高网站的销售能力。

  能够吸引更多客户购买;在用户购买时实施交叉销售,用户的推荐请求,给出最适合于用户的商品,并推荐其他相关的商品;为网站对商品进行更新提供信息支持,辅助网站及时推出有热销潜力的特色商品,实现与其他网站的差异化销售。

  2.用户需求分析

  用户访问电子商务网站的主要目的是寻找并购买需要的商品。其需求主要表现在:(1)用户在网站中要能够顺利地寻找到所需要的商品,根据对商品信息的了解、系统的推荐程度和其他人的评价等决定是否购买。(2)用户能根据自己的认识对商品进行评分和评价。评分是一些个性化推荐算法的数据基础,应该鼓励用户对商品进行评分。评分或评价也是用户做出购买决定的参考。(3)系统服务定制。用户能选择并享受系统设定的个性化服务,这些服务是管理员分析用户的兴趣对系统进行的功能设置。

  3.业务分析

  用户访问电子商务网站的主要目的是选择购买符合自己需求商品,整个业务流程从登录网站到购买商品生成订单结束。从什么渠道怎么支付如何获得商品实体是在网站外部完成的,不在网站上的业务流程之内。

  4.数据流图(DFD1层)主要处理分析

  个性化推荐系统主要有以下处理过程:用户定制服务、行为记录、个性化推荐、购买商品、对商品评分等。第一层数据流图可如图1所示:

  用户根据系统设置的服务进行服务的定制。系统获得用户选择的服务项目编号,查询数据库是否设置并开通该服务,如<优麦电子商务论文>果是保存用户定制到用户定制表中;否则返回错误信息。用户定制DFD如图2所示:

  用户在个性化推荐系统中的浏览行为,如点击链接、查看商品信息等都会被记录到日志中,也能被系统记录,作为挖掘用户兴趣的信息。用户行为记录过程的DFD如图3所示:

  六、结束语

  电子商务推荐系统是个新兴的研究与应用领域。随着用户需求水平的提高,推荐算法与系统的研究在不断发展和完善。文中提出的基于用户多兴趣的协同过滤推荐改进算法,正是为了解决现实中存在的用户兴趣问题而产生的。算法中由于对项目进行了分类,所以跨越项目类别和推荐的新异性在一定程度上可能不及传统的协同过滤推荐算法。这将在未来的研究中要进一步思考和研究的问题。
转自:<a href=’http://www.yuloo.com/dianzishangwu/’>育路电子商务考试网</a>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126908.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 一、数据库表设计规范「建议收藏」

    一、数据库表设计规范「建议收藏」一、三范式为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。1.第一范式确保每列保持原子性列不可分 有主键根据实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常…

  • IOC 控制反转[通俗易懂]

    IOC 控制反转[通俗易懂]SpringFramework概述https://blog.csdn.net/centrl/article/details/115519480通过前面的学习,我们至少已经知道IOC,下面我们就来说说IOC是个什么东西。1.写在前面首先来想一件事,作为程序员,怎么开发程序才最巴适?我觉得最起码有两点:开发简单、升级简单。开发简单,就是我们只管写业务逻辑(培养只会写if-else的程序员)。 升级简单,这里也包含两点:我们使用的技术(可理解为框架)出了什么问…

  • 皮尔逊相似度计算的例子(R语言)

    皮尔逊相似度计算的例子(R语言)

  • Git教程 git pull 和 git clone的区别

    Git教程 git pull 和 git clone的区别.

  • STM32独立看门狗

    STM32独立看门狗参考正点原子视频看门狗在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称:看门狗看门狗的意义在启动正常运行的时候,系统不能复位在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行独立看门狗(IWDG)由专用的低速时钟(L

  • 给js对象添加属性和方法属性_js给json对象添加属性

    给js对象添加属性和方法属性_js给json对象添加属性方式一:在定义对象时,直接添加属性和方法functionPerson(name,age){ this.name=name; this.age=age; this.say=function(){ alert(name+’:::’+age); }}varperson=newPerson(‘张三’,24);person.say();方式二:…

    2022年10月24日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号