一种基于稀疏性感知的分布式混合协同智能推荐方法与流程

专利2022-06-29  83


本发明涉及计算机数据处理
技术领域
,特别是一种基于稀疏性感知的分布式混合协同智能推荐方法。
背景技术
:随着云计算的兴起和移动应用的增长,越来越多的企业和组织进入了云市场,为全球用户部署了繁荣的分布式云服务。由于用户、云服务、在线信息数量的爆炸式增长,由此产生了大数据问题,使用户如何在大量功能相似的候选服务中挖掘有价值的信息,找到最令人满意的服务变得越来越困难。智能推荐系统是处理信息过载的有效工具,现今已成为一个热门的研究课题。在工业界和学术界已经进行了许多研究工作来设计用于个性化和智能计算的有效推荐模型。矩阵分解(matrixfactorization,mf)是最成功的推荐模型之一,旨在从部分可观察的用户项目评分矩阵中挖掘知识,来满足用户的个性化需求。然而,现有大多数基于mf的推荐方法主要集中在处理二维的用户项目评分矩阵,而忽略了上下文信息。实际上,在动态云环境和实际应用中,上下文因素(如时间和位置)对推荐系统性能有很大影响。由于云环境的动态特性,大多数云服务都是时间敏感的和空间敏感的,用户偏好、用户行为和服务质量(qualityofservice,qos)性能会随着时间和地点而变化。目前已经有一些研究侧重于研究情境信息对推荐效果的影响,但它们主要关注语境信息对用户偏好的影响,很少有工作关注上下文信息对qos性能的影响。与传统的互联网服务相比,由于移动应用的普及和云环境的动态特性,云服务的qos对上下文信息更加敏感。处于不同地理位置以及不同时间状态下的云服务和用户行为之间的相关性可能会减弱,因此,考虑上下文信息对云服务的qos影响是非常重要而且具有实际意义的。随着用户数量、云服务和评分信息的大规模化,数据稀疏性问题变得更加严重,它对推荐模型的预测性能有很大影响。mf是处理稀疏数据的有效模型,随机梯度下降(stochasticgradientdescent,sgd)是mf的有效分解技术,目前已广泛应用于许多机器学习和深度学习问题。找到可压缩张量分解(tensorfactorization,tf)算法的一种方法是将分布式mf模型扩展到高阶。然而,现有分布式mf方法的大多数是不可扩展的或具有有限的可扩展性。技术实现要素:本发明的目的在于提供一种基于稀疏性感知的分布式混合协同智能推荐方法,通过考虑时间和位置信息对推荐模型的影响,为用户提供个性化的服务推荐,并提高推荐系统的可扩展性。实现本发明目的的技术解决方案为:一种基于稀疏性感知的分布式混合协同智能推荐方法,包括以下步骤:步骤1、获取数据集,对数据进行预处理,构建用户-服务-时间-位置模型;步骤2、区分时间敏感的qos属性和空间敏感的qos属性;步骤3、采用基于阈值的分层聚类算法和自适应k均值聚类算法分别对时间段和空间区域进行聚类操作,合并相似的时间段和相似的空间区域,构建时间-空间-用户-服务四维评分张量;步骤4、利用cp张量分解模型对四维评分张量进行分解,并基于分布式同步随机梯度下降机制对参数进行学习,预测目标用户对候选服务的评分,并且将具有最高预测评分的服务推荐给目标用户。进一步地,步骤1所述的获取数据集,对数据进行预处理,构建用户-服务-时间-位置模型,具体如下:从目标网站获取服务的历史用户的评分信息,评分信息包括总体评分、每个qos属性的评分、时间标签和位置标签,并对数据进行清洁数据、汇总同类服务处理,然后构建用户-服务-时间-位置模型;在用户-服务-时间-位置模型中,给定用户集u和服务集s,用户和服务的数量分别为n和m;服务集s中的每个服务包含h个qos属性,记为向量q=[q1,q2,…,qh],表示服务的非功能属性的特征;用户i对服务j的评分表示为{rij,rqij,tij,lij},其中rij≥0表示用户i对服务j的总体评分;为qos评分向量,即对各qos属性的评分向量,表示用户i对服务j在第h个qos属性qh上的评分,其中1≤h≤h;tij和lij分别为时间标签和位置标签,指示用户i何时何地调用服务j。进一步地,步骤2所述的区分时间敏感的qos属性和空间敏感的qos属性,具体如下:步骤2.1、将评分数据集的历史时间段划分为k个时间段,即{t1,t2,…,tk},tk表示第k个时间段,1≤k≤k,每个时段的长度表示为δt;将服务的调用位置划分为g个区域,即{r1.r2,…,rg};给定时间波动阈值δt和空间波动阈值δr;步骤2.2、通过计算在k个时间段内评分的方差,识别时间敏感的qos属性qh:其中ft(qh)表示qh属性在k个时间段内评分的方差,|s|是服务集s中的服务数量,是服务s的qh属性在时间段tk中的平均评分,是服务s的qos属性qh在整个时间段内的总体平均评分;根据给出的时间波动阈值δt确定qh是时间敏感的还是时间不敏感的,如果ft(qh)>δt,则qh是时间敏感的qos指标,设定tq=[tq1,tq2,…,tqa]为时间敏感的qos属性向量,tqw表示第w个时间敏感的qos属性,1≤w≤a,a是时间敏感qos属性的数量;rtij表示用户i对服务j的时间敏感qos的评分向量,表示用户i对服务j在第w个时间敏感的qos属性的评分;步骤2.3、通过计算在g个空间区域内评分的方差,识别空间敏感的qos属性qh:其中fr(qh)表示qh属性在g个空间区域内评分的方差,|s|是服务集s中的服务数量,是服务s的qh属性在区域rg中的平均评分,是服务s在所有区域内属性qh的总体平均评分;根据给出的空间波动阈值δr来确定qh是空间敏感的还是空间不敏感的,如果fr(qh)>δr,则qh是空间敏感的qos属性,设定lq=[lq1,lq2,…,lqb]为空间敏感的qos属性向量,lqm表示第m个空间敏感的qos属性,1≤m≤b,b是空间敏感qos属性的数量;rlij表示用户i对服务j的空间敏感qos的评分向量,表示用户i对服务j在第m个空间敏感的qos属性的评分。进一步地,步骤3所述的采用基于阈值的分层聚类算法和自适应k均值聚类算法分别对时间段和空间区域进行聚类操作,合并相似的时间段和相似的空间区域,构建时间-空间-用户-服务四维评分张量,具体如下:步骤3.1、进行基于皮尔森相关系数的时间段tu和时间段tv的相似度φ(tu,tv)计算:式中,s(tu)∩s(tv)是用户在时间段tu和tv处的共同服务的集合,是用户在时间段tu处对服务s的平均qos评分向量,是用户在时间段tu处对所有候选服务的平均qos评分向量;是用户在时间段tv处对服务s的平均qos评分向量,是用户在时间段tv处对所有候选服务的平均qos评分向量;步骤3.2、进行基于皮尔森相关系数的空间区域re和空间区域rf的相似度ψ(re,rf)计算:式中,s(re)∩s(rf)是区域re和rf处的用户的共同服务集合,是用户在区域re处对服务s的平均qos评分向量,是用户在区域re处对所有候选服务的平均qos评分向量;是用户在区域rf处对服务s的平均qos评分向量,是用户在区域rf处对所有候选服务的平均qos评分向量;步骤3.3、基于求得的相似度关系,利用阈值的层次聚类算法对相似时间区域进行聚合,同时利用自适应的k均值聚类算法对相似的空间区域进行聚合,合并相似的时间段和相似的空间区域,聚合后整个时间段被划分为p个时间段{tc1,tc2,…,tcp},整个空间区域被划分为d个空间区域{rc1,rc2,…,rcd},在聚合后的时间、空间分区基础上构建时间-空间-用户-服务的四维评分张量进一步地,步骤4所述的利用cp张量分解模型对四维评分张量进行分解,并基于分布式同步随机梯度下降机制对参数进行学习,预测目标用户对候选服务的评分,并且将具有最高预测评分的服务推荐给目标用户,具体如下:步骤4.1、四维评分张量r中的元素为表示用户i在区域rcd和时间tcp内对服务j的评分;利用cp张量分解模型,将四维评分张量分解为一组秩为1张量之和,秩1张量表示为四个x维向量的外积:其中x为四维评分张量r的秩,定义为还原张量所需的秩1张量的最小数量;u=[ux],s=[sx],t=[tx],l=[lx],x=1,2,…,x;ux,sx,tx,lx分别表示与用户、服务、时间和位置相关联的潜在因子向量;在进行cp分解时考虑用户、服务、时间和位置之间的交互关系,以及偏置项b:将偏置项的一阶近似应用于预测中,b=μ btp bld,μ是总体平均评分,btp和bld分别表示时间段tcp和空间区域rcd的观测偏差;步骤4.2、通过分布式同步随机梯度下降方法循环训练学习,获得最小化函数中的各项参数;步骤4.3、根据cp张量分解模型,在tcp时间段rcd空间区域内用户i对服务j的预测评分为:其中uix、sjx、tpx、ldx分别表示与用户i、服务j、时间p和位置d相关联的潜在因子向量;在cp分解算法中,利用最小化损失函数c来学习获得未知参数,损失函数如下所示:其中是在tcp时间段、rcd空间区域上用户i对服务j的真实评分,是在tcp时间段、rcd空间区域上用户i对服务j的预测评分,1≤i≤n,1≤j≤m,1≤p≤p,1≤d≤d;因此预测目标用户对候选服务的评分表述为以下最小化问题f:其中train是的评分训练集,是用于规范学习参数以避免过度拟合,并且用于控制正则化程度的常数;λ是用于控制正则化程度的常数;步骤4.4、将具有最高预测评分的服务推荐给目标用户。进一步地,步骤4.2中所述的通过分布式同步随机梯度下降方法循环训练学习,获得最小化函数中的各项参数,具体如下:在分布式同步随机梯度下降方法中,数据集的可观察条目随机分布在多个工作节点中,这些工作节点处理数据并行生成梯度,所涉及的参数包括btp,bld,ui,sj,tp,ld,将所涉及的参数在参数服务器上进行更新,其中btp,bld分别表示只与时间区域tp和空间区域ld相关的偏置项,ui,sj,tp,ld分别表示与用户、服务、时间和位置相关联的潜在因子向量;在分布式同步随机梯度下降方法中,对于每次迭代,每个工作程序并行加载本地数据并保留在主存储器中;每个工作节点读取从参数服务器接收的参数以生成梯度,并将更新的梯度发送到参数服务器;参数服务器接收来自所有工作节点的梯度并求出平均梯度然后更新参数,并将更新后的参数发送给下一轮迭代所需的工作节点。本发明与现有技术相比,其显著优点在于:(1)通过区分时间敏感的qos属性和空间敏感的qos属性,以及稳定的qos属性,将时间和空间因素加入到推荐系统模型中,提高了推荐系统的性能;(2)采用基于阈值的分层聚类算法对时段进行聚类,基于自适应k均值聚类算法对区域进行聚类,解决了数据稀疏性的问题;(3)采用基于cp分解的可扩展张量分解方法,即分布式同步sgd机制,保证了收敛速度和预测准确性。附图说明图1为本发明基于稀疏性感知的分布式混合协同智能推荐方法的流程示意图。具体实施方式:下面结合附图和具体实施例对本发明作进一步详细说明。结合图1,本发明为一种基于稀疏性感知的分布式混合协同智能推荐方法,包括以下步骤:步骤1、获取数据集,并对数据进行预处理,构建用户-服务-时间-位置模型,具体如下:从目标网站获取服务的历史用户的评分信息,评分信息包括总体评分、每个qos属性的评分、时间标签和位置标签,并对数据进行预处理(清洁数据、汇总同类服务),然后构建用户-服务-时间-位置模型。在用户-服务-时间-位置模型中,给定用户集u和服务集s,用户和服务的数量分别为n和m;服务集s中的每个服务包含h个qos属性,记为向量q=[q1,q2,…,qh],表示服务的非功能属性的特征;用户i对服务j的评分表示为{rij,rqij,tij,lij},其中rij≥0表示用户i对服务j的总体评分,是qos评分分向量即对各qos属性的评分向量,并且表示用户i对服务j在第h个qos属性qh上的评分,其中1≤h≤h;tij和lij分别为时间标签和位置标签,指示用户i何时何地调用服务j。步骤2、区分时间敏感的qos属性和空间敏感的qos属性,具体如下:步骤2.1、将评分数据集的历史时间段划分为k个时间段,即{t1,t2,…,tk},tk表示第k个时间段,1≤k≤k,每个时段的长度表示为δt;将服务的调用位置划分为g个区域,即{r1.r2,…,rg};给定时间波动阈值δt和空间波动阈值δr;步骤2.2、通过测量每个qos属性随时间的评分波动来识别时间敏感的qos属性:qos属性qh随时间的评分波动通过在k个时间段内评分的方差来测量,定义为:其中ft(qh)表示qh属性在k个时间段内评分的方差,表示qos属性qh随时间变化的评分波动程度,可以用来作为识别qos属性qh的时间敏感程度;|s|是服务集s中的服务数量,是服务s的qh属性在时间段tk中的平均评分,是服务s的qos属性qh在整个时间段内的总体平均评分,具体为:式中,1b是指标函数,当b为真时,其值等于1,否则为0;tis∈tk表示用户i为服务s评分的时间在tk内;表示用户i已经对服务s的第h个qos属性进行了评分。根据给出的时间波动阈值δt确定qh是时间敏感的还是不敏感的,如果ft(qh)>δt,则qh是时间敏感的qos指标,设定tq=[tq1,tq2,…,tqa]为时间敏感的qos属性向量,tqw表示第w个时间敏感的qos属性,1≤w≤a,a是时间敏感qos属性的数量;rtij表示用户i对服务j的时间敏感qos的评分向量,表示用户i对服务j在第w个时间敏感的qos属性的评分;步骤2.3、通过测量每个区域上的每个单独qos属性的评分的波动来识别空间敏感的qos属性:qos属性qh随时间的评分波动通过在g个空间区域内评分的方差来测量,定义为:其中fr(qh)表示qh属性在g个空间区域内评分的方差,表示qos属性qh随空间变化的评分波动程度,可以用来作为识别qos属性qh的空间敏感程度;|s|是服务集s中的服务数量,是服务s的qh属性在区域rg中的平均评分,是在服务s在所有区域内属性qh的总体平均评分;根据给出的空间波动阈值δr来确定qh是空间敏感的还是空间不敏感的,如果fr(qh)>δr,则qh是空间敏感的qos属性,设定lq=[lq1,lq2,…,lqb]为空间敏感的qos属性向量,lqm表示第m个空间敏感的qos属性,1≤m≤b,b是空间敏感qos属性的数量;rlij表示用户i对服务j的空间敏感qos的评分向量,表示用户i对服务j在第m个空间敏感的qos属性的评分。步骤3、采用基于阈值的分层聚类算法和自适应k均值聚类算法分别对时间段和空间区域进行聚类操作,合并相似的时间段和相似的空间区域,构建时间-空间-用户-服务四维评分张量,具体如下:步骤3.1、时间段的聚类策略旨在根据时间敏感的qos属性标准对相邻时段进行顺序聚类,并将它们聚合到更大的时段中,输入为待划分的时段{t1,t2,…,tk}和时间相似性阈值θt,输出为划分好的时间段tcs={tc1,tc2,…tcp}。在时间聚类算法中首先生成初始时间段集群tcs,将输入的初始的每个时间段都看成是一个时间段集群。然后计算相邻的两个时段中相似系数大于时间相似性阈值θt并且相似系数最大的两个时段,将其合并为一个新的时段,持续循环下去,直到不存在可以合并的相邻时段。通过时间聚类算法对数据的操作,将具有相似特征的时间段合并到一起,视为同一个时间段,大大减少了时间段的数目,降低了数据稀疏性带来的不利影响,为评分预测工作奠定了良好的基础。在算法中,给定参数φ(tu,tv)表示时段tu和tv的时间相似度,进行基于皮尔森相关系数的时间段tu和时间段tv的相似度φ(tu,tv)计算,计算公式为:式中,s(tu)∩s(tv)是用户在时间段tu和tv处的共同服务的集合,是用户在时间段tu处对服务s的平均qos评分矢量,是用户在时间段tu处对所有候选服务的平均qos评分向量;是用户在时间段tv处对服务s的平均qos评分矢量,是用户在时间段tv处对所有候选服务的平均qos评分向量;φ(tu,tv)∈[0,1]是基于皮尔森相关定义的系数,表示时间段tu和tv的时间相似度φ(tu,tv)越大,tu和tv之间的候选服务的时间特征越接近,如果φ(tu,tv)>θt,则认为时段tu和tv是相似的;步骤3.2、空间区域聚类策略基于区域之间的相似性。采取k均值聚类算法来对空间区域进行聚类操作.输入为待划分的空间区域{r1,r2,…rg}和空间相似性阈值θr,输出为划分好的空间区域rcs={rc1,rc2,…,rcd}。在区域聚类算法中,首先随机选取k个区域作为初始的聚类中心,然后计算每个区域与各个聚类中心之间的距离,把每个区域分配给距离它最近的聚类中心。聚类中心以及分配给它们的区域就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足没有区域被重新分配给不同的聚类。空间相似系数ψ(re,rf)表明了两个地区候选服务的相似程度,进行基于皮尔森相关系数的空间区域re和空间区域rf的相似度ψ(re,rf)计算,计算公式为:式中,s(re)∩s(rf)是区域re和rf处的用户的共同服务集合,是用户在区域re处对服务s的平均qos评分向量,是用户在区域re处对所有候选服务的平均qos评分向量;是用户在区域rf处对服务s的平均qos评分向量,是用户在区域rf处对所有候选服务的平均qos评分向量;ψ(re,rf)∈[0,1]是基于皮尔森相关定义的系数,表示两个地区候选服务的相似程度,ψ(re,rf)越大,区域re和rf之间的相似度越高,如果ψ(re,rf)>θr,则认为区域re和rf是相似的;步骤3.3、基于求得的相似度关系,利用阈值的层次聚类算法对相似时间区域进行聚合,同时利用自适应的k均值聚类算法对相似的空间区域进行聚合,合并相似的时间段和相似的空间区域,聚合后整个时间段被划分为p个时间段{tc1,tc2,…,tcp},整个空间区域被划分为d个空间区域{rc1,rc2,…,rcd},在聚合后的时间、空间分区基础上构建时间-空间-用户-服务的四维评分张量p和d分别是时间段和空间区域的聚类数;步骤4、利用cp张量分解模型对四维评分张量进行分解,并基于分布式同步随机梯度下降机制对参数进行快速学习,预测目标用户对候选服务的评分,并且将具有最高预测评分的服务推荐给目标用户,具体如下:步骤4.1、四维评分张量r中的元素为表示用户i在区域rcd和时间tcp内对服务j的评分;利用cp张量分解模型,将四维评分张量分解为一组秩为1张量之和,表示为四个x维向量的外积:其中x为四维评分张量r的秩,定义为还原张量所需的秩1张量的最小数量;u=[ux],s=[sx],t=[tx],l=[lx],x=1,2,…,x;ux,sx,tx,lx分别表示与用户、服务、时间和位置相关联的潜在因子向量。与传统的用户服务静态模型相比,本发明不仅考虑用户偏好和服务特征之间的潜在因素,而且还考虑与“时间趋势”和“地理趋势”之间的关系。此外,在本发明的推荐模型中,不仅考虑用户、服务、时间和位置之间的交互,还考虑与时间或位置相关的偏置项,因此观察到的时空感知评分可以分成两个部分,即偏差和基于时空信息的评分:将偏置项的一阶近似应用于预测中,b=μ btp bld,μ是总体平均评分,btp和bld分别表示时间段tcp和空间区域rcd的观测偏差;步骤4.2、通过分布式同步随机梯度下降方法循环训练学习,获得最小化函数中的各项参数;步骤4.3、根据cp张量分解模型,在tcp时间段rcd空间区域内用户i对服务j的预测评分为:其中uix、sjx、tpx、ldx分别表示与用户i、服务j、时间p和位置d相关联的潜在因子向量;在cp分解算法中,利用最小化损失函数c来学习获得未知参数,损失函数如下所示:其中是在tcp时间段、rcd空间区域上用户i对服务j的真实评分,是在tcp时间段、rcd空间区域上用户i对服务j的预测评分,1≤i≤n,1≤j≤m,1≤p≤p,1≤d≤d;因此预测目标用户对候选服务的评分表述为以下最小化问题f:其中train是的评分训练集,是用于规范学习参数以避免过度拟合,并且用于控制正则化程度的常数;λ是用于控制正则化程度的常数。步骤4.4、将具有最高预测评分的服务推荐给目标用户。进一步地,步骤4.2中所述的通过分布式同步随机梯度下降方法循环训练学习,获得最小化函数中的各项参数,具体如下:在分布式同步随机梯度下降方法中,数据集的可观察条目随机分布在多个工作节点中,这些工作节点处理数据并行生成梯度,所涉及的参数包括btp,bld,ui,sj,tp,ld,将所涉及的参数在参数服务器上进行更新,其中btp,bld分别表示只与时间区域tp和空间区域ld相关的偏置项,ui,sj,tp,ld分别表示与用户、服务、时间和位置相关联的潜在因子向量;在分布式同步随机梯度下降方法中,对于每次迭代,每个工作程序并行加载本地数据并保留在主存储器中;每个工作节点读取从参数服务器接收的参数以生成梯度,并将更新的梯度发送到参数服务器;参数服务器接收来自所有工作节点的梯度并求出平均梯度然后更新参数,并将更新后的参数发送给下一轮迭代所需的工作节点。通过利用sgd,可以通过循环训练集中的所有值来求解上面的等式。然后在梯度的相反方向上通过学习率γ更新参数,将定义为每个训练案例的相关预测误差,产生以下递归方程:为了加快算法运行速度,提高效率,采用分布式同步随机梯度下降法(sync-sgd,同步更新、同步训练)来加速更新速率。训练时,每个节点上工作任务读入共享参数,计算出各自部分的梯度;当每个工作节点的梯度计算完成后,收集到一起算出总梯度,然后再求总梯度的平均值,用梯度平均值去更新参数。下一批次,所有工作节点用模型更新后的参数训练。同步更新模式下,每次都要等各工作节点的梯度计算完后才能进行参数更新操作,每个训练批次考虑所有工作节点训练情况,损失下降稳定。下面结合具体实施例对本发明做进一步详细说明。实施例1本实施例以酒店预订为例,从大众点评网站收集了南京地区部分酒店的用户评分记录,记录包括用户名、酒店名、酒店地址、酒店星级、酒店总体评分、评分时间以及用户对位置、卫生、服务和设施的评分。表1酒店的部分用户评分记录为了使评分数据更适合本实施例,将汇总中具有相同星级和总评分的酒店、同一类型的酒店视为一家酒店。预处理后,有22种类型的酒店,每种酒店可以出现在不同的地区。对酒店名、用户名、时间、地址进行编号,处理后的数据如下表所示,其中共22种酒店,12420个用户,33个时间标签,10个地址标签。表2处理后的酒店的用户评分记录评分记录酒店编号用户编号时间地址位置服务卫生设施0003314444101321555520232155543033214555………………………………………………13738181242021275.01.03.01.0计算用户评分在33个时间段(10个区域)内评分的方差:ft(位置)=0.1213ft(服务)=0.1684ft(卫生)=0.1634ft(设施)=0.2124fr(位置)=0.0106fr(服务)=0.0169fr(卫生)=0.0170fr(设施)=0.0230取时间波动阈值为0.2,空间波动阈值为0.02,则用户对于设施的评分为时间敏感和空间敏感的qos属性。然后应用分层聚类算法和自适应k均值聚类算法,分别聚合相似的时段和相似的区域。对时间聚类的结果如下:[0,[1,2,3,4,5,6],7,8,[9,10],11,[12,13,14,15],[16,17,18],[19,20],[21,22,23],[24,25,26,27,28],29,[30,31,32]]对区域聚类的结果如下:[0,1,[2,3],4,5,[6,7,8],[9,10]]根据聚类后的结果构建四维张量张量r中的元素可以表示为其表示用户i在区域rcd和时间tcp内对服务j的评分。接下来利用cp分解模型对张量进行分解,并基于分布式同步sgd(随机梯度下降)算法对参数进行快速学习来预测出在某时某地用户对候选服务的评分,并且将具有最高预测评分的服务推荐给目标用户。为了方便理解,下面给出一个简化案例:其中包含3个用户alice、tom、david,3种酒店,2个时间、2个地点。每种酒店可以在所有地点出现,时间、地点,酒店已经经过聚类处理。表3.用户评分记录简化样例用户名用户编号酒店编号时间编号地点编号评分alice00114.0tom12003.0david21014.5tom11115.0david20013.5alice02104.0alice01003.0tom10005.0对应的四维评分张量可以表示为:r=[[[[0,0],[0,4]],[[3,0],[0,0]],[[0,0],[4,0]]],[[[5,0],[0,0]],[[0,0],[0,5]],[[3,0],[0,0]]],[[[0,3.5],[0,0]],[[4.5,0],[0,0]],[[0,0],[0,0]]]]采用cp分解模型对张量进行分解填充稀疏值后(保留一位有效数字):r=[[[[3.6,2.4],[1.6,4.0]],[[3.0,2.2],[1.5,3.7]],[[3.3,0.6],[4.0,0.2]]][[[5.0,3.1],[2.2,5.3]],[[3.8,2.9],[2.1,5.0]],[[3.0,0.7],[5.2,0.3]]][[[3.8,3.5],[1.5,4.8]],[[4.5,2.9],[1.7,4.3]],[[3.2,0.9],[5.0,0.2]]]]若alice打算在编号为0标签时间,编号为0标签地点去旅行住宿,则alice对三个酒店的预测评分分别为3.6、3.0、3.3,因此对alice而言最合适的推荐是编号为0的酒店。当前第1页1 2 3 
技术特征:

