`
mahengyang
  • 浏览: 36240 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
阅读更多

上篇提到一个“如果不知道你的喜好,就连个方向都没有(注:从这个理论出发可以做出一个简单的推荐系统)”,下面我们就从这个理论出发实现一个简单的推荐系统。

1、背景知识

电子商品务推荐系统有些场景(或者叫页面)与优酷的视频推荐有点相似,当你在看一个视频的时候,页面的右边会出现“你可能会对这些视频感兴趣”,这个在电子商品网站中就是浏览商品的情景,以亚马逊为例,当我们浏览lumia 900的时候,页面的中部会出现“购买了此商品的顾客同时也购买”

浏览了还浏览了推荐结果

可以看到推荐列表中的商品与lumia900都有很强的相关性。

这个数据是如何得出来的呢?仅仅依靠数据统计可以完成吗?是完全真实的吗?

 

2、算法1--从数据出发

从直观意义上讲,要得到“买了lumia900的顾客还购买了”的商品列表,只需要查找网站的购买记录,找到买了lumia900的顾客,再找出他们还买过的其它商品就可以了。但是这里需要解决两个问题:时间、排序。在顾客购买的其它的商品中是不是所有的商品都与lumia900有关?如果用户一年前买了件衣服,与这个手机一点关系都没有,所以需要界定一个时间,用户多长时间购买的商品跟这个手机有关系呢?联想到现实生活中,我们去超市购物的时候,会把要买的东西都放入购物车、结帐,这样的一次购买就相当于用户在网站的一次会话,所以这个时间我们暂定为一次会话;买过这个手机的顾客不止一个,他们在这次会话中购买的其它商品有时也不止一个,最终会得到一个比较长的列表,那么如何排序呢?一般来说最相关的商品应该排在前边,如何确定相关度?可以用与lumia900同时被购买的次数做为相关度,然后可以按相关度大小排序。

上述算法描述如下:找到购买过当前商品的人在这次会话中还购买的其它商品,并统计这些商品与当前商品被同时购买的次数,最后按相关度排序,取前N个做为推荐商品展现在前台页面。N为你需要展现在前端的商品的个数

这个算法用到了大名鼎鼎的apriori算法的一部分,关联规则计算,我们最后得到的推荐结果其实就是频繁二项集。

此算法有两个硬伤:数据稀疏、关联性过强。这个留在以后讨论

 

3、算法2--从结果出发

 其实上图的推荐列表其实很简单,就是手机推手机壳、耳机、内存卡、其它颜色的同款手机,生活常识告诉我们,买空调一般需要再买空调挂架,买笔记本电脑需要电脑包、U盘……从而我们可以用一种与算法1完全不同的做法来达到相似的效果,那就是人工配置商品关联。当然商品数有很多,需要做的工作也非常多,实际做起来可能不太好办。所以我们可以配置商品所属的目录关联规则,这样工作量就减少了很多。根据我的经验,如果目录数在500个左右的话,一个人三天就可以做完。最终得到的结果类似这样:

 

笔记本电脑->【U盘;笔记本电脑包;移动硬盘;……】

 

当我们需要为一个商品做推荐的时候,先找到它所属的目录,再找到关联目录,从中挑选一些商品做为推荐。这个也需要解决两个问题:如何从关联目录中挑选推荐商品?挑先出来的商品如何排序?

如果关联目录有很多,可以人工的为每个目录、及目录中的商品设置权重,从每个目录中挑选两个商品,加权后排序取前N个做为推荐结果。

这个算法非常简单,需要人工做的工作很多,它存在几个问题:

推荐的商品与当前商品不配套;

推荐出来的结果并非用户真实的行为结果,而是完全出于个人感觉;

无法发现隐藏的商品关联规则(如:啤酒和尿布);

 

基于以上两种算法就可以构建出一个简单的推荐系统了,有的人可能会觉得奇怪:连个数学函数都没,也叫算法?

这里我觉得有必要提一点,上面我说到是为了解决商品关联的问题,那么只要我解决了这个问题,用不用数据函数又有什么关系呢。所谓的算法很多时候只是一个想法,你做出来效果不错,就是一个算法,而不局限于数学函数。算法有时候也没有那么高深,后面几篇会有更深一点的理论,会出现数学函数。

另:本人也是初入推荐时间不久,国内推荐资料少之又少(真正的只有一本《推荐系统实践》),特此记录本人学习历程,大家看完后有什么建议,还望不吝赐教

分享到:
评论

相关推荐

    信息化-电子商务-电子商务推荐系统关键技术研究.pdf

    在竞争激烈的环境下,电子商务推荐系统可以保留用户、防止用户流失,提高电子商务系统的销售。因此,本文对电子商务推荐系统的关键技术进行了研究,包括推荐算法设计、推荐系统体系结构等。 知识点一:推荐算法设计...

    电子商务推荐系统

    随着电子商务系统规模的不断扩大,推荐系统面临着新的挑战: 1. **数据稀疏性问题**:大多数用户只会对极少数商品进行评分或反馈,这导致可用数据量非常有限。 2. **冷启动问题**:对于新用户或新产品而言,缺乏...

    基于协同过滤算法商品推荐系统论文-java-文档-基于协同过滤算法商品推荐系统文档

    - **选题动因**:随着互联网技术的发展和电子商务平台的兴起,如何在海量的商品信息中帮助用户找到他们真正感兴趣的商品成为了商家面临的一个重大挑战。传统的信息管理方式存在效率低下、错误率高、数据修改困难等...

    基于SSM的电子商务推荐系统【项目源码+数据库脚本】(毕设)

    本项目是一套基于SSM的电子商务推荐系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都...

    电子商务系统中协同过滤推荐算法研究-电子商务.doc

    ### 电子商务系统中协同过滤推荐算法研究 #### 一、引言 随着互联网技术的快速发展,电子商务已经成为现代商业的重要组成部分。据统计,2007年我国电子商务交易额达到了8900亿人民币,这一数字表明电子商务正在以...

    基于Web挖掘的电子商务推荐系统研究

    4. 推荐算法的重要性:推荐算法是电子商务推荐系统的核心,影响着推荐系统的稳定性、准确性、客观性和效率。 5. 关联规则算法和协同过滤算法:关联规则算法和协同过滤算法是推荐系统的主流算法,旨在挖掘用户行为...

    jsp技术构建电子商务应用系统-从入门到提高

    **jsp技术构建电子商务应用系统** 在当今互联网时代,电子商务已经成为商业活动的重要组成部分,而Java Server Pages(JSP)技术则是构建高效、灵活的电子商务应用系统的首选工具之一。本指南将带你从入门到提高,...

    电商推荐系统 推荐算法应用 推荐系统在电子商务中应用 共27页.pdf

    推荐系统在电子商务中应用是指在电商平台上使用推荐算法来提高用户体验和销售额的一种技术。该技术通过分析用户行为、物品特征和上下文信息,向用户推荐相关的商品或服务,以提高用户的参与度和忠诚度。 在电商推荐...

    文献综述-餐饮电子商务个性化推荐系统推荐算法.docx

    总结来说,个性化推荐系统在餐饮电子商务中扮演着不可或缺的角色,而推荐算法的选取和优化是提升系统性能的关键。随着技术的进步,推荐系统将持续创新,更好地服务于用户,推动餐饮行业的数字化转型。

    机器学习推荐系统推荐算法pdf讲义

    根据提供的文件信息,我们可以从中提炼出关于机器学习推荐系统中的推荐算法的相关知识点。尽管部分文本内容存在...如今,推荐系统已经成为互联网服务的重要组成部分,广泛应用于电子商务、社交媒体、新闻推荐等领域。

    电子商务系统--模拟当当网的实现

    在电子商务系统开发中,模拟当当网的实现是一项复杂而全面的任务,涉及到多个关键功能模块。这个项目旨在构建一个类似于当当网的在线购物平台,为用户提供注册、登录、商品浏览、订单处理、购物车管理和后台管理等...

    文献综述-餐饮电子商务个性化推荐系统推荐算法.pdf

    总的来说,餐饮电子商务的个性化推荐系统是通过不断演进的推荐算法来理解和满足用户需求,它不仅优化了用户寻找和选择菜品的过程,也为商家提供了提升销售和服务质量的途径。未来,推荐系统将持续创新,更好地服务于...

    基于用户的协同过滤推荐算法--开题报告.pdf

    尽管基于用户的协同过滤算法在实践中存在挑战,但其依然是电子商务推荐系统中的重要组成部分。通过不断优化和改进,该算法能更好地满足用户需求,提升用户体验,增强电商平台的竞争力。未来的研究将继续关注如何...

    电子功用-基于多算法融合的电子商务推荐方法和系统

    在电子功用领域,基于多算法融合的电子商务推荐方法和系统是一种高效且智能的解决方案,旨在提升用户购物体验和电商平台的销售效率。这种技术的核心在于利用多种机器学习和数据挖掘算法,对用户行为、兴趣和偏好进行...

    基于协同过滤算法的电子商务推荐系统研究.docx

    《基于协同过滤算法的电子商务推荐系统研究》这篇论文详尽探讨了如何利用协同过滤算法来构建电子商务推荐系统,旨在提高个性化推荐的准确性和用户满意度。协同过滤是一种基于用户历史行为和兴趣的推荐策略,它通过...

    知识网格与电子商务智能推荐系统研究

    在当前激烈的市场竞争环境下,电子商务推荐系统能够有效地保留客户,提高电子商务系统的销售效率。 文章首先介绍了电子商务推荐技术的研究现状,指出现有的电子商务推荐系统存在的主要问题。具体来说,这些问题包括...

    毕业设计参考-计算机专业-java-电子商务系统-源码

    【标题】"毕业设计参考-计算机专业-java-电子商务系统-源码" 提供的是一个针对计算机专业学生的毕业设计示例,主要使用Java编程语言实现了一个完整的电子商务系统。这个项目不仅涵盖了软件开发的基本流程,还体现了...

Global site tag (gtag.js) - Google Analytics