英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
基于关联规则和协同过滤算法的推荐系统
摘要
在本次研究中,通过分析用户使用模式和个人喜好,运用关联规则和协同过滤算法,用NFC(近场通讯)的方式来来获取客户公司的客户数据,设计并且实现出了推荐系统。这种推荐算法运用于拟设系统中,运用数据分析的结果和从GPS(全球定位系统)获取的距离数据,推荐给当地用户他们极有可能访问点击的商业企业。
一、介绍
爱立信是一家瑞典跨国电信公司,在他们的爱立信流动报告中,2019年使用智能手机的人数将达到56亿。如果这项预测准确,那么世界上的大多数人都将会使用智能手机和智能设备。埃里克bull;施密特,谷歌公司的首席执行官(CEO)说,现如今世界上每两天产生的数据就相当于人类从开始产生一直到2003年的数据的数量了。
从智能手机的使用情况来看,用户在海量的数据中找到自己需要的数据是极其困难的。因此,将大量数据进行分类排序,得出用户真正感兴趣的是极其重要的。正因为如此,调查者们对个性化的特殊兴趣和相关推荐系统做了许多研究。所谓个性化,就是在没有实际询问用户的情况下,根据用户上网点击的记录和行为,提供给用户他们需要的产品或是服务。
协同过滤算法是推荐系统中运用最广泛的方法之一。在协同过滤算法中,用户倾向的产品数据将会被收集起来,并且根据他们喜爱的产品A推荐给用户他们还可能会喜爱的产品B。
协同过滤算法主要有显式和隐式两种方法收集用户数据。隐式方法主要是通过用户的浏览行为和浏览历史获得数据,虽然隐式方法的精确度低于直接从用户获取到的显式方法,但优点是可以改变用户对产品的选择趋势。
在这次研究中,用户的数据通过NFC(近场通信)隐式获得,使用NFC的优点是大多数的智能手机上都有NFC的功能,仅仅一个按钮就可以方便的使用NFC功能。使用NFC功能可以有效地减少丢失、保存纸质优惠券和信用卡带来的不便。
本研究通过关联规则分析和NFC协同过滤,隐式的收集用户信息,并且预测用户访问的感兴趣的卖家。同时,用户对某一产品的兴趣也受当地数据的影响,这也就需要GPS数据信息的分析,一个能满足用户最大化需求的个性化推荐系统是隐式的,用户不需要手动查找最感兴趣的商品。在本项研究中,将对推荐系统中关联规则和协同过滤算法进行全面研究。进一步说,这次实验的目的就是为了观察隐式系统是否能真正的找到用户想要的产品。
二、相关研究
2.1推荐系统
这个推荐系统是为用户产生的数据服务的,包括了用户的购买数据,为了推荐给用户最合适的产品和服务。大多数的推荐系统都有相应流程,就是通过分析收集到的用户数据,找到相似的用户,根据这些相似用户数据的分析,最后推荐给该用户他可能会购买的产品。这个系统的优点可以收集各种类型的数据,例如用户的使用行为。通过分析用户的样本数据模型,购买的形式,用户通过智能手机访问互联网时的点击,这些数据可以通过购买会员来获得,这样用户就会不得不注册。这个推荐系统在各个领域都有所涉及,例如在线翻译、基于本地的服务,他们也在在线商业网站中运用,例如亚马逊和 Netflix公司,在智能手机应用也被使用。
2.2协同过滤算法
协同过滤算法是可以对用户的浏览数据集合进行分析,并且自动预测用户兴趣的一种方式。协同过滤的前提是用户当前的目标产品与将来一致。也就是说,该算法可以找到兴趣相似用户。协同过滤可以将兴趣相似的顾客放在一个小组里,并产生可以对用户推荐的产品清单,这个清单是由该用户最可能购买的产品组成。协同过滤有两种重要的方法:一是基于用户的,二是基于产品的。在基于用户的方法里,列表里推荐的产品是一用户为中心的,而基于产品的方法中列表中是以产品为基础。在基于用户方法中,用户之间的相似性可以用于预测用户对产品偏好的程度。例如,两个兴趣相似的用户A和B,A购买了产品I,但B没有购买,我们就可以将产品I推荐给用户B。在基于产品的方法中,主要是为了发现不同产品之间的相似性,在手机上用户重复点击的产品后,根据该产品的特征标签,推荐给用户他可能会喜欢是相似产品。基于产品的协同推荐算法很复杂并且包括了很多复杂的算法,因为每个产品都要进行相似性的估计,所以当用户有不同方面的需求时,算法的准确性变的很低。另一方面,基于用户的协同过滤具有快速的处理速度并且易于实现。
2.3关联规则
数据挖掘是一种可以发现隐藏关系、模式和大量的数据使用规则,以便从大量数据中筛选出有效数据的方法,它使用的是新的规则,倾向和模式让人更容易理解。用这种方式收集的数据对商业市场筹划和帮助用户做出购买决定都非常有用。简单说,数据挖掘最有效的方法就是使用关联规则。关联规则的方法是指定一个产品与另一个产品的联系,它也是一种通过相关程度对数据进行分类的集合。在正式的定义中,数据库D = {T1, T2, hellip; ,Tn}被定义为一组事件,集合T = {i1, i2, hellip; , in }则被定义为构成这组事件是事物,它不允许有重复的事件,并且假定事件已经被排序。同时,关联规则也以 R: A→B的形式出现,当A出现时B也很有可能出现,就是说当进行某次交易时,A购买的产品有一定概率会导致B也购买该产品。在关联规则R: A→B中X是先序,Y是X是结果,且Xcap;Y=empty;。关联规则中有两个量用于评估:支持度和可行度。在大多数关联规则算法中,支持度是规则R与交易总数的比率,而置信度是指关联的强度,它是包含随总数而变化的交易的比率的事件交易。例如,如果时间X出现在交易中,那么事件Y也有概率出现。
2.4聚类
聚类分析是研究数据之间物理和逻辑之间相互关系的技术,通过一定的规则将数据集进行划分,性质相似的数据点构成了若干个类簇。在同一个类簇中的数据集比其类簇中的数据集更为相似。
如果只用协同过滤算法来制作推荐系统,将花费大量的时间,因为用户产生的庞大的数据将要进行比较,最终得到最接近的信息。为了解决这个问题,可以在用户数据被比较之前预先形成类簇,以减少比较数据的相对大小,这样可以消除噪声,并且系统在提出建议的项目列表时表现良好。
2.5基于K-MEANS算法的关联规则
- means算法将n维数据重复计算i次,并将它们分为k个类簇,具有复杂性。通常k和i的值远远小于n,所以这种算法对于大数据的处理效率很高。当然。K-means算法也有缺点,我们需要对k进行赋值——在多数类簇中——初始权重为任意数据,以便它可以找到局部最优解。在基于K-means算法的关联规则中,将在关联规则中计算出的值赋值给k,并且在原始K-means算法中任意设置的权重被替换为从关联规则获得的值。
三、移动端优惠券推荐系统的实现
3.1系统架构
图1显示的是使用NFC的移动端优惠券推荐系统的总体架构。本次研究推荐系统的关键就是向用户推荐项目和推荐服务。实验的前提是用户使用的移动端NFC功能和阅读器的数据收集都已经实现了。
移动端优惠券推荐系统是手机上的应用,它满足了向手机用户推荐优惠券并且使用优惠券的功能。在传统的这种类型的应用中,用户可以查看自己的购买历史并获取里程数,但本次研究中只实现基于特征的相关推荐。推荐服务器是由基于TCP / IP协议的通信管理器构成的,处理数据库请求的数据库管理员以及执行推荐算法的推荐管理器可以接收到移动端优惠券推荐应用app发送出的优惠券推荐请求。
通信管理员的职责是与用户的智能手机进行通信。基于TCP/IP协议,通信管理员可以处理从用户智能手机上传来的请求数据信息。推荐服务会创建一张推荐列表,发送到用户的手机上。
数据管理员的功能是实现数据库中数据的输入和输出,并且处理例如用户基本信息和用户购买历史这样的已有信息。它被推荐管理员调用,使用JDBC(java数据库连接)与数据可进行通信。推荐管理员处理推荐算法,他包括了两种不同的选项:一是基于关联规则的K-means算法的使用模式分析;二是使用协同过滤算法的相似客户的产品推荐。
图一 系统构架
3.2推荐系统的设计和实现
推荐系统是基于Java的服务器程序,可以处理从移动端优惠券推荐应用传来到的推荐请求。它可以分为两种进程:
第一类进程是使用基于K-means算法的关联规则,该规则可以确定用户的购买模式,目的是预测用户最可能购买的产品清单。例如,一个客户的购买习惯可能是“在午饭之后喝一杯咖啡”。当客户A的交易中存在许多此类购买模式的实例时,关联规则的支持率会增加,并且选择的可能性也会增加。
第二类进程包括使用协同过滤算法,推荐用户现在还没有使用过货点击浏览过的商品非常相似的另一款产品。这项研究的研发的推荐系统是推荐给用户他们现阶段还没有使用过的商品,因为在系统没有作出推荐客户自己使用相关产品后,用户自己会作出相应的判断。因此,针对从关联分析中找到的业务类型使用协同过滤来组成用户的推荐列表,其中包含与用户相关的项目。关联分析算法在用户的使用数据中分析,并预测用户接下来可能会发生的行为,根据分析进行列表推荐。
一种分析关联规则的先验算法在本次研究中得到了实现和应用。先验算法是一种相对简单并且容易实现的算法。图2显示了他如何实现,图3显示了它在系统中实现的数据库实体关系模型。在图3中 TB_USER_VISIT_INFO 是一张存储用户使用商品的表格。这张表单的记录是用户使用商品标签的记录,用户每次购买商品就会产生这样一条简单的记录。研究表明,有不同种类的早饭,中饭和晚饭的交易。假设用户的购买产品是有不同类型食物决定的。因为每种食物的使用模式都不一样,存储在数据库中的交易为早饭中午饭和晚饭。作为一个数据预处理的一个例子,假设R = {A,B,D,E,C,F,G}是TB_USER_VISIT_INFO中一天的交易记录。{A},{B}和{D}在早餐期间,{E}和{C}在午餐期间,{F}和{G}在晚餐期间,则可以生成集合T1 = {A,B,D},T2 = {E,C},T3 = {F,G}。
图二 Apriori算法
在图2中,T是顾客的一组商品交易,L是频繁交易商品的集,C是候选商品的集。最小的支持率也必须事先设定。该算法可以大致分为两个阶段,该算法可以大致分为两个阶段,候选项目集Ck创建阶段,其中频繁项目集由Lk-1 * Lk-1联合创建,频繁项目集创建阶段从最低支持度以上的项收集 该集合和频繁的项目集被创建。当候选项目集Ck在这两个阶段重复时变为空集时,该算法结束。 此外,必须从频繁项目集中找到与客户行为有关的项目才能推荐项目。
表一 频繁项目L
频繁商品 |
商品集合 |
L1 |
{A}, {B}, {C}, {E} |
L2 |
{A, B}, {A, C}, {A, E}, {B, C}, {B, E}, {C, E} |
L3 |
{A, B, C}, {A, B, E}, {B, C, E} |
假设表一所示的频繁项目集,根据给定的关联规则可以执行K-means算法,从而减小数据大小并提高协同过滤的速度和准确性。协同过滤算法可以使推荐给用户可能购买的商品的概率更高。它的原理是根据已有客户的访问信息进行推荐。这项研究使用关联分析来估计客户在已经找到的商品类型中选择的该类型的商品。这种协同过滤可以分为三步:一是审查矩阵,它包含通常统计收集的客户的审查评分。然而,这项研究并没有明确的收集客户数据,因此客户无法直接审查项目并与传统的协作过滤方法进行组合。因此,本研究利用客户访问企业的历史来创建评估矩阵,从而构建访问数评估矩阵。
图三 ER原型图
U1 |
U2 |
U3 |
U4 |
U5 |
|
S1 |
4 |
3 |
2 |
||
S2 |
4 |
3 |
2 |
4 |
3 |
S3 |
2 |
2 |
3 |
||
S4 |
3 |
1 |
1 |
表二 评估矩阵的例子
为了获取客户访问历史,当客户使用NFC功能标记收藏企业时,这次记录的信息将自动存储在数据库中。假设用户对这个企业很感兴趣,他还会进行多次访问,但如果不感兴趣,访问率就会很低。
将相似用户一起进行协同过滤,可以通过衡量用户之间的相似性建立模型,确定相邻用户。有多种方法可以进行用户相似性的衡量,包括皮尔森相关系数,余弦相似度和欧氏距离。本次是研究就使用了皮尔森相关系数法来确定相邻用户,因为他有较高的预测成功率。评分矩阵中的数字可以衡量用户之间的相似程度,然后使用k-NN算法来确定k个相邻用户。在表2中,估计的客户是U1, 表3显
全文共7703字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[14038],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。