一种服务推荐系统及其训练方法

文档序号:35932354发布日期:2023-11-05 10:05阅读:21来源:国知局
一种服务推荐系统及其训练方法

本发明涉及服务推荐领域,具体来说,涉及基于数据增强的高阶图自编码器服务推荐领域,更具体地说,涉及一种服务推荐系统及及其训练方法。


背景技术:

1、服务计算的快速发展促使因特网(internet)上出现了大量的web服务应用和应用编程接口(简称api)。随着web 2.0技术的发展,一种新型的web服务应用mashup在因特网上逐渐流行,mashup是集成了多个应用编程接口的轻量级的web服务应用,各种应用编程接口的大量涌现为程序员开发web服务应用带来了广泛的选择范围。而面对大量的web服务应用,大部分用户由于缺乏足够的经验或者能力不能选择合适的服务,因此,为用户推荐一些适合自身需求的web服务应用成为了当务之急。为了应对web服务应用数量快速增长带来的诸多挑战,服务推荐系统技术应运而生,该系统能够从用户历史行为等数据中挖掘分析用户的兴趣偏好,并向用户推荐合适的信息和内容,进而满足用户的个性化需求,同时也是解决信息过载问题的重要途径。然而,由于用户对web服务应用的历史信息非常稀疏,导致计算相似度不太准确,因此如何提高推荐的精度仍然是需要解决的关键技术之一。

2、根据推荐过程中使用的信息类型,可以将服务推荐系统技术大致分为以下三类:基于内容的服务推荐、基于协同过滤的服务推荐以及混合型服务推荐。其中,基于协同过滤是推荐系统中最常用的方法,该推荐方法包括基于用户的协同过滤和基于物品的协同过滤两种策略,是工业界和学术界广泛应用研究的推荐方法,这类方法是从用户的历史交互记录中挖掘用户的兴趣和需求。许多现有的基于协同过滤的模型使用矩阵分解(matrixfactorization,mf)方法将web服务应用或应用编程接口的潜在特征表示为向量,然后将web服务应用-应用编程接口调用建模为它们的向量的内积。矩阵分解方法通常要求web服务应用和应用编程接口之间有足够的交互数据才能进行准确的推荐。而在实际应用中,web服务应用和应用编程接口之间的交互数据往往是稀疏的,因此,导致推荐结果不准确。同时,矩阵分解方法对于新web服务应用或新应用编程接口的推荐效果较差,这也是因为对于没有足够交互数据的新web服务应用或新应用编程接口,很难准确地估计他们的偏好或特征。

3、近年来,随着深度神经网络(deep neural networks,dnn)的流行,人们越来越关注在推荐任务中应用深度学习技术,研究者将dnn分量引入到矩阵分解中,取得了上级的预测性能。然而,现有的大多数dnn的协同过滤服务推荐方法只考虑了web服务应用和应用编程接口之间的直接连接关系(即一阶连通性),而没有考虑它们之间的内在关系(即高阶连通性),将web服务应用和应用编程接口的调用对视为独立的数据实例,即所谓的信息孤岛,从而忽略了它们调用之间的内在关系,这将产生数据稀疏现象。因此,在分析和推荐过程中会因为数据稀疏而产生数据缺失,采样不均衡等问题,进而造成泛化能力较差,训练效果不佳,最终导致推荐出现偏差。

4、综上所述,当web服务应用和应用编程接口交互行为数据和历史行为数据较少时,现有的基于协同过滤的模型使用矩阵分解(matrix factorization,mf)方法的推荐结果不准确。进一步地,现有的将dnn分量引入到矩阵分解中的协同过滤服务推荐方法只考虑了web服务应用和应用编程接口之间的直接连接关系(即一阶连通性),而没有考虑它们之间的内在关系(即高阶连通性),从而忽略了它们调用之间的内在关系,这将产生数据稀疏现象。因此,在分析和推荐过程中会因为数据稀疏而产生数据缺失,采样不均衡等问题,进而造成泛化能力较差,训练效果不佳,最终导致推荐出现偏差。因此,亟需一种能够为用户推荐更适合的服务推荐系统。


