利基项目推荐方法及装置与流程

文档序号:15493824发布日期:2018-09-21 21:12阅读:207来源:国知局

本发明涉及数据处理技术领域,尤其涉及一种基于贝叶斯回归模型的利基项目推荐方法及装置。



背景技术:

随着电商的应用,越来越多的消费者选择利用网络购物。对于消费者而言,越来越多的用户希望电商能够提供更多的个性化服务和产品。对于提供商而言,越来越多的提供商希望提供个性化服务和产品以增加用户粘性以及增加销售量。

为此,现有的电商提供了推荐系统,以向不同消费者推荐不同的服务和产品。目前,现有的推荐系统通常采用以下推荐算法:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法。其中,基于内容的推荐算法是基于目标用户过去偏好的类似项目做推荐;协同过滤算法基于与用户有相似兴趣的用户偏好项目做推荐;混合推荐算法是组合了两种或更多种推荐技术的算法从而克服单一算法的限制。到目前为止,很少有利基项目推荐算法且算法没有区分利基项目与长尾项目的不同。



技术实现要素:

针对现有技术中的缺陷,本发明提供了一种利基项目推荐方法及装置,用于解决相关技术中存在的技术问题。

第一方面,本发明实施例提供了一种利基项目推荐方法,所述方法包括:

根据m个已知项目和n个利基项目的描述内容获取所述m个已知项目和所述n个利基项目中每个项目的主题分布;其中m、n为正整数;

基于所述每个项目的主题分布,从每个项目中随机抽取一个主题确定为所述每个项目的主题;

聚集具有相同主题的已知项目和利基项目,得到n个聚集组;

根据所述n个聚集组中每个聚集组,基于主题建立每个聚集组的分层贝叶斯线性回归模型;

获取所述每个聚集组的分层贝叶斯线性回归模型的模型参数;

基于回归模型获取所述每个聚集组中利基项目与所有用户的相关度,向相关度较大的预设数量位用户推荐所述利基项目。

可选地,基于所述每个项目的主题分布,从每个项目中随机抽取一个主题确定为所述每个项目的主题包括:

基于每个项目的主题分布中文档-主题的概率值的大小顺序排序;

选取概率值最大的中文档-主题作为每个项目的主题。

可选地,聚集具有相同主题的已知项目和利基项目包括:

针对所述n个利基项目中每个利基项目,获取每个利基项目的主题;

基于所述每个利基项目的主题分别匹配所述m个已知项目的主题;

若匹配通过,则聚集具有相同主题的利基项目和已知项目,得到个聚集后的项目组。

可选地,获取所述每个聚集组的分层贝叶斯线性回归模型的模型参数包括:

获取所述每个聚集组的分层贝叶斯线性回归模型的初始化分布参数;

重复执行最大期望em算法中e步骤和m步骤,获取所述em算法收敛时所述分层贝叶斯线性回归模型的分布参数值作为其模型参数。

第二方面,本发明实施例提供了一种利基项目推荐装置,所述装置包括:

主题分布获取模块,用于根据m个已知项目和n个利基项目的描述内容获取所述m个已知项目和所述n个利基项目中每个项目的主题分布;其中m、n为正整数;

项目主题确定模块,用于基于所述每个项目的主题分布,从每个项目中随机抽取一个主题确定为所述每个项目的主题;

聚集组获取模块,用于聚集具有相同主题的已知项目和利基项目,得到n个聚集组;

回归模型建立模块,用于根据所述n个聚集组中每个聚集组,基于主题建立每个聚集组的分层贝叶斯线性回归模型;

模型参数获取模块,用于获取所述每个聚集组的分层贝叶斯线性回归模型的模型参数;

推荐用户确定模块,用于基于回归模型获取所述每个聚集组中利基项目与所有用户的相关度,确定相关度较大的预设数量位用户为所述利基项目的推荐用户。

可选地,所述项目主题确定模块包括:

概率值排序单元,用于基于每个项目的主题分布中文档-主题的概率值的大小顺序排序;

项目主题选取单元,用于选取概率值最大的中文档-主题作为每个项目的主题。

可选地,所述聚集组获取模块包括:

主题获取单元,用于针对所述n个利基项目中每个利基项目,获取每个利基项目的主题;

主题匹配单元,用于基于所述每个利基项目的主题分别匹配所述m个已知项目的主题;

聚集单元,用于在主题匹配通过时,聚集具有相同主题的利基项目和已知项目,得到个聚集后的项目组。

可选地,所述模型参数获取模块包括:

初始参数获取单元,用于获取所述每个聚集组的分层贝叶斯线性回归模型的初始化分布参数;

模型参数迭代单元,用于重复执行最大期望em算法中e步骤和m步骤,获取所述em算法收敛时所述分层贝叶斯线性回归模型的分布参数值作为其模型参数。

由上述技术方案可知,本发明实施例将具有相同主题的利基项目和已知项目聚集形成聚集组,然后针对每个聚集组中可以建立一个基于主题的分层贝叶斯线性回归模型,由于同一聚集组具有相同的主题,因此同一个聚集组中已知项目的信息可以借用给利基项目,从而可以改善利基项目推荐过程中信息稀疏的问题,即本实施例能够数据稀疏的情况下充分利用用户信息,有利于提高利基项目推荐的转换率。另外,本发明实施例提供了一种利基项目推荐的方法,能够区分出利基项目和长尾项目。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。

图1为本发明一实施例提供的利基项目推荐方法的流程示意图;

图2为本发明一实施例提供的同一数据集情况下thblr、hblr、cf-user和pmf算法的转换率变化的对比示意图;

图3~图7为本发明一实施例提供的在50%、60%、70%、80%、90%的长尾划分情况下thblr、hblr、cf-user和pmf算法的转换率变化的对比示意图;

图8~图11为本发明一实施例提供的利基项目推荐装置的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,现有的推荐系统通常采用以下推荐算法:基于内容的推荐算法、协同过滤推荐算法和混合推荐算法。其中,基于内容的推荐算法是基于目标用户过去偏好的类似项目做推荐;协同过滤算法基于与用户有相似兴趣的用户偏好项目做推荐;混合推荐算法是组合了两种或更多种推荐技术的算法从而克服单一算法的限制。到目前为止,很少有利基项目推荐算法且算法没有区分利基项目与长尾项目的不同

为解决上述技术问题,本发明实施例提供了一种利基项目推荐方法。图1为本发明一实施例提供的利基项目推荐方法的流程示意图。参见图1,一种利基项目推荐方法包括:

101,根据m个已知项目和n个利基项目的描述内容获取所述m个已知项目和所述n个利基项目中每个项目的主题分布;其中m、n为正整数;

102,基于所述每个项目的主题分布,从每个项目中随机抽取一个主题确定为所述每个项目的主题;

103,聚集具有相同主题的已知项目和利基项目,得到n个聚集组;

104,根据所述n个聚集组中每个聚集组,基于主题建立每个聚集组的分层贝叶斯线性回归模型;

105,获取所述每个聚集组的分层贝叶斯线性回归模型的模型参数;

106,基于回归模型获取所述每个聚集组中利基项目与所有用户的相关度,向相关度较大的预设数量位用户推荐所述利基项目。

下面结合附图和实施例对利基项目推荐方法的各步骤作详细描述。

首先,介绍101,根据m个已知项目和n个利基项目的描述内容获取所述m个已知项目和所述n个利基项目中每个项目的主题分布的步骤。

本实施例中选择m个已知项目和n个利基项目为样本,共l=m+n个。m和n为正整数,取值可以根据具体场景进行选择,在此不作限定。对于m个已知项目和n个利基项目中的每个项目都具有描述内容,并且每个项目的描述内容作为一个文档进行保存。

本实施例中,利用潜狄利克雷分配(latentdirichletallocation,lda)模型和吉布斯gibbs抽样方法计算l个项目中每个项目中的主题分布。本实施例中利用概率主题公式(1)、已知词和已知主题的情况下推导主题公式(2)和第l个文档(后称之为文档l)中主题为k′时的概率公式(3),得到每个项目的主题分布

公式(1)中,表示文档中的主题,表示文档中的单词向量,表示文档-主题分布,表示主题-单词分布,α表示文档-主题的先验参数,β表示主题-单词的先验参数,其中:服从狄利克雷分布,服从多项式分布;同理服从狄利克雷分布,服从多项式分布。

