一种结合关联规则的多维度用户协同过滤推荐方法与流程

文档序号:16213150发布日期:2018-12-08 08:00阅读:520来源:国知局
一种结合关联规则的多维度用户协同过滤推荐方法与流程

本发明涉及推荐算法技术领域,具体的说是一种结合关联规则的多维度用户协同过滤推荐方法。

背景技术

随着web2.0时代的降临,互联网进入了数据爆炸的时代。海量的数据在给用户带来丰富的同时,也淹没了有效数据。而推荐系统可以分析用户的历史购买行为及其他全局信息,为用户推荐他可能感兴趣的商品。帮助用户在海量商品中快速定位之间的关注点,提高了信息匹配效率,同时也使得商家在广告投放的时候更具有针对性,有助于实现用户和商家之间的共赢。

通信技术的发展使得移动端可以承载的数据流量越来越大,用户可以在移动端上完成很多购买和物品选择行为。用户的每次购买都有其具体的上下文,例如时间、地点、周围同行人员等。而这些上下文信息也会在很大程度上影响用户的决策。而移动设备可以获取到这些上下文信息,如当前时间,gps定位可以获取用户的当前位置及其周围是否有同事、朋友、家人存在。



技术实现要素:

针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种结合关联规则的多维度用户协同过滤推荐方法。

本发明为实现上述目的所采用的技术方案是:一种结合关联规则的多维度用户协同过滤推荐方法,包括以下步骤:

收集用户的购买记录,所述购买记录用户购买时的上下文信息,生成包含上下文信息的用户-评分矩阵;

计算用户相似度;

确定邻居用户的集合;

确定上下文相似度;

预测商品评分;

计算目标用户历史购买商品相关的频繁项集;

生成推荐列表。

所述上下文信息包括时间、地点、天气、同行人员、温度、湿度、季节、是否为节假日、是否为周末、白天还是夜晚、是否为用餐时间中任意若干种的组合。

所述计算用户相似度,具体为:

其中,sa,u,c表示目标用户a和用户u在上下文信息c条件下的相似度值,ia表示目标用户a评分过的项目的集合,iu表示用户u所接触过的商品集合,i表示目标用户a和用户u共同评分过的商品,ra,i表示目标用户a对商品i的评分,表示目标用户a在当前上下文情况下的平均评分,ru,i表示用户u对商品i的评分,表示用户u在当前上下文情况下的平均评分。

所述确定邻居用户的集合,具体为:

选取用户相似度最大的若干个用户作为目标用户的邻居用户的集合。

所述确定上下文相似度,具体为:

其中,simt(x,y,i)是上下文x和y在t维度下对商品i相似度,u是用户,是用户u在xt上下文维度下对商品i的评分,是商品i的平均得分,是用户u在yt上下文维度下对商品i的评分,是xt上下文维度的标准差,是yt上下文维度的标准差。

所述预测商品评分,具体为:

其中,pa,i,c为目标用户a在c上下文条件下对商品i的预测评分,表示目标用户a在c上下文条件下购买商品给出的平均打分,u’是目标用户a的邻居用户,nc是目标用户a的邻居用户u'的集合,sima,u′,c是目标用户a与某一邻居用户u'在c上下文条件下的相似度,ru′,i,c表示邻居用户u'对商品i的评分在考虑c上下文影响后的综合评分,是邻居用户u'在c上下文情况下对所有购买商品的平均打分,i是目标用户a尚未购买,而其邻居用户感兴趣并且打分较高的商品;

其中,c是目标用户所处的上下文,x是某评分记录所处的上下文,t是上下文的维度,simt(c,x,i)表示上下文c与上下文x在t维度上的相似度,ru′,i,c是邻居用户u'在c上下文维度下对商品i的评分,k表示上下文影响因子的权重。

所述计算目标用户历史购买商品相关的频繁项集,具体为:

用fp-growth算法计算用户购买记录中出现的频繁项集,并选出与目标用户近期购买商品相关的支持度最高的若干个。

所述生成推荐列表,具体为:

将所述商品评分中最好的若干个商品和所述频繁项集融合,得到推荐列表并展示给目标用户。

本发明具有以下优点及有益效果:

1、本发明考虑了上下文多维度因素的影响,可以提高推荐系统的准确性。

2、本发明结合了关联规则挖掘,可以为推荐系统提供更加科学合理的决策依据。

3、本发明具有较强的应用性,本身就考虑了多种复杂情况进行建模分析,能够很好的对应实际应用场景进行扩展。

附图说明

图1为本发明方法流程图;

图2为用户相似度聚类示意图;

图3为推荐的示例图。

具体实施方式

下面结合附图及实施例对本发明做进一步的详细说明。

定义:

(1)用户:文中用u表示,泛指使用该网站或网站的所有用户。

(2)目标用户:文中用a表示,表示需要为其进行商品推荐的那个用户。

(3)邻居用户:文中用u'表示,表示与目标用户兴趣相似的其他用户。

步骤一:收集用户的购买记录,此购买记录中包含了用户购买时的上下文信息,生成包含上下文信息的用户-评分矩阵。

步骤二:计算用户相似度

