论文部分内容阅读
随着互联网的快速发展与面向服务架构的广泛应用,出现了大量各式各样的服务,包括IoT服务、Web服务以及云服务等。而对于某一个服务来说,会存在大量与它功能属性相似而非功能属性不同的候选服务,这使得为用户有效地推荐个性化的服务变得更加困难与重要。因此,服务推荐已经成为一项极具重要性的研究课题,同时具有很强的现实意义。现有的服务推荐方法有基于内容、协同过滤、效用以及Skyline。基于内容的推荐是根据用户大量的历史行为数据,挖掘出用户的偏好类型,进而再根据该偏好类型进行服务推荐。基于协同过滤的推荐是根据用户的历史行为数据,先为目标用户找到邻居用户集合,然后基于该集合为目标用户预测未知服务的QoS值,最后选择top-k个服务推荐给用户。基于效用的推荐是通过某种计算方式计算出候选服务的效用值,再根据效用值的大小进行推荐。基于Skyline的推荐主要是使用Skyline技术从大量候选服务中选出那些具有最佳全局QoS的服务推荐给用户。然而,这些方法都忽略几个关键性的问题。首先,如何根据一个用户给出的质量约束(如:失败率,延迟等)来找到代表性服务;其次,在找代表性服务的同时,还需要考虑用户的质量约束在不同维度上的相关性,因为用户的质量约束可能是模糊的,愿意在某些维度上做出让步;最后,在实际环境中,由于动态环境等因素,服务的QoS值是会发生变化,即QoS值是不确定的。如何在这种环境下精确地为用户推荐满足其需求的代表性服也是一个问题。为解决上述问题,本文提出两种情况下的服务推荐方法,在确定性服务质量的情况下,提出以用户质量约束为中心的多样化推荐方法(DQCSR)。在服务质量不确定的情况下,提出基于p-Dynamic Skyline与KNN混合的推荐方法(PDS-KNN)。本文主要贡献如下:(1)首先,提出了一种以用户质量约束为中心的多样化推荐方法(DQCSR)。该方法主要有三个阶段:首先基于用户提出的质量约束从候选服务集中找到Dynamic Skyline服务,这个过程保证选出的服务具有代表性;然后再使用K-means算法对找到的Dynamic Skyline服务进行聚类,使得相似QoS值服务尽可能聚到一起,得到k个簇;最后为了从每个簇中选择一个服务,又提出两种选择方法,分别为基于簇心和基于覆盖域,这个过程可以保证选出的服务尽可能具有多样性。(2)其次,本文也考虑了在服务质量不确定的情况下,如何能找到满足用户质量约束的代表性服务问题。为此,本文又提出了一种基于p-Dynamic Skyline与KNN混合的推荐方法(PDS-KNN)。该方法的主要过程为:首先需要用户给出质量约束sr和支配概率阈值p;然后对每一个时刻下的候选服务集中的服务根据其质量值映射到原始服务空间;接下来通过计算各服务之间的动态支配概率找到p-Dynamic Skyline服务;最后再使用KNN方法从p-Dynamic Skyline服务中选择与用户质量约束最接近的k个服务推荐给用户。(3)最后,基于真实数据集进行了大量实验充分论证了本文算法的有效性。对于服务质量确定的情况下,实验是基于QWS数据集,该数据集包含了 2507条真实世界Web服务质量信息。而对于服务质量不确定的情况下,实验是基于QWS随机生成服从正态分布的数据集,该数据集包含了2507个Web服务在24个时刻的质量信息。