一种基于用户社交信息和服务配置信息的服务组合推荐方法与流程

文档序号:18740503发布日期:2019-09-21 01:42阅读:167来源:国知局
一种基于用户社交信息和服务配置信息的服务组合推荐方法与流程

本发明涉及服务计算领域,特别是一种基于用户社交信息和服务配置信息的服务组合推荐方法。



背景技术:

在开源的服务库中,存在着大量由不同开发者开发的服务,这些服务可以提供不同的功能、完成不同的目标。对于一个用户而言,在其计划开发一个项目时,相比于自己从零开始开发,合理的运用已有的服务可以帮助其大大减少开发的成本。但是,如何在规模庞大的服务库中定位用户所需服务并合理地将候选服务进行组合是一个重要的问题。首先,对于用户而言,每个用户的领域专业度是不同的,他们对自身需求的理解深浅不一,这就为选择候选服务带来了困难。其次,单一服务的功能往往不能直接满足用户的复杂需求,这就需要将若干实现不同需求子功能的服务进行组合。基于服务的配置信息进行推荐是常用的一种服务组合推荐方法,根据服务的配置信息可以获取服务的功能描述,从而根据服务功能与用户需求的相似度选择候选服务。随着服务库不断发展,在服务库中除了服务配置信息外,还存在大量的用户社交信息,这些信息可以侧面反映用户创建的服务的信息,在进行服务组合推荐时将社交信息纳入考虑的范围内会提高推荐的效率。因此,如何合理的利用社交信息和配置信息进行服务组合推荐是一个重要的问题。



技术实现要素:

针对现有技术中存在的问题,本发明提供了一种实现了服务组合的合理构建,从而使得推荐的服务组合更满足用户的需求的基于用户社交信息和服务配置信息的服务组合推荐方法。

本发明的目的通过以下技术方案实现。

一种基于用户社交信息和服务配置信息的服务组合推荐方法,步骤包括:

1)基于服务的配置文件,利用主题模型构建方法确定每个服务的主题,利用服务库中服务组合的被浏览和被下载的次数计算每个服务组合的信誉度,并将该信誉平均共享给该组合中的每个服务,从而活得每个单一服务的信誉度;

2)基于用户的描述信息,利用主题模型构建方法确定每个用户的主题,利用用户的平台信誉度和用户的贡献计算用户的信誉度;

3)构建服务知识图谱,其中顶点为服务和用户,边为服务和服务的调用关系,用户和用户的好友关系,用户和服务的创建关系,基于服务的功能进行社区划分,将每个社区的中心点作为该社区的代表节点;

4)、构建服务组合的正负规则,根据正负规则,计算影响两个服务链接的综合影响;

5)根据用户的需求在服务知识图谱中找到候选服务,计算服务间的综合影响,构建服务组合,从而推荐给用户。

所述步骤1)具体为:基于服务的配置文件和包含该服务的服务组合的描述和标签,利用LDA模型技术构建每个服务的主题,利用服务库中服务组合的浏览下载的次数和其他用户对其的评级计算服务组合的信誉度,其中,为该服务组合被其他用户被浏览的次数,为该服务组合被其他用户下载的次数,为其他用户给该服务组合的评定等级,fp为一个单调递增函数。将该信誉平均共享给该组合中的每个服务,从而获得每个单一服务的信誉度,

所述步骤2)具体为:基于用户的基本描述信息,即其研究领域、兴趣领域和标签信息,利用LDA技术构建每个用户的主题,通过综合用户的平台信誉度和贡献度就得到用户的综合信誉度crdau=fcrd(Cau,{pau}),其中,fcrd是一个单调递增函数,Cau是开发者的信用,pau是该开发者开发的服务组合的信誉度。

所述步骤3)具体为:构建服务知识图谱SKG=(V,E),其中顶点V=(S,A)为服务和用户的集合,边为服务和服务的调用关系、用户和用户的好友关系、用户和服务的创建关系三种关系的集合,其中,服务集合S={s1,s2,…,ssn},集合中的每个si都是服务库中存在的一个服务,si=(sid,snm,sdsc,sr,st,sau).其中sid是服务的唯一标识;snm,是服务的名字;sdsc是服务的主题向量,根据与服务相关的一系列功能描述构建,用来表述该服务的功能;sr是服务的信誉度,表示该服务的可信程度,体现了该服务的质量;st是该服务的创建时间;sau是该服务的开发者。开发者集合A={a1,a2,…,aAN},集合中的每个ai都是服务库中的一个开发者,ai=(aid,anm,adsc,ar,Af)。其中aid是开发者的唯一标识,anm是开发者的姓名,ades是开发者研究领域描述的主题向量,ar是开发者的信誉度,Af是开发者的好友集合。基于服务的功能利用Fast Unfolding算法进行社区划分,采用模块度的概念,利用启发式的贪心算法,每次合并社区时选取能使模块度最大化的合并策略,在社区划分完成后,将每个社区的中心点作为该社区的代表节点。

