论文部分内容阅读
近年来,随着Web服务相关标准不断完善和支持Web服务开发的软件平台不断成熟,Web服务已成为互联网中非常重要的计算资源和软件资产。越来越多的Web服务被开发并发布于网上,为企业应用集成提供强有力的支持。然而,大量的Web服务在为用户带来便利的同时,也使得用户难以快速地找到满足其个性需求的服务,造成“服务超载”问题。服务推荐系统通过建立用户与服务之间的二元关系,帮助用户从大量服务中发现其可能感兴趣的项目,是解决“服务超载”问题的有效途径之一。推荐算法是推荐系统的核心,在很大程度上决定了推荐系统的类型和性能的优劣。其中,协同过滤是推荐系统中应用最成功的方法之一。其基本思想是:活动用户对未评分项目的评分,可通过其最近邻居对该项目的评分来逼近。随着用户和服务数量的不断增加,基于协同过滤的服务推荐系统面临许多新的挑战。首先,大量的服务描述、用户请求、使用以及反馈信息逐渐累积成“服务大数据”,这些具有巨量、多类型、动态变化等特征的数据不适宜用传统的关系数据库存储。其次,协同过滤算法需要在整个用户空间上寻找活动用户的最近邻居,导致推荐的实时性难以保证,进而影响推荐系统的响应时间。第三,大量用户往往仅对极少部分的服务进行评分,评分数据的稀疏性非常严重,影响了推荐的准确性。针对上述挑战,本文的主要工作如下:1)提出了一个大数据环境下的服务推荐系统架构。该架构分为三层,自下而上分别是大数据收集层、大数据存储层和服务推荐层。具体而言,大数据收集层负责收集包括用户的服务请求、用户对服务的评分、用户日志以及服务提供者提供的服务描述等在内的“服务大数据”。大数据存储层对大数据收集层所收集到的“服务大数据”进行统一的存储和管理。服务推荐层则从大数据存储层提取相应数据,采用基于服务聚类和用户过滤的协同过滤方法实现服务的推荐。其中,在大数据存储层,本文提出了基于BigTable的“服务大数据”存储模型ServiceTable,利用BigTable的高性能、高可扩展性以及支持复杂多类型数据等优势,来解决服务推荐系统中“服务大数据”的存取问题。2)提出了基于服务特征相似度的服务聚类方法。该方法主要分为四个步骤:首先,从ServiceTable中提取服务标签和服务功能,作为服务特征项;其次,采用波特词干器对服务标签进行词干提取,以统一词形;第三,基于Jaccard相似系数分别计算服务之间的标签相似度和功能相似度,并加权合成为服务的特征相似度;最后,采用凝聚型的层次聚类方法进行服务聚类,特征相似度较高的服务被聚为一类。在实现协同过滤算法时,仅在使用过目标服务所属簇中服务的用户中寻找活动用户的最近邻居。通常,目标服务所属簇中的服务数量比聚类之前整个系统中的可用服务数量少得多。因此,采用此方法,能降低用户-项目评分矩阵的稀疏性,并且提高推荐计算的实时性。3)提出基于用户兴趣相似度的用户聚类方法。该方法主要分为四个步骤:首先,从ServiceTable中提取用户日志,从每一条日志中抽取与用户兴趣相关的信息,包括服务请求、服务名和服务操作;其次,对每个用户日志中的服务请求、服务名和服务操作进行预处理,包括停用词移除、缩写词扩展和词干提取,处理完的词放入对应用户的词袋;第三,使用TF-IDF方法计算词袋中每个词的权值,选择权值为前N个词作为用户的兴趣特征词,构建用户兴趣向量,并采用指数衰减公式更新用户兴趣向量;最后,利用余弦距离公式计算用户兴趣相似度,采用并行K-means聚类算法将兴趣相似的用户聚为一簇。在实现协同过滤算法时,系统只需在该活动用户所属簇中寻找其最近邻居,而不需在所有用户中寻找,从而提高推荐的实时效率。4)提出基于用户聚类的用户过滤方法。该方法主要分为三个步骤:首先,从ServiceTable中提取活动用户所属簇中所有用户的日志,从中解析出用户调用目标服务的时间和地址;其次,根据时段映射函数分别计算活动用户所需目标服务的时段和其他用户使用目标服务的时段,根据地域映射函数分别计算活动用户所需目标服务的地域和其他用户使用目标服务的地域;第三,若某用户使用目标服务的时段以及地域与活动用户所需目标服务的时段与地域一致,则判断该用户与活动用户具有时空上下文一致性,逐一判断活动用户簇中的每一个用户是否与活动用户相对于目标服务具有时空上下文一致性,若是,则加入上下文一致用户集,否则过滤。在进行协同过滤时,采用上下文一致用户集作为用户空间,能进一步降低用户-项目评分矩阵的稀疏性,减少寻找活动用户最近邻居的时间,提高服务推荐的实时效率。5)提出基于服务聚类和用户过滤的协同过滤方法。该方法主要分为三个步骤:首先,使用Pearson相关系数方法,计算活动用户和上下文一致用户集中每一个用户对于目标服务簇中所有项目的评分相似度;其次,设定评分相似度阈值,若某个用户与活动用户的评分相似度不小于设定的相似度阈值,则该用户被选为活动用户的最近邻居,并加入活动用户的最近邻居集合;最后,计算活动用户的最近邻居集中每一个用户对目标服务的评分的加权平均值,得到活动用户对目标服务的预测评分值。通常,目标服务所属簇中的服务数量比原有服务数量少得多,而上下文一致用户集中的用户数量比原有用户数量少得多,因而基于服务聚类和用户过滤的协同过滤方法比传统的协同过滤方法的稀疏性小、实时效率高。最后,论文对上述理论的有效性进行了分析与验证。