一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种商品推荐方法、装置、设备及存储介质

2022-06-05 14:25:26 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,尤其涉及一种商品推荐方法、装置、设备及存储介质。


背景技术:

2.近年来,随着互联网技术飞速发展,网络上的各类数据日益膨胀,对用户的个性化服务逐渐变得重要,为此各种推荐算法应运而生。协同过滤算法是在推荐系统中最常用、影响最大、应用最广的一种算法,通过计算用户间或商品间的相似度,来给用户筛选信息和推荐商品。它能实现个性化的推荐,并且在运行时不需要分析商品本身的特征,而是依赖于商品和用户之间的交互关系。协同过滤算法分为基于用户的usercf和基于商品的itemcf。usercf是通过找到与目标用户兴趣相投的用户来进行推荐,能够帮助用户推荐未浏览过的商品,itemcf则是通过衡量商品之间的相似性进行推荐,与usercf相比更具有稳定性。两种方式各有优劣,并根据数据中用户和商品的规模的不同有不同的复杂度和表现。
3.但是,发明人发现:传统的协同过滤算法在计算非布尔向量相似度时通常简单地采用欧氏距离、余弦相似度、皮尔逊相关度,可是这些方法因齐次性会将购买量比例相同而数量不同的用户的相似度视作相同;而在计算布尔向量中较多使用jaccard相似度的度量方式。当数据量增大时,传统的协同过滤方法稀疏性凸显,系统的冗余也不断变大,无效计算增加;特别是当新用户或是新商品加入时,推荐效果较差,需要时间和数据的积累等。


技术实现要素:

4.本发明实施例的目的在于提出一种商品推荐方法、装置、设备及存储介质,克服了现有技术中由于齐次性和随机性带来的相似度度量问题,提高了向用户进行商品推荐的准确性。
5.为了解决上述技术问题,本发明实施例提供一种商品推荐方法,包括:识别用户与商品间的交互信息的数据类型,根据数据类型选择对应的商品相似度算法进行商品相似度计算,并对计算的所述商品相似度结果进行标准化处理,其中所述数据类型包括布尔向量和非布尔向量;根据数据类型选择对应的用户相似度算法进行用户相似度计算,并对计算的所述用户相似度结果进行标准化处理;及根据标准化处理后的所述商品相似度和所述用户相似度,计算每个用户与商品之间的推荐因子并排序,根据所述推荐因子将最相关的n个商品加入到对应的用户推荐列表中,其中n为推荐列表的容量。
6.进一步的,当用户与商品的交互信息的数据类型为布尔变量时,使用以下公式计算商品i和商品j之间的商品相似度:
[0007][0008]
其中,s1
i,j
为商品i与商品j之间的商品相似度,a表示用户k同时购买了商品i和商品j,b表示用户k购买了商品i或者商品j,c表示用户k没有购买商品i或者商品j,n为用户总
数,x1,x2,x3为可调整的权重系数,其中s表示任意a、b、c;
[0009]
当所有人随机购买商品时,计算商品i和商品j之间商品相似度s1
i,j
的随机变量的理论均值;根据蒙特卡洛仿真法计算所述商品相似度s1
i,j
的近似置信区间[l1,u1];将所有落在所述近似置信区间[l1,u1]内的s1
i,j
的值都置为所述的理论均值,并对所述置为理论均值的s1
i,j
进行z-score标准化处理。
[0010]
进一步的,当用户与商品的交互信息的数据类型不为布尔变量时,使用以下公式计算商品i和商品j之间的相似度:
[0011][0012]
其中,s1
i,j
为商品i与商品j之间的相似度,n为用户总数,b
k,i
为用户k购买商品i的次数;
[0013]
对计算的所有商品相似度s1
i,j
结果进行z-score标准化。
[0014]
进一步的,当用户与商品的交互信息的数据类型为布尔变量时,使用以下公式计算用户i和用户j之间的用户相似度:
[0015][0016]
其中,s2
i,j
为用户i与用户j之间的用户相似度,d表示商品k同时被用户i和用户j购买,e表示商品k被用户i或者用户j购买,f表示商品k没有被用户i或者用户j购买,m为商品总数,x4,x5,x6为权重系数,其中s表示任意d、e、f;
[0017]
当所有人随机购买商品时,计算用户i和用户j之间用户相似度s2
i,j
的随机变量的理论均值;根据蒙特卡洛仿真法计算所述用户相似度s2
i,j
的近似置信区间[l2,u2];将所有落在所述近似置信区间[l2,u2]内的s2
i,j
的值都置为所述理论均值,并对所述置为理论均值的s2
i,j
进行z-score标准化处理。
[0018]
进一步的,当用户与商品的交互信息的数据类型不为布尔变量时,使用以下公式计算用户i和用户j之间的用户相似度:
[0019][0020]
其中,s2
i,j
为用户i与用户j之间的用户相似度,m为商品总数,b
i,k
为用户i购买商品k的次数;
[0021]
对所有用户相似度s2
i,j
进行z-score标准化。
[0022]
进一步的,所述进行z-score标准化,计算方法为:
[0023][0024]
其中,si,j是商品i与商品j之间的商品相似度s1
i,j
或者用户i与用户j之间的用户相似度s2
i,j
,μ为所有商品相似度s1
i,j
或者用户相似度s2
i,j
的实际均值,σ为所有商品相似度s1
i,j
或者用户相似度s2
i,j
的结果均值与理论均值的差值。
[0025]
进一步的,根据如下公式计算推荐因子:
[0026][0027]
其中,s1
k,j
表示商品k和商品j之间的商品相似度,s2
i,k