所述步骤4)具体为:构建服务组合的正负规则,正规则会促使两个服务进行组合,而负规则会阻止两个服务进行组合,根据正负规则,计算影响两个服务链接的综合影响,α、β、γ是每个影响因素的重要程度,α+β+γ=1,服务Si在选择可以组合的另一个服务Sj,两服务间的综合影响Uij=αstij+βCreditij+γNRij if Sa=Sf=1。公式中具体每个字符的含义如下。每个服务的创建时间到当前时间的差值是它的创建时长。在整个时长内,若两个服务都未曾共同出现在同一个服务组合内,这就说明它们间可以组合的可行性极低,它们服从负规则Stij=now-max(sti,stj),其中,now是当前时间,sti是服务Si的创建时间,stj是服务Sj的创建时间。服务的信誉度也会对服务组合造成影响。对于两个信誉度都很高的服务,它们从未合作过,这就说明它们可以合作的可行系极低,它们服从负规则Creditij=sri×srj,其中,sri是服务Si的信誉度,srj是服务Sj的信誉度。同时,上述两个规则组合后也是负规则。对于两个信誉度好、创建时间久的服务,它们彼此组合的可行性极低,服从负规则NRij=-(timeij*Creditij),NRij的值越大,表示服务Si与服务Sj可以进行组合的可行性越低。Sa表示服务Si与服务Sj是否是同一作者,Sf表示服务Si与服务Sj的作者是否为好友。

所述步骤5)具体为:

5.1)对于用户需求中的第一个子功能,计算它与各个社区代表节点的相似度,定位相关社区;

5.2)计算该社区中每个服务与该子功能的相似度,选择出相似度最高的服务;

5.3)对于用户需求中的第i个子功能(i≥2),计算它与各个社区代表节点的相似度,定位相关社区,将同一个用户创建的或者该用户研究领域相似的好友创建的服务加入组合候选集中;

5.4)根据步骤4中的综合影响计算公式计算各服务间的综合影响,按综合影响正向排序;

5.5)将排名前5的服务加入推荐集合。重复步骤5.3和5.4,直到用户需求的最后的子功能。

相比于现有技术,本发明的优点在于:本发明用户社交信息的运用,可以对服务的信息进行补充。用户的信誉度越高说明其创建的服务的可信度越高;用户的兴趣领域可以反应其创建的服务的所属领域;用户的好友信息可以反应两个服务之间的相关性,两个兴趣领域相似的是好友关系的用户创建的服务之间的相关性可能很高。在服务组合推荐工作中,从服务的配置文件中可以获得服务的基本信息,而这些社交信息可以对服务的基本信息和服务间的潜在关联性进行补充,从而获得更好的服务组合推荐效果。

附图说明

图1是本发明的流程图。

图2是实施例中按照本发明进行处理后的服务知识图谱的部分展示。

具体实施方式

下面结合说明书附图和具体的实施例,对本发明作详细描述。

如图1所示,本发明所述的基于用户的社交信息和服务的配置信息进行服务组合推荐方法,其包括以下步骤,以下结合图2来阐述本发明一个具体实施例:

步骤1、基于服务的配置文件和包含该服务的服务组合的描述和标签,利用LDA模型技术构建每个服务的主题。服务的配置文件描述的是服务的基本功能,而服务组合的信息是对该服务新功能的补充。对于每个服务组合,服务库中都包含它被浏览下载的信息和其他用户对其进行的评级,这些信息可以反应出一个服务组合的可信度。一个浏览次数和下载次数多、评定级别越高的服务,它被用户真实使用的可能性就越高,它就越可信。因此利用服务库中服务组合的浏览下载的次数和其他用户对其的评级计算服务组合的信誉度,其中,为该服务组合被其他用户被浏览的次数,为该服务组合被其他用户下载的次数,为其他用户给该服务组合的评定等级,fp为一个单调递增函数。将该信誉平均共享给该组合中的每个服务,从而获得每个单一服务的信誉度,

步骤2、基于用户的基本描述信息,即其研究领域、兴趣领域和标签信息,利用LDA技术构建每个用户的主题。对于每个用户而言,服务库中包含其平台信誉度,该信誉度可以反应该用户的可信度。同时,一个用户的信誉度还可以通过该用户的贡献度来反应,一个创建了大量信誉度高的服务组合的用户,其可信度越高。因此,通过综合用户的平台信誉度和贡献度就得到用户的综合信誉度crdau=fcrd(Cau,{pau}),其中,fcrd是一个单调递增函数,Cau是开发者的信用,pau是该开发者开发的服务组合的信誉度;