其中,sa,u,c表示目标用户a和用户u在c上下文下的之间的相似度值,ia表示目标用户a评分过的项目的集合,iu表示用户u所接触过的商品集合。i表示目标用户a和用户u共同评分过的商品。ra,i表示目标用户a对商品i的评分,表示目标用户a在当前上下文情况下的平均评分。同理ru,i表示用户u对商品i的评分,表示用户u在当前上下文情况下的平均评分。其中,目标用户表示正在使用推荐系统的那个用户,系统要为该目标用户进行商品推荐。

步骤三:确定邻居用户的集合

通常在确定邻居用户群的时候可以根据相似度计算公式(步骤二的公式),选取相似度最大的n个用户作为目标用户的聚类邻居(n可以取10,20,30等,视具体情况而定)。而上下文信息可以帮助用户过滤掉部分与当前推荐环境下上下文差异较大的用户评分记录。因为有的商品决策与当前的某一上下文因素关系密切,该上下文被称为硬性上下文,在推荐中必须考虑和满足。而一些不满足当前上下文的评分记录可以被优先过滤掉,在计算邻居聚类相似度的时候不加考虑。

如图3所示,其中,i1、i2、i3、i4表示四个商品,u1、u2、u3表示了四个用户。用户u1曾经对i1、i2、i3产生过兴趣。用户u2曾经对i3、i4产生过兴趣。用户u3曾经对i2、i3产生过兴趣。分析了三个用户的兴趣之后,发现u1用户与u3用户的兴趣相似度较大,于是将u1感兴趣而u3未接触的商品i1推荐给了用户u3。在这里,u3是推荐系统的目标用户,u1是目标用户的邻居用户,i1是对目标用户做出的商品推荐。

步骤四:上下文相似度的确定

假设一个系统所选取的上下文有z个不同的维度,即

c=(c1,c2,...,cz)

其中ct(t=1,...,z)是某一上下文维度(如时间、地点、天气等)。两条评分记录x,y之间的上下文在维度t上的相似度可以记为simt(x,y)。我们用该上下文维度对评分的影响程度来衡量两个上下文变量之间的相似度:

其中,u是用户,是用户u在xt上下文维度下对商品i的评分。是商品i的平均得分。是用户u在yt上下文维度下对商品i的评分。是xt上下文维度的标准差。是yt上下文维度的标准差。我们依据不同上下文环境对相同商品i的评分的影响程度来衡量上下文x和y在t维度下对商品i相似度。

步骤五:商品评分预测

其中,pa,i,c为目标用户a在c上下文条件下对商品i的预测评分。表示目标用户a在c上下文情况下购买商品给出的平均打分。u'是目标用户a的邻居用户。n是目标用户a的邻居用户的集合。sim(a,u',c)是目标用户a与某一邻居用户u'在c上下文条件下的相似度。ru′,i,c表示邻居用户u'对商品i的评分在考虑c上下文影响后的综合评分。是邻居用户u'在c上下文情况下对所有购买商品的平均打分。该公式通过目标用户a的邻居聚类用户对商品的评分及用户之间的相似度综合得出目标用户a对商品i的预测评分。其中i是目标用户a尚未购买,而其邻居们比较感兴趣并且打分较高的商品。

其中c是目标用户所处的上下文,x是某评分记录所处的上下文,ru,i,c是邻居用户u'对商品i的评分记录在c上下文影响下的综合大小。t是上下文的维度。我们知道上下文可以有很多具体的维度,根据数据采集的不同有不同的表现,例如时间、地点、相关人员。而时间维度又可以具体分为季节、星期、时刻、节假日等。sim(c,x,t)表示上下文c与上下文x在t维度上的相似度。k表示上下文影响因子的权重,可以通过实验确定。

步骤六:计算目标用户历史购买商品相关的频繁项集

用fp-growth算法计算用户购买记录中出现的频繁项集,选出与目标用户近期购买商品相关的支持度最高的几个。

步骤七:生成推荐列表

将预测评分(步骤五中的评分)最好的n个商品和支持度最高的频繁项融合(放一起呈现在推荐列表里。例如假设推荐列表的长度是8,就放3个关联规则推荐的项,放5个协同过滤得到的推荐项。根据推荐列表呈现方式的不同,融合方式可以调整),得到推荐列表,将列表中的商品展示给目标用户。

在图1中,首先通过服务器的日志信息获取用户的购买记录,及其上下文,以及目标用户当前的上下文信息。对数据进行清洗和预处理。去除数据结构不规范的脏数据。然后进行数据预处理,将日志中的有效信息提取出来,排列成包含上下文的用户-评分矩阵。用发明中的方法逐步进行多维度用户协同过滤,得住预测评分最高的若干个待选推荐商品。同时,对对数据库中用户的购买历史进行关联规则挖掘,找出与目标用户近期购买商品相关的频繁项集,选取支持度最高的若干个,融合到推荐列表中。最后将推荐结果存储在日志中。通过用户的反馈对算法进行调整。

图2中,中心节点就相当于目标用户,周围的同色节点相当于被选取为邻居集合的用户,即与目标用户相似度较高的用户。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1