表示用户i和用户k

之间的用户相似度,s2
t,i
表示用户t和用户i之间的用户相似度,s1
l,j
商品l和商品j之间的商品相似度,n为用户总数,m为商品总数;bi为用户i购买的商品的编号组成的集合,fi为用户i收藏的商品的编号组成的集合,ci为用户i加入购物车的商品的编号组成的集合,b
′j为购买了商品j的用户的编号组成的集合,f
′j为收藏了商品j的用户的编号组成的集合,c
′j为将商品j加入购物车的用户的编号组成的集合f1,f2,...,f7为权重参数。
[0028]
为了解决上述技术问题,本发明实施例还提供一种商品推荐装置,包括:商品相似度处理模块,用于识别用户与商品间的交互信息的数据类型,根据数据类型选择对应的商品相似度算法进行商品相似度计算,并对计算的所述商品相似度结果进行标准化处理,其中所述数据类型包括布尔向量和非布尔向量;用户相似度处理模块,用于根据数据类型选择对应的用户相似度算法进行用户相似度计算,并对计算的所述用户相似度结果进行标准化处理;及商品推荐处理模块,用于根据标准化处理后的所述商品相似度和所述用户相似度,计算每个用户与商品之间的推荐因子并排序,根据所述推荐因子将最相关的n个商品加入到对应的用户推荐列表中,其中n为推荐列表的容量。
[0029]
为了解决上述技术问题,本发明实施例还提供一种商品推荐计算设备,所述商品推荐计算设备包括处理器,存储器以及存储在所述存储器中的商品推荐计算程序,所述商品推荐计算程序被所述处理器运行时,实现如前所述的商品推荐计算方法的步骤。
[0030]
为了解决上述技术问题,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有商品推荐计算程序,所述商品推荐计算程序被处理器运行时,实现如前所述的商品推荐计算方法的步骤。
[0031]
与现有技术相比,本发明实施例主要有以下有益效果:本技术通过识别用户与商品间的交互信息的数据类型是布尔向量或是非布尔向量,来选择对应的相似度算法进行商品相似度计算和用户相似度,并对计算的商品相似度和用户相似度结果进行标准化处理,减少了随机性的影响;并根据标准化处理后的商品相似度和用户相似度,计算每个用户与商品之间的推荐因子并排序,形成用户推荐列表中,提高了向用户推荐商品的准确性。
[0032]
进一步的,在当用户与商品的交互信息的数据类型为布尔变量时,引入了计算商
品相似度和用户相似度的均值和置信区间并进行标准化处理,从而减少了随机性的影响;当用户与商品的交互信息的数据类型为非布尔变量时,在计算商品相似度和用户相似度时引入购买量权重的系数,从而改善了现有技术中应对非布尔向量时欧氏距离、余弦相似度、皮尔逊相关度等传统方法因齐次性会将购买量比例相同数量不同的用户对的相似度视作相同带来的推荐不准确的问题;此外,综合商品相似度和用户相似度相结合来计算推荐因子,给出了一种结合usercf和itemcf的推荐度计算方式,既保留了itemcf的稳定性,也纳入了usercf能够推荐全新的商品的特点,使得商品推荐拥有了推荐与用户相似的人喜欢的商品相似的商品的功能,增强了算法的探索性。因此,本发明实施例提供了一种更高效和准确的商品推荐方法。
附图说明
[0033]
为了更清楚地说明本发明中的方案,下面将对本发明实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1根据本发明商品推荐中的商品推荐方法的一个实施例的流程图;
[0035]
图2是根据本发明商品推荐中的商品推荐计算装置的一个实施例的结构示意图;
[0036]
图3是根据本发明商品推荐中的商品推荐计算设备的一个实施例的结构示意图。
具体实施方式
[0037]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明;本发明的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本发明的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
[0038]
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0039]
为了使本技术领域的人员更好地理解本发明方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0040]
本发明实施例提出了一种商品推荐中的协同过滤计算方法、装置、设备及存储介质。本发明实施例的商品推荐方法一般由终端设备执行,该终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
[0041]
如图1所示,示出了根据本发明的商品推荐方法的一个实施例的流程图。所述方法包括以下步骤:
[0042]
步骤101,识别用户与商品间的交互信息的数据类型,根据数据类型选择对应的商品相似度算法进行商品相似度计算,并对计算的所述商品相似度结果进行标准化处理,其中所述数据类型包括布尔向量和非布尔向量。
[0043]
在本发明实施例中,根据数据类型的不同应用不同的相似度计算方式,该数据类型通过布尔变量来确定。其中布尔变量是只有两种逻辑状态的变量,它的值为:真和假。当数据量较少或者用户在一定时间段内回购某一种商品的现象较少时,例如少于设定阈值,应用布尔向量来表达用户与商品间的交互信息并完成相似度计算;当数据量较为富足或者用户在一定时间段内回购某一种商品的现象较多时,例如多于设定阈值,应用非布尔向量来表达用户与商品间的交互信息并完成相似度计算。
[0044]
在一个实施例中,当用户与商品的交互信息的数据类型为布尔变量时,使用以下公式计算商品i和商品j之间的相似度:
[0045][0046]
也即:
[0047][0048]
在公式(1)中,s1
i,j
为商品i与商品j之间的相似度,n为用户总数,x1,x2,x3为可调整的权重系数,i(
·
)为示性函数,即s表示任意a、b、c。其中,第一项a表示用户k同时购买了商品i和商品j,代表两种商品之间存在一定的相关性,为此给这两种商品的相关性加上一个权重系数-正数x1;第二项b表示用户k购买了商品i或者商品j,代表两种商品之间存在一定的互斥性,为此给这两种商品的相关性加上一个权重系数-负数x2;第三项c表示用户k没有购买商品i或者商品j,难以从直观上说两种商品存在什么关系,可以将权重系数-x3置零,也可参与调参。
[0049]
由于布尔变量表达的信息量较少,同一个用户可能会同时购买两个毫不相关的商品,也可能不会同时购买两个相关的商品,甚至可能同时购买两个互斥的商品,如果不做任何的二次处理,那么相似度受随机性的影响较大。因此在本实施里中,采用了分层方法来减弱商品相似度中的随机性的影响。具体地,计算全对称情况下,即所有人随机购买商品时,计算s1
i,j
的均值和置信区间。
[0050][0051][0052][0053]
也即:
[0054][0055]
在公式(2)中,p
1,k
代表在全对称的情况下用户k同时购买了商品i和商品j的概率,p
2,k
代表在全对称的情况下用户k购买了且只购买了商品i和商品j其中之一的概率,p
3,k
代表在全对称的情况下用户k没有购买商品i和商品j的概率,m是商品总数,bk是用户k的购买商品的次数,为组合数公式,代表从s个不同的物体中随机挑选t个不同的物体组成一组的组合数。
[0056]
那么商品i与商品j之间的相似度的随机变量服从以下分布:
[0057][0058]
x
i,j,k
=x
1 i(a) x
2 i(b) x
3 i(c)
[0059]
也即:
[0060]
x
i,j,k
=x
1 i(user
k buy both item
i and itemj) x
2 i(user
k buy one of item
i and itemj) x
3 i(user
k buy none of item
i and itemj)
[0061]
公式(3)
[0062]
在公式(3)中,x
i,j,k
代表了用户k对商品i与商品j之间的相似度的贡献,服从多项分布,n为用户总数,x1,x2,x3为可调整的权重系数,i(
·
)为示性函数,则x
i,j,k
=(x1,x2,x3)~pn(1:p
1,k
,p
2,k
,p
3,k
)。
[0063]
那全对称情况下商品间的相似度的理论均值为:
[0064][0064][0066]
由于相似度的形式难以使用数理方法求得置信区间,故采取蒙特卡洛仿真法得到全对称情况下s1
i,k
的近似置信区间[l1,u1]。其中蒙特卡洛仿真具体实行办法如下:生成n个互相独立的数,对于每一个数,依p
1,k
的概率赋值为x1,p
2,k
的概率赋值为x2,p
3,k
的概率赋值为x3,再将这n个独立生成的数求和,即得到全对称情况下单次实验的s1
i,j
。将上述流程重复设定次数(例如500次)后,将得到的500个s1
i,j
实验值并按照从小到大排序,例如根据设定的90%置信区间,可以将第25个值记作l1,第475个值记作u1,据此得到s1
i,k
的近似90%置信区间[l1,u1]。当然设定次数和设定置信区间都还可以是其他数值,根据置信区间相应的取次数排序的位置,在本发明中并不作具体限定。
[0067]
其中s1
i,k
的近似设定置信区间[l1,u1]是指:以90%置信区间[l1,u1]为例,在用户完全随机购买的情况下,所有商品之间不存在相似度,即任意两个商品之间既不相似,也不互斥,那s1
i,k
的近似90%置信区间[l1,u1]代表着完全不相关的两个商品之间的相似度将有90%的概率会落在区间[l1,u1]内。于是在标准化处理中,将所有相似度落在区间[l1,u1]内商品对视作不相关,从而减少了随机性对商品相似度带来的影响。
[0068]
然后将所有落在近似置信区间内的s1
i,j
都置为随机变量的理论均值e(s1),并进行标准化处理。在本实施例中,对所有s1
i,j
进行z-score标准化,该z-score标准化是将多组数据转化为无单位的z-score分值,使得数据标准统一化,提高了数据可比性,削弱了数据解释性:
[0069][0070]
在公式(5)中,μ为所有s1
i,j
计算的结果均值,σ为所有s1
i,j
的结果均值与理论均值的差值。在本实施例中,经过z-score标准化后,新的用户相似度均值为0,标准差为1。
[0071]
在另一个实施例中,当用户与商品的交互信息的数据类型不为布尔变量时,使用以下公式计算商品i和商品j之间的相似度:
[0072][0073]
在公式(6)中,s1
i,j
为商品i与商品j之间的相似度,n为用户总数,b
k,i
为用户k购买商品i的次数。其中,当用户和商品信息不为布尔变量时,即认为当两种商品被购买的次数相近时,两种商品的相似度高;当两种商品被购买的次数相差很大时,两种商品的相似度
低。根据均值不等式,b
k,j
和b
k,i
的比值越偏离1,公式(6)中的的值就越小,符合相似度与b
k,j
和b
k,i
之间的关系。但由于这是一个齐次式,如果直接用它作为相似度度量,那么同比例不同数量购买量的两个商品将拥有相同的相似度,这可能与现实不符,于是在本发明实施例中,再将其乘上代表购买量权重的系数min{b
k,j
,b
k,j
}。
[0074]
因为非布尔变量蕴含的信息多于布尔变量,受到随机性的影响较少,所以在本实施例中不需要重复对于基于布尔变量的商品相似度进行减少随机性的操作,而是直接对商品相似度进行标准化处理,即对所有s1
i,j
进行z-score标准化,具体方法如前所述,故不再赘述。
[0075]
步骤102,根据数据类型选择对应的用户相似度算法进行用户相似度计算,并对计算的所述用户相似度结果进行标准化处理。
[0076]
与商品相似度类似的,在计算用户相似度的过程中,也是根据数据类型的不同应用不同的相似度计算方式。
[0077]
在一个实施例中,当用户与商品的交互信息的数据类型为布尔变量时,使用以下公式计算用户i和用户j之间的用户相似度:
[0078][0079]
也即:
[0080][0081]
在公式(7)中,s2
i,j
为用户i与用户j之间的用户相似度,m为商品总数,x4

