协同过滤推荐算法研究

针对电子商务发展的需求,本文通过对协同过滤推荐算法的文献综述,提出传统过滤算法无法适用于用户多兴趣下的推荐问题进行了剖析,提出了一种基于用户多兴趣的协同过滤推荐改进算法,分析了基于用户多兴趣的协同过滤推荐算法的电子商务系统。
  一、引言
  电子商务迅猛发展的时代已经到来,网上购物的交易方式正在改变着传统的商业模式。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)


相关推荐

  • textview可复制_android长按点击

    textview可复制_android长按点击有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的,就像长按WebView或者EditText的内容就自动弹出复制选项.这里面主要是2个特点:1,用户只能浏览文本信息而不能编辑这些文本信息;2,用户对着文本信息长时间点按可以弹出”复制”选项实现复制;网上有好多种方法可实现,也比较零散,此处做个小结,希望有所帮助.1,通过继承EditT…

  • matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频[通俗易懂]

    matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)-柱形数据视频

  • 程序员即装逼又实用的Cmd命令行

    程序员即装逼又实用的Cmd命令行首先windows键+R(+R)打开运行,输入cmd回车打开命令行。1、cleanmgr选择盘符清理垃圾,能加快电脑运行速度。2、chkdsk磁盘检查,能检查磁盘是否有损害。3、devmgmt打开设备管理器4、dxdiag打开DirectX诊断工具,买二手电脑是避免黑商修改电脑配5、ping:ping192.168.0.1判断某台电脑是否能连…

  • Java 图片URL转Base64编码

    Java 图片URL转Base64编码前言实现方式:通过图片URL获取二进制流,再对字节数组进行Base64编码转换具体实现实现类importsun.misc.BASE64Encoder;importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.net.HttpURLConnection;importjava.net.URL;importjava.util.regex.Matcher;importjava.util.r

  • dp3003打印机怎么清零_最小宽度dp

    dp3003打印机怎么清零_最小宽度dp有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。示例 1:输入:s = “aaabbb”输出:2解释:首先打印 “aaa” 然后打印 “bbb”。示例 2:输入:s = “aba”输出:2解释:首先打印 “aaa” 然后在第二个位置打印 “b” 覆盖掉原来的字符 ‘a’。 提示:1 <= s.le

  • 深度学习入门系列1:多层感知器概述

    深度学习入门系列1:多层感知器概述本人正在学习《deeplearningwithpython》–JasonBrownlee,有兴趣的可以一起学习。人工智能系列1:多层感知器概述待更新:人工智能系列2:用Keras构建你的第一个神经网络人工智能系列3:深度学习模型性能评价人工智能系列4:使用keras模型与scikit-learn进行通用机器学人工智能系列5:项目:花种的多分类人工智能系列6:项目:声纳二分类人工智能系列7:项目:波士顿房屋价格回归人工智能系列8:保存模型以便稍后进行序列化人工智能系列9:训练期.

发表回复

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

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