本发明涉及计算机应用技术领域,具体是一种基于群分类的协同过滤web服务推荐方法及系统。
背景技术:
随着web服务以及互联网技术的迅猛发展,越来越多具有相同或相似功能的web服务出现在网络中。这种现象一方面给了用户更多的选择,另一方面用户不得不花费大量的时间以及精力来寻找真正满足自己需求的web服务。就算找到了满足用户功能需求的web服务,但是该web服务的非功能属性(qos属性)也不一定满足,即便是web提供者声明的非功能属性(qos属性)满足用户需求,该用户感受到的web服务的qos属性值很可能与web服务提供者声明的qos属性值不同。因此,如何从大量的具有相同或者类似功能的web服务中选出真正满足用户需求的web服务变得越来越重要。
协同过滤技术的出现为上述问题提供了一个良好的技术途径。协同过滤技术利用一个n×m用户-web服务矩阵mu,s记录用户调用某个web服务是观察到的qos属性值。其中n代表该web服务推荐系统中已经注册的用户数量,m代表该web服务推荐系统中已经注册的web服务数量。矩阵中的项
由于web服务以及互联网技术的迅猛发展,导致网络中的web服务数量及用户数量极其膨大,最终导致n×m用户-web服务矩阵mu,s变得非常稀疏。例如当web服务推荐系统中的web服务数量达到几百万时。如果每个用户平均调用过100个web服务,则的n×m用户-web服务矩阵mu,s的数据密度将小于1%。由于基于内存的协同过滤技术无法克服数据稀疏性问题,导致其无法胜任大型的web服务推荐平台。现有的基于模型的协同过滤技术,例如基于svd降维的协同过滤技术,由于模型的更新时间复杂度非常大,导致其也无法胜任大型web服务推荐平台。这是因为web服务推荐平台不时有新的用户及新的web服务加入且不时有用户调用曾经调用过的web服务导致n×m矩阵mu,s的值不断被更新,而所有这些行为都将导致基于模型的协同过滤技术中的模型需要被及时更新。如果不及时更新将导致推荐质量下降,这将极大的降低用户的体验。而现有的基于模型的协同过滤技术的模型更新时间复杂度都非常高。例如,基于svd降维的协同过滤技术中模型的更新时间复杂度为o(f2m+f2n),其中f是算法中的因子数量,n和m分别表示用户数量及web服务数量。因此,现有的基于模型的协同过滤技术也无法胜任大型web服务推荐平台。
技术实现要素:
本发明的目的在于提供一种基于群分类的协同过滤web服务推荐方法及系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于群分类的协同过滤web服务推荐方法,包括如下步骤:
步骤一:利用已有的技术对用户群及web服务群进行分类;
步骤二:将n×m用户-web服务矩阵mu,s转换成n×clum用户-web服务类mu,sc矩阵;
步骤三:利用n×clum用户-web服务类mu,sc矩阵计算用户与活动用户之间的类似度,再根据计算结果寻找类似用户,并且根据类似用户记录的目标web服务qos属性值预测活动用户调用目标web服务可能的qos属性值。
作为本发明进一步的方案:步骤一中,所述用户群是指具有某些共同特征的用户所形成的集合;所述web服务群是指具有某些共同特征的web服务所形成的集合。
作为本发明进一步的方案:所述n×m用户-web服务矩阵,是指一般的web服务推荐平台用于记录用户对调用过的web服务的qos属性值进行记录的数据结构。
作为本发明进一步的方案:步骤二中,转换方法是指:
作为本发明进一步的方案:步骤三中,计算用户之间类似度的方法是指:
一种基于群分类的协同过滤web服务推荐系统,包括:用户输入处理模块、寻找类似用户模块、推荐模块、预测模块、转换模块、用户-web服务库、用户-web服务类库、用户类库、uddi注册中心及web服务类库;
所述用户输入处理模块,是指负责处理用户的输入信息的功能模块;
所述寻找类似用户模块,包括用户类似度计算单元与类似用户选择单元,类似度计算单元与类似用户选择单元相连;所述类似度计算单元,用于负责计算用户之间的类似度;类似用户选择单元,用于根据类似度计算单元的结果选择合适的用户作为类似用户;
所述预测模块,用于负责根据类似用户模块获得的类似用户来预测活动用户观察到的web服务的可能的qos属性值;
所述推荐模块,用于利用预测模块的结果及活动用户的输入信息向活动用户推荐恰当的web服务;
所述转换模块,用于负责根据web服务类库及用户-web服务库的信息获得用户-web服务类库;
所述用户-web服务库,用于负责保存用户的购买记录及对购买web服务的评价;
所述用户-web服务类库,用于负责保存用户对某一类web服务的平均评价;
所述用户类库,用于负责保存对用户的分类信息;
所述uddi注册中心,用于发布及查找web服务的功能模块;
所述web服务类库,用于负责保存对web服务的分类信息。
作为本发明进一步的方案:所述推荐模块与用户输入处理模块、预测模块、uddi注册中心以及用户-web服务库相连。
作为本发明进一步的方案:所述转换模块与用户-web服务类库、web服务类库及用户-web服务库相连。
作为本发明进一步的方案:所述预测模块与寻找类似用户模块、推荐模块及用户-web服务库相连。
作为本发明再进一步的方案:所述寻找类似用户模块与预测模块、用户类库以及用户-web服务类库相连。
与现有技术相比,本发明的有益效果是:
(1)高可扩展性:由于本方法寻找类似的用户只在活动用户所在的用户群中寻找,而不需要计算系统中的每一个用户与活动用户的类似度。不管系统中的用户数量增加多少,只要合理的对用户进行分类,保持一个用户群中的用户数量,就能保证推荐系统的反应速度。
(2)能克服数据稀疏性问题:由于现在的大型web服务推荐平台中包含的web服务数量十分巨大,导致了用户-web服务矩阵非常稀疏,本方法通过将用户-web服务矩阵转换成用户-web服务类矩阵,极大的提高了数据的密度,使得本算法可以克服数据稀疏性的问题。
(3)模型更新时间复杂度低:由于当前的web服务推荐平台中不时的有新用户及新服务加入,且不时有用户重复调用已经调用过的web服务,导致用户-web服务矩阵中的值不断变化。由于传统的基于模型的协同过滤技术中的模型更新时间复杂度非常高,导致这些技术都无法胜任当前的web服务推荐平台。而本方法中用到的模型用户-web服务类矩阵的更新时间复杂度仅为
附图说明
图1为一种基于群分类的协同过滤web服务推荐方法中的步骤二的转换示意图。
图2为一种基于群分类的协同过滤web服务推荐系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中,一种基于群分类的协同过滤web服务推荐方法,包括如下步骤:
步骤一:利用已有的技术对用户群及web服务群进行分类;
步骤一中,所述用户群是指具有某些共同特征的用户所形成的集合,例如,它们可以是根据用户的ip地址所属的as来进行分类,也可以利用k-means方法划分的类;所述web服务群是指具有某些共同特征的web服务所形成的集合,例如,它们可以是根据web服务的ip地址所属的as来进行分类,也可以利用k-means方法划分的类。
步骤二:将n×m用户-web服务矩阵mu,s转换成n×clum用户-web服务类mu,sc矩阵;
所述n×m用户-web服务矩阵,是指一般的web服务推荐平台用于记录用户对调用过的web服务的qos属性值进行记录的数据结构。
所述n×clum用户-web服务类矩阵,是指根据步骤一所得的web服务类以及n×m用户-web服务矩阵所得到的一个全新的数据结构。
步骤二中,转换方法是指:
步骤三:利用n×clum用户-web服务类mu,sc矩阵计算用户与活动用户之间的类似度,再根据计算结果寻找类似用户,并且根据类似用户记录的目标web服务qos属性值预测活动用户调用目标web服务可能的qos属性值。
所述活动用户,是指需要web服务推荐平台推荐web服务的用户。
所述目标web服务,是指需要被预测qos属性值的那个用户。
步骤三中,计算用户之间类似度的方法是指:
所述类似用户,是指那些与活动用户处于同一个用户群中,且根据用户类似度计算公式算出的类似度较高的那些用户。
参阅图2,一种基于群分类的协同过滤web服务推荐系统,包括:用户输入处理模块、寻找类似用户模块、推荐模块、预测模块、转换模块、用户-web服务库、用户-web服务类库、用户类库、uddi注册中心及web服务类库;
所述用户输入处理模块,是指负责处理用户的输入信息的功能模块;例如用户对web服务的功能属性需求以及qos属性的要求等。
所述寻找类似用户模块,包括用户类似度计算单元与类似用户选择单元,类似度计算单元与类似用户选择单元相连;所述类似度计算单元,用于负责计算用户之间的类似度,类似度计算单元利用相似度法计算所得到的用户之间的类似度;类似用户选择单元,用于根据类似度计算单元的结果选择合适的用户作为类似用户;
所述预测模块,用于负责根据类似用户模块获得的类似用户来预测活动用户观察到的web服务的可能的qos属性值;
所述推荐模块,用于利用预测模块的结果及活动用户的输入信息向活动用户推荐恰当的web服务;
所述转换模块,用于负责根据web服务类库及用户-web服务库的信息获得用户-web服务类库,所述的转换模块是指利用转换的计算方法对原始的用户-web服务矩阵进行处理的功能模块;
所述用户-web服务库,用于负责保存用户的购买记录及对购买web服务的评价;
所述用户-web服务类库,用于负责保存用户对某一类web服务的平均评价;所述的用户-web服务类库是指存储用户-web服务类信息的功能模块。
所述用户类库,用于负责保存对用户的分类信息;
所述uddi注册中心,用于发布及查找web服务的功能模块;
所述web服务类库,用于负责保存对web服务的分类信息。
所述推荐模块与用户输入处理模块、预测模块、uddi注册中心以及用户-web服务库相连。
所述转换模块与用户-web服务类库、web服务类库及用户-web服务库相连。
所述预测模块与寻找类似用户模块、推荐模块及用户-web服务库相连。
所述寻找类似用户模块与预测模块、用户类库以及用户-web服务类库相连。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。