x5,x6为可调整的权重系数,i(
·
)为示性函数,即s表示任意d、e、f。其中,第一项d表示商品k同时被用户i和用户j购买,代表两个客户之间存在一定的相关性,为此给这两个客户的相关性加上一个权重系数-正数x4;第二项代表了e表示商品k被用户i或者用户j购买,代表两个客户之间存在一定的互斥性,为此给这两个客户的相关性加上一个权重系数-负数x5;第三项代表了f表示商品k没有被用户i或者用户j购买,难以从直观上说两个客户存在什么关系,可以将权重系数-x6置零,也可参与调参。
[0082]
类似地,由于布尔变量表达的信息量较少,那么相似度受随机性的影响较大。因此在本实施里中,也采用了分层方法来减弱用户相似度中的随机性的影响。具体地,计算全对称情况下,即所有人随机购买商品时,计算s2
i,j
的均值和置信区间,例如90%置信区间。
[0083][0084][0085][0086]
也即:
[0087][0088]
在公式(8)中,p
4,k
代表在全对称的情况下用户i和用户j同时购买了商品k的概率,p
5,k
代表在全对称的情况下用户i和用户j有且仅有一人购买了商品k的概率,p
6,k
代表在全对称的情况下用户i和用户j都没有购买商品k的概率,n是用户总数,b
′k为购买了商品k的人数,为组合数公式,代表从s个不同的物体中随机挑选t个不同的物体组成一组的组合数。
[0089]
那么用户i与用户j之间的用户相似度的随机变量服从以下分布
[0090][0091]
x