公式(2)和(3)中的先验参数αk和βt分别为主题为k′时的先验参数和单词为t时的先验参数,可以设为固定值;t表示词汇表中词汇的数量;zi表示第i个单词对应的主题,表示去掉第i个单词对应的主题后剩下的主题向量;表示主题为k′时出现词项t的次数;表示主题为k′时去掉第i个单词后词项t发生的次数;表示文档l中去掉第i个单词后主题k′发生的次数;表示文档l中主题k′发生的概率;表示文档l中主题k′发生的次数。

其次,介绍102,基于所述每个项目的主题分布,从每个项目中随机抽取一个主题确定为所述每个项目的主题的步骤。

本实施例中,文档l中主题k′发生的概率从文档l中随机抽取一个主题作为文档l的当前主题。在一实施例中,抽取的主题为在文档l中出现概率最高的主题。具体步骤如下:

1)获取文档l的文档-主题分布。

2)按照概率值的大小顺序对文档l的文档-主题的概率值进行排列。

3)选取最大的概率值对应的主题作为文档l的当前主题。

4)即调整l的取值从1~l,重复步骤3)l次,直到所有的文档都得到一个确定的主题。

再次,介绍103,聚集具有相同主题的已知项目和利基项目,得到n个聚集组的步骤。

本实施例中l个项目中包括m个已知项目和n个利基项目。对于利基项目n,在m个已知项目中找出与其主题相同的项目1,项目2,…….,项目jn,将这些项目聚集在一起形成聚集组。具体实施步骤如下:

1)获取利基项目n的主题;n取值1~m;

2)利基项目n的主题匹配m个已知产品的主题;

3)利基项目n的主题与m个已知项目中某个或者多个项目的主题相同时,将与利基项目n的主题相同的某个或者多个项目聚集形成聚集组,并将聚集组中的已知项目进行编号,编号分别为1,2,……,j1;

4)调整n取值,重复步骤1、2、3共n次,直到所有的利基项目都找到与其主题相同的已知项目,可以得到n个聚集组。

第四,介绍104,根据所述n个聚集组中每个聚集组,基于主题建立每个聚集组的分层贝叶斯线性回归模型的步骤。

本实施例中,针对每个聚集组,建立基于该聚集组的主题的分层贝叶斯模型。

对于利基项目n,已知项目1,2,……,jn是同其主题相同的已知项目。其中,dn表示与利基项目n有关的一组数据,d1,d2,……,djn分别表示与利基项目n有相同主题的已知项目的有关数据。u表示用户u,表示利基项目*中用户u的k维特征向量,y*,表示利基项目*与用户u的相关性,即用户u对利基项目*的评分,y*,服从高斯分布其中表示的转置向量,σ2表示该高斯分布的方差。y*,的评分由公式(4)得到,公式(4)如下:

其中,ε表示随机噪声,服从正态分布ε~(0,σ2)。表示利基项目*的项目模型参数,为一个k维的向量,而且服从多元高斯分布,即为先验是正态分布,其中是均值向量,也是一个k维的向量,2是k×k维的协方差矩阵,而且服从正态分布,即μ0表示正态分布的均值,aσ2表示正态分布的方差,而且μ0和a为实数可预先设置。∑服从inversewishart分布,即b和均为实数可预先设置。

基于上述所有分布之间的关系,可以得出公式(5)和公式(6),即基于主题的分层贝叶斯的线性回归模型中的先验发生概率的公式以及如何求出所有未知量的概率公式,具体公式如下:

其中u*表示利基项目*中的所有用户。

第五,介绍105,获取所述每个聚集组的分层贝叶斯线性回归模型的模型参数的步骤。

本实施例中,利用最大期望em算法估算出概率公式(6)中最可能的模型参数。其中,em算法指的是最大期望算法,其是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量。

本实施例中,对于每个利基项目n,有jn+1个项目出现在分层贝叶斯线性回归模型中,每个项目的回归系数是一个无法观测的隐藏变量。

本实施例中,em算法的具体流程如下:

(1)初始化分布参数