1.一种基于稀疏性感知的分布式混合协同智能推荐方法,其特征在于,包括以下步骤:

步骤1、获取数据集,对数据进行预处理,构建用户-服务-时间-位置模型;

步骤2、区分时间敏感的qos属性和空间敏感的qos属性;

步骤3、采用基于阈值的分层聚类算法和自适应k均值聚类算法分别对时间段和空间区域进行聚类操作,合并相似的时间段和相似的空间区域,构建时间-空间-用户-服务四维评分张量;

步骤4、利用cp张量分解模型对四维评分张量进行分解,并基于分布式同步随机梯度下降机制对参数进行学习,预测目标用户对候选服务的评分,并且将具有最高预测评分的服务推荐给目标用户。

2.根据权利要求1所述的基于稀疏性感知的分布式混合协同智能推荐方法,其特征在于,步骤1所述的获取数据集,对数据进行预处理,构建用户-服务-时间-位置模型,具体如下:

从目标网站获取服务的历史用户的评分信息,评分信息包括总体评分、每个qos属性的评分、时间标签和位置标签,并对数据进行清洁数据、汇总同类服务处理,然后构建用户-服务-时间-位置模型;

在用户-服务-时间-位置模型中,给定用户集u和服务集s,用户和服务的数量分别为n和m;服务集s中的每个服务包含h个qos属性,记为向量q=[q1,q2,…,qh],表示服务的非功能属性的特征;用户i对服务j的评分表示为{rij,rqij,tij,lij},其中rij≥0表示用户i对服务j的总体评分;为qos评分向量,即对各qos属性的评分向量,表示用户i对服务j在第h个qos属性qh上的评分,其中1≤h≤h;tij和lij分别为时间标签和位置标签,指示用户i何时何地调用服务j。