i,j,k
=x
4 i(d) x
5 i(e) x
6 i(f)
[0092]
也即:
[0093]
x

i,j,k
=x
4 i(both user
i and user
j buy itemk) x
5 i(one of user
i and user
j buy itemk) x
6 i(none of user
i and user
j buy itemk)
[0094]
公式(9)
[0095]
在公式(9)中,x

i,j,k
为商品k对用户i和用户j之间的相似度的贡献,服从多项分
布,n为用户总数,x1,x2,x3为可调整的权重系数,i(
·
)为示性函数,则x
i,j,k
=(x4,x5,x6)~pn(1:p
4,k
,p
5,k
,p
6,k
)。
[0096]
那全对称情况下,用户间相似度的理论均值为:
[0097]097][0098]
由于相似度的形式难以使用数理方法求得置信区间,故采取蒙特卡洛仿真法得到全对称情况下s2
i,j
的近似置信区间[12,u2]。其中蒙特卡洛仿真具体实行办法如下:生成m个互相独立的数,对于每一个数,依p
4,k
的概率赋值为x4,p
5,k
的概率赋值为x5,p
6,k
的概率赋值为x6,再将这m个独立生成的数求和,即得到全对称情况下单次实验的s2
i,j
。将上述流程重复设定次数(例如500次),将得到的500个s2
i,j
实验值并按照从小到大排序,例如根据设定的90%置信区间,可以第25个值记作12,第475个值记作u2,据此得到s2的近似90%置信区间[l2,u2]。当然设定次数和设定置信区间都还可以是其他数值,根据置信区间相应的取次数排序的位置,在本发明中并不作具体限定。
[0099]
其中s2
i,k
的近似置信区间[l2,u2]是指:以90%置信区间[l1,u1]为例,在用户完全随机购买的情况下,所有用户之间不存在相似度,即任意两个用户之间没有相同的爱好,那么s2
i,k
的近似90%置信区间[l2,u2]代表着完全不相关的两个用户之间的相似度将有90%的概率会落在区间[l2,u2]内。于是在标准化处理中,将所有相似度落在区间[l2,u2]内用户对视作不相关,从而减少了随机性对用户相似度带来的影响。
[0100]
然后将所有落在近似置信区间内的s2
i,j
都置为随机变量的理论均值e(s2),并进行标准化处理。在本实施例中,对所有s2
i,j
进行z-score标准化:
[0101][0101][0103]
在公式(11)中,μ

