本发明涉及计算机技术领域,尤其涉及一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法。
背景技术
近年来,电子商务随着互联网和信息技术的发展日趋活跃,越来越多的消费者开始网上购物。电子商务不仅开拓了新的商业盈利渠道,还颠覆了传统的销售模式,从空间上、时间上赋予交易双方更多的便利性、自主性。其中,医药,作为日常生活必需品,近几年也开始逐渐进入电商领域,越来越多的医药企业获得了建立医药电子商务平台的资格,医药行业的电子商务发展前途一片光明。
由于医药电商平台包含多种类,大数量的药品,用户需要花费大量的时间和精力去筛选出需要的药品,极大的降低了平台的用户体验。为了解决用户在海量药品中耗费过多时间导致用户体验差的问题,将个性化推荐技术引入到医药电商平台中是必要的。
在医药电商平台中,由于药品的特殊性,用户对药品的评分数量会远低于传统推荐中用户对物品(音乐、电影)的评分数量,用户-药品评分矩阵十分稀疏,医药电商平台的推荐面临着比传统推荐更为严重的数据冷启动问题。
面对医药电商领域海量且多样化的药品,如何设计优秀的推荐算法为用户提供精确的推荐是一个值得深思的问题。目前,该领域已经存在一些推荐算法,但是这些算法大多是在原始用户-药品评分矩阵上进行的,受该评分矩阵稀疏性影响很大。
因此,如何有效的缓解评分矩阵稀疏性对推荐效率造成的影响是一项亟待解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法,通过用户的历史购买数据学习到用户潜在兴趣,然后将用户潜在兴趣填充进用户-药品评分矩阵,有效解决了现有技术中评分矩阵稀疏性对推荐效率造成影响的问题。
为了实现本发明的上述目的,本发明提供了一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法,所述方法包括如下步骤:
s1,从电商平台的数据集中获取用户购买药品的购买记录数据,并对购买记录数据进行整理得到用户-药品评分矩阵;
s2,基于购买记录数据中相似用户的购买记录建立用户潜在兴趣模型,并基于用户潜在兴趣模型得到用户潜在兴趣数据;
s3,将用户潜在兴趣数据合并到用户-药品评分矩阵;缓解矩阵稀疏度对推荐结果造成的影响,提高推荐效率;
s4,基于购买记录数据中用户购买过的药品所属类别的流行度和用户对该类别的偏爱建立类别相关模型;
s5,对合并了用户潜在兴趣数据的用户-药品评分矩阵进行矩阵分解,并将分解得到的用户偏好预测矩阵和步骤s4中的类别相关模型进行线性融合生成推荐列表。
优选地,所述步骤s1包括如下步骤:
s1-1,整理用户的购买记录数据,购买记录数据包括用户对购买的药品的评分、购买时间、药品种类,得到用户集合u={u1,u2,...,ui...,un}和药品集合d={d1,d2,...,dj...,dm},其中,u表示用户,i代表用户的id;d表示药品,j代表药品的id;
s1-2,统计每个用户购买并且评分的药品数量,若用户购买并评分的药品数量低于预设值,则把这种用户删除;以获得包含足够用户信息的用户;
s1-3,统计每一种药品被购买并评分的次数,若药品被购买的频次低于预设值,则把这种药品的相关记录删除;因数据的缺失,容易出现噪声;
s1-4,基于整理好的购买记录数据得到原始用户-药品评分矩阵。
优选地,所述步骤s2包括如下步骤:
s2-1,合并时间因素的相似用户集合fi:
1)采用把时间离散化的方法,把一年分为t个离散时段,把步骤s1中原始的用户-药品评分矩阵按照购买评分时间分成t个时段-用户-药品评分矩阵;
2)给定目标用户i,定义用户i在时段t(t∈t)的评分向量为:ri,t={ri,t,1,ri,t,2,..ri,t,m},其中,ri,t,m表示用户i在时段t对药品m的评分值。对于用户i,计算该用户在任意两个时段tp和tq的评分向量
3)把离散时段中任意两个时段之间的所有用户的相似度表示为一个时段相似度矩阵ts,并利用时段相似矩阵ts来对时段-用户-药品评分矩阵进行平移,具体平移公式如下:
其中,
然后利用平移之后的矩阵进行用户相似度计算,对于用户i获得s个相似度最高的用户作为相似用户fi;
s2-2,基于相似用户fi获得用户潜在兴趣数据:
对于用户i,把步骤是s2-1中该用户的相似用户fi购买过但是用户i没有购买过的药品作为用户i的备用潜在感兴趣药品,并建立用户潜在兴趣模型来学习用户潜在兴趣,从而得到用户的潜在兴趣数据。
优选地,所述步骤s3包括如下步骤:
s3-1,将用户潜在兴趣数据填充进步骤s1中原始的用户-药品评分矩阵,对于每个用户i,把药品分为三类:di是用户购买过的药品的集合;pi是用户潜在购买药品集合;ui是用户没有购买过并且非潜在购买药品的集合,则原始用户-药品评分矩阵化为新的评分矩阵和权重矩阵:
其中,newr为新的评分矩阵,newri,j表示用户i对药品j的评分;neww为新的权重矩阵,newwi,j为用户i对药品j的偏好;
优选地,所述步骤s4包括如下步骤:
s4-1,通过用户对药品的评分矩阵和药品的种类,建立一个用户对某一个药品类别的评分矩阵bn,|c|,其中n是用户数量,|c|是药品种类数量,评分矩阵中的每个元素表示用户对于购买过的药品所属的类别的评分;
s4-2,构建一个药品流行度矩阵p|c|,m,其中|c|是药品种类数量,m是药品数量,药品流行度矩阵中的每个元素表示该药品在所属类别的流行度,使用某一类别中某药品被购买的次数来表示该药品在该类别的流行度;
s4-3,获得用户购买药品的类别相关模型如下:
其中,yi,j表示在类别模型下,用户i对药品j的评分;bi,c∈bn,|c|,pc,j∈p|c|,m。
优选地,所述步骤s5包括以下几个步骤:
s5-1,使用矩阵分解算法对获得的新的评分矩阵和权重矩阵进行分解,分解过程中误差函数如下所示:
其中,i表示用户,j表示药品,n表示用户数量,m表示药品数量,
s5-2,新的评分矩阵和权重矩阵分解后得到用户隐特征矩阵和药品隐特征矩阵,把分解后得到的两个矩阵相乘获得用户偏好预测矩阵,再将用户偏好预测矩阵和类别相关模型进行合并,得到最终的推荐模型如下:
其中,
s5-3,根据
综上所述,本发明公开了一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法,首先从电商平台的数据集中获取用户购买药品的购买记录数据,并对购买记录数据进行整理得到用户-药品评分矩阵;接着基于购买记录数据中相似用户的购买记录建立用户潜在兴趣模型,并基于用户潜在兴趣模型得到用户潜在兴趣数据;然后将用户潜在兴趣数据合并到用户-药品评分矩阵;进而基于购买记录数据中用户购买过的药品所属类别的流行度和用户对该类别的偏爱建立类别相关模型;最后对合并了用户潜在兴趣数据的用户-药品评分矩阵进行矩阵分解,并将分解得到的用户偏好预测矩阵和类别相关模型进行线性融合生成推荐列表。本发明通过用户的历史购买数据学习到用户潜在兴趣,然后将用户潜在兴趣填充进用户-药品评分矩阵,有效解决了现有技术中评分矩阵稀疏性对推荐效率造成影响的问题。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明公开的一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法的基本流程图;
图2为本发明公开的用户潜在兴趣学习算法示意图;
图3为本发明公开的类别相关模型的建立过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明提供了一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法,如图1-3所示,包括如下步骤:
s1,从电商平台的数据集中获取用户购买药品的购买记录数据,并对购买记录数据进行整理得到用户-药品评分矩阵;
s2,基于购买记录数据中相似用户的购买记录建立用户潜在兴趣模型,并基于用户潜在兴趣模型得到用户潜在兴趣数据;
s3,将用户潜在兴趣数据合并到用户-药品评分矩阵;缓解矩阵稀疏度对推荐结果造成的影响,提高推荐效率;
s4,基于购买记录数据中用户购买过的药品所属类别的流行度和用户对该类别的偏爱建立类别相关模型;
s5,对合并了用户潜在兴趣数据的用户-药品评分矩阵进行矩阵分解,并将分解得到的用户偏好预测矩阵和步骤s4中的类别相关模型进行线性融合生成推荐列表。
优选地,步骤s1包括如下步骤:
s1-1,整理用户的购买记录数据,购买记录数据包括用户对购买的药品的评分、购买时间、药品种类,得到用户集合u={u1,u2,...,ui...,un}和药品集合d={d1,d2,...,dj...,dm},其中,u表示用户,i代表用户的id;d表示药品,j代表药品的id;
s1-2,统计每个用户购买并且评分的药品数量,若用户购买并评分的药品数量低于预设值,则把这种用户删除;以获得包含足够用户信息的用户;
s1-3,统计每一种药品被购买并评分的次数,若药品被购买的频次低于预设值,则把这种药品的相关记录删除;因数据的缺失,容易出现噪声;
s1-4,基于整理好的购买记录数据得到原始用户-药品评分矩阵。
优选地,步骤s2包括如下步骤:
s2-1,合并时间因素的相似用户集合fi:
1)采用把时间离散化的方法,把一年分为t个离散时段,把步骤s1中原始的用户-药品评分矩阵按照购买评分时间分成t个时段-用户-药品评分矩阵;
2)给定目标用户i,定义用户i在时段t(t∈t)的评分向量为:ri,t={ri,t,1,ri,t,2,..ri,t,m},其中ri,t,m表示用户i在时段t对药品m的评分值。对于用户i,计算该用户在任意两个时段tp和tq的评分向量
3)把离散时段中任意两个时段之间的所有用户的相似度表示为一个时段相似度矩阵ts,并利用时段相似矩阵ts来对时段-用户-药品评分矩阵进行平移,具体平移公式如下:
其中,
然后利用平移之后的矩阵进行用户相似度计算,对于用户i获得s个相似度最高的用户作为相似用户fi;
s2-2,基于相似用户fi获得用户潜在兴趣数据:
对于用户i,把步骤是s2-1中该用户的相似用户fi购买过但是用户i没有购买过的药品作为用户i的备用潜在感兴趣药品,并建立用户潜在兴趣模型来学习用户潜在兴趣,从而得到用户的潜在兴趣数据。
优选地,步骤s3包括如下步骤:
s3-1,将用户潜在兴趣数据填充进步骤s1中原始的用户-药品评分矩阵,对于每个用户i,把药品分为三类:di是用户购买过的药品的集合;pi是用户潜在购买药品集合;ui是用户没有购买过并且非潜在购买药品的集合,则原始用户-药品评分矩阵化为新的评分矩阵和权重矩阵:
其中,newr为新的评分矩阵,newri,j表示用户i对药品j的评分;neww为新的权重矩阵,newwi,j为用户i对药品j的偏好;
优选地,步骤s4包括如下步骤:
s4-1,通过用户对药品的评分矩阵和药品的种类,建立一个用户对某一个药品类别的评分矩阵bn,|c|,其中n是用户数量,|c|是药品种类数量,评分矩阵中的每个元素表示用户对于购买过的药品所属的类别的评分;
s4-2,构建一个药品流行度矩阵p|c|,m,其中|c|是药品种类数量,m是药品数量,药品流行度矩阵中的每个元素表示该药品在所属类别的流行度,使用某一类别中某药品被购买的次数来表示该药品在该类别的流行度;
s4-3,获得用户购买药品的类别相关模型如下:
其中,yi,j表示在类别模型下,用户i对药品j的评分;bi,c∈bn,|c|,pc,j∈p|c|,m。
优选地,步骤s5包括以下几个步骤:
s5-1,使用矩阵分解算法对获得的新的评分矩阵和权重矩阵进行分解,分解过程中误差函数如下所示:
其中,i表示用户,j表示药品,n表示用户数量,m表示药品数量,
s5-2,新的评分矩阵和权重矩阵分解后得到用户隐特征矩阵和药品隐特征矩阵,把分解后得到的两个矩阵相乘获得用户偏好预测矩阵,再将用户偏好预测矩阵和类别相关模型进行合并,得到最终的推荐模型如下:
其中,
s5-3,根据
综上所述,本发明公开了一种融合用户潜在兴趣、时空数据和类别流行度的药品交易推荐方法,首先从电商平台的数据集中获取用户购买药品的购买记录数据,并对购买记录数据进行整理得到用户-药品评分矩阵;接着基于购买记录数据中相似用户的购买记录建立用户潜在兴趣模型,并基于用户潜在兴趣模型得到用户潜在兴趣数据;然后将用户潜在兴趣数据合并到用户-药品评分矩阵;进而基于购买记录数据中用户购买过的药品所属类别的流行度和用户对该类别的偏爱建立类别相关模型;最后对合并了用户潜在兴趣数据的用户-药品评分矩阵进行矩阵分解,并将分解得到的用户偏好预测矩阵和类别相关模型进行线性融合生成推荐列表。本发明通过用户的历史购买数据学习到用户潜在兴趣,然后将用户潜在兴趣填充进用户-药品评分矩阵,有效解决了现有技术中评分矩阵稀疏性对推荐效率造成影响的问题。
具体的,在上述实施例中,步骤s2-2中建立用户潜在兴趣模型来学习用户潜在兴趣,具体可以通过以下两种选择算法来学习用户潜在兴趣:
第一种选择算法是最大值选择策略,使用购买过药品j的目标用户i的相似用户中和目标用户相似度最大的来代表用户的偏好,该线性模型表示如下:
其中,pri,j表示用户i对药品j的评分,
第二种选择算法是元路径选择策略,在异构网络g<v,e,a>中,v是节点集合,e是边的集合,a是节点种类集合。元路径定义为如下形式的路径
对实例路径p={a1,a2...an+1},a1∈u是用户节点,an+1∈d是药品节点,其他ai是实例路径中的一个中间节点。表示路径p起始节点之间的关联度cor(p)是采用的随机漫步的思想,假设一个物体从节点a1出发,在网络中随机漫步,定义cor(p)为物体按照实例路径p游走到节点an+1的概率,由于随机漫步中每一步漫步都假设是相互独立的,因此。物体按照p漫步的概率等于每一步漫步的概率之积,计算公式如下
其中pro(ai,ai+1)表示随机游走过程中从节点ai直接到节点ai+1的概率。在异构网络中,其公式被定义为:
其中n(ai)表示的是和ai+1类型一致的节点类型。
最终用户兴趣表示为:
pri,j=eig(pi,j)
最后获得目标用户的潜在兴趣点。
具体的,在上述实施例中,步骤s5-1中的矩阵分解算法采用如下隐矩阵学习算法伪代码:
需要说明的是,本发明图1-图3中所示的系统结构或方法流程只是本发明的一些优选实施方式,在此示出只是便于理解本发明而不能理解为对本发明的限制,在本发明的思想指导下,根据本发明的技术方案实施得出的结构或方法均在本发明的保护范围之内,在此不作赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。