3.根据权利要求1所述的基于稀疏性感知的分布式混合协同智能推荐方法,其特征在于,步骤2所述的区分时间敏感的qos属性和空间敏感的qos属性,具体如下:

步骤2.1、将评分数据集的历史时间段划分为k个时间段,即{t1,t2,…,tk},tk表示第k个时间段,1≤k≤k,每个时段的长度表示为δt;将服务的调用位置划分为g个区域,即{r1.r2,…,rg};给定时间波动阈值δt和空间波动阈值δr;

步骤2.2、通过计算在k个时间段内评分的方差,识别时间敏感的qos属性qh:

其中ft(qh)表示qh属性在k个时间段内评分的方差,|s|是服务集s中的服务数量,是服务s的qh属性在时间段tk中的平均评分,是服务s的qos属性qh在整个时间段内的总体平均评分;

根据给出的时间波动阈值δt确定qh是时间敏感的还是时间不敏感的,如果ft(qh)>δt,则qh是时间敏感的qos指标,设定tq=[tq1,tq2,…,tqa]为时间敏感的qos属性向量,tqw表示第w个时间敏感的qos属性,1≤w≤a,a是时间敏感qos属性的数量;rtij表示用户i对服务j的时间敏感qos的评分向量,表示用户i对服务j在第w个时间敏感的qos属性的评分;

