CN108563660B - 服务推荐方法、系统及服务器 - Google Patents
服务推荐方法、系统及服务器 Download PDFInfo
- Publication number
- CN108563660B CN108563660B CN201711484392.3A CN201711484392A CN108563660B CN 108563660 B CN108563660 B CN 108563660B CN 201711484392 A CN201711484392 A CN 201711484392A CN 108563660 B CN108563660 B CN 108563660B
- Authority
- CN
- China
- Prior art keywords
- matrix
- user
- service
- similarity
- relation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于网络推荐技术领域,提供了一种服务推荐方法、系统及服务器,所述方法包括:获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵;对用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵;根据用户关系矩阵计算并修正用户相似度矩阵;将用户关系矩阵和服务关系矩阵进行相乘运算,得到第一预测推荐结果;根据修正后的用户相似度矩阵以及用户的观测值,得到第二预测推荐结果;将第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵。上述方法采用随机行走解决数据稀疏所带来的用户相似度矩阵不精确的问题,采用矩阵分解的方法降低矩阵维度,通过将两者结合提高了服务推荐的精度。
Description
技术领域
本发明属于网络推荐技术领域,尤其涉及服务推荐方法、系统及服务器。
背景技术
面向服务的体系架构(Service-Oriented Architecture,SOA)作为一种新型的分布式计算模型已经在电子商务和应用集成等领域发挥了重大作用。SOA的核心思想是强调以服务为基本单位,发现并组合符合用户需求的一系列服务。其中,在分布式的环境中,将各种功能都以服务的形式提供给最终用户或者其他服务。
随着SOA和Web服务的迅速发展,在网络上可用的Web服务数量急剧增加,因此基于web服务的推荐机制成为关注的重大问题。web服务推荐机制主要考虑两个方面,一个是服务功能,另一个是服务质量。然而,传统的基于服务质量的推荐方法存在数据稀疏,以及测量不精确、数据随机性、环境复杂等因素引起的不确定性问题,这些问题会导致web服务推荐算法精度不高的结果。
发明内容
有鉴于此,本发明实施例提供了服务推荐方法、系统及服务器,以解决现有技术中服务推荐方法预测精度不高的问题。
本发明实施例的第一方面提供了一种服务推荐方法,包括:
获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵;对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵;
根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵;
根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果,根据修正后的用户相似度矩阵以及用户的观测值得到第二预测推荐结果;
将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送。
可选的,所述对所述用户服务矩阵进行矩阵分解,包括:通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解;
所述通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解,包括:
通过所述用户服务矩阵对用户关系矩阵和服务矩阵进行预测;
计算所述用户服务矩阵、预测后的用户关系矩阵与预测后的服务矩阵乘积之间的损失函数,所述损失函数包括正则项;
对所述损失函数分别关于用户关系矩阵和服务关系矩阵进行求导,并根据求导结果以及上一次对用户关系矩阵和服务关系矩阵的预测值对用户关系矩阵和服务关系矩阵进行更新。
可选的,所述根据所述用户关系矩阵计算用户相似度矩阵,具体包括:
根据如下公式计算用户的相似度矩阵:
其中,Simi,j表示为用户i与用户j的相似度矩阵,Ui,k表示为第i个用户的k维向量,Uj,k表示为第j个用户的k维向量。
可选的,所述根据所述用户相似度矩阵计算稳定的概率转换矩阵,具体包括:
利用用户位置关系参数和所述用户相似度矩阵计算各用户之间的概率转换矩阵:
其中,Ai,j表示用户i与用户j之间的位置关系参数;Adji表示用户i附近的用户;
将得到的各用户之间的概率转换矩阵应用到马尔科夫模型中得到稳定的概率转换矩阵:
其中,P0表示初始化单位矩阵,α表示所述用户在转换过程中和所述用户本身联系的概率。
可选的,利用所述概率转换矩阵修正所述用户相似度矩阵,具体包括:
根据所述概率转换矩阵计算概率权重:
根据所述概率权重修正用户的相似度矩阵:
其中,Nj为用户i的邻近用户的数量,Um,k为用户i的邻近用户集合。
本发明实施例的第二方面提供了一种服务推荐系统,包括:信息采集模块、矩阵分解模块、相似度计算模块、第一预测模块、第二预测模块和推荐模块;
信息采集模块,获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵;
矩阵分解模块,与所述信息采集模块相连,用于对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵;
相似度计算模块,与所述矩阵分解模块相连,用于根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵;
第一预测模块,与所述矩阵分解模块相连,用于根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果;
第二预测模块,与所述相似度计算模块相连,用于根据修正后的用户相似度矩阵以及用户的观测值,得到第二预测推荐结果;
推荐模块,与所述第一预测模块和所述第二预测模块相连,用于将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送。
可选的,所述矩阵分解模块对所述用户服务矩阵进行矩阵分解,包括:矩阵分解模块通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解;
所述矩阵分解模块包括:
预测训练单元,用于通过所述用户服务矩阵对用户关系矩阵和服务关系矩阵进行预测;
损失计算单元,用于计算所述用户服务矩阵、预测后的用户关系矩阵与预测后的服务关系矩阵乘积之间的损失函数,所述损失函数包括正则项;
更新单元,用于对所述损失函数分别关于用户关系矩阵和服务关系矩阵进行求导,并根据求导结果以及上一次对用户关系矩阵和服务关系矩阵的预测值对用户关系矩阵和服务关系矩阵进行更新。
可选的,所述相似度计算模块包括:
相似度计算单元,用于根据如下公式计算用户的相似度矩阵:
其中,Simi,j表示为用户i与用户j的相似度矩阵,Ui,k表示为第i个用户的k维向量,Uj,k表示为第j个用户的k维向量。
可选的,所述相似度计算模块还包括:
概率转换矩阵计算单元,用于利用用户位置关系参数和所述用户相似度矩阵计算各用户之间的概率转换矩阵:
其中,Ai,j表示用户i与用户j之间的位置关系参数;Adji表示用户i附近的用户;
概率转换矩阵计算单元,还用于将得到的各用户之间的概率转换矩阵应用到马尔科夫模型中得到稳定的概率转换矩阵:
其中,P0表示初始化单位矩阵,α表示所述用户在转换过程中和所述用户本身联系的概率。
可选的,所述相似度计算模块还包括:
相似度修正单元,用于根据所述稳定的概率转换矩阵计算概率权重:
相似度修正单元,还用于根据所述概率权重去修正用户的相似度矩阵:
其中,Nj为用户i的邻近用户的数量,Um,k为用户i的邻近用户集合。
本发明实施例的第三方面提供了一种服务器,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项服务推荐方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项服务推荐方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例,通过采用矩阵分解的方法将用户服务矩阵进行分解,得到低维度的用户关系矩阵和服务关系矩阵,再利用得到的低维度的用户关系矩阵计算用户相似度矩阵,进而通过随机行走模型得到稳定的概率转换矩阵,并根据得到的稳定的概率转换矩阵修正用户相似度矩阵,通过矩阵分解的用户关系矩阵和服务关系矩阵得到第一预测推荐结果,根据修正后的用户相似度矩阵和用户观测值得到第二预测推荐结果,最后将第一预测推荐结果和第二预测推荐结果加权融合得到用户服务推荐矩阵,通过基于随机行走模型的相似矩阵运算能够增加用户间相似度的可靠性,同时将矩阵分解的推荐结果和相似度增强后的协同推荐结果进行融合,能够提高服务推荐的预测精度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的服务推荐方法的实现流程示意图;
图2是图1中步骤S101的实现流程图;
图3是本发明实施例提供的服务推荐系统的结构示意图;
图4是本发明实施例提供的另一种服务推荐系统的结构示意图;
图5是本发明实施例提供的另一种服务推荐方法的实现流程示意图;
图6是本发明实施例提供的服务器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
本发明实施例从数据库中选取用户服务训练数据,通过本实施例中的方法对未采样到的数据进行预测,并将预测的数据与采样后的真实数据进行对比,验证本实施例中的服务推荐方法的有效性。其中,由于服务推荐机制与两个因素有关,其一为服务功能,其二为服务质量,影响服务质量的参数有服务响应时间和数据吞吐量,本实施例就是通过对服务响应时间和数据吞吐量两个数据子集分别进行推荐,以验证本实施例中服务推荐方法对于数据的适用性。
参见图1,示出了本发明实施例提供的服务推荐方法的实现流程示意图,详述如下:
步骤S101,获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵;对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵。
示例性的,本实施例采用的数据为Web service QoS dataset,所述数据集主要包括用户对于服务调用完成的质量信息。其中,服务质量信息为服务响应时间和数据吞吐率。此外,所述数据集中还包括了用户集合和服务集合的地理位置信息。
在获取到数据库中的数据后,将数据进行不同密度的采样,以模拟在真实的服务推荐过程中,难以获取充足的服务质量数据的情况,此处对获取的数据分别以不同比例的采样密度进行采样,例如采样密度可以为5%、10%、15%以及20%。本实施例中的方法分别将不同采样密度下的服务质量数据进行实验,以验证本实施例在不同采样密度下的服务推荐效果。
在对数据集数据进行初步的处理后,将获得的数据构建为用户服务矩阵Qi,j,我们知道一个矩阵可以分解为两个矩阵的乘积形式,这里用户服务矩阵可以分解为用户关系矩阵Ui,k和服务关系矩阵Sk,j,公式如下:
Qi,j=Ui,k·Sk,j
这样就可以将一个高维的用户服务矩阵分解为两个低维矩阵,其中一个为用户关系矩阵,一个为服务关系矩阵,通过分解得到的两个矩阵就可以计算未采样到用户的服务质量信息,并根据服务质量信息进行推荐。
可选的,对所述用户服务矩阵进行矩阵分解,包括:通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解。
由于矩阵分解的目标函数为凸函数,这里目标函数为损失函数。通过梯度下降算法使得损失函数中的变量沿着负梯度的方向移动,直至损失函数达到极小,也就是实际值与预测值的差最小。参见图2,示出了图1中步骤S101的实现流程图,详述如下:
步骤S201,通过所述用户服务矩阵对用户关系矩阵和服务关系矩阵进行预测。
在对用户关系矩阵和服务关系矩阵进行预测的过程就是,先分别随机初始化一个矩阵给用户关系矩阵和服务关系矩阵,计算在初始矩阵时用户关系矩阵和服务关系矩阵的乘积与真实的用户服务关系矩阵之间的差值,该差值也就是损失函数,当损失函数大于最小收敛阈值时,通过梯度下降算法更新用户关系矩阵和服务关系矩阵,直到损失函数小于最小阈值或通过随机梯度下降算法更新迭代的次数大于一定数值。
步骤S202,计算所述用户服务矩阵、预测后的用户关系矩阵与预测后的服务关系矩阵乘积之间的损失函数,所述损失函数包括正则项。
损失函数是用来衡量真实的用户服务矩阵与预测的用户关系矩阵和服务关系矩阵之间的不一致的程度,当损失函数越小,则训练模型的鲁棒性越好。由于训练数据较为稀疏,因此在采用随机梯度下降的方法对用户关系矩阵和服务关系矩阵进行预测时可能会出现过拟合的现象,为了解决过拟合的问题,在损失函数中增加了正则项。
步骤S203,对所述损失函数分别关于用户关系矩阵和服务关系矩阵求导,并根据求导结果以及上一次对用户关系矩阵和服务关系矩阵的预测值对用户关系矩阵和服务关系矩阵进行更新。
损失函数关于用户关系矩阵的导数为:
根据导数值对用户关系矩阵进行迭代更新的公式如下:
Ui=Ui-λggradUi
其中,Qi,j为按密度采样的用户服务矩阵的训练数据,gradUi为用户关系矩阵向量Ui的梯度,λg为梯度下降的系数。此处损失函数采用的是真实的用户服务关系矩阵与预测时用户关系矩阵和服务关系矩阵乘积之间差值的平方值以及用户关系矩阵和服务关系矩阵的二范数,对于具体的求导后的系数,已合并至梯度下降系数λg中。
与用户关系矩阵相对应的,损失函数关于服务关系矩阵的导数为:
根据导数值对服务关系矩阵进行迭代更新的公式如下:
Sj=Sj-λggradSj
具体的参数与上述参数相似,此处不再赘述。
步骤S102,根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵。
在经过上述矩阵分解之后,可以将高维度的用户服务矩阵分解为低维度用户关系矩阵和服务关系矩阵,其中通过低维度的用户关系矩阵的质量信息就可以反映出任意两个用户之间的相似度,然而由于数据比较稀疏,这一用户相似度矩阵并不能很好的反映出真实的用户之间的相似度。
容易理解的,对于同一地区的用户来说往往具有类似的喜好,因此将用户之间的位置关系考虑进去,得到其他用户对于当前用户产生的影响,这里计算的就是概率转换矩阵。通过这一过程得到的概率转换矩阵往往具有不稳定的效果,因此基于马尔科夫模型在得到稳定的概率转换矩阵,根据这一稳定的概率转换矩阵修正用户相似度矩阵。
可选的,所述根据所述用户关系矩阵计算用户相似度矩阵,具体包括:
根据如下公式计算用户的相似度矩阵:
其中,Simi,j表示为用户i与用户j的相似度矩阵,Ui,k表示为第i个用户的k维向量,Uj,k表示为第j个用户的k维向量。此处通过计算两个用户的信息的乘积,并计算乘积之和所包含信息的均值来反映两个用户之间的相似度。
可选的,所述根据所述用户相似度矩阵计算稳定的概率转换矩阵,具体包括:
利用用户位置关系参数和所述用户相似度矩阵计算各用户之间的概率转换矩阵:
其中,Ai,j表示用户i与用户j之间的位置关系参数;Adji表示用户i附近的用户。
将得到的各用户之间的概率转换矩阵应用到马尔科夫模型中得到稳定的概率转换矩阵:
其中,P0表示初始化单位矩阵,α表示所述用户在转换过程中和所述用户本身联系的概率。
用户服务质量通常会受到用户的地理位置的影响,因此,这里将用户的地理位置信息对服务质量进行预测。其中地理位置Ai,j为数据库中的信息,把相同区域的用户用同一区域编号进行标识。例如,同一省份地区的用户表识为3,同一国家的用户表识为2,无关的用户标识为1。计算当前两个用户位置关系参数与相似度的乘积在相邻若干个用户的位置关系参数与相似度的乘积和中所占的比例,并将这一比例作为概率转换矩阵。
在得到概率转换矩阵的基础上,通过马尔科夫模型来得到稳定的概率转换矩阵,过程如下,其中,Pt表示为迭代过程中第t次的概率矩阵,当迭代次数增加时,认为Pt趋近于Pt-1;M表示为利用位置关系参数和用户相似度矩阵得到的概率转换矩阵。
Pt=(1-α)P0+αMTPt-1
此处采用马尔科夫模型得到稳定概率的理论依据是随机行走模型,采用随机行走的模型能够增加用户之间的相似度的可靠性。
可选的,所述概率转换矩阵修正所述用户相似度矩阵,具体包括:
根据所述概率转换矩阵计算概率权重:
根据所述概率权重修正用户的相似度矩阵:
其中,Nj为用户i的邻近用户的数量,Um,k为用户i的邻近用户集合。
这里将通过马尔科夫模型得到的概率转换矩阵进一步转换为概率权重,概率权重反应的是对当前用户没有直接影响但是存在间接影响的其他用户对当前用户产生的影响。再将这一概率权重去修正先前的用户相似度矩阵,从而使得得到的相似度矩阵更加精确。
步骤S103,根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果,根据修正后的用户相似度矩阵以及用户的观测值得到第二预测推荐结果。
具体的,将得到的用户关系矩阵和服务关系矩阵相乘,就可以得到用户服务矩阵,根据得到的用户服务矩阵就是第一预测推荐结果,也就是基于矩阵分解所得到的推荐结果,具体公式如下:其中Q1i,j表示为采用矩阵分解得到的第一预测推荐结果。
在根据修正后的用户相似度矩阵以及用户观测值得到第二预测推荐结果的过程为:通过选取与当前用户邻近的用户,根据相邻用户的观测值以及所述相邻用户与当前用户的相似度来计算邻近用户对当前用户选择服务时所产生的影响,其中这些邻近的用户并非是直接与当前用户有直接影响的用户,而是与当前用户有间接影响的用户,从而提高预测的精度。具体的第二预测推荐结果表示如下:
步骤S104,将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送。
采用加权融合的方法将基于矩阵分解的预测推荐结果和基于随机行走增强相似度矩阵的预测推荐结果进行结合,充分利用两者的优点,以达到更好的预测推荐效果。采用加权融合获得服务推荐矩阵的过程如下:
Qi,j=λQ1i,j+(1-λ)Q2i,j
其中,λ表示为融合系数,Q1i,j表示为采用矩阵分解得到的第一预测推荐结果,Q2i,j表示为采用修正后的用户相似度矩阵得到的第二预测推荐结果。λ的值可以根据实验结果进行合理设置。
上述服务推荐方法,通过采用矩阵分解的方法将用户服务矩阵进行分解,得到低维度的用户关系矩阵和服务关系矩阵,再利用得到的低维度的用户关系矩阵计算用户相似度矩阵,进而通过随机行走模型得到稳定的概率转换矩阵,并根据得到的稳定的概率转换矩阵修正用户相似度矩阵,通过矩阵分解的用户关系矩阵和服务关系矩阵得到第一预测推荐结果,根据修正后的用户相似度矩阵和用户观测值得到第二预测推荐结果,最后将第一预测推荐结果和第二预测推荐结果加权融合得到用户服务推荐矩阵,通过基于随机行走模型的相似矩阵运算能够增加用户间相似度的可靠性,同时将矩阵分解的推荐结果和相似度增强后的协同推荐结果进行融合,能够提高服务推荐的预测精度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二
对应于上述实施例一提供的服务推荐方法,图3示出了本发明实施例提供的服务推荐系统的结构示意图,详述如下:
本实施例提供的服务推荐系统包括:信息采集模块301、矩阵分解模块302、相似度计算模块303、第一预测模块304、第二预测模块305和推荐模块306。
信息采集模块301,获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵。
矩阵分解模块302,与所述信息采集模块301相连,用于对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵。
相似度计算模块303,与所述矩阵分解模块302相连,用于根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵。
第一预测模块304,与所述矩阵分解模块302相连,用于根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果。
第二预测模块305,与所述相似度计算模块303相连,用于根据修正后的用户相似度矩阵以及用户的观测值,得到第二预测推荐结果。
推荐模块306,与所述第一预测模块304和所述第二预测模块305相连,用于将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送。
可选的,所述矩阵分解模块302对所述用户服务矩阵进行矩阵分解,包括:矩阵分解模块302通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解。
参见图4,示出了本发明实施例提供的服务推荐系统的结构示意图,详述如下:
矩阵分解模块302包括:预测训练单元3021、损失计算单元3022和更新单元3023。
预测训练单元3021,用于通过所述用户服务矩阵对用户关系矩阵和服务矩阵进行预测;
损失计算单元3022,用于计算所述用户服务矩阵、预测后的用户关系矩阵与预测后的服务关系矩阵乘积之间的损失函数,所述损失函数包括正则项;
更新单元3023,用于对所述损失函数分别关于用户关系矩阵和服务关系矩阵进行求导,并根据求导结果以及上一次对用户关系矩阵和服务关系矩阵的预测值对用户关系矩阵和服务关系矩阵进行更新。
可选的,相似度计算模块303包括:
相似度计算单元3031,用于根据如下公式计算用户的相似度矩阵:
其中,Simi,j表示为用户i与用户j的相似度矩阵,Ui,k表示为第i个用户的k维向量,Uj,k表示为第j个用户的k维向量。
可选的,相似度计算模块303还包括:
概率转换矩阵计算单元3032,用于利用用户位置关系参数和所述用户相似度矩阵计算各用户之间的概率转换矩阵:
其中,Ai,j表示用户i与用户j之间的位置关系参数;Adji表示用户i附近的用户;
概率转换矩阵计算单元3032,还用于将得到的各用户之间的概率转换矩阵应用到马尔科夫模型中得到稳定的概率转换矩阵:
其中,P0表示初始化单位矩阵,α表示所述用户在转换过程中和所述用户本身联系的概率。
可选的,相似度计算模块303还包括:
相似度修正单元3033,用于根据所述稳定的概率转换矩阵计算概率权重:
相似度修正单元3033,还用于根据所述概率权重去修正用户的相似度矩阵:
其中,Nj为用户i的邻近用户的数量,Um,k为用户i的邻近用户集合。
上述服务推荐系统通过信息采集模块构建用户服务矩阵,通过矩阵分解模块将用户服务矩阵进行分解,得到低维度的用户关系矩阵和服务关系矩阵,再通过相似度计算模块利用得到的低维度的用户关系矩阵计算并修正用户相似度矩阵,通过第一预测模块根据用户关系矩阵和服务关系矩阵得到第一预测推荐结果,通过第二预测模块根据修正后的用户相似度矩阵和用户观测值得到第二预测推荐结果,最后通过推荐模块将第一预测推荐结果和第二预测推荐结果加权融合得到用户服务推荐矩阵,上述服务推荐系统通过将矩阵分解的推荐结果和相似度增强后的协同推荐结果进行融合,提高了服务推荐的预测精度。
实施例三
参见图5,示出了本发明实施例提供的另一种服务推荐方法的实现流程示意图,详述如下:
步骤S501,初始化矩阵分解参数、邻近用户数和融合参数;其中矩阵分解参数包括最小收敛阈值和最大迭代次数。
步骤S502,初始化用户关系矩阵和服务关系矩阵;在进行矩阵分解时,先分别产生一个随机矩阵给用户关系矩阵和服务关系矩阵,再通过迭代的方法更新用户关系矩阵和服务关系矩阵。
步骤S503,计算用户服务矩阵、用户关系矩阵与服务关系矩阵乘积之间的损失函数;此处通过计算损失函数并使其尽量缩小以使得预测值与真实值逐渐接近。
步骤S504,根据迭代次数和损失函数判断迭代过程是否终止,当迭代过程没有终止时,执行步骤S505;当迭代过程终止时,分别执行步骤S507和步骤S508;其中,迭代终止的条件为损失函数小于最小收敛阈值或迭代次数大于最大迭代次数。
步骤S505,通过梯度下降更新用户关系矩阵和服务关系矩阵;
步骤S506,迭代次数加1;当采用梯度下降更新用户关系矩阵和服务关系矩阵后,将迭代次数进行更新,当迭代次数达到阈值时作为迭代终止的条件。
步骤S507,矩阵推荐预测;根据分解的用户关系矩阵和服务关系矩阵对用户服务进行推荐。
步骤S508,根据用户关系矩阵计算相似度;根据用户之间的关系计算所有用户之间对于使用的服务的相似程度。
步骤S509,计算随机行走模型下的稳定的概率转换矩阵;根据步骤S508得到的用户间的相似度以及用户间的位置关系计算用户间的概率转换矩阵,并将概率转换矩阵通过随机行走模型得到稳定的概率转换矩阵。
步骤S510,根据稳定的概率转换矩阵修正相似度矩阵;
步骤S511,修正后的相似度矩阵推荐预测;根据修正后的相似度矩阵以及邻近用户的观测值对用户服务矩阵进行推荐。
步骤S512,对矩阵推荐预测和相似度矩阵推荐预测加权融合;通过融合参数将矩阵推荐结果和修正后的相似度矩阵推荐结果进行融合,以充分结合两种方法的优点,提高服务推荐的精度。
步骤S513,获得用户服务推荐矩阵。
实施例四
对应于上述实施例一提供的服务推荐方法,图6示出了本发明实施例提供的服务器的示意图。如图6所示,该实施例的服务器60包括:处理器600、存储器601以及存储在所述存储器601中并可在所述处理器600上运行的计算机程序602,例如矩阵分解程序。所述处理器600执行所述计算机程序602时实现上述各个服务推荐方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器600执行所述计算机程序602时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至306的功能。
示例性的,所述计算机程序602可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器601中,并由所述处理器600执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序602在所述服务器60中的执行过程。例如,所述计算机程序602可以被分割成信息采集模块、矩阵分解模块、相似度计算模块、第一预测模块、第二预测模块和推荐模块,各模块具体功能如下:
信息采集模块,获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵。
矩阵分解模块,与所述信息采集模块相连,用于对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵。
相似度计算模块,与所述矩阵分解模块相连,用于根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵。
第一预测模块,与所述矩阵分解模块相连,用于根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果。
第二预测模块,与所述相似度计算模块相连,用于根据修正后的用户相似度矩阵以及用户的观测值,得到第二预测推荐结果。
推荐模块,与所述第一预测模块和所述第二预测模块相连,用于将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送。
所称处理器600可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器601可以是所述服务器60的内部存储单元,例如服务器60的硬盘或内存。所述存储器601也可以是所述服务器60的外部存储设备,例如所述服务器60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器601还可以既包括所述服务器60的内部存储单元也包括外部存储设备。所述存储器601用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述存储器601还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种服务推荐方法,其特征在于,包括:
获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵;通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵,包括:通过所述用户服务矩阵对用户关系矩阵和服务关系矩阵进行预测;计算所述用户服务矩阵、预测后的用户关系矩阵与预测后的服务关系矩阵乘积之间的损失函数,所述损失函数包括正则项;对所述损失函数分别关于用户关系矩阵和服务关系矩阵进行求导,并根据求导结果以及上一次对用户关系矩阵和服务关系矩阵的预测值对用户关系矩阵和服务关系矩阵进行更新;其中,损失函数关于用户关系矩阵的导数为:根据导数值对用户关系矩阵进行迭代更新的公式如下:Ui=Ui-λggradUi,其中,Qi,j为按密度采样的用户服务矩阵的训练数据,gradUi为用户关系矩阵向量Ui的梯度,λg为梯度下降的系数,损失函数采用的是真实的用户服务关系矩阵与预测时用户关系矩阵和服务关系矩阵乘积之间差值的平方值以及用户关系矩阵和服务关系矩阵的二范数;损失函数关于服务关系矩阵的导数为:根据导数值对服务关系矩阵进行迭代更新的公式如下:Sj=Sj-λggradSj;
根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵;所述根据所述用户关系矩阵计算用户相似度矩阵,具体包括:根据如下公式计算用户的相似度矩阵:其中,simi,j表示为用户i与用户j的相似度矩阵,Ui,k表示为第i个用户的k维向量,Uj,k表示为第j个用户的k维向量;所述根据所述用户相似度矩阵计算稳定的概率转换矩阵,具体包括:利用用户位置关系参数和所述用户相似度矩阵计算各用户之间的概率转换矩阵:其中,Ai,j表示用户i与用户j之间的位置关系参数;Adji表示用户i附近的用户;将得到的各用户之间的概率转换矩阵应用到马尔科夫模型中得到稳定的概率转换矩阵:其中,P0表示初始化单位矩阵,α表示所述用户在转换过程中和所述用户本身联系的概率;其中地理位置Ai,j为数据库中的信息,把相同区域的用户用同一区域编号进行标识;
根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果,根据修正后的用户相似度矩阵以及用户的观测值得到第二预测推荐结果;
将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送,包括:采用加权融合获得服务推荐矩阵的过程如下:Qi,j=λQ1i,j+(1-λ)Q2i,j,其中,λ表示为融合系数,Q1i,j表示为采用矩阵分解得到的第一预测推荐结果,Q2i,j表示为采用修正后的用户相似度矩阵得到的第二预测推荐结果。
3.一种服务推荐系统,其特征在于,包括:信息采集模块、矩阵分解模块、相似度计算模块、第一预测模块、第二预测模块和推荐模块;
信息采集模块,获取用户集中各用户对待推荐服务集中各服务的服务质量信息,构建用户服务矩阵;
矩阵分解模块,与所述信息采集模块相连,用于通过随机梯度下降的优化方法,对所述用户服务矩阵进行矩阵分解,得到用户关系矩阵和服务关系矩阵;所述矩阵分解模块包括:预测训练单元,用于通过所述用户服务矩阵对用户关系矩阵和服务关系矩阵进行预测;损失计算单元,用于计算所述用户服务矩阵、预测后的用户关系矩阵与预测后的服务关系矩阵乘积之间的损失函数,所述损失函数包括正则项;更新单元,用于对所述损失函数分别关于用户关系矩阵和服务关系矩阵进行求导,并根据求导结果以及上一次对用户关系矩阵和服务关系矩阵的预测值对用户关系矩阵和服务关系矩阵进行更新;其中,损失函数关于用户关系矩阵的导数为:根据导数值对用户关系矩阵进行迭代更新的公式如下:Ui=Ui-λggradUi,其中,Qi,j为按密度采样的用户服务矩阵的训练数据,gradUi为用户关系矩阵向量Ui的梯度,λg为梯度下降的系数,损失函数采用的是真实的用户服务关系矩阵与预测时用户关系矩阵和服务关系矩阵乘积之间差值的平方值以及用户关系矩阵和服务关系矩阵的二范数;损失函数关于服务关系矩阵的导数为:根据导数值对服务关系矩阵进行迭代更新的公式如下:Sj=Sj-λggradSj;
相似度计算模块,与所述矩阵分解模块相连,用于根据所述用户关系矩阵计算用户相似度矩阵,根据所述用户相似度矩阵计算稳定的概率转换矩阵,并根据所述稳定的概率转换矩阵修正所述用户相似度矩阵;所述相似度计算模块包括:相似度计算单元,用于根据如下公式计算用户的相似度矩阵:其中,simi,j表示为用户i与用户j的相似度矩阵,Ui,k表示为第i个用户的k维向量,Uj,k表示为第j个用户的k维向量;概率转换矩阵计算单元,用于利用用户位置关系参数和所述用户相似度矩阵计算各用户之间的概率转换矩阵:其中,Ai,j表示用户i与用户j之间的位置关系参数;Adji表示用户i附近的用户;概率转换矩阵计算单元,还用于将得到的各用户之间的概率转换矩阵应用到马尔科夫模型中得到稳定的概率转换矩阵:
第一预测模块,与所述矩阵分解模块相连,用于根据所述用户关系矩阵和所述服务关系矩阵得到第一预测推荐结果;
第二预测模块,与所述相似度计算模块相连,用于根据修正后的用户相似度矩阵以及用户的观测值,得到第二预测推荐结果;
推荐模块,与所述第一预测模块和所述第二预测模块相连,用于将所述第一预测推荐结果与所述第二预测推荐结果进行加权融合,得到用户服务推荐矩阵,并根据所述用户服务推荐矩阵进行服务推送,包括:采用加权融合获得服务推荐矩阵的过程如下:Qi,j=λQ1i,j+(1-λ)Q2i,j,其中,λ表示为融合系数,Q1i,j表示为采用矩阵分解得到的第一预测推荐结果,Q2i,j表示为采用修正后的用户相似度矩阵得到的第二预测推荐结果。
5.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1或2所述方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1或2所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484392.3A CN108563660B (zh) | 2017-12-29 | 2017-12-29 | 服务推荐方法、系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484392.3A CN108563660B (zh) | 2017-12-29 | 2017-12-29 | 服务推荐方法、系统及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563660A CN108563660A (zh) | 2018-09-21 |
CN108563660B true CN108563660B (zh) | 2022-02-01 |
Family
ID=63529523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711484392.3A Active CN108563660B (zh) | 2017-12-29 | 2017-12-29 | 服务推荐方法、系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563660B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291777B (zh) * | 2018-12-07 | 2023-04-07 | 深圳先进技术研究院 | 一种基于多组学集成的癌症亚型分类方法 |
CN110232151B (zh) * | 2019-05-22 | 2022-07-15 | 温州大学 | 一种混合概率分布检测的QoS预测模型的构建方法 |
CN110321489A (zh) * | 2019-07-11 | 2019-10-11 | 重庆邮电大学 | 一种基于改进推荐算法的智慧旅游推荐方法及系统 |
CN111738414B (zh) * | 2020-06-11 | 2023-04-07 | 北京百度网讯科技有限公司 | 推荐模型的生成、内容推荐方法、装置、设备和介质 |
CN112700067B (zh) * | 2021-01-14 | 2024-05-24 | 安徽师范大学 | 不可靠移动边缘环境下服务质量的预测方法及系统 |
CN113139574B (zh) * | 2021-03-15 | 2024-04-26 | 上海仙塔智能科技有限公司 | 识别车联网关键用户的方法、电子设备及可读存储介质 |
CN113051144B (zh) * | 2021-03-26 | 2022-02-08 | 中山大学 | 一种智能合约推荐方法及装置 |
CN115357781B (zh) * | 2022-07-13 | 2024-02-23 | 辽宁工业大学 | 基于双向矩阵的深度置信网络兴趣点推荐算法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139310A (zh) * | 2013-03-06 | 2013-06-05 | 杭州电子科技大学 | 一种基于混合协同过滤的Web服务QoS预测方法 |
CN103684850A (zh) * | 2013-11-25 | 2014-03-26 | 浙江大学 | 基于服务邻域的Web Service服务质量预测方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805672B2 (en) * | 2011-06-30 | 2014-08-12 | International Business Machines Corporation | Translation cache prediction |
CN107507073A (zh) * | 2017-09-14 | 2017-12-22 | 中国人民解放军信息工程大学 | 基于信任扩展和列表级排序学习的服务推荐方法 |
-
2017
- 2017-12-29 CN CN201711484392.3A patent/CN108563660B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139310A (zh) * | 2013-03-06 | 2013-06-05 | 杭州电子科技大学 | 一种基于混合协同过滤的Web服务QoS预测方法 |
CN103684850A (zh) * | 2013-11-25 | 2014-03-26 | 浙江大学 | 基于服务邻域的Web Service服务质量预测方法 |
Non-Patent Citations (1)
Title |
---|
Network Location-Aware Service Recommendation with Random Walk in Cyber-Physical Systems;Yuyu Yin 等;《Sensor》;20170908;第17卷(第9期);第9-12页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108563660A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563660B (zh) | 服务推荐方法、系统及服务器 | |
Chau et al. | On stochastic gradient langevin dynamics with dependent data streams: The fully nonconvex case | |
Picchini | Inference for SDE models via approximate Bayesian computation | |
CN111079780B (zh) | 空间图卷积网络的训练方法、电子设备及存储介质 | |
CN110659678B (zh) | 一种用户行为分类方法、系统及存储介质 | |
CN110135681B (zh) | 风险用户识别方法、装置、可读存储介质及终端设备 | |
CN108605305A (zh) | 用于预测网络距离的方法和装置 | |
CN110659394A (zh) | 基于双向邻近度的推荐方法 | |
CN105488767A (zh) | 一种基于最小二乘优化的压缩感知图像快速重建方法 | |
CN106296733B (zh) | 一种图像中目标跟踪方法 | |
CN111260056B (zh) | 一种网络模型蒸馏方法及装置 | |
CN116785967B (zh) | 用于电子级六氟磷酸锂制备的自动配料系统 | |
Fatone et al. | The analysis of real data using a multiscale stochastic volatility model | |
CN115795005A (zh) | 一种融合对比学习去噪优化的会话推荐方法及装置 | |
CN113723006B (zh) | 一种基于ls-svm的单台站地球变化磁场建模预测方法及系统 | |
CN116258923A (zh) | 图像识别模型训练方法、装置、计算机设备和存储介质 | |
CN115544307A (zh) | 基于关联矩阵的有向图数据特征提取与表达方法和系统 | |
CN111125541B (zh) | 面向多用户的可持续多云服务组合的获取方法 | |
Boudier et al. | DAN–An optimal Data Assimilation framework based on machine learning Recurrent Networks | |
CN115238134A (zh) | 用于生成图数据结构的图向量表示的方法及装置 | |
CN110473210B (zh) | 基于置信度传播的图像分割方法和装置 | |
Cipriani et al. | From NeurODEs to AutoencODEs: a mean-field control framework for width-varying neural networks | |
CN113393250A (zh) | 一种信息处理方法及装置、存储介质 | |
CN113468604A (zh) | 基于人工智能的大数据隐私信息解析方法及系统 | |
Schwab et al. | Deep solution operators for variational inequalities via proximal neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |