本发明涉及个性化推荐技术领域,更具体的,涉及一种基于模拟退火算法的用户推荐方法及装置。
背景技术:
随着我国电子商务的蓬勃发展,对个性化推荐技术的需求急剧增加。虽然推荐系统在我国的电子商务领域开始得到了应用,但是其应用范围还是比较狭窄,应用层次也比较浅。个性化推荐和自动推荐方面还处在初级阶段。在协同过滤方面,我国的相关研究较少,高质量的推荐系统很少。
在传统研究中,常见的推荐算法是协同过滤算法,其推荐算法计算的核心数据是用户评分矩阵。随着电子商务规模的扩大,产品信息的增多,协同过滤推荐算法需要对海量数据进行处理,导致推荐的实时性受到了巨大的挑战。
技术实现要素:
有鉴于此,本发明提供了一种基于模拟退火算法的用户推荐方法及装置,根据用户对项目评分的相似性对用户进行聚类,在聚类的基础上计算目标用户的相似用户,大幅度降低了数据处理量,提高了推荐的实时性。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种基于模拟退火算法的用户推荐方法,包括:
获取用户评分矩阵,所述用户评分矩阵表示每个预设用户对每个预设项目的评分;
设定聚类数量、模拟退火算法的优化目标和模拟退火算法的参数,基于模拟退火算法对所述用户评分矩阵进行处理,得到多个聚类集合,每个聚类集合中包括多个预设用户;
根据预设相似性度量方法在目标用户所在聚类集合中的多个预设用户中提取所述目标用户的多个相似用户,根据每个相似用户对每个预设项目的评分预测所述目标用户的偏好项目,并为所述目标用户推荐所述偏好项目。
可选的,所述设定聚类数量、模拟退火算法的优化目标,包括:
设定聚类数量,利用模拟退火算法生成设定数量的聚类中心,聚类中心为多维向量;
将所述用户评分矩阵转化为设定数量的用户矢量集合,每个用户矢量集合中包括多个用户矢量,每个聚类中心对应一个用户矢量集合,每个用户矢量表示预设用户对每个预设项目的评分;
将使每个聚类中心与相应用户矢量集合中每个用户矢量的相似度的和值最大设定为模拟退火算法的优化目标。
可选的,所述基于模拟退火算法对所述用户评分矩阵进行处理,得到多个聚类集合,包括:
根据模拟退火算法的优化目标、以及每个预设用户与每个聚类中心之间的相似度对预设用户进行不断聚类,并根据聚类结果不断调整聚类中心,使每次聚类中每个聚类集合中的聚类对象与聚类中心的相似度最大,直到每个聚类中心不再变化,得到设定数量的聚类集合,每个聚类集合中包括多个预设用户。
可选的,所述根据预设相似性度量方法在目标用户所在聚类集合中的多个预设用户中提取所述目标用户的多个相似用户,包括:
分别计算所述目标用户与所在聚类集合中每个预设用户的相似度;
将与所述目标用户的相似度大于相似度阈值的预设用户确定为所述目标用户的相似用户;
或对所述目标用户与所在聚类中每个预设用户的相似度按从大到小的顺序进行排序,将满足第一预设排名的相似度对应的预设用户确定为所述目标用户的相似用户。
可选的,所述根据每个相似用户对每个预设项目的评分预测所述目标用户的偏好项目,包括:
根据所述目标用户与每个相似用户的相似度、每个相似用户对每个预设项目的评分、每个相似用户对每个预设项目的平均评分,计算所述目标用户对每个预设项目的预测评分;
将预测评分大于预测评分阈值的预设项目确定为所述用户的偏好项目;
或对所述目标用户对每个预设项目的预测评分按从大到小的顺序进行排序,将满足第二预设排名的预测评分对应的预设项目确定为所述目标用户的偏好项目。
一种基于模拟退火算法的用户推荐装置,包括:
获取单元,用于获取用户评分矩阵,所述用户评分矩阵表示每个预设用户对每个预设项目的评分;
聚类单元,用于设定聚类数量、模拟退火算法的优化目标和模拟退火算法的参数,基于模拟退火算法对所述用户评分矩阵进行处理,得到多个聚类集合,每个聚类集合中包括多个预设用户;
推荐单元,用于根据预设相似性度量方法在目标用户所在聚类集合中的多个预设用户中提取所述目标用户的多个相似用户,根据每个相似用户对每个预设项目的评分预测所述目标用户的偏好项目,并为所述目标用户推荐所述偏好项目。
可选的,所述聚类单元包括:
第一设定子单元,用于设定聚类数量,利用模拟退火算法生成设定数量的聚类中心,聚类中心为多维向量;
转化子单元,用于将所述用户评分矩阵转化为设定数量的用户矢量集合,每个用户矢量集合中包括多个用户矢量,每个聚类中心对应一个用户矢量集合,每个用户矢量表示预设用户对每个预设项目的评分;
第二设定子单元,用于将使每个聚类中心与相应用户矢量集合中每个用户矢量的相似度的和值最大设定为模拟退火算法的优化目标。
可选的,所述聚类单元还包括:
聚类子单元,用于根据模拟退火算法的优化目标、以及每个预设用户与每个聚类中心之间的相似度对预设用户进行不断聚类,并根据聚类结果不断调整聚类中心,使每次聚类中每个聚类集合中的聚类对象与聚类中心的相似度最大,直到每个聚类中心不再变化,得到设定数量的聚类集合,每个聚类集合中包括多个预设用户。
可选的,所述推荐单元包括:
第一计算子单元,用于分别计算所述目标用户与所在聚类集合中每个预设用户的相似度;
第一确定子单元,用于将与所述目标用户的相似度大于相似度阈值的预设用户确定为所述目标用户的相似用户;或对所述目标用户与所在聚类中每个预设用户的相似度按从大到小的顺序进行排序,将满足第一预设排名的相似度对应的预设用户确定为所述目标用户的相似用户。
可选的,所述推荐单元包括:
第二计算子单元,用于根据所述目标用户与每个相似用户的相似度、每个相似用户对每个预设项目的评分、每个相似用户对每个预设项目的平均评分,计算所述目标用户对每个预设项目的预测评分;
第二确定子单元,用于将预测评分大于预测评分阈值的预设项目确定为所述用户的偏好项目;或对所述目标用户对每个预设项目的预测评分按从大到小的顺序进行排序,将满足第二预设排名的预测评分对应的预设项目确定为所述目标用户的偏好项目。
与现有技术相比,本发明的有益效果如下:
本发明公开的基于模拟退火算法的用户推荐方法,以用户评分矩阵为数据基础,利用模拟退火算法对用户评分矩阵中的预设用户进行聚类,得到多个聚类集合,在为目标用户推荐偏好项目时只需在目标用户所在的聚类集合的范围内提取目标用户的相似用户,而不是在整个用户评分矩阵的范围内提取目标用户的相似用户,大幅度降低了数据处理量,提高了推荐的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种基于模拟退火算法的用户推荐方法流程图;
图2为本发明实施例公开的一种基于模拟退火算法对用户评分矩阵进行处理的方法流程图;
图3为本发明实施例公开的一种基于模拟退火算法的用户推荐装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本实施公开了一种基于模拟退火算法的用户推荐方法,具体包括以下步骤:
s101:获取用户评分矩阵,所述用户评分矩阵表示每个预设用户对每个预设项目的评分;
b(m,n)表示用户评分矩阵,m行代表m个预设用户,n列代表n个预设项目,第i行第j列的元素bij代表预设用户i对预设项目j的评分,具体表示如下:
以电商购物平台为例,预设用户为基于一定规则选取的电商购物平台用户,如,具有良好购物记录和评价记录的用户;预设项目为基于一定规则选取的电商购物平台中的商品,可以涉及各种类型的商品。
当然,本实施例并不以电商购物平台为限,还可以应用于招聘网站、视频播放平台、直播平台等。
s102:设定聚类数量、模拟退火算法的优化目标和模拟退火算法的参数,基于模拟退火算法对所述用户评分矩阵进行处理,得到多个聚类集合,每个聚类集合中包括多个预设用户;
模拟退火算法的参数包括初始温度、结束温度、降温因子、马氏链长度等。
可选的,请参阅图2,s102的具体执行过程如下:
s201:设定聚类数量,利用模拟退火算法生成设定数量的聚类中心;
可以随机生成s个聚类中心,每个聚类中心是一个n维向量,因此,共有s*n向量,zk为第k个聚类中心。
s202:将所述用户评分矩阵转化为设定数量的用户矢量集合;
每个用户矢量集合中包括多个用户矢量,每个聚类中心对应一个用户矢量集合,每个用户矢量表示预设用户对每个预设项目的评分;
将用户评分矩阵转化为c={c1,c2,...ck,...cs},ck为c中的一个元素,表示第k个用户矢量集合,其中,zk=(v1,v2,…vi,…vn)为第k个聚类中心,是一个n维矢量。
在模拟退火算法过程中,该矢量中的每一个标量值的更新为下式:
vi(t+1)=vi(t)+ηiξi;
其中,t为聚类的循环步数,ηi为扰动幅度参数,ξi为随机扰动变量,随机扰动可服从柯西、高斯、均匀分布。xi为ck中第i个用户矢量,而d(xi,zk)是它们之间的相似度。
s203:将使每个聚类中心与相应用户矢量集合中每个用户矢量的相似度的和值最大设定为模拟退火算法的优化目标;
因此,将
s204:根据模拟退火算法的优化目标、以及每个预设用户与每个聚类中心之间的相似度对预设用户进行不断聚类,并根据聚类结果不断调整聚类中心,使每次聚类中每个聚类集合中的聚类对象与聚类中心的相似度最大,直到每个聚类中心不再变化,得到设定数量的聚类集合,每个聚类集合中包括多个预设用户。
计算预设用户之间的相似度,主要有基于余弦的相似性弦相似性,预设用户对每个预设项目的评分看作为n维的向量,如果预设用户对预设项目没有进行评分,则将用户对该预设项目的评分设为0,预设用户间的相似性通过向量间的余弦夹角度量。设预设用户i和预设用户j在n维空间上的评分分别表示为向量i,j,则预设用户i和预设用户j之间的相似性sim(i,j)为:
其中,分子为两个预设用户评分向量的内积,分母为两个预设用户评分向量模的乘积。
s103:根据预设相似性度量方法在目标用户所在聚类集合中的多个预设用户中提取所述目标用户的多个相似用户,根据每个相似用户对每个预设项目的评分预测所述目标用户的偏好项目,并为所述目标用户推荐所述偏好项目。
分别计算所述目标用户与所在聚类集合中每个预设用户的相似度;
将与所述目标用户的相似度大于相似度阈值的预设用户确定为所述目标用户的相似用户;
或对所述目标用户与所在聚类中每个预设用户的相似度按从大到小的顺序进行排序,将满足第一预设排名的相似度对应的预设用户确定为所述目标用户的相似用户。
根据所述目标用户与每个相似用户的相似度、每个相似用户对每个预设项目的评分、每个相似用户对每个预设项目的平均评分,计算所述目标用户对每个预设项目的预测评分;
将预测评分大于预测评分阈值的预设项目确定为所述用户的偏好项目;
或对所述目标用户对每个预设项目的预测评分按从大到小的顺序进行排序,将满足第二预设排名的预测评分对应的预设项目确定为所述目标用户的偏好项目。
设目标用户u的相似用户集合用nnu表示,则目标用户u对预设项目i的预测评分bu,i可以通过目标用户u对相似用户结合nnu中每个相似用户对每个预设项目的评分得到,计算方法如下:
bn,i表示相似用户n对预设项目i的评分,
本实施例公开的基于模拟退火算法的用户推荐方法,以用户评分矩阵为数据基础,利用模拟退火算法对用户评分矩阵中的预设用户进行聚类,得到多个聚类集合,在为目标用户推荐偏好项目时只需在目标用户所在的聚类集合的范围内提取目标用户的相似用户,而不是在整个用户评分矩阵的范围内提取目标用户的相似用户,大幅度降低了数据处理量,提高了推荐的实时性。
基于上述实施例公开的一种基于模拟退火算法的用户推荐方法,请参阅图3,本实施例对应公开了一种基于模拟退火算法的用户推荐装置,具体包括:
获取单元301,用于获取用户评分矩阵,所述用户评分矩阵表示每个预设用户对每个预设项目的评分;
聚类单元302,用于设定聚类数量、模拟退火算法的优化目标和模拟退火算法的参数,基于模拟退火算法对所述用户评分矩阵进行处理,得到多个聚类集合,每个聚类集合中包括多个预设用户;
所述聚类单元302包括:
第一设定子单元,用于设定聚类数量,利用模拟退火算法生成设定数量的聚类中心,聚类中心为多维向量;
转化子单元,用于将所述用户评分矩阵转化为设定数量的用户矢量集合,每个用户矢量集合中包括多个用户矢量,每个聚类中心对应一个用户矢量集合,每个用户矢量表示预设用户对每个预设项目的评分;
第二设定子单元,用于将使每个聚类中心与相应用户矢量集合中每个用户矢量的相似度的和值最大设定为模拟退火算法的优化目标。
聚类子单元,用于根据模拟退火算法的优化目标、以及每个预设用户与每个聚类中心之间的相似度对预设用户进行不断聚类,并根据聚类结果不断调整聚类中心,使每次聚类中每个聚类集合中的聚类对象与聚类中心的相似度最大,直到每个聚类中心不再变化,得到设定数量的聚类集合,每个聚类集合中包括多个预设用户。
推荐单元303,用于根据预设相似性度量方法在目标用户所在聚类集合中的多个预设用户中提取所述目标用户的多个相似用户,根据每个相似用户对每个预设项目的评分预测所述目标用户的偏好项目,并为所述目标用户推荐所述偏好项目。
所述推荐单元303包括:
第一计算子单元,用于分别计算所述目标用户与所在聚类集合中每个预设用户的相似度;
第一确定子单元,用于将与所述目标用户的相似度大于相似度阈值的预设用户确定为所述目标用户的相似用户;或对所述目标用户与所在聚类中每个预设用户的相似度按从大到小的顺序进行排序,将满足第一预设排名的相似度对应的预设用户确定为所述目标用户的相似用户。
第二计算子单元,用于根据所述目标用户与每个相似用户的相似度、每个相似用户对每个预设项目的评分、每个相似用户对每个预设项目的平均评分,计算所述目标用户对每个预设项目的预测评分;
第二确定子单元,用于将预测评分大于预测评分阈值的预设项目确定为所述用户的偏好项目;或对所述目标用户对每个预设项目的预测评分按从大到小的顺序进行排序,将满足第二预设排名的预测评分对应的预设项目确定为所述目标用户的偏好项目。
本实施例公开的基于模拟退火算法的用户推荐装置,以用户评分矩阵为数据基础,利用模拟退火算法对用户评分矩阵中的预设用户进行聚类,得到多个聚类集合,在为目标用户推荐偏好项目时只需在目标用户所在的聚类集合的范围内提取目标用户的相似用户,而不是在整个用户评分矩阵的范围内提取目标用户的相似用户,大幅度降低了数据处理量,提高了推荐的实时性。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。