步骤2.3、通过计算在g个空间区域内评分的方差,识别空间敏感的qos属性qh:

其中fr(qh)表示qh属性在g个空间区域内评分的方差,|s|是服务集s中的服务数量,是服务s的qh属性在区域rg中的平均评分,是在服务的所有区域内属性qh的总体平均评分;

根据给出的空间波动阈值δr来确定qh是空间敏感的还是空间不敏感的,如果fr(qh)>δr,则qh是空间敏感的qos属性,设定lq=[lq1,lq2,…,lqb]为空间敏感的qos属性向量,lqm表示第m个空间敏感的qos属性,1≤m≤b,b是空间敏感qos属性的数量;rlij表示用户i对服务j的空间敏感qos的评分向量,表示用户i对服务j在第m个空间敏感的qos属性的评分。

4.根据权利要求1所述的基于稀疏性感知的分布式混合协同智能推荐方法,其特征在于,步骤3所述的采用基于阈值的分层聚类算法和自适应k均值聚类算法分别对时间段和空间区域进行聚类操作,合并相似的时间段和相似的空间区域,构建时间-空间-用户-服务四维评分张量,具体如下:

步骤3.1、进行基于皮尔森相关系数的时间段tu和时间段tv的相似度φ(tu,tv)计算:

式中,s(tu)∩s(tv)是用户在时间段tu和tv处的共同服务的集合,是用户在时间段tu处对服务s的平均qos评分向量,是用户在时间段tu处对所有候选服务的平均qos评分向量;是用户在时间段tv处对服务s的平均qos评分向量,是用户在时间段tv处对所有候选服务的平均qos评分向量;

步骤3.2、进行基于皮尔森相关系数的空间区域re和空间区域rf的相似度ψ(re,rf)计算:

式中,s(re)∩s(rf)是区域re和rf处的用户的共同服务集合,是用户在区域re处对服务s的平均qos评分向量,是用户在区域re处对所有候选服务的平均qos评分向量;是用户在区域rf处对服务s的平均qos评分向量,是用户在区域rf处对所有候选服务的平均qos评分向量;

步骤3.3、基于求得的相似度关系,利用基于阈值的层次聚类算法对相似时间区域进行聚合,同时利用自适应的k均值聚类算法对相似的空间区域进行聚合,合并相似的时间段和相似的空间区域,聚合后整个时间段被划分为p个时间段{tc1,tc2,…,tcp},整个空间区域被划分为d个空间区域{rc1,rc2,…,rcd},在聚合后的时间、空间分区基础上构建时间-空间-用户-服务的四维评分张量

5.根据权利要求1所述的基于稀疏性感知的分布式混合协同智能推荐方法,其特征在于,步骤4所述的利用cp张量分解模型对四维评分张量进行分解,并基于分布式同步随机梯度下降机制对参数进行学习,预测目标用户对候选服务的评分,并且将具有最高预测评分的服务推荐给目标用户,具体如下:

步骤4.1、四维评分张量r中的元素为表示用户i在区域rcd和时间tcp内对服务j的评分;利用cp张量分解模型,将四维评分张量分解为一组秩为1张量之和,表示为四个x维向量的外积:

其中x为四维评分张量r的秩,定义为还原张量所需的秩1张量的最小数量;

u=[ux],s=[sx],t=[tx],l=[lx],x=1,2,…,x;ux,sx,tx,lx分别表示与用户、服务、时间和位置相关联的潜在因子向量;

在进行cp分解时考虑用户、服务、时间和位置之间的交互关系,以及偏置项b:

将偏置项的一阶近似应用于预测中,b=μ btp bld,μ是总体平均评分,btp和bld分别表示时间段tcp和空间区域rcd的观测偏差;

步骤4.2、通过分布式同步随机梯度下降方法循环训练学习,获得最小化函数中的各项参数;

步骤4.3、根据cp张量分解模型,在tcp时间段rcd空间区域内用户i对服务j的预测评分为:

其中uix、sjx、tpx、ldx分别表示与用户i、服务j、时间p和位置d相关联的潜在因子向量;

在cp分解算法中,利用最小化损失函数c来学习获得未知参数,损失函数如下所示:

其中是在tcp时间段、rcd空间区域上用户i对服务j的真实评分,是在tcp时间段、rcd空间区域上用户i对服务j的预测评分,1≤i≤n,1≤j≤m,1≤p≤p,1≤d≤d;