步骤3、构建服务知识图谱SKG=(V,E),其中顶点V=(S,A)为服务和用户的集合,边为服务和服务的调用关系、用户和用户的好友关系、用户和服务的创建关系三种关系的集合。如图2所示,红色节点为用户节点,蓝色节点为服务节点,边isInvoke为调用关系,边isDevelop为创建关系,边isFriend为好友关系。其中,服务集合S={s1,s2,…,ssn},集合中的每个si都是服务库中存在的一个服务,si=(sid,snm,sdsc,sr,st,sau).其中sid是服务的唯一标识;snm,是服务的名字;sdsc是服务的主题向量,根据与服务相关的一系列功能描述构建,用来表述该服务的功能;sr是服务的信誉度,表示该服务的可信程度,体现了该服务的质量;st是该服务的创建时间;sau是该服务的开发者。开发者集合A={a1,a2,…,aAN},集合中的每个ai都是服务库中的一个开发者,ai=(aid,anm,adsc,ar,Af)。其中aid是开发者的唯一标识,anm是开发者的姓名,ades是开发者研究领域描述的主题向量,ar是开发者的信誉度,Af是开发者的好友集合。基于服务的功能利用Fast Unfolding算法进行社区划分,采用模块度的概念,利用启发式的贪心算法,每次合并社区时选取能使模块度最大化的合并策略,在社区划分完成后,将每个社区的中心点作为该社区的代表节点;

步骤4、构建服务组合的正负规则,正规则会促使两个服务进行组合,而负规则会阻止两个服务进行组合。对于当前的服务s而言,它会更倾向于选择1)主题相似度高的服务;2)信誉度好的服务;3)同一个开发者创建的服务;4)创建开发者研究领域相似的好友创建的服务进行组合。对于当前的服务s而言,它不倾向于选择:1)创建时间长但一直未曾合作的服务;2)信誉度好但一直未曾合作过的服务进行组合。根据正负规则,计算影响两个服务链接的综合影响,α、β、γ是每个影响因素的重要程度,α+β+γ=1。服务Si在选择可以组合的另一个服务Sj,首先筛选出由同一个开发者或者是由开发者好友创建的服务,以保证两个服务的主题相关性,接着选择出主题相似度更高、信誉度更好、且负影响较小的服务来进行组合Uij=αstij+βCreditij+γNRij if Sa=Sf=1;公式中具体每个字符的含义如下。每个服务的创建时间到当前时间的差值是它的创建时长。在整个时长内,若两个服务都未曾共同出现在同一个服务组合内,这就说明它们间可以组合的可行性极低,它们服从负规则Stij=now-max(sti,stj),其中,now是当前时间,sti是服务Si的创建时间,stj是服务Sj的创建时间。服务的信誉度也会对服务组合造成影响。对于两个信誉度都很高的服务,它们从未合作过,这就说明它们可以合作的可行系极低,它们服从负规则Creditij=sri×srj,其中,sri是服务Si的信誉度,srj是服务Sj的信誉度。同时,上述两个规则组合后也是负规则。对于两个信誉度好、创建时间久的服务,它们彼此组合的可行性极低,服从负规则NRij=-(timeij*Creditij),NRij的值越大,表示服务Si与服务Sj可以进行组合的可行性越低。Sa表示服务Si与服务Sj是否是同一作者,Sf表示服务Si与服务Sj的作者是否为好友。

步骤5、根据用户的需求在服务知识图谱中找到候选服务。用户的需求包含若干子功能,对于用户需求中的每个子功能,计算它和各个社区的代表节点的相似度,定位相关社区。在相关社区内,选择出相似度高于阈值的服务作为候选服务。根据正负规则计算各候选服务间的综合影响,找到综合影响高的服务构建服务组合,从而推荐给用户,算法如下:

5.1、对于用户需求中的第一个子功能,计算它与各个社区代表节点的相似度,定位相关社区;

5.2、计算该社区中每个服务与该子功能的相似度,选择出相似度最高的服务;

5.3、对于用户需求中的第i个子功能(i≥2),计算它与各个社区代表节点的相似度,定位相关社区,将同一个用户创建的或者该用户研究领域相似的好友创建的服务加入组合候选集中;

5.4、计算各服务间的综合影响Uij=αstij+βCreditij+γNRij if Sa=Sf=1,根据综合影响正向排序;

5.5、将排名前5的服务加入推荐集合。重复步骤5.3和5.4,直到用户需求的最后的子功能。

本发明首先根据服务的配置信息和其加入的服务组合的描述信息确定服务的主题,并且根据服务库中的统计信息计算了每个服务的信誉度;然后根据用户的基本信息确定了用户的主题,根据平台信誉和贡献值计算了用户的信誉度;接着构建了服务知识图谱,根据历史服务组合信息和用户社交信息找到服务间的显性关系和隐形关系,并根据服务的功能进行了社区划分;然后构建了服务组合时的正负规则,根据组合时积极影响因素和消极影响因素的综合影响确定服务组合的可能性;最后基于服务知识图谱,根据用户的需求,通过计算服务间的综合影响构建服务组合推荐给用户。本发明实现了根据用户需求进行服务组合推荐,通过社交信息补充服务间的隐性关系和综合考虑服务组合的正负规则,最终提高了服务组合的推荐效率。

以上是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均属于发明技术方案的范围内。

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