一种基于潜层因子的跨领域商品推荐方法及装置技术领域
本发明涉及数据推送领域,特别涉及一种基于潜层因子的跨领域商品推荐方法及
装置。
背景技术
互联网的出现和普及,使得互联网中的信息大幅度增长,这也给使用者在获得真
正有用的信息时带来了很大的难度,造成了信息超载的现象。为解决信息超载为题,使用者
开发出了推荐系统,所谓推荐系统是根据用户的需求、兴趣等,将其可能会需要的信息、产
品等推荐给用户的个性化信息推荐系统。通常,将推荐的信息、产品等,称之为商品,商品所
属的类别称之为领域。如书籍为领域,具体每一个书籍称之为商品。
推荐系统从单一领域的推荐发展到跨领域的推荐,常用的跨领域推荐基本思想
是:不同领域的用户对相似商品具有相同或相类似的打分模式。例如,一个用户对科幻类电
影打分较高而对爱情类电影打分较低,那么推荐到书籍领域,该用户也应该具有相同或者
相似的打分模式,即对科幻类小说打分较高、对爱情类小说打分较低。现有技术采用的方案
是:根据用户对商品的打分矩阵获得两个领域的潜层用户因子矩阵、潜层商品因子矩阵和
共有打分矩阵,并根据获得的矩阵,求得原有打分矩阵中的缺失值,并确定是否对商品进行
推荐。
可见,现有技术中,只考虑到了两个领域打分的相似性并未考虑到每个领域打分
的特殊性,因而获得的推荐商品的评分与用户的期望可能会差别很大,造成商品推荐的准
确率不高。
发明内容
本发明实施例的目的在于提供一种基于潜层因子的跨领域商品推荐方法及装置,
以提高商品推荐的准确率。
为达到上述目的,本发明实施例公开了一种基于潜层因子的跨领域商品推荐方
法,所述方法包括:
采集第一领域和第二领域的用户对商品的打分数据;
根据所述打分数据,构建针对所述第一领域的第一打分矩阵和针对所述第二领域
的第二打分矩阵;
根据所述第一打分矩阵和所述第二打分矩阵,确定所述第一领域和所述第二领域
的公共打分矩阵、所述第一领域的第一特有打分矩阵、所述第二领域的第二特有打分矩阵、
所述第一领域和所述第二领域分别对应的潜层用户因子矩阵、所述第一领域和所述第二领
域分别对应的潜层商品因子矩阵、所述第一领域和所述第二领域分别对应的指示矩阵;
根据所述第一打分矩阵、所述第二打分矩阵、所述公共打分矩阵、所述第一特有打
分矩、所述第二特有打分矩阵、所述潜层用户因子矩阵、所述潜层商品因子矩阵、所述指示
矩阵,构建目标函数;
求解所述目标函数;
根据所述目标函数的求解值,对所述第一打分矩阵和所述第二打分矩阵进行重
构;
根据重构后的第一打分矩阵和第二打分矩阵,对商品进行推荐。
优选的,所述采集第一领域和第二领域的用户对商品的打分数据,包括:
利用爬虫技术,采集所述第一领域和所述第二领域的所述用户对所述商品的打分
数据。
优选的,在所述根据所述打分数据,构建针对所述第一领域的第一打分矩阵和针
对所述第二领域的第二打分矩阵之前,所述方法还包括:
将所采集到的打分数据进行筛选;
所述根据所述打分数据,构建针对所述第一领域的第一打分矩阵和针对所述第二
领域的第二打分矩阵,包括:
根据筛选后的打分数据,构建针对所述第一领域的第一打分矩阵和针对所述第二
领域的第二打分矩阵。
优选的,所述目标函数的具体表达为:
其中,J为目标函数,D1为所述第一打分矩阵,D2为所述第二打分矩阵,S1为所述第
一特有打分矩阵,S2为所述第二特有打分矩阵,S0为所述公共打分矩阵,U1为所述第一领域
的潜层用户因子矩阵,U2为所述第二领域的潜层用户因子矩阵,V1为所述第一领域的潜层商
品因子矩阵,V2为所述第二领域的潜层商品因子矩阵,W1为所述第一领域的指示矩阵,W2为
所述第二领域的指示矩阵。
优选的,所述求解所述目标函数,包括:
采用正交非负矩阵三分解技术,求解所述目标函数。
为达到上述目的,本发明实施例还公开了一种基于潜层因子的跨领域商品推荐装
置,所述装置包括:
采集模块,用于采集第一领域和第二领域的用户对商品的打分数据;
第一构建模块,根据所述打分数据,构建针对所述第一领域的第一打分矩阵和针
对所述第二领域的第二打分矩阵;
确定模块,用于根据所述第一打分矩阵和所述第二打分矩阵,确定所述第一领域
和所述第二领域的公共打分矩阵、所述第一领域的第一特有打分矩阵、所述第二领域的第
二特有打分矩阵、所述第一领域和所述第二领域分别对应的潜层用户因子矩阵、所述第一
领域和所述第二领域分别对应的潜层商品因子矩阵、所述第一领域和所述第二领域分别对
应的指示矩阵;
第二构建模块,用于根据所述第一打分矩阵、所述第二打分矩阵、所述公共打分矩
阵、所述第一特有打分矩、所述第二特有打分矩阵、所述潜层用户因子矩阵、所述潜层商品
因子矩阵、所述指示矩阵,构建目标函数;
求解模块,用于求解所述目标函数;
重构模块,用于根据所述目标函数的求解值,对所述第一打分矩阵和所述第二打
分矩阵进行重构;
推荐模块,用于根据重构后的第一打分矩阵和第二打分矩阵,对商品进行推荐。
优选的,所述采集模块,具体用于:
利用爬虫技术,采集所述第一领域和所述第二领域的所述用户对所述商品的打分
数据。
优选的,所述装置还包括:筛选模块,
所述筛选模块,用于将所采集到的打分数据进行筛选;
优选的,所述第一构建模块,具体用于:
根据筛选后的打分数据,构建针对所述第一领域的第一打分矩阵和针对所述第二
领域的第二打分矩阵。
优选的,所述目标函数的具体表达为:
其中,J为目标函数,D1为所述第一打分矩阵,D2为所述第二打分矩阵,S1为所述第
一特有打分矩阵,S2为所述第二特有打分矩阵,S0为所述公共打分矩阵,U1为所述第一领域
的潜层用户因子矩阵,U2为所述第二领域的潜层用户因子矩阵,V1为所述第一领域的潜层商
品因子矩阵,V2为所述第二领域的潜层商品因子矩阵,W1为所述第一领域的指示矩阵,W2为
所述第二领域的指示矩阵。
优选的,所述求解模块,具体用于:
采用正交非负矩阵三分解技术,求解所述目标函数。
由上述的技术方案可见,本发明实施例提供的一种基于潜层因子的跨领域商品推
荐方法及装置,所述方法包括:采集第一领域和第二领域的用户对商品的打分数据;根据打
分数据,构建针对第一领域的第一打分矩阵和针对第二领域的第二打分矩阵;根据第一打
分矩阵和第二打分矩阵,确定第一领域和第二领域的公共打分矩阵、第一领域的第一特有
打分矩阵、第二领域的第二特有打分矩阵、第一领域和第二领域分别对应的潜层用户因子
矩阵、第一领域和第二领域分别对应的潜层商品因子矩阵、第一领域和第二领域分别对应
的指示矩阵;根据第一打分矩阵、第二打分矩阵、公共打分矩阵、第一特有打分矩、第二特有
打分矩阵、潜层用户因子矩阵、潜层商品因子矩阵、指示矩阵,构建目标函数;求解目标函
数;根据目标函数的求解值,对第一打分矩阵和第二打分矩阵进行重构;根据重构后的第一
打分矩阵和第二打分矩阵,对商品进行推荐。
应用本发明实施例提供的技术方案,对两个领域的打分矩阵进行分解,得到的矩
阵中包含公共打分矩阵、特有打分矩阵,公共打分矩阵、特有打分矩阵分别表明两个领域的
公共特性和特有特性,然后结合其他矩阵得到重构的打分矩阵,相比现有技术中只根据两
个领域的公共特性的公共打分矩阵而得到重构的打分矩阵,还考虑到了每个领域对商品打
分的特殊性。因此,提高了商品推荐的准确率。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优
点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
图1为本发明实施例提供的基于潜层因子的跨领域商品推荐方法的一种流程示意
图;
图2为本发明实施例提供的基于潜层因子的跨领域商品推荐方法的另一种流程示
意图;
图3为本发明实施例提供的基于潜层因子的跨领域商品推荐装置的一种结构示意
图;
图4为本发明实施例提供的基于潜层因子的跨领域商品推荐装置的另一种结构示
意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种基于潜层因子的跨领域商品推荐
方法及装置,以下分别进行详细说明。
示例性的,选取电影、书籍作为第一领域和第二领域,具体的一部电影和一个书籍
为领域的商品,通过采集两个领域的用户对商品的评分信息,预测该用户对该商品的评分,
即是否推荐该商品。本发明实施例中的电影和书籍领域仅仅是示例性的,不构成对本发明
的限定。
图1为本发明实施例提供的基于潜层因子的跨领域商品推荐方法的一种流程示意
图,包括如下步骤:
S101,采集第一领域和第二领域的用户对商品的打分数据。
具体的,采集第一领域和第二领域的用户对商品的打分数据,可以利用爬虫技术,
采集所述第一领域和所述第二领域的所述用户对所述商品的打分数据。
S102,根据所述打分数据,构建针对所述第一领域的第一打分矩阵和针对所述第
二领域的第二打分矩阵。
S103,根据所述第一打分矩阵和所述第二打分矩阵,确定所述第一领域和所述第
二领域的公共打分矩阵、所述第一领域的第一特有打分矩阵、所述第二领域的第二特有打
分矩阵、所述第一领域和所述第二领域分别对应的潜层用户因子矩阵、所述第一领域和所
述第二领域分别对应的潜层商品因子矩阵、所述第一领域和所述第二领域分别对应的指示
矩阵。
S104,根据所述第一打分矩阵、所述第二打分矩阵、所述公共打分矩阵、所述第一
特有打分矩、所述第二特有打分矩阵、所述潜层用户因子矩阵、所述潜层商品因子矩阵、所
述指示矩阵,构建目标函数。
具体的,所述目标函数的具体表达为:
其中,J为目标函数,D1为所述第一打分矩阵,D2为所述第二打分矩阵,S1为所述第
一特有打分矩阵,S2为所述第二特有打分矩阵,S0为所述公共打分矩阵,U1为所述第一领域
的潜层用户因子矩阵,U2为所述第二领域的潜层用户因子矩阵,V1为所述第一领域的潜层商
品因子矩阵,V2为所述第二领域的潜层商品因子矩阵,W1为所述第一领域的指示矩阵,W2为
所述第二领域的指示矩阵。
S105,求解所述目标函数。
具体的,所述求解所述目标函数,可以采用正交非负矩阵三分解技术,求解所述目
标函数。
S106,根据所述目标函数的求解值,对所述第一打分矩阵和所述第二打分矩阵进
行重构。
S107,根据重构后的第一打分矩阵和第二打分矩阵,对商品进行推荐。
本领域技术人员可以理解的是,每个领域的用户和商品都较多,如果要爬取用户
对商品的打分数据,通常采用爬虫进行爬取。对电影和书籍领域而言,在各类点评网站中含
有较多的评分信息,可直接进入门户网站进行爬取。示例性的,在电影领域,爬取3个用户对
5部电影打分数据为:1、5、x1、6、2,x2、4、7、5、3,x3、5、4、x4、6;在书籍领域,爬取3个用户对5
本书的打分数据为:y1、6、5、y2、4,7、6,3、y3、9,5、4、3、y4、8。
x1、x2、x3、x4、y1、y2、y3和y4,表示没有爬取到用户对该商品的打分信息,称为缺失
值。通常,求解缺失值,缺失值即为待求解的用户对商品的打分。将求解到的缺失值与预设
阈值进行比较,再结合实际情况确定是否要推荐该商品。进而,根据爬虫在电影和书籍领域
爬取到的打分数据,构建打分矩阵,分别为H1、H2。
实际应用中,根据H1、H2获得与之对应的指示矩阵W1、W2,如果打分矩阵中具体位置
的值为采集到的打分数据,则指示矩阵的对应位置的元素值1;如果打分矩阵中具体位置的
值为缺失值,则指示矩阵的对应位置的元素值0。所以,得到的指示矩阵中的每个元素值是0
或者1,且指示矩阵与打分矩阵的行数、列数都一致。
本领域技术人员可以理解的是,将两个打分矩阵进行分解,得到对应领域潜层用
户因子矩阵U1和U2、潜层商品因子矩阵V1和V2、每个领域的特有打分矩阵S1和S2、两个领域的
公共打分矩阵S0。矩阵的分解为现有技术,本发明实施例在此不对其进行赘述。
根据两个打分矩阵分解出来的各个矩阵和指示矩阵,构建目标函数,利用正交非
负矩阵三分解的技术对矩阵进行求解。求解的步骤为:分别以U1、U2、V1、V2、S1、S2和S0对目标
函数进行求偏导数;结合KKT互补条件、令偏导数等于0,具体为:U1≥0、U2
≥0、V1≥0、V2≥0、S1≥0、S2≥0、S0≥0。即可具体求
解出U1、U2、V1、V2、S1、S2和S0。其中,利用正交非负矩阵三分解技术对函数进行求解为现有技
术,本发明实施例不对其具体求解过程进行赘述。
根据求解到的U1、U2、V1、V2、S1、S2和S0,对打分矩阵进行重构,重构后的打分矩阵为
D1'、D2',令:D1'=U1[S0,S1]V1T、假设,得到如下重构的打分矩阵。
根据D1'、D2'和D1、D2中缺失值的位置,获得缺失值:x1=3、x2=2、x3=6、x4=5、y1=
6、y2=4、y3=8和y4=5。
实际应用中,根据重构的矩阵D1'和D2',可以对两个领域的用户进行商品推荐。根
据矩阵进行商品推荐为现有技术,本发明实施例不做赘述。
可见,应用本发明图1所示的实施例,对两个领域的打分矩阵进行分解,得到的矩
阵中包含公共打分矩阵、特有打分矩阵,公共打分矩阵、特有打分矩阵分别表明两个领域的
公共特性和特有特性,然后结合其他矩阵得到重构的打分矩阵,相比现有技术中只根据两
个领域的公共特性的公共打分矩阵而得到重构的打分矩阵,还考虑到了每个领域对商品打
分的特殊性。因此,提高了商品推荐的准确率。
图2为本发明实施例提供的基于潜层因子的跨领域商品推荐方法的另一种流程示
意图,本发明图2所示实施例在图1所示实施例的基础上,在S102之前,增加S108。
S108,将所采集到的打分数据进行筛选。
本发明实施例所示的S102具体可以为S102A:根据筛选后的打分数据,构建针对所
述第一领域的第一打分矩阵和针对所述第二领域的第二打分矩阵。
具体的,所述根据所述打分数据,构建针对所述第一领域的第一打分矩阵和针对
所述第二领域的第二打分矩阵,可以根据筛选后的打分数据,构建针对所述第一领域的第
一打分矩阵和针对所述第二领域的第二打分矩阵。
实际应用中,利用爬虫爬取电影、书籍两个领域的用户、商品,并采集用户对商品
打分信息。直接爬取用户对商品的打分数据的目的性不强,会采集到很多不活跃的用户和
商品的数据,导致采集到的数据稀疏度很大。所谓不活跃的用户是用户对商品的打分信息
较少,同样,不活跃的商品是用户对其的打分较少。所以要先将采集到的数据进行处理,删
掉不活跃的用户和商品后再构建打分矩阵。经过筛选,能减少数据的稀疏度。示例性的,在
电影领域,以某一用户对5部电影的评分为目的进行爬取,而5部电影的评分均为缺失值,则
表示该用户为不活跃的用户,需要删除。
可见,应用本发明图2所示的实施例,采集到的数据经过筛选,删除不活跃的商品
和用户,有效的降低了打分数据的稀疏度。
图3为本发明实施例提供的基于潜层因子的跨领域商品推荐装置的一种结构示意
图,可以包括:采集模块201、第一构建模块202、确定模块203、第二构建模块204、求解模块
205、重构模块206、推荐模块207。
采集模块201,用于采集第一领域和第二领域的用户对商品的打分数据。
具体的,实际应用中,所述采集模块201,具体可以用于:
利用爬虫技术,采集所述第一领域和所述第二领域的所述用户对所述商品的打分
数据。
第一构建模块202,根据所述打分数据,构建针对所述第一领域的第一打分矩阵和
针对所述第二领域的第二打分矩阵。
确定模块203,用于根据所述第一打分矩阵和所述第二打分矩阵,确定所述第一领
域和所述第二领域的公共打分矩阵、所述第一领域的第一特有打分矩阵、所述第二领域的
第二特有打分矩阵、所述第一领域和所述第二领域分别对应的潜层用户因子矩阵、所述第
一领域和所述第二领域分别对应的潜层商品因子矩阵、所述第一领域和所述第二领域分别
对应的指示矩阵。
第二构建模块204,用于根据所述第一打分矩阵、所述第二打分矩阵、所述公共打
分矩阵、所述第一特有打分矩、所述第二特有打分矩阵、所述潜层用户因子矩阵、所述潜层
商品因子矩阵、所述指示矩阵,构建目标函数。
具体的,实际应用中,所述目标函数的具体表达为:
其中,J为目标函数,D1为所述第一打分矩阵,D2为所述第二打分矩阵,S1为所述第
一特有打分矩阵,S2为所述第二特有打分矩阵,S0为所述公共打分矩阵,U1为所述第一领域
的潜层用户因子矩阵,U2为所述第二领域的潜层用户因子矩阵,V1为所述第一领域的潜层商
品因子矩阵,V2为所述第二领域的潜层商品因子矩阵,W1为所述第一领域的指示矩阵,W2为
所述第二领域的指示矩阵。
求解模块205,用于求解所述目标函数。
具体的,实际应用中,所述求解模块205,具体可以用于:
采用正交非负矩阵三分解技术,求解所述目标函数。
重构模块206,用于根据所述目标函数的求解值,对所述第一打分矩阵和所述第二
打分矩阵进行重构。
推荐模块207,用于根据重构后的第一打分矩阵和第二打分矩阵,对商品进行推
荐。
可见,应用本发明图3所示的实施例,对两个领域的打分矩阵进行分解,得到的矩
阵中包含公共打分矩阵、特有打分矩阵,公共打分矩阵、特有打分矩阵分别表明两个领域的
公共特性和特有特性,然后结合其他矩阵得到重构的打分矩阵,相比现有技术中只根据两
个领域的公共特性的公共打分矩阵而得到重构的打分矩阵,还考虑到了每个领域对商品打
分的特殊性。因此,提高了商品推荐的准确率。
图4为本发明实施例提供的基于潜层因子的跨领域商品推荐装置的另一种结构示
意图,在图3所示实施例的基础上,增加筛选模块208。
筛选模块208,用于将所采集到的打分数据进行筛选。
具体的,实际应用中,所述第一构建模块202,具体可以用于:
根据筛选后的打分数据,构建针对所述第一领域的第一打分矩阵和针对所述第二
领域的第二打分矩阵。
可见,应用本发明图4所示的实施例,采集到的数据经过筛选,删除不活跃的商品
和用户,有效的降低了筛选后的数据的稀疏度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实
体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部
分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可
以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,
这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在
本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围
内。