因此预测目标用户对候选服务的评分表述为以下最小化问题f:

其中train是的评分训练集,是用于规范学习参数以避免过度拟合,并且用于控制正则化程度的常数;λ是用于控制正则化程度的常数;

步骤4.4、将具有最高预测评分的服务推荐给目标用户。

6.根据权利要求5所述的基于稀疏性感知的分布式混合协同智能推荐方法,其特征在于,步骤4.2中所述的通过分布式同步随机梯度下降方法循环训练学习,获得最小化函数中的各项参数,具体如下:

在分布式同步随机梯度下降方法中,数据集的可观察条目随机分布在多个工作节点中,这些工作节点处理数据并行生成梯度,所涉及的参数包括btp,bld,ui,sj,tp,ld,将所涉及的参数在参数服务器上进行更新,其中btp,bld分别表示只与时间区域tp和空间区域ld相关的偏置项,ui,sj,tp,ld分别表示与用户、服务、时间和位置相关联的潜在因子向量;

在分布式同步随机梯度下降方法中,对于每次迭代,每个工作程序并行加载本地数据并保留在主存储器中;每个工作节点读取从参数服务器接收的参数以生成梯度,并将更新的梯度发送到参数服务器;参数服务器接收来自所有工作节点的梯度并求出平均梯度然后更新参数,并将更新后的参数发送给下一轮迭代所需的工作节点。

技术总结
本发明公开了一种基于稀疏性感知的分布式混合协同智能推荐方法。该方法为:首先由历史用户行为信息获取用户对服务的评分数据集;然后根据QoS评分波动特征区分时间敏感的QoS属性和空间敏感的QoS属性;接着采用基于阈值的分层聚类算法和自适应K均值聚类算法,分别聚合相似的时段和相似的区域,构建时间‑空间‑用户‑服务的四维张量模型;最后利用CP分解模型对四维评分张量进行分解,并利用分布式同步随机梯度下降机制对参数进行学习,预测目标用户对候选服务的评分,将具有最高预测评分的服务推荐给目标用户。本发明能够为云服务用户提供个性化的服务推荐,提高了云服务推荐算法的计算效率和预测的准确性,并提高了推荐系统的扩展性。

技术研发人员:孟顺梅;高子建
受保护的技术使用者:南京理工大学
技术研发日:2020.02.20
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-23330.html

最新回复(0)