利用公式(7),即在x,μ,∑,σ已知的情况下求相关项目与用户相关性概率公式。然后,将公式(7)进行适当处理便于计算得到公式(8),并对公式(8)求相关期望得到公式(9)。利用公式(7)、公式(8)、公式(9)即可初始化分布参数。

(2)重复e步骤和m步骤直到em算法收敛

em算法中包括是e步骤和m步骤,e步骤即是计算期望,利用概率模型参数的现有估计值,计算隐藏变量的期望;m步骤即是最大化,利用e步骤上求得的隐藏变量的期望,对参数模型进行最大似然估计,而且在m步上找到的参数估计值被用于下一个e步计算中,这个过程不断交替进行。

在本实施例中,相关的e步骤和m步骤如下所示:

e步:基于先验估计贝叶斯回归模型中每个利基项目*的回归系数ω*。利用公式(10)、(11)、(12)。

m步:基于e步骤中的公式(12)优化先验和参数σ,可以得到公式(13)、(14)、(15),进而得到结果μω、和σ2

将m步骤的结果带入e步骤计算,重复e步骤和m步骤使两个步骤交替迭代后的结果小于阈值γ后停止这个过程。在一实施例中,γ可以取值为10-5

最后,介绍106,基于回归模型获取所述每个聚集组中利基项目与所有用户的相关度,向相关度较大的预设数量位用户推荐所述利基项目的步骤。

本实施例中,利用公式(16)估计y*,u的数值,对于利基项目*得分排名高的前n位用户推荐该项目。

由上述技术方案可知,本发明实施例将具有相同主题的利基项目和已知项目聚集形成聚集组,然后针对每个聚集组中可以建立一个基于主题的分层贝叶斯线性回归模型,由于同一聚集组具有相同的主题,因此同一个聚集组中已知项目的信息可以借用给利基项目,从而可以改善利基项目推荐过程中信息稀疏的问题,即本实施例能够数据稀疏的情况下充分利用用户信息,有利于提高利基项目推荐的转换率。另外,本发明实施例提供了一种利基项目推荐的方法,能够区分出利基项目和长尾项目。

为验证本发明实施例提供的一种利基项目推荐方法的有效性和优越性,本发明一实施例中采用雅虎电影(yahoo!movies)数据集作为样本,验证其效果。其中,yahoo!movies数据集是由雅虎研究联盟计划(yahoo!researchalliancewebscopeprogram)提供的电影评分数据集,该数据集包括7162个用户对11916部电影(每部电影有相应的描述信息)的221367个评级;每个评级有5个可能值,分别为1、2、3、4和5;可能值越大相关性越强。

在一实施例中过滤掉评论过多电影的用户(例如评论电影的数量超过20部)或者评论用户过少的电影(例如一个电影的评论用户少于5个)。之后,剩余的数据集中的数据分为训练集和测试集。其中,训练集用于评分预测,测试集用于确定推荐者表现。

为突显本发明实施例提供的利基项目推荐方法的性能,本发明实施例还选用基于用户的协同过滤推荐算法、概率矩阵分解和传统的分层贝叶斯线性回归模型作为对比算法。可理解的是,为了使对比算法适应于对比任务,即从利基项目的角度向用户推荐利基项目,本实施例中为每个利基项目生成一个推荐列表,该推荐列表包含具有最大预测相关性的用户。

为使实验结果具有可比性,本实施例中从利基项目的角度使用转换率来评估推荐系统,并且选择top-n推荐。转换率测量了在测试数据集中推荐列表中评价利基项目用户的比例,例如,n1表示推荐列表的长度,n1表示同时出现在推荐列表和测试数据集的用户数量,则转换率为n1/n1。可理解的是,转换率越高表示实验效果越好。

实验结果如图2所示,图2中横轴表示推荐用户的数量,纵轴表示转换率。thblr是基于主题的分层贝叶斯线性回归模型的简称,即本发明提供的利基项目推荐方法,hblr是分层贝叶斯线性回归模型的简称,cf-user是基于用户的协同过滤推荐算法,pmf是概率矩阵分解。从图2可以看出,thblr方法在推荐用户的数量为0~600期间对应的转换率高于hblr、cf-user和pmf算法。换言之,本发明可以有效地解决了利基项目推荐的问题,且具有较好的实验效果。

