CN105426392B - 一种协同过滤推荐方法及系统 - Google Patents
一种协同过滤推荐方法及系统 Download PDFInfo
- Publication number
- CN105426392B CN105426392B CN201510710922.6A CN201510710922A CN105426392B CN 105426392 B CN105426392 B CN 105426392B CN 201510710922 A CN201510710922 A CN 201510710922A CN 105426392 B CN105426392 B CN 105426392B
- Authority
- CN
- China
- Prior art keywords
- project
- user
- interested
- weighted value
- users
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000001914 filtration Methods 0.000 title claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims description 56
- 238000012546 transfer Methods 0.000 claims description 15
- 229940050561 matrix product Drugs 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种协同过滤推荐方法及系统,方法包括:获取用户群组中每一个用户分别感兴趣的项目;确定每一个用户对其感兴趣的每一个项目的权重值;根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表。根据本方案,通过获取用户群组中每一个用户分别感兴趣的项目,以及确定每一个用户对其感兴趣的每一个项目的权重值,来最终确定推荐给每一个用户的项目列表,通过结合每一个用户所感兴趣的项目,以及每一个用户对感兴趣的每个项目赋予的权重值,来确定项目列表,可以提高项目推荐的准确率。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种协同过滤推荐方法及系统。
背景技术
随着网络通信技术的迅速发展,用户可以从第三方视频播放网站中观看大量的视频项目。当面对大量可以进行播放的项目时,用户无法快速找到自己感兴趣的项目。
现有技术中,可以使用聚类方式来完成项目推荐,该方式可以包括:按照用户属性,将所有用户分别聚集成多个类,使得聚集成的每一个类中所包括的用户之间的相似性尽可能大,各个类之间的相似性尽可能小,将同一个类中其他用户感兴趣的项目推荐给当前用户。
然而,传统聚类方式是通过用户属性进行聚类,对于某些属性特征不明显的用户,在进行聚类时容易造成聚类错误,因此传统聚类方式实现的项目推荐准确率较低。
发明内容
有鉴于此,本发明提供一种协同过滤推荐方法及系统,以提高项目推荐的准确率。
第一方面,本发明提供了一种协同过滤推荐方法,包括:
获取用户群组中每一个用户分别感兴趣的项目;
确定每一个用户对其感兴趣的每一个项目的权重值;
根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表。
优选地,根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表,包括:
根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;
根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;
根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
优选地,所述确定推荐给每一个用户的项目列表,包括:
根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;
按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;
将排序后的各个项目作为最终推荐给相应用户的项目列表。
优选地,所述确定每一个项目的权重值,包括:
确定每一个项目的发生年代;
根据发生年代,对各个项目赋权重值;其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
优选地,所述获取用户群组中每一个用户分别感兴趣的项目,包括:
在用户群组所对应的每一台日志服务器中,搭建Flume,并利用每一台日志服务器上搭建的该Flume采集相应日志服务器中产生的日志信息;所述日志信息包括用户标识、项目标识和项目发生年代;
将每一台日志服务器上搭建的Flume将采集的日志信息发送给中转Flume;
利用中转Flume将接收到的日志信息发送给HDFS进行存储;
利用MapReduce算法对存储在HDFS中的日志信息进行分析,以确定每一个用户分别感兴趣的项目。
第二方面,本发明还提供了一种协同过滤推荐系统,包括:
第一获取单元,用于获取用户群组中每一个用户分别感兴趣的项目;
确定单元,用于确定每一个用户对其感兴趣的每一个项目的权重值;
第二获取单元,用于根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表。
优选地,所述第二获取单元,具体用于根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
优选地,所述第二获取单元,具体用于根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;将排序后的各个项目作为最终推荐给相应用户的项目列表。
优选地,所述确定单元,具体用于确定每一个项目的发生年代;根据发生年代,对各个项目赋权重值;其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
优选地,所述第一获取单元,具体用于在用户群组所对应的每一台日志服务器中,搭建Flume,并利用每一台日志服务器上搭建的该Flume采集相应日志服务器中产生的日志信息;所述日志信息包括用户标识、项目标识和项目发生年代;将每一台日志服务器上搭建的Flume将采集的日志信息发送给中转Flume;利用中转Flume将接收到的日志信息发送给HDFS进行存储;利用MapReduce算法对存储在HDFS中的日志信息进行分析,以确定每一个用户分别感兴趣的项目。
本发明实施例提供了一种协同过滤推荐方法及系统,通过获取用户群组中每一个用户分别感兴趣的项目,以及确定每一个用户对其感兴趣的每一个项目的权重值,来最终确定推荐给每一个用户的项目列表,通过结合每一个用户所感兴趣的项目,以及每一个用户对感兴趣的每个项目赋予的权重值,来确定项目列表,可以提高项目推荐的准确率。
附图说明
图1是本发明实施例提供的方法流程图;
图2是本发明另一实施例提供的方法流程图;
图3是本发明实施例提供的日志信息采集系统示意图;
图4是本发明实施例提供的协同过滤推荐系统的硬件架构图;
图5是本发明实施例提供的协同过滤推荐系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种协同过滤推荐方法,该方法可以包括以下步骤:
步骤101:获取用户群组中每一个用户分别感兴趣的项目。
步骤102:确定每一个用户对其感兴趣的每一个项目的权重值。
步骤103:根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表。
根据本方案,通过获取用户群组中每一个用户分别感兴趣的项目,以及确定每一个用户对其感兴趣的每一个项目的权重值,来最终确定推荐给每一个用户的项目列表,通过结合每一个用户所感兴趣的项目,以及每一个用户对感兴趣的每个项目赋予的权重值,来确定项目列表,可以提高项目推荐的准确率。
在本发明一个优选实施例中,为了提高项目推荐的准确率,可以使用如下方式获取推荐给每一个用户的项目列表:根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
在本发明一个优选实施例中,为了进一步保证推荐项目能够使用户感兴趣,可以通过如下方式确定推荐给每一个用户的项目列表:根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;将排序后的各个项目作为最终推荐给相应用户的项目列表。
在本发明一个优选实施例中,由于用户在选择感兴趣的项目时,在一定程度上,项目的发生年代距离当前时间越近,用户对其越感兴趣,因此,为了提高项目推荐的准确率,可以根据每一个项目的发生年代,对各个项目进行权重值的赋值,其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种协同过滤推荐方法,该方法可以包括以下步骤:
步骤201:在用户群组所对应的每一台日志服务器中,搭建Flume,并利用每一台日志服务器上搭建的该Flume采集相应日志服务器中产生的日志信息;所述日志信息包括用户标识、项目标识和项目发生年代。
在本实施例中,可以确定一个用户群组,针对该用户群组进行分析,以及对该用户群组中的每个用户推荐相应项目。其中,该用户群组可以是包括网络系统中的所有用户,也可以是根据用户属性确定的一部分用户,该用户群组的范围在此不做具体限定。
如图3所示,为本实施例提供的日志信息获取系统,该系统中包括有在用户群组所对应的每一台日志服务器中搭建的Flume,其中,该Flume用于采集相应日志服务器中产生的日志信息。
由于在获取推荐给每一个用户的项目列表时,需要使用到用户标识、项目标识和项目发生年代,因此,该日志信息中需要包括用户标识、项目标识和项目发生年代。
步骤202:将每一台日志服务器上搭建的Flume将采集的日志信息发送给中转Flume。
在本发明一个优选实施例中,可以采用至少一个中转Flume,用于对采集到的每一台日志服务器上的日志信息进行存储和转发,以保证在转发过程中,即使由于一些客观原因导致转发中断,该转发的日志信息也不会丢失,从而保证了日志信息的安全性。
其中,可以预先设定好每一个中转Flume与搭建在每一台日志服务器上的Flume之间的连接关系,每一台日志服务器上的Flume可以根据该连接关系确定将采集的日志信息发送给相应的中转Flume。
步骤203:利用中转Flume将接收到的日志信息发送给HDFS(Hadoop DistributedFile System,分布式文件系统)进行存储。
在本实施例中,由于HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上。而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序,因此可以采用HDFS存储日志信息,当然,也可以采用其他存储设备进行存储,在此不做具体限定。
步骤204:利用MapReduce算法对存储在HDFS中的日志信息进行分析,以确定每一个用户分别感兴趣的项目,以及确定每一个用户对其感兴趣的每一个项目的权重值。
在本实施例中,为了能够获取到推荐给每一个用户的项目列表,需要确定每一个用户分别感兴趣的项目以及每一个用对其感兴趣的每一个项目赋予的权重值,因此,可以通过对HDFS存储的日志信息分析得到。
由于HDFS中存储的日志信息量较大,为了提高分析效率,在本发明一个优选实施例中,可以采用MapReduce算法对这些日志信息进行分析。
在一般情况下,用户容易对距离当前时间较近的项目更感兴趣,因此,在本实施例中,每一个用户可以根据项目的发生年代对其感兴趣的项目赋予相应权重值,发生年代距离当前时间越近的项目权重值越大,反之,发生年代距离当前时间越远的项目权重值越小。其中,该赋予权重值的方式可以采用目前任何一种可以实现权重值赋值的方式,对此不作具体限定。
下面以用户1、用户2、用户3分别感兴趣的项目,以及分别对其感兴趣的项目赋予权重值为例,对本实施例进行说明。其中,可以将每个用户分别感兴趣的项目以及相应权重值转换成如下用户向量:
1[102:0.1,103:0.2,104:0.3],用于表征用户1分别对项目102、项目103、项目104感兴趣,且为这几个项目赋予的权重值分别为:0.1、0.2、0.3。
2[101:0.1,102:0.7,105:0.9],用于表征用户2分别对项目101、项目102、项目105感兴趣,且为这几个项目赋予的权重值分别为:0.1、0.7、0.9。
3[102:0.1,103:0.7,104:0.2],用于表征用户3分别对项目102、项目103、项目104感兴趣,且为这几个项目赋予的权重值分别为:0.1、0.7、0.2。
在本实施例中,对日志信息的分析结果可以存储在结构化数据库中。
步骤205:根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数。
如下表1所示,为生成的项目-用户矩阵:
表1:
其中,项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数。例如,同时对101和102感兴趣的用户为用户2,即用户个数为1个。
步骤206:根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值。
如下表2所示,为生成的权重矩阵:
表2:
根据表2可知,i最大为5,j最大为3。例如,R12用于表征用户2对项目101赋予的权重值,为0.1。
步骤207:将项目-用户矩阵与所述权重矩阵相乘,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值。
将上述表1与上述表2的内容相乘,可以得到如下初始项目列表:
为用户1推荐的初始项目列表:1[101:0.1,102:1.1,103:0.6,104:1.0,105:0.5]。
为用户2推荐的初始项目列表:2[101:1.7,102:4.0,103:0.8,104:2.4,105:2.9]。
为用户3推荐的初始项目列表:3[101:1.0,102:3.9,103:1.2,104:2.9,105:3.4]。
其中,以计算推荐给用户1的初始项目列表为例,对上述各个用户的初始项目列表的计算过程进行说明:
用户1对项目101的总分值计算:1*0+1*0.1+0*0.2+0*0.3+1*0=0.1。
用户1对项目102的总分值计算:1*0+3*0.1+1*0.2+2*0.3+2*0=1.1。
用户1对项目103的总分值计算:0*0+1*0.1+1*0.2+1*0.3+0*0=0.6。
用户1对项目104的总分值计算:0*0+2*0.1+1*0.2+2*0.3+1*0=1.0。
用户1对项目105的总分值计算:1*0+2*0.1+0*0.2+1*0.3+2*0=0.5。
从而得到推荐给用户1的初始项目列表为:1[101:0.1,102:1.1,103:0.6,104:1.0,105:0.5]。
步骤208:按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序,将排序后的各个项目作为最终推荐给相应用户的项目列表。
为了保证为用户推荐的项目,用户能够更感兴趣,可以将为每一个用户推荐的初始项目列表中的各个项目按照总分值的从大到小的顺序进行排序,得到如下最终的项目列表:
为用户1推荐的项目列表:1[102:1.1,104:1.0,103:0.6,105:0.5,101:0.1]。
为用户2推荐的项目列表:2[102:4.0,105:2.9,104:2.4,101:1.7,103:0.8]。
为用户3推荐的项目列表:3[102:3.9,105:3.4,104:2.9,103:1.2,101:1.0]。
在本发明一个优选实施例中,还可以设定一个阈值,例如,该阈值为1,可以利用该阈值对排序后的项目列表进一步筛选,将总分值小于1的项目从项目列表中删除,使得推荐给各个用户的项目列表中的每个项目的总分值均大于1。
如图4、图5所示,本发明实施例提供了一种协同过滤推荐系统。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图4所示,为本发明实施例协同过滤推荐系统所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图5所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的协同过滤推荐系统包括:
第一获取单元501,用于获取用户群组中每一个用户分别感兴趣的项目;
确定单元502,用于确定每一个用户对其感兴趣的每一个项目的权重值;
第二获取单元503,用于根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表。
进一步地,所述第二获取单元503,具体用于根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
进一步地,所述第二获取单元503,具体用于根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;将排序后的各个项目作为最终推荐给相应用户的项目列表。
进一步地,所述确定单元502,具体用于确定每一个项目的发生年代;根据发生年代,对各个项目赋权重值;其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
进一步地,所述第一获取单元501,具体用于在用户群组所对应的每一台日志服务器中,搭建Flume,并利用每一台日志服务器上搭建的该Flume采集相应日志服务器中产生的日志信息;所述日志信息包括用户标识、项目标识和项目发生年代;将每一台日志服务器上搭建的Flume将采集的日志信息发送给中转Flume;利用中转Flume将接收到的日志信息发送给HDFS进行存储;利用MapReduce算法对存储在HDFS中的日志信息进行分析,以确定每一个用户分别感兴趣的项目。
综上,本发明实施例至少可以实现如下有益效果:
1、在本实施例中,通过获取用户群组中每一个用户分别感兴趣的项目,以及确定每一个用户对其感兴趣的每一个项目的权重值,来最终确定推荐给每一个用户的项目列表,通过结合每一个用户所感兴趣的项目,以及每一个用户对感兴趣的每个项目赋予的权重值,来确定项目列表,可以提高项目推荐的准确率。
2、在本实施例中,为了提高项目推荐的准确率,可以使用如下方式获取推荐给每一个用户的项目列表:根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
3、在本实施例中,为了进一步保证推荐项目能够使用户感兴趣,可以通过如下方式确定推荐给每一个用户的项目列表:根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;将排序后的各个项目作为最终推荐给相应用户的项目列表。
4在本实施例中,由于用户在选择感兴趣的项目时,在一定程度上,项目的发生年代距离当前时间越近,用户对其越感兴趣,因此,为了提高项目推荐的准确率,可以根据每一个项目的发生年代,对各个项目进行权重值的赋值,其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种协同过滤推荐方法,其特征在于,包括:
获取用户群组中每一个用户分别感兴趣的项目;
确定每一个用户对其感兴趣的每一个项目的权重值;
根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表;
根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表,包括:
根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;
根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;
根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
2.根据权利要求1所述的方法,其特征在于,所述确定推荐给每一个用户的项目列表,包括:
根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;
按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;
将排序后的各个项目作为最终推荐给相应用户的项目列表。
3.根据权利要求1所述的方法,其特征在于,所述确定每一个项目的权重值,包括:
确定每一个项目的发生年代;
根据发生年代,对各个项目赋权重值;其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
4.根据权利要求1-3中任一所述的方法,其特征在于,所述获取用户群组中每一个用户分别感兴趣的项目,包括:
在用户群组所对应的每一台日志服务器中,搭建Flume,并利用每一台日志服务器上搭建的该Flume采集相应日志服务器中产生的日志信息;所述日志信息包括用户标识、项目标识和项目发生年代;
将每一台日志服务器上搭建的Flume将采集的日志信息发送给中转Flume;
利用中转Flume将接收到的日志信息发送给HDFS进行存储;
利用MapReduce算法对存储在HDFS中的日志信息进行分析,以确定每一个用户分别感兴趣的项目。
5.一种协同过滤推荐系统,其特征在于,包括:
第一获取单元,用于获取用户群组中每一个用户分别感兴趣的项目;
确定单元,用于确定每一个用户对其感兴趣的每一个项目的权重值;
第二获取单元,用于根据所述用户群组中的每一个用户分别感兴趣的项目以及根据每一个用户对其感兴趣的每一个项目的权重值,获取推荐给每一个用户的项目列表;
所述第二获取单元,具体用于根据用户群组中每一个用户分别感兴趣的项目生成项目-用户矩阵;其中,所述项目-用户矩阵用于表征同时对任意两个项目感兴趣的用户的个数;根据每一个用户对其感兴趣的每一个项目的权重值生成权重矩阵;所述权重矩阵中第i行第j列的项目Rij用于表征用户j对项目i赋予的权重值;根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的项目列表。
6.根据权利要求5所述的协同过滤推荐系统,其特征在于,所述第二获取单元,具体用于根据所述项目-用户矩阵与所述权重矩阵的乘积,确定推荐给每一个用户的初始项目列表,其中,每一个用户的初始项目列表中包括该用户对每一个项目的总分值;按照总分值从大到小的顺序对每一个用户的初始项目列表中的各个项目排序;将排序后的各个项目作为最终推荐给相应用户的项目列表。
7.根据权利要求5所述的协同过滤推荐系统,其特征在于,所述确定单元,具体用于确定每一个项目的发生年代;根据发生年代,对各个项目赋权重值;其中,发生年代距离当前时间越近的项目,权重值越大;反之,发生年代距离当前时间越远的项目,权重值越小。
8.根据权利要求5-7中任一所述的协同过滤推荐系统,其特征在于,所述第一获取单元,具体用于在用户群组所对应的每一台日志服务器中,搭建Flume,并利用每一台日志服务器上搭建的该Flume采集相应日志服务器中产生的日志信息;所述日志信息包括用户标识、项目标识和项目发生年代;将每一台日志服务器上搭建的Flume将采集的日志信息发送给中转Flume;利用中转Flume将接收到的日志信息发送给HDFS进行存储;利用MapReduce算法对存储在HDFS中的日志信息进行分析,以确定每一个用户分别感兴趣的项目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510710922.6A CN105426392B (zh) | 2015-10-28 | 2015-10-28 | 一种协同过滤推荐方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510710922.6A CN105426392B (zh) | 2015-10-28 | 2015-10-28 | 一种协同过滤推荐方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426392A CN105426392A (zh) | 2016-03-23 |
CN105426392B true CN105426392B (zh) | 2019-03-26 |
Family
ID=55504604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510710922.6A Active CN105426392B (zh) | 2015-10-28 | 2015-10-28 | 一种协同过滤推荐方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426392B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704566A (zh) * | 2016-04-25 | 2016-06-22 | 浪潮软件集团有限公司 | 一种基于电视机顶盒的视频推荐系统 |
CN107223341A (zh) * | 2017-04-01 | 2017-09-29 | 深圳市智晟达科技有限公司 | 根据app使用推荐视频的方法以及推荐系统 |
CN109947983A (zh) * | 2017-09-19 | 2019-06-28 | Tcl集团股份有限公司 | 视频推荐方法、系统、终端及计算机可读存储介质 |
CN112182354A (zh) * | 2019-07-01 | 2021-01-05 | 北京百度网讯科技有限公司 | 用户信息的统计方法、装置、设备和存储介质 |
CN112989208B (zh) * | 2021-04-30 | 2021-08-06 | 武汉卓尔数字传媒科技有限公司 | 一种信息推荐方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110184977A1 (en) * | 2008-09-27 | 2011-07-28 | Jiachun Du | Recommendation method and system based on collaborative filtering |
CN103049488A (zh) * | 2012-12-05 | 2013-04-17 | 北京奇虎科技有限公司 | 一种协同过滤处理方法和系统 |
CN103198418A (zh) * | 2013-03-15 | 2013-07-10 | 北京亿赞普网络技术有限公司 | 一种应用推荐方法和系统 |
CN104462560A (zh) * | 2014-12-25 | 2015-03-25 | 广东电子工业研究院有限公司 | 一种个性化推荐系统及其推荐方法 |
CN104778237A (zh) * | 2015-04-03 | 2015-07-15 | 电子科技大学 | 一种基于关键用户的个性化推荐方法和系统 |
-
2015
- 2015-10-28 CN CN201510710922.6A patent/CN105426392B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110184977A1 (en) * | 2008-09-27 | 2011-07-28 | Jiachun Du | Recommendation method and system based on collaborative filtering |
CN103049488A (zh) * | 2012-12-05 | 2013-04-17 | 北京奇虎科技有限公司 | 一种协同过滤处理方法和系统 |
CN103198418A (zh) * | 2013-03-15 | 2013-07-10 | 北京亿赞普网络技术有限公司 | 一种应用推荐方法和系统 |
CN104462560A (zh) * | 2014-12-25 | 2015-03-25 | 广东电子工业研究院有限公司 | 一种个性化推荐系统及其推荐方法 |
CN104778237A (zh) * | 2015-04-03 | 2015-07-15 | 电子科技大学 | 一种基于关键用户的个性化推荐方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105426392A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426392B (zh) | 一种协同过滤推荐方法及系统 | |
Srisawat et al. | Sussing merger trees: the merger trees comparison project | |
CN108108821A (zh) | 模型训练方法及装置 | |
Gloor et al. | Web science 2.0: Identifying trends through semantic social network analysis | |
CN105224606B (zh) | 一种用户标识的处理方法及装置 | |
KR101009830B1 (ko) | 사회망에서 사용자들의 일치성 점수화 | |
US9087108B2 (en) | Determination of category information using multiple stages | |
US9152709B2 (en) | Cross-domain topic space | |
CN112035549B (zh) | 数据挖掘方法、装置、计算机设备及存储介质 | |
CN112100221B (zh) | 一种资讯推荐方法、装置、推荐服务器及存储介质 | |
CN103577593A (zh) | 一种基于微博热门话题的视频聚合方法及系统 | |
JP2018509664A (ja) | モデル生成方法、単語重み付け方法、装置、デバイス及びコンピュータ記憶媒体 | |
CN109992676B (zh) | 一种跨媒体资源检索方法及检索系统 | |
CN111159563A (zh) | 用户兴趣点信息的确定方法、装置、设备及存储介质 | |
CN107634897A (zh) | 群推荐方法和装置 | |
CN108509545B (zh) | 一种文章的评论处理方法及系统 | |
US20130108180A1 (en) | Information processing device, information processing method, and program | |
CN114330476A (zh) | 用于媒体内容识别的模型训练方法及媒体内容识别方法 | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
Tan et al. | A multi-layer event detection algorithm for detecting global and local hot events in social networks | |
CN112184300A (zh) | 一种达人匹配方法、介质、系统和设备 | |
CN104123307A (zh) | 数据加载方法及系统 | |
CN115017362A (zh) | 数据处理方法、电子设备及存储介质 | |
CN109063052A (zh) | 一种基于时间熵的个性化推荐方法及装置 | |
CN115062013A (zh) | 信息推荐方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200527 Address after: 250100 Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province Patentee after: Inspur Software Technology Co., Ltd Address before: 250100 Ji'nan science and Technology Development Zone, Shandong Branch Road No. 2877 Patentee before: INSPUR GROUP Co.,Ltd. |