技术实现思路

1、因此,本发明的目的在于克服上述现有技术的缺陷,提供一种服务推荐系统及其训练方法。

2、本发明的目的是通过以下技术方案实现的:

3、根据本发明的第一方面,提供一种服务推荐系统,用于基于web服务应用与应用编程接口的历史交互数据为目标web服务应用推荐应用编程接口,所述系统包括:

4、数据预处理模块,用于基于所述历史交互数据获得目标web服务应用对应的预设多阶连通性特征向量以及每个应用编程接口对应的预设多阶连通性特征向量;

5、自编码模块,其包括预设多阶web服务应用自编码器和预设多阶应用编程接口自编码器,其中,每一阶web服务应用自编码器用于对所述目标web服务应用对应阶数的连通性特征向量进行自编码,每一阶应用编程接口自编码器用于分别对每一个应用编程接口对应阶数的连通性特征向量进行自编码;

6、融合模块,用于将所述自编码模块中的目标web服务应用对应的连通性特征向量经所述多阶web服务应用自编码器编码的编码结果和每一个应用编程接口对应的连通性特征向量经所述多阶应用编程接口自编码器编码的编码结果分别进行融合得到目标web服务应用与每一个应用编程接口的融合特征;

7、推荐模块,用于基于目标web服务应用与每一个应用编程接口的融合特征获得所述目标web服务应用与该应用编程接口的交互得分预测值,并基于所有交互得分预测值按照预设标准得到所述目标web服务应用的应用编程接口推荐列表。

8、在本发明的一些实施例中,所述历史交互数据为多个web服务应用与所有应用编程接口的交互矩阵,所述交互矩阵中包括多个历史交互关系列表,每一历史交互关系列表指示其对应web服务应用与所有应用编程接口的历史交互关系;

9、其中,所述数据预处理模块被配置为:以目标web服务应用与所有应用编程接口的历史交互关系作为目标web服务应用的一阶连通性特征向量,对交互矩阵中目标web服务应用与所有应用编程接口的历史交互关系进行预处理以获得所述目标web服务应用的预设多阶连通性特征向量,以及以每一个应用编程接口与所有web服务应用的历史交互关系作为每一个应用编程接口的一阶连通性特征向量,对交互矩阵中每一个应用编程接口与所有web服务应用的历史交互关系进行预处理以获得每一个应用编程接口对应的预设多阶连通性特征向量。

10、在本发明的一些实施例中,所述数据预处理模块被配置为采用余弦相似性函数对交互矩阵中目标web服务应用与所有应用编程接口的历史交互关系进行预处理以获得所述目标web服务应用的预设多阶连通性特征向量,以及采用余弦相似性函数对交互矩阵中每一个应用编程接口与所有web服务应用的历史交互关系进行预处理以获得所述每一个应用编程接口对应的预设多阶连通性特征向量。

11、在本发明的一些实施例中,所述数据预处理模块被配置为在获得所述目标web服务应用的预设多阶连通性特征向量以及所述每一个应用编程接口对应的预设多阶连通性特征向量后,选取目标web服务应用以及应用编程接口对应的每一阶连通性特征向量对应的预设个数的特征向量。

12、在本发明的一些实施例中,所述预设多阶包括一阶、二阶和四阶;其中,二阶连通性特征向量对应的预设个数为2,4阶连通性特征向量对应的预设个数为4。

13、在本发明的一些实施例中,所述自编码模块包括:

14、一个一阶web服务应用自编码器、两个二阶web服务应用自编码器以及四个四阶web服务应用自编码器;以及,

15、一个一阶应用编程接口自编码器、两个二阶应用编程接口自编码器以及四个四阶应用编程接口自编码器。

16、在本发明的一些实施例中,所述融合模块被配置为采用如下方式将所述自编码模块中的目标web服务应用对应的连通性特征向量经所述多阶web服务应用自编码器编码的编码结果和每一个应用编程接口对应的连通性特征向量经所述多阶应用编程接口自编码器编码的编码结果分别进行融合得到目标web服务应用与每一个应用编程接口的融合特征:

17、

18、i∈(1,m),j∈(1,n),z≥1

19、

20、

21、其中,m为web服务应用的个数,n为应用编程接口的个数,z为we b服务应用以及应用编程接口要探索的最高阶数的控制参数,ω为加权平均函数,表示目标服务应用为第i个web服务应用时其对应的一阶、二阶、…、2z阶连通性特征向量经对应的web服务自编码器进行编码后的结果,θi为第i个web服务应用对应的连通性特征向量权重序列,为第i个目标web服务应用对应的2z阶连通性特征向量的权重,表示第j个应用编程接口对应的一阶、二阶、…、2z阶连通性特征向量经对应的应用编程接口自编码器进行编码后的结果,θj为第j个应用编程接口对应的连通性特征向量权重序列,为第j个应用编程接口对应的2z阶连通性特征向量的权重。

22、在本发明的一些实施例中,所述融合模块被配置为采用如下方式获得所述第i个web服务应用2z阶连通性特征向量的权重以及所述第j个应用编程接口2z阶连通性特征向量的权重:

23、

24、

25、其中,表示第i个web服务应用对应的2z阶连通性特征向量的权重,|ni|表示第i个web服务应用对应的一阶连通性特征向量个数,表示第i个web服务应用对应的2z阶连通性特征向量的个数,表示第j个应用编程接口对应的2z阶连通性特征向量的权重,|nj|表示第j个应用编程接口对应的一阶连通性特征向量的个数,表示第j个应用编程接口对应的2z阶连通性特征向量的个数。

26、在本发明的一些实施例中,所述推荐模块被配置为基于目标web服务应用与每一个应用编程接口的融合特征,采用如下方式获得所述目标web服务应用与所有应用编程接口的交互得分预测值:

27、

28、其中,为将所述自编码模块中的第i个web服务应用对应的每一阶web服务应用自编码器的编码结果和第j个应用编程接口对应的每一阶应用编程接口自编码器的编码结果进行融合得到的融合特征,θmlp为推荐模块中的参数设置。

29、在本发明的一些实施例中,所述web服务应用为mushup。

30、根据本发明的第二方面,提供一种用于上述实施例的服务推荐系统的训练方法,所述方法包括:

31、s1、获取web服务应用与应用编程接口的历史交互数据,并基于所述历史交互数据获得目标web服务对应的预设多阶连通性特征向量以及每个应用编程接口对应的预设多阶连通性特征向量;

32、s2、以每一个web服务应用为目标web服务应用,将其对应的预设多阶连通性特征向量,以及每一个应用编程接口对应的预设多阶连通性特征向量为作为训练样本,并将每一个web服务应用与所有应用编程接口的交互得分真实值作为标签;

33、s3、利用所述训练样本和标签对所述服务推荐系统进行训练,并以最小化每一个web服务应用与所有应用编程接口的交互预测得分损失更新所述推荐系统的参数。

34、在本发明的一些实施例中,在所述步骤s3中,所述交互预测得分损失为:

35、

36、其中,rij为第i个web服务应用与第j个应用编程接口的交互得分真实值,为第i个web服务应用与第j个应用编程接口的交互得分预测值。

37、根据本发明的第三方面,提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现第二方面所述方法的步骤。

38、与现有技术相比,本发明的优点在于:

39、本发明基于目标web服务应用与所有应用编程接口的交互关系,对目标web服务应用对应的一阶连通性特征向量以及应用编程接口对应的一阶连通性特征向量进行预处理得到对应的预设多阶连通性特征向量,还有基于自编码器的高阶协同过滤推荐框架的提出,将增强后的数据馈送到框架对应的自编码器之中,两者相结合,实现了一种基于数据增强的高阶图自编码器服务推荐方法,弥补了传统推荐方法中数据稀疏的问题,考虑了web服务应用和应用编程接口的潜在信息,探索了调用之间的内在关系(高阶连通性),提升了服务推荐效果。

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