在另一对照实验中,本实施例认为属于销售分配尾部的项目属于长尾项目,因此将在销售分配中占很大比例(例如,80%)的项目作为长尾项目和最低评级项目;之后,使用基于百分比的固定阈值c(例如,取最低评级项目的80%);然后,可以选择一组小于c等级的长尾项目。

如公式(17),其中pm指的是项目m的受欢迎程度,也是对项目m评级的用户的数量。

i1={m∈i|pm<c}(公式17)

本实施例中从长尾项目的一个子集中选择利基项目,利基项目同长尾项目一样收到很少的评分(但项目质量更高,评分更高)。例如,从长尾项目中选择比所有长尾项目平均评分更高的项目作为利基项目,用d来表示所有长尾项目的平均评分的固定阈值。

如公式(18),其中qm指所有长尾项目m的平均得分。

i2={m∈i|qm>d}(公式18)

基于上述方式从不同长尾分段的数据集中选择长尾项目和利基项目的数量,结果如表1所示。

表1不同长尾分段选择的长尾项目和利基项目的数量

图3~图7分别为上述4种算法在不同长尾划分情况下的转换率,横轴表示主题的数量,纵轴表示转换率。分析图3~图7可知,在50%、60%、70%、80%、90%的长尾划分情况下,thblr在10、15、20、25和30个主题的情况下,转换率高于其他对比算法,并且在主题为20时thblr具有最佳转换率。而对比算法hblr、cf-user和pmf的转换率则随着所有项目中长尾项目的比例增加而增加。

图8为本发明一实施例提供的利基项目推荐装置。参见图8,本发明实施例还提供了一种利基项目推荐装置,所述装置包括:

主题分布获取模块801,用于根据m个已知项目和n个利基项目的描述内容获取所述m个已知项目和所述n个利基项目中每个项目的主题分布;其中m、n为正整数;

项目主题确定模块802,用于基于所述每个项目的主题分布,从每个项目中随机抽取一个主题确定为所述每个项目的主题;

聚集组获取模块803,用于聚集具有相同主题的已知项目和利基项目,得到n个聚集组;

回归模型建立模块804,用于根据所述n个聚集组中每个聚集组,基于主题建立每个聚集组的分层贝叶斯线性回归模型;

模型参数获取模块805,用于获取所述每个聚集组的分层贝叶斯线性回归模型的模型参数;

推荐用户确定模块806,用于基于回归模型获取所述每个聚集组中利基项目与所有用户的相关度,确定相关度较大的预设数量位用户为所述利基项目的推荐用户。

图9为本发明一实施例提供的利基项目推荐装置。参见图9,在图8所示利基项目推荐装置的基础上,所述项目主题确定模块802包括:

概率值排序单元901,用于基于每个项目的主题分布中文档-主题的概率值的大小顺序排序;

项目主题选取单元902,用于选取概率值最大的中文档-主题作为每个项目的主题。

图10为本发明一实施例提供的利基项目推荐装置。参见图10,在图8所示利基项目推荐装置的基础上,所述聚集组获取模块803包括:

主题获取单元1001,用于针对所述n个利基项目中每个利基项目,获取每个利基项目的主题;

主题匹配单元1002,用于基于所述每个利基项目的主题分别匹配所述m个已知项目的主题;

聚集单元,用于在主题匹配通过时,聚集具有相同主题的利基项目和已知项目,得到个聚集后的项目组。

图11为本发明一实施例提供的利基项目推荐装置。参见图11,在图8所示利基项目推荐装置的基础上,所述模型参数获取模块805包括:

初始参数获取单元1101,用于获取所述每个聚集组的分层贝叶斯线性回归模型的初始化分布参数;

模型参数迭代单元1102,用于重复执行最大期望em算法中e步骤和m步骤,获取所述em算法收敛时所述分层贝叶斯线性回归模型的分布参数值作为其模型参数。

需要说明的是,本发明实施例提供的利基项目推荐装置与上述方法是一一对应的关系,上述方法的实施细节同样适用于上述装置,本发明实施例不再对上述系统进行详细说明。

本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1