为所有s2
i,j
的计算的结果均值,σ

为所有s2
i,j
的结果均值和理论均值的差值。在本实施例中,经过z-score标准化后,新的用户相似度均值为0,标准差为1。
[0104]
在另一个实施例中,当用户与商品的交互信息的数据类型不为布尔变量时,使用以下公式计算用户i和用户j之间的用户相似度:
[0105][0106]
在公式(12)中,s2
i,j
为用户i与用户j之间的相似度,m为商品总数,b
i,k
为用户i购买商品k的次数。其中,当客户和商品信息不为布尔变量时,即认为当两个客户购买的次数相近时,两个客户的相似度高;当两个客户购买的次数相差很大时,两个客户的相似度低。根据均值不等式,b
i,k
和b
j,k
的比值越偏离1,公式(12)中的的值就越小,符合相似度与b
i,k
和b
j,k
之间的关系。但由于这是一个齐次式,如果直接用它作为相似度度量,那么同
比例不同数量购买量的两个商品将拥有相同的相似度,这可能与现实不符,于是在本发明实施例中,再将其乘上代表购买量权重的系数min{b
i,k
,b
i,k
}。
[0107]
类似地,因为非布尔变量蕴含的信息多于布尔变量,受到随机性的影响较少,所以在本实施例中不需要重复对于基于布尔变量的用户相似度进行减少随机性的操作,而是直接对用户相似度进行标准化处理,即对所有s2
i,j
进行z-score标准化,具体方法如前所述,故不再赘述。
[0108]
步骤103,根据标准化处理后的所述商品相似度和所述用户相似度,计算每个用户与商品之间的推荐因子并排序,根据所述推荐因子将最相关的n个商品加入到对应的用户推荐列表中,其中n为推荐列表的容量。
[0109]
在本发明实施例中,定义推荐因子rec
i,j
代表用户i和商品j之间的推荐度,计算公式如下:
[0110][0111]
在公式(13)中,s1
k,j
表示商品k和商品j之间的商品相似度,s2
i,k’表示用户i和用户k

之间的用户相似度,s2
t,i
表示用户t和用户i之间的用户相似度,s1
l,j
商品l和商品j之间的商品相似度,n为用户总数,m为商品总数;bi为用户i购买的商品的编号组成的集合,fi为用户i收藏的商品的编号组成的集合,ci为用户i加入购物车的商品的编号组成的集合,b
′j为购买了商品j的用户的编号组成的集合,f
′j为收藏了商品j的用户的编号组成的集合,c
′j为将商品i加入购物车的用户的编号组成的集合f1,f2,...,f7为可调节的权重参数。其中最后一项的加入使得协同过滤算法的探索性更强,也使得推荐模型拥有了推荐与用户相似的人喜欢的商品相似的商品这一功能。
[0112]
在计算出所有用户i和商品j之间的推荐因子rec
i,j
后,对每一个用户i计算并排序所有与他相关的推荐因子rec
i,1
,rec
i,2
,...,rec
i,m
,将其中最相关的n个商品加入推荐列表,其中n为推荐列表的容量。在作推荐用时,n由推荐系统中ui界面能给客户展示的商品数量决定;在作预测用时,n由数据跨越的时间段内进行购买行为的用户-商品对子的日平均数量来决定。
[0113]
通过识别用户与商品间的交互信息的数据类型来分别进行商品相似度和用户相似度计算,即在当用户与商品的交互信息的数据类型为布尔变量时,引入了计算商品相似度和用户相似度的均值和置信区间并进行标准化处理,从而减少了随机性的影响;当用户与商品的交互信息的数据类型为非布尔变量时,在计算商品相似度和用户相似度时引入购买量权重的系数,从而改善了现有技术中应对非布尔向量时欧氏距离、余弦相似度、皮尔逊相关度等传统方法因齐次性会将购买量比例相同数量不同的用户对的相似度视作相同带来的推荐不准确的问题;此外,综合商品相似度和用户相似度相结合来计算推荐因子,给出
了一种结合usercf和ltemcf的推荐度计算方式,既保留了ltemcf的稳定性,也纳入了usercf能够推荐全新的商品的特点,使得商品推荐拥有了推荐与用户相似的人喜欢的商品相似的商品的功能,增强了算法的探索性。因此,本发明实施例提供了一种更高效和准确的商品推荐方法。
[0114]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
[0115]
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0116]
进一步参考图2,作为对上述图1所示方法的实现,本发明提供了一种商品推荐计算装置200的一个实施例,该装置实施例与图1所示的方法实施例相对应。如图2所示,本发明实施例提供的一种商品推计算装置200,包括:
[0117]
商品相似度处理模块21,用于识别用户与商品间的交互信息的数据类型,根据数据类型选择对应的商品相似度算法进行商品相似度计算,并对计算的所述商品相似度结果进行标准化处理,其中所述数据类型包括布尔向量和非布尔向量;
[0118]
用户相似度处理模块22,用于根据数据类型选择对应的用户相似度算法进行用户相似度计算,并对计算的所述用户相似度结果进行标准化处理;
[0119]
商品推荐处理模块23,用于根据标准化处理后的所述商品相似度和所述用户相似度,计算每个用户与商品之间的推荐因子并排序,根据所述推荐因子将最相关的n个商品加入到对应的用户推荐列表中,其中n为推荐列表的容量。
[0120]
在本实施例的一些可选的实现方式中,所述商品相似度处理模块还进一步包括:第一计算子模块,用于当用户与商品的交互信息的数据类型为布尔变量时,使用以下公式计算商品i和商品j之间的商品相似度:
[0121][0122]
其中,s1
i,j
为商品i与商品j之间的商品相似度,a表示用户k同时购买了商品i和商品j,b表示用户k购买了商品i或者商品j,c表示用户k没有购买商品i或者商品j,n为用户总数,x1,x2,x3为可调整的权重系数,s表示任意a、b、c。
[0123]
第一标准化处理子模块,用于当所有人随机购买商品时,计算商品i和商品j之间商品相似度s1
i,j
的随机变量的理论均值;根据蒙特卡洛仿真法计算所述商品相似度s1
i,j

近似置信区间[l1,u1];将所有落在所述近似置信区间[l1,u1]内的s1
i,j
的值都置为所述的理论均值,并对所述置为理论均值的s1
i,j
进行z-score标准化处理。
[0124]
在本实施例的一些可选的实现方式中,所述商品相似度处理模块还进一步包括:第二计算子模块,用于当用户与商品的交互信息为非布尔变量时,使用以下公式计算商品i和商品j之间的相似度:
[0125][0126]
其中,s1
i,j
为商品i与商品j之间的相似度,n为用户总数,b
k,i
为用户k购买商品i的次数;
[0127]
第二标准化处理子模块,用于对所有商品相似度s1
i,j
进行z-score标准化。
[0128]
在本实施例的一些可选的实现方式中,所述用户相似度处理模块还进一步包括:第三计算子模块,用于当用户与商品的交互信息为布尔变量时,使用以下公式计算用户i和用户j之间的用户相似度:
[0129][0130]
其中,s2
i,j
为用户i与用户j之间的用户相似度,d表示商品k同时被用户i和用户j购买,e表示商品k被用户i或者用户j购买,f表示商品k没有被用户i或者用户j购买,m为商品总数,x4,x5,x6为权重系数,
[0131]
第三标准化处理子模块,用于当所有人随机购买商品时,计算用户i和用户j之间用户相似度s2
i,j
的随机变量的理论均值;根据蒙特卡洛仿真法计算所述用户相似度s2
i,j
的近似置信区间[l2,u2];将所有落在所述近似置信区间[l2,u2]内的s2
i,j
的值都置为所述的理论均值,并对所述置为理论均值的s2
i,j
进行z-score标准化处理。
[0132]
在本实施例的一些可选的实现方式中,所述用户相似度处理模块还进一步包括:第四计算子模块,用于当用户与商品的交互信息的数据类型为非布尔变量时,使用以下公式计算用户i和用户j之间的用户相似度:
[0133][0134]
其中,s2
i,j
为用户i与用户j之间的用户相似度,m为商品总数,b
i,k
为用户i购买商品k的次数;
[0135]
第四标准化处理子模块,用于对所有用户相似度s2
i,j
进行z-score标准化。
[0136]
在本实施例的一些可选的实现方式中,所述第一标准化处理模块、第二标准化处理模块、第三标准化处理模块和第四标准化处理模块进行z-score标准化的计算方法为:
[0137][0138]
其中,si,j是商品i与商品j之间的商品相似度s1
i,j
或者用户i与用户j之间的用户
相似度s2
i,j
,μ为所有商品相似度s1
i,j
或者用户相似度s2
i,j
的实际均值,σ为所有商品相似度s1
i,j
或者用户相似度s2
i,j
的结果均值与理论均值的差值。
[0139]
在本实施例的一些可选的实现方式中,所述商品推荐处理模块根据所述商品相似度和所述用户相似度,根据如下公式计算计算每个用户与商品之间的推荐因子:
[0140][0141]
其中,s1
k,j
表示商品k和商品j之间的商品相似度,s2
i,k

表示用户i和用户k

之间的用户相似度,s2
t,i
表示用户t和用户i之间的用户相似度,s1
l,j
商品l和商品j之间的商品相似度,n为用户总数,m为商品总数;bi为用户i购买的商品的编号组成的集合,fi为用户i收藏的商品的编号组成的集合,ci为用户i加入购物车的商品的编号组成的集合,b
′j为购买了商品j的用户的编号组成的集合,f
′j为收藏了商品j的用户的编号组成的集合,c
′j为将商品j加入购物车的用户的编号组成的集合f1,f2,...,f7为权重参数。
[0142]
所述各模块所涉及到的商品推荐计算可参照本发明商品推荐方法发各个实施例,此处不再赘述。
[0143]
为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图3,图3为本实施例计算机设备基本结构框图。
[0144]
所述计算机设备3包括通过系统总线相互通信连接存储器31、处理器32、网络接口33。需要指出的是,图中仅示出了具有组件31-33的计算机设备3,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
[0145]
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
[0146]
所述存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器31可以是所述计算机设备3的内部存储单元,例如该计算机设备3的硬盘或内存。在另一些实施例中,所述存储器31也可以是所述计算机设备3的外部存储设备,例如该计算机设备3上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器31还可以既包括所述计算机设备3的内部存储单元也包括其外
部存储设备。本实施例中,所述存储器31通常用于存储安装于所述计算机设备3的操作系统和各类应用软件,例如文本相似度计算方法的计算机可读指令等。此外,所述存储器31还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0147]
所述处理器32在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器32通常用于控制所述计算机设备3的总体操作。本实施例中,所述处理器32用于运行所述存储器31中存储的计算机可读指令或者处理数据,例如运行所述文本相似度计算方法的计算机可读指令。
[0148]
所述网络接口33可包括无线网络接口或有线网络接口,该网络接口33通常用于在所述计算机设备3与其他电子设备之间建立通信连接。
[0149]
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有商品推荐计算程序,所述商品推荐计算程序被处理器运行时,实现实现如前所述的商品推荐计算方法的步骤。所述商品推荐计算程序被执行时所实现的方法可参照本发明商品推荐计算方法发各个实施例,此处不赘述。
[0150]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0151]
显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献