摘要----为了从类似的服务列表中进行功能上的选择,用户往往需要根据多个QoS准则做出他们的决定,它们需要对目标服务。在这个过程中,不同的用户可能遵循不同的决策策略,有些是补偿性的,在这个补偿中在所有评估测量中只有一个总体价值。目前大多数的QoS的基础服务选择系统并不在排序过程中考虑这些决策策略,这样我们认为至关重要的是为个人用户生成精确的排序结果。在本文中,我们提出了一个战略决策为基础的服务。此外,考虑到不同的用户遵循不同的策略在不同环境下和不同的时间下,我们应用一个机器学习算法的个性化排序模式为个人用户根据他们在选择进行服务。我们已实现并测试所提出的方法,我们的实验结果表明了该方法的有效性。

关键词---Web服务选择,服务质量(QoS),决策策略,质量学习等级

1 介绍

作为出版和网上托管的Web服务的数量不断增加,如何从一系列功能相等的服务进行选择成为一大挑战。自动服务选择,特别是基于QoS的服务选择,吸引了大量的研究。各种模型如多目标决策(MCDM)【1】,约束编程(CP)和混合整数规(MIP)【2】,天际线【3】,已被用来在多个QoS准则处理用户的要求(即,约束和偏好),以发现可以优化这些标准的服务。通常一个服务被认为是最优的,如果它在所有的候选中具有最佳的整体服务质量的价值。评价QoS的一个度量是采取一个web服务的多个QoS值的加权和。由于服务可能不是最佳的所有的标准,这种单一的整体值是表示服务的好和坏的方面之间的折中。

这种优化策略可能并不总是工作在现实生活中。根据决策理论[4],有许多不同的策略的人可能会遵循,当他们决定如何从基于多种标准的选择列表中选择的时候。不同的策略会导致不同的选择结果。考虑选择一个Web服务,其中用户基于QoS的三个属性(价格,可靠性和评级)做出它们的决策。假设服务1的Qos价值的(S1)这三个属性是(50美元,95%,3.5星级),服务2(S2)的QoS值是($8599%,5星),与服务3的 QoS值(S3)是(50美元,85%,4分)。假设有三个用户A,B和C,它们都具有相同的选择标准:(价格≤85美元,可靠性≧85%,等级≧3),和所有的标准是可以商量的。当决定选择哪个服务的时候,用户A遵循的策略中,他检查最重要的标准是价格,找出哪些服务(S1,S3)是最佳的该标准之后,他移动到检查下一个重要的标准,评级,最后他选择S3。用户B遵循了不同的策略,他检查哪些服务赢得次数最多的标准(S1胜在一个服务质量标准 - 价格,S2胜在可靠性和评级,S3胜在一个价格),而且由于S2是一个明显的赢家,S2被选中。用户C用如下战略,他检查所有三个QoS值的总和,因为S1和S3获得了很多的价格相比与S2。S1导致S3可靠性上超过S3导致S1的评级,S1的整体价值是最好的,因此,他选择S1。从这个例子中,我们可以看到,即使在相同的QoS要求,当用户按照不同的决策策略,不同的服务被选择。

此外,一个用户可以在不同的情况或不同的任务下遵循不同的策略。例如,当用户选择休闲目的的免费服务,通常补偿策略[5],因为他们不介意对一些标准进行权衡。然而,当相同的用户对他们的工作选择服务时,就会采用非补偿性策略[5],因为选择在这样的背景下更为严重,一些标准根本无法受到影响,并且可能会发挥更大作用。

从这些分析中,我们可以当前选择系统的工作方式和真实的场景中看到之间的明显差距,人们可以在选择过程中遵循的各种决策策略。我们在这个目标旨在填补这一空白,使自动选择系统更贴近用户手动选择服务。我们的系统将帮助用户在选择Web服务时基于不仅是他们的服务质量要求,还有他们的首选战略决策。

有时,它可能是用户很难清楚明确地界定它们遵循的决策策略决策,往往是下意识的和潜移默化的过程。该策略可能在一段时间或在不同的环境中改变或根据目的服务。要考虑到这些,我们应用机器学习技术[6]的历史数据,以确定决策策略的用户.我们的目标是为各个用户选择个性化服务算法。

在这项工作中,我们假设在用户的历史数据服务选择模式中可通过服务器保存在存储库中或通过其他方式记录,所以可以学到一个个性化的排序模型。为了简化我们的问题,我们只考虑单一的服务选择,而不是在服务组合的上下环境中。

这篇论文的三大贡献:1)考虑到用户的决定战略在服务选择过程中起重要作用,而忽略它会影响选择的准确性,我们提出了一个QoS的中既有服务质量标准和决策策略都考虑到的基础的服务选择方法; 2)因为用户可以遵循多种决策策略取决于于环境和隐式的方式,我们建议应用机器学习技术来找到最佳匹配策略和最佳排名模型将它们结合起来; 3)所提出的方法是灵活的,可扩展的,这样我们可以插入不同的基于QoS的选择模型,决策策略,以及机器学习算法。

本文的其余部分安排如下。第2节回顾了相关工作。第3节给出了具体的建方法,其中包括我们在这项工作中服务质量的定义性能,服务选择和使用基于不同的决策策略排序算法,在用于分配优先级不同属性的权重方案中,约束匹配规则的基础是MIP模型,我们选择系统的结构模型,并在学习过程中获得个性化排序服务模式。在本节的最后,我们还给出一个说明性的例子来显示的整个过程。第4节说明了我们的实验设计,显示仿真过程中产生的数据集,以及分析和讨论的结果所提出的方法。最后第5节总结全文,并列出了未来发展方向。

2 相关工作

基于QoS的服务选择通常被认为是作为优化的问题,因此各种优化模型已被用来解决这个问题。他们的主要目标是帮助实现质量权衡和优化。 [7],用户使用工具定义自己的喜好,供应商的质量分布来源于概率模型,然后这可能最大限度地被选择服务的预期效用。在[2]中,语义QoS描述被变换成MIP问题,然后将MIP发动机被利用为配对。事实证明,MIP提供了CP比更有效的解决方案。然而,由于MIP只能解决线性约束,当存在非线性约束时,用户选择用CP在文献[1]中,一个分析层次法(AHP)模型被使用。给定服务请求,首先一个AHP产生,然后权重计算QoS性能和将所有QoS值的加权和。Skyline计算用于[3]的服务选择。它通过测量他们的优势找到优化的解决方案关系。效率和质量问题是进一步在[8]中使用的。最上面选择系统没有考虑各种参与评过程,而是我们做的个体决策策略。

在近几年个性化服务排序和选择已引起重视。这个区域的大多数使用推荐算法。在[9]中,个人分布均使用协同过滤技术,根据其调用历史和关联规则可以找到类似的用户并挖掘基于相似用户的过去组成的交易,以确定服务的依赖。在[10]中,用户相似性测量作为他们的观察到的排序之间的相似性,在[11],先前之间的相互作用服务提供商和请求者被建模成为一个社会从社会网络分析的网络,然后结果被送入一个贝叶斯服务中。在[12],调用和查询日志用于计算相似用户。[13]无论是从他们的使用历史的功能利益和QoS用户的喜好中,在历史上被认为是相似度计算和服务的建议。

相比这些算法,虽然我们也使用过去的查询和调用的历史,我们解决这个是从完全不同的角度。我们认为,用户可以按照不同的决策策略进行不同的查询,我们用学习排序算法和[6]个性化的决策战略为基础的学习排序模型。

有很多人的策略可遵循的是它们做出的决定的时候。在[5]中,两种类型的策略是讨论,补偿性和非补偿性的。在[14],对更多的策略进行了讨论,它们根据它们的特性进行分类

,例如是否所有的属性值被处理,无论是基于属性或根据选项,无论是消除选项之前,最后的决定,等等。根据文献[15],决策者可以使用多个策略作出选择,他们从一系列的代表策略选择策略最佳的精度和选择特定的决定问题。该策略的选择是根据可用的替代品和决策问题的不同特性的数目。品种的个体决定策略也承认某些特定领域的应用,以及整合多个策略,被证明能够提供更好的结果[16]。

相比这些论文,我们不要求用户明确地定义自己的战略,我们生成排序订单为所有可替代的服务,而不只是寻找最好中的之一,我们通过使用学习排序算法定义自动化解决方案,并结合多种策略找到最佳的方式。

学习排序[6]是一个机器的学习的方法,已成功应用于许多领域中的排序问题,如信息检索,协作过滤,情感分析等。学习等级方法可分为三种类型,它们是基于逐点,成对列表和明智的做法。如果我们用文档的排名,例如,在逐点的方式下,输入对象是一个单一的文件,它需要对每个文档进行相关性的判断;在成对的方式,输入对象是一对文件和它需要对于每一对文件进行相关判断;并以列表明智的做法,输入对象的文件列表,它需要一个相关性判决的文件清单。逐点和成对的办法不考虑文件,因此位置信息缺失之间相互依存,而名单明智的方法考虑在所得到的分级列表的信息。事实证明[6],该清单明智的排序算法具有比逐点和成对的算法更好的性能。

3 个性的网络服务选择

在本节中,我们首先介绍了几种常见的QoS特征,而这些特征是我们在工作中使用的,我们认为在服务选择过程中的决策策略中,用于QoS的优先特征权重方案,以及基于MIP的约束为匹配规则来检查QoS约束。然后,我们表明有几个可能性,其中用户可以遵循不同的决策策略或使用不同的分级算法,用于选择服务。在那之后,我们描述系统架构模型,特别是对我们如何收集历史资料。最后,我们讨论我们如何使用学习到的排序模型来学习我们的个性化服务。我们用一个例子来说明整个过程的结束。

3.1 Web服务的Qos属性

Web服务具有许多的QoS属性用于服务选择[17]。因为在我们的实验数据集[18]我们使用QWS,因此在这里我们列出了定义的QoS属性,其值被收集在QWS的数据集。

l        状况:测量该系统启动并可以由用户成功访问的概率。它计算成功的调用次数/调用的总数。它是用(%)进行测定。

l        可靠性:措施系统的工作能力特定状态下,如预期的特定时间段。它计算错误的数目的比率消息总消息。它是在(%)进行测定。

l        吞吐量:计算的数据量是在给定的时间周期被调用。它被测量为(调用/秒)。

l        响应时间:是从发送请求到接收响应所花费的时间。它的单位是(毫秒)。

l        成功性:测量的是已请求成功完成。它计算的响应/请求的总数量。这是用(%)进行测定。

l        合规性:测量在多大程度上WSDL文档符合WSDL规范。据测定在(%)。

l        最佳实践:测量在何种程度上的Web服务遵循WS-I BasicProfile的。它是在(%)进行测定。

l        费用:是客户需要支付的费用使用服务。

l        文档:测量在多大程度上文件完成,如描述标签在WSDL文件。它是在(%)进行测定。

在我们的选拔制度,这9个QoS特性,我们使用他们中的7个,包括可用性,吞吐量,成功性,可靠性,合规性,最佳实践,文档。我们的选拔制度是灵活的,我们可以根据需要添加更多的QoS属性。

3.2基于决策策略服务选择

目前大多数基于QoS的服务选择系统只考虑在选择和排序的过程中用户对QoS要求和对QoS喜好。然而,就像我们知道的那样,当用户按照自己的战略决定也应该在选择过程中发挥重要作用。这种类型的补偿性排序过程只是用户可以遵循的许多决定战略之一。如果我们只是用它为所有用户服务,排序结果可能针对个人用户是不准确的。在我们的选拔制度中,我们要考虑多个决策策略和排序结果,而这些是基于策略和用户的请求。

有文献报道[5] [14]许多决策策略。在这里,我们主要考虑他们四人,即,加权添加剂(WADD)策略,多数确认尺寸(MCD)战略,加权MCD(WMCD)战略,词典(LEX)策略[5]。由于在决定战略目标时,只有找到一个最优解,并且在服务方面生成一个完整的排名顺序,我们修改了这些原来的流程决策策略。下面,我们给出基于这四个战略决策排名算法的解释。

以WADD为主的排序算法,一个是服务排名较高的,如果它的服务质量的总和值乘以其相应的权重是较高。在此基础上的策略,一个服务的Si的排名分数,是按照以下计算的,(1)其中,k表示第k个的QoS属性,M是系统支持的属性数,wk测量其重量和aik表示Si对第k属性的值。这是所使用的许多服务的排名算法选择系统[1] [2] [3]。它被用于前面的例子的用户C。

在基于MCD的排名算法中,带有大量可以获胜的QoS属性的服务当与其他的服务比较时是会被排在很高的位置上。假设有两个服务SI和SJ,根据MCD策略,

SI比SJ排名更高,在这个式子中,如果在QoS的第k个属性中SI比SJ更好,那么Pijk设置为1,否则设置为0。我们做的所有的比较,让服务获得完整的排名顺序。这符合前面例子中的用户B

WMCD是所述MCD策略的一个变型,其中一个权重与每个决策标准相关联。基于所述WMCD策略,如果

那么,SI比SJ排名更高。

在基于LEX的排序算法中,该服务的排序是基于最重要的特性(即,最高权重),如果有联系,在这个属性中的服务具有相同的值。而这个过程会继续到形成一个完整的排名顺序。这符合于前面例子中的A用户。

3.3 权重方案

  在我们的系统中考虑到四个决策策略,他们两个(WADD和无线移动通信设备)在分数计算中需要使用权。 LEX战略也需要权重来决定比较的顺序。权重归于一个固定的用户是一个重要的标准。这样一个更重要的标准,这将在决策过程中起到更大的作用。

通过我们的选择系统的界面,用户可以指定QoS属性的偏好级别。我们遵循相对测量作为缩放方案,来分配非配用户偏好的QoS性能[19]。刻度的范围是从1到9,其中,1重新呈现最不重要属性和9代表最重要的属性。表1是对他们语言描述[19]。

如果没有优先级被分配给的QoS属性,则分配给该特定的QoS属性就没有权重,表明该用户没有优先于这个属性。通过只要求用户指定优先水平,而不是权重,我们的系统只施加于用户很少的压力,因为通常挑选一个正确的号码是很难的(即,0和1之间的实数)来表示的QoS属性的重要的水平。我们的系统也提给灵活性,用户可以定义自己的喜好而不是采取默认的系统值。

下一步骤是根据以计算权重选择优先权值。下面简单的加权式被使用,其中,wk是QoS标准的权重的第k个值,qk表示用户定义的第k个准则和M'表示用户选中的标准的总数。

对于这两种WADD和WMCD,权重需要使用等式2来计算,而对于LEX,只要求值是必需的。

3.4 基于MIP约束匹配规则

在用户的QoS要求下,可以约束一些标准,如可靠性>90%,这意味着服务是否满足这些限制,,然后它们是否具有这些特性的最佳值。由于大多数的决策策略的唯一目标,只是在寻找最佳解决方案不处理的限制,我们需要定义约束匹配规则,而这种规则可用于基于满足限制的排序的服务。

在以前的研究中,CP和MIP已成功地用于QoS,并根据[2], MIP的方法比cp是更有效的。因此,我们选择使用MIP为基础作为我们的约束匹配规则。虽然MIP不支持非线性的约束并且还有其他缺点,在我们当前设置中它能够高效的同时处理整数和实值的变量,因此是一个不错的选择。

由用户定义的QoS准则(或约束),通过服务保证值满足用户[20]所需要的值。例如,如果要求是(可靠性>90%,1秒<响应时间<2秒),并且服务保证的是(可靠性>95%,1秒<响应时间<1.5秒),由于在每一个的QoS值保证范围满足要求,我们说此服务符合约束。为了应对约束的要求。其中,没有任何服务都可以匹配所有的约束条件,并增加具有非空的概率解决方案集,我们也考虑这符合一些标准,但不是所有的部分匹配。类似于[2],有四类服务,其中前两个符合结果,另外两个不符合结果:

1)       超级的 - 如果服务满足所有QoS约束并提供在好于最需要的QoS值上至少一个特性,那么它被称为超匹配。为例如,在我们的例子中第1节,评选条件是:价格≤85美元,可靠性的85%,和等级≧3.如果服务具有QoS值作为价格≤85美元,可靠性为95%和等级≧3中,它被认为是一种超级因为它匹配满足所有的约束和有可靠性更好的价值。

2)       精确的 - 如果一个服务满足所有QoS限制,称为完全匹配。在上面的例子中,如果一个服务具有QoS值作为价格≤85美元,可靠性≧85%,和等级≧3中,它被认为是一个精确匹配。

3)       部分的 - 如果服务满足一些QoS约束,但不是所有的,它被称为一个局部匹配。在上面的例子中,如果服务具有的QoS值作为价格≤85美元,可靠性≧75%,和等级≧3,它被认为是一个部分匹配,因为它违背了对可靠性的约束。

4)       失败的 - 如果服务不符合任何的限制,这是一个失败的结果。在上面的例子中,如果一个服务具有QoS值作为价格≤了$ 95,可靠性≧75%和等级≧2中,它被认为是一种失败结果。因为它违反所有这三个约束条件。

虽然在上述例子中,QoS约束很简单,MIP模型的处理具有更为复杂的约束的能力,如那些同时涉及的上限和下限。如果系统需要支持的非线性约束,类似于[2],我们可能会使用CP模型来处理它们。

目前,在超级的精确地分类中是不相同的,因为我们产生了模拟的数据集的方式(例如,。因此,我们有3个类别的结果:第1类 - 服务满足所有的约束(超级准确),2类 - 服务满足一些限制(部分),和3类 - 服务没有满足的约束(失败)。这三大类的排序是类别1>2类>第3类,这是我们第一个约束匹配规则,这是所谓的层规则。在[2]中使用的MIP模型中,目标函数定义排名服务。然而,在这里我们主要使用了MIP的约束检查功能模式,而不是排名功能。

第二条规则就是规则数量。基于此规则,服务满足更多约束的排名更高。在简化的情况下,我们不考虑用户的喜好来制定QoS的标准,只满足数量标准。比起层规则,这种规则具有较强的执法上的约束匹配。我们之所以定义这个规则是想检查是否约束在服务过程中的排名中应发挥更大作用。

在我们的系统中,实际的服务排名算法是根据规则和策略之间的组合。该三个规则(没有规则,层规则和规则数量)决定用户如何想用系统来处理约束,四个决策策略(WADD,MCD,无线移动通信设备,以及LEX)确定的优先引导优化过程。如果满足约束的数目是重要的,但确切的数字不是那么关键,层规则被应用。如果用户不关心满足的限制,没有规则适用。如果没有规则时,四大战略直接用来排名所有服务。根据排四个战略之一。总共有12种组合,因此,我们有12个决策策略为主排名算法。在本文的其余部分,我们通常使用“战略的决定”,指的是一个战略决策的约束匹配规则的组合,除非我们强调单独的决策策略。

3.5  遵循多策略的典型的用户模式

用户可以总是遵循一项决定战略所当选择基于QoS的标准服务时。然而,更有可能的是,用户可以遵循一些决策策略,并根据上下文选择其中搜索或服务的用途。用户优选策略也可能随时间改变。下面我们举几个可以描述典型模式场景。

l        模式1:用户遵循一种策略所有的时间。在这种情况下,用户可能只知道一种策略,或者是只有舒适的一个策略,因此总是用它。

l        模式2:用户按照不同的一些策略概率。在这种情况下,用户都知道的几
决策策略。下列每个的概率策略可能依赖于上下文,任务,策略的可行性,用户的熟悉程度策略,对策略用户的偏爱,等等。

l        模式3:用户遵循一些策略随机。在这种情况下,用户都知道的一些决策策略,并利用它们不断,但是,没有任何明显的图案或收藏夹。

l        模式4:用户遵循其中一些策略有些是主导,例如,它们的概率比其他人要高得多。在这种情况下,用户有对一些策略的喜好,让他们使用它们经常,但他们不排除其他的策略和他们仍然使用他们需要的时候。

在这四个模式,模式4可以被看作是模式2的一个特例,可能有更多的模式,但在本文中,我们主要考虑这四个。

3.6  系统架构

为了了解当选择服务时用户会选择哪一个决定策略,我们既可以问他们明确指定,也从历史记录中了解。在前者的情况下,如果他们有知识决策策略,他们可以从列表中直接选择提供的选项,否则,如果他们想花时间填写问卷,该系统可以通过检查他们的答案识别策略。我们的系统设计有利于这两个选项。图1显示了我们的系统架构模型。

选择系统是一个服务注册中心的一部分,该服务提供商可以发布自己的服务变成服务存储库。当用户正在搜索服务时,他进入他的功能性以及QoS要求通过选择用户界面,而且他也有选择,定义选择哪些决策策略时要遵循的服务。所有的用户进行输入,然后传递给选择和排序组件。该组件首先在服务库中搜索功能性配套服务,并且排名是基于这些服务的QoS要求。如果决定战略由用户所定义的,12个决定策略之一用来对服务排序。否则,个性化的排名算法将通过学习来排名组件。该学习算法可以反映用户的偏好。如果一个策略有助于最终排名分数,这意味着它是优选由用户设定的。结果的排名列表被返回给用户。然后,用户选择一个为后来的调用服务。

3.7  AdaRank学习的个性化排名算法

在排名的问题,可能有多个排名信号或特征,以及不同的信号产生不同的排名。许多实验(例如,Netflix的大挑战[22])证明,多个排序通常给出最好的结果。通过使用练习数据,学习排名算法能学习一种功能或模型较多个排名的最佳途径。然后,学习模型可以用于排序的新对象。

在本文中,我们使用AdaRank[23]作为学习排名算法。其中一个原因,我们选择它是因为AdaRank是一个列表,明确的学习排名算法,正如我们前面提到的,清晰明智的算法通常提供比其他两种类型的算法更好的结果。另一我们之所以选择它是直接优化在选择系统中使用的指标,而许多其他算法如RankBoost[24]定义损失函数松散相关的那些度量。

因为在我们的系统中个性化的排名是对于每个单独的用户设置的。然后,每个用户的练习数据集被表示为M集合,每个记录表示为(QI,RSI,SI),其中qi是用户的第i个查询,RSI则返回服务查询Q的排名列表,Si是用户从列表RSI中选择服务。特征向量

被定义为每一个查询服务对,其中rsij表示第j个服务中的排名列表RSI。学习算法是要学习排名功能:这样产生的服务返回的查询排名分数可以优化性能指标MRR。给定一个查询Q,在RSI置换πi,以及用户选择服务SI,对于qi的倒数排名(RR)度量被定义为,

其中,πi(SI)定义的Si RSI的位置。

该MRR度量定义了如下的所有查询,

输入到AdaRank算法包括练习数据集,性能测量功能RR,和轮转T的数量.该算法的运行次数,并且在每一轮,一是生成较弱的排名。最终排名模型被定义为所有的弱排序的线性组合,如下所示

其中,是一种弱分级器中,t是它的权重,而T是弱排序数。

在我们的实行中,弱排序被选为策略的排名算法中的一个,具有所有的最佳加权的性能算法

其中k是系统中的排名算法考虑的数,在轮转T中Pt为权重分布,和Pt(i)qi的权重查询。所述AdaRank算法的伪码示于图 2。

3.8一个说明性的例子

假设一个用户正在寻找一个飞行检查和预订Web服务。他向我们的系统提出这一功能。因为有许多的功能配套服务,他提交的QoS要求进一步的排序候选服务。在这个例子中,我们讨论六个的QoS 属性超出了了前面定义的九个。所有属性具有积极的倾向,这意味着一个更大的值表明一个更好的选择。表2示出了用户对这六个QoS属性的需求以及来自五个候选Web服务中的QoS值。

在该表中,AV代表可用性,SS代表成功性,RL代表可靠性,CL代表合规性,BP代表最佳实践,和Doc看台对于文档。 FS1,FS2,FS3,FS4和FS5代表匹配的服务。

假设这些属性是用户定义的喜好:(AV:8中,SS:8,RL:8,CL:6,BP:5,文档:5)。运用等式2中,其相应的权重是:(AV:0.2,SS:0.2,RL:0.2,CL:0.15,BP:0.13,医生:0.13)。

我们首先考虑WADD策略。虽然在本具体的实例中,所有的QoS属性具有相同的单元和它们的值都在[0,1]的范围内,对于不同QoS属性具有不同的值的范围是很可能的。因此,第一步骤是标准化QoS值。下一步骤是应用的加权求和方法获得排名得分。这是由权重乘以完成矢量与QoS属性的归一化值,然后获得最终排名得分。计算如图5服务下面的步骤

基于计算出的分数,这五个的顺序服务是FS4> FS3> FS5> FS2> FS1

MCD战略需要成对比较。服务质量值的比较和具有较高的服务质量值的服务将被选中和将与下一个服务相比较谁是获胜服务。这个过程持续到所有的服务都进行了比较。在本实施例中,第一对服务是FS1和FS2。 FS1胜出了2 个QoS指标(AV和Doc)和FS2胜出了3QoS标准(SS,CL和BP)。因此FS2是获胜服务和移动到第二轮。然后,我们比较FS2与FS3,FS3胜。接着,FS4战胜FS3,然后在比较FS5。在这一轮的比较中,这两个服务都赢3个标准,因此有一条带子。在这种情况下,我们选择了服务制胜作为一对一的更好的价值最后准则(在此示例文件)。因此FS5是服务制胜,它在服务列表中排名第一。在下一阶段,我们删除此殊荣的服务。从服务列表中,并做了对比,其余四项服务。我们将继续这个过程,直到我们得到最终的排名顺序,这是FS5> FS4> FS3>FS2> FS1。

在LEX策略,服务基于所述排名权重的标准。 AV具有最高优先级值8,因此所有的服务都在排名第一的AV。该排名顺序是FS4> FS1,FS3>FS5> FS2。由于存在FS1和FS3之间的配合,这两种服务均排在第二,这是SS在这种情况下。根据他们的SS值,FS3是比FS1更好。最后的顺序是FS4>FS3> FS1> FS5> FS2。

现在,让我们考虑约束匹配规则。如果我们应用层规则,所有5个服务都在类别2中(部分匹配)。如果我们运用数量规则,顺序服务是FS3,FS4(4满足约束)> FS2,FS5(3满足约束)> FS1(2满足约束)。所以,如果我们结合MCD战略,没有规则,最后排名顺序是FS5> FS4> FS3> FS2> FS1。如果我们结合MCD战略,层规则,我们得到了相同的排名顺序作为无规则的一种,因为所有的服务都在同一类别上。如果我们结合MCD战略与数量规则,最终排名顺序是FS4>FS3> FS5> FS2> FS1。

从这个例子中,我们可以看到,用户遵循不同的决策策略,不同的排名单生成。如果我们能够积累一定量的用户提交的QoS的查询历史数据连同用户为每个查询选择的服务,我们可以计算出该用户是否始终跟随一种策略,或有时遵循的一种策略,有时遵循另一种策略,或者随机选取结果等,通过我们学习到秩算法。那么我们就可以用这个学会的个性化模式,未来的服务等级。只要历史的量数据是足够的,学到的模型应该提供一个良好的结果。因此迎合了个人用户。

4实验

在本节中,我们先介绍一下我们的实验设计和我们如何生成模拟的数据集,然后我们比较我们的结果与个别的算法以及一个线性组合排名模型,最后我们提供了一些分析的实验结果。

4.1实验设计

在我们的实验中,我们假设在功能匹配服务已确定使用一些现有的方法和我们只需要基于对他们进行排名用户的QoS要求和决策策略。我们也假设我们已经收集了一定量用户查询和选择历史数据。在实验中,我们主要测试的情况下,当明确的战略信息是不可用的,这意味着所学习个性化排名模型用于排序的服务。

为了验证我们提出的方法,我们应该能表明,1),有必要整合决策策略到服务排名模型,2)决策策略仅基于排名算法是不足以产生一个准确的结果,并且因此,有必要也做了约束检查,3)有必要将多个战略纳入排名模式,因为用户遵循在不同环境下不同的策略,以及4)我们的个性化排序模型相结合的多策略提供了一个不错的结果。第一点已被证实我们以前的工作[26]。所以在这里,我们主要集中在第二,第三和第四点。我们首先比较的排名算法的性能,当约束匹配规则被认为是,当他们没有。如果那些与实施的约束检查组件有更好的结果,这意味着我们需要结合战略决策与约束的匹配规则。然后我们比较我们的模型与个别决策的排名算法。如果我们的模型具有更好的性能,这意味着该组合是必要的。最后,我们比较我们模型与线性组合模型的排名。如果我们的模型实现了较好的效果,这意味着学习排名算法可以是一个更好的办法。

我们的系统是用C#语言中实现微软的Visual Studio与.Net框架4.实验运行的计算机采用AMDX2处理器DualCore M320,2.1 GHz的主频,4G内存,以及Windows 7作为操作系统。的Microsoft SQL Server 2008 R2中被用作数据库服务器。

4.2 我们的模拟数据集

对于我们的实验没有公开的数据集,而且也很难找到许多用户使用我们的系统,使我们可以在日志中收集足够的有用的数据。因此我们运行模拟生成的数据集。在模拟场景中,用户提交一个QoS请求,检查所有从系统返回的结果,然后选择基于一定的决策策略的一个服务。由于决策可能受到结果的顺序,由用户选择的服务可能不一定是基于该策略的最佳服务。我们假定用户是足够的耐心审查了许多成果找到一个很好的一个,这样,这将是基于策略的前k个结果之一。通常,如果K值不大(即≤10)中,所有的前k个结果可提供良好的结果,因此用户仍不满意选定的服务。

我们用QWS数据集作为我们的QoS数据集,它包括了2507项服务。我们选择7种QoS性能,超出了原来的9个,包括可用性,可靠性,吞吐量,文档,合规性,和最佳实践,它们都有一个积极的倾向,并且因此更高的价值意味着更好地服务。QoS查询也是基于这个数据集生成的。每一个查询在多种Qos性能上都有需求。大量的性能在【1,7】內是随机选择的。需求的价值是基于QWS数据集中性能的价值范围。一些样本在表3中有显示,在表3中单位吞吐量是调用的,并且其他的都具有百分比值。

考虑到12个基本的排序算法,和基于他们怎样结合策略和约束匹配规则,他们分别代表了LEX,LEXL,LEXQ,WADD, WADDL, WADDQ, MCD, MCDL,MCDQ,WMCD, WMCDL, WMCDQ。就像3.5节提到的那样,一个用户可能用不同的方式遵循多种策略。表4列出了所有的多样化的策略。

在生成的数据集中,每一个用户提交了100个提问,并且每一个提问具有关于1-7QoS性能的需求。对于每一个提问,我们保存了配置服务列表,这种服务列表满足所有的QoS需求,如下的策略用户,和基于策略的服务选择。我们确定一个用户遵循的策略数量和每一个策略的提问数量。例如,如果一个用户总是使用一种策略,那么所有问题来自于这个用户使用这个策略。或者如果一个用户使用两种策略,而这两种策略使用的可能性是80%和20%,那么80%的提问是来自于一种策略,20%的提问来自于另一种策略。策略总是从12中策略中进行挑选。

在生成数据集中后,为了为了适应学习算法,对于每一个用户的使用数据来说,60%是用来练习的,40%是用来测试的,用于结果的测量在早期MRR就被定义了。

4.3 比较不同约束匹配的结果

在这个实验中,我们修改了5中的k值,这意味着通过用户对服务做出的选择可能是前5个结果中的一个,而这个结果也是基于遵循这个策略的用户的。图3显示了使用LayerRule和No Rule得出的MRR值之间的比较。对于每一个用户,MRR值是所有用户提出的疑问。并且对于每一个算法,MRR值通常是基于遵循这个模式下的使用统一策略的所有用户。最后,MRR值通常是使用Layer Rule和No Rule的所有算法。

从这个数字中,我们可以看出所有的用户模式Layer Rule比No Rule得出了更好的结果,并且平均改进17.26%。这就显示了应用约束匹配规则的高效性。

图4显示了使用Quantity Rule 和 Layer Rule之间的比较。我们可以看出对于一些用户模式,Layer Rule得出了更好的结果,而对于另一些模式,Quantity Rule得出了更好的结果,Quantity Rule比Layer Rule稍微的好出了7.09%。这就显示了约束匹配规则可以改进排序算法,并且更为严格的匹配规则可以得出更好的结果。

4.4 用基于排序算法的单一策略比较算法的结果

   在这个实验中,我们开始对5设置k值。图5显示了我们的算法和那些基于单一策略的排序算法之间的不同。

从这个数字中,我们看出通常结合多策略的排序模型比只是用一种策略的排序模型要好得多。比较最好的执行个体算法,对于不同的模式算法的改进从9.35%到了59.66%。我们的算法得出的MRR值是非常一直的穿过了所有的模式。但是,个体算法执行的一致性对于所有的模式来说没有一个是好的。另一个调查就是对于每一个模式,最好的执行个体算法改变了很多。例如,在All1中,是MCDL,在Uni3中,是WMCDQ,在Ran3中,是LEXQ,在Dom中,是WADDL,在Two91中,是MCDQ。这显示了我们可以使用传统的排序方法,只考虑用一种策略。并且作用于一些方案,但是并不是所有的时候,并且考虑多种策略是必要的。总的来说,最好的执行算法是来自MCD家族,或者是WMCD算法或者是MCD算法。

自从许多的QoS_based服务选择算法使用了加权和(WADD)作为默认的选择策略,那么比较使用我们的算法得出的结果显示在图6中。MRR平均值的增长是54.86%。因此如果我们整合我们的算法到任何存在的选择系统中,那么精确度就会有很到的改善。

因为我们执行WADDL算法的方式是与MIP算法是非常相似的,因此我们把WADDL看作是MIP算法的安装启用。在图7中,我们比较了用MIP算法的结果。我们可以从MRR值中看出一个清晰的优势。这个平均的改善是48.15%。

我们的算法不仅适用于普通用户,也适用于个体用户当这些用户遵循多种策略时。图8显示了为具有主导策略的25个用户在我们的算法与最好个体算法之间的比较。最好的执行算法可能是12个基本排序算法之一,并且它对于不同的用户是不同的。我们可以看出我们算法的执行一致性更好或者接近于最好的执行个体算法。相同的调查应用于Dom中所有的用户,但是在这里由于空间的限制我们只能显示25个。

图9我们算法和最好的执行个体算法对统一使用2种排序策略的25个用户的比较。我们可以看出我们的算法更好。

当用户使用多种策略时都可以得出相同的结论。当用户总是使用一种策略时,结果就是不同的。因为提前是不知道用户使用一种策略还是多种策略当选择系统创建好时,并且对于不同的用户决策模式也是不同的,对于普通用户来说使用学习模型的优势更明显。

4.5比较我们的算法使用线性组合模型得出的结果

就像我们看到的早期结果,但用户遵循多种决策时,基于一种策略的排序算法执行结果不会很理想,并且,再考虑到所有的策略时有一个排序算法是必要的。在这里,我们比较了使用排序模型的我们的算法的性能,而这种排序算法结合了所有的个体排序算法。对于简单的原因,我们只考虑到所有权重都设置为相等的例子。图10显示比较结果,K值仍然是5.

从这个数字中,我们可以得出即使线性组合算法结合了多种个体排序算法的排名分数,但它的性能远远差于我们的学习排序算法。我们的算法平均提高55.13%,这就显示了学习步骤的高效性。

4.6 K值的影响

   在理想的案例中,当K值是1时,意味着用户总是选择排序最好的服务,MRR值对于一个好的学习算法来说是非常高等的。但是,事实上,服务的挑选是被呈现给用户的服务顺序影响的。通常用户可能选择第一个满意的结果即使它不是最好的。并且在学习过程中嘈杂数据。因此,在计算性能时使用更大的K值是更加真实的。在实验中,我们想要检查K值的影响,我们选择3的值:3、5和10。因为这个结果对于所有模式来说是一致的,在这里,对于分开的不同模式我们不能得出结果,相反,我们只能得出普遍的结果在图11中。

我们可以看出当K值很大时,MRR值就变得非常小。这是合乎情理的结果,因为当K值很大时,就意味着更多嘈杂的数据添加到了训练数据中,因此得出的结果就会更糟糕。

通常来说,我们的实验结果显示了在服务选择过程中多种决策的决策的必要性和学习个人排序算法的有效性。

5 结论

  在这篇论文中,我们提出了基于用户的Qos需求和他们的决策的个性化服务排序算法。对于不同的策略实行不同的排序算法。为了弄清楚用户遵循的是什么策略和它们是怎么遵循的,一个学习排序算法应用在了历史数据中。一个个性化排序算法可以通过这些过程学习。我们的实验结果显示了方法的有效性。

有几个方向我们可能在未来会用到。如今,我们用向司机去测试我们的算法,这可能不是真实地反映了真实的情景。因此第一个扩展就是在服务注册表中实行 功能完备的服务选择系统,并且逐渐的收集真实的数据测试算法。第二,我们可以整合决策到一些最先进的选择模型中,例如 Skyline , AHP 作为基本的选择算法与我们的算法进行比较。第三,我们将会探索使用另一种学习算法的可能性或者是提出一个更自定义化的学习算法进一步改善结果。即使有许多的模型由于 QoS-based 服务挑选,也是没有证据显示一个模型比另一个模型提供更好的结果,并且也没有事实上的模型是每一个人同意去使用。因此我们最后的探索方向是应用于学习排序算法的并且是在多种 QoS-based 服务选择算法上去学习一种集成模型,而这种集成模型是有希望比个体算法提供更 多可选择的结果

基于使用学习排序算法的Web服务学习的个性化的决策战略相关推荐

  1. c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc

    基于C语言排序算法改进与应用 基于C语言排序算法改进与应用 摘 要:介绍了程序语言中排序的原理及应用,阐述了基于C语言的三种主要排序方法,提出了每种排序方法的改进,计算出改进后算法的时间复杂度,编写了 ...

  2. 七、基于比较的排序算法总结

    1 问题 至此,总结一下已经研究过的排序算法: insertion sort,Θ(n2)\Theta(n^2)Θ(n2) merge sort, Θ(nlogn)\Theta(nlogn)Θ(nlog ...

  3. 算法学习--排序算法--插入排序

    算法学习--排序算法--插入排序 插入排序算法 代码实现 插入排序算法 插入排序(Insertion sort)是一种简单直观且稳定的排序算法.如果有一个已经有序的数据序列,要求在这个已经排好的数据序 ...

  4. Airbnb搜索:深度学习排序算法如何进化?

    导读 本文将基于Airbnb KDD 2018年到2020年的论文,介绍深度学习在Airbnb搜索排序场景落地的宝贵经验,对工业界搜索.推荐.广告算法的改进,具有很好的指导意义. 2018年,Airb ...

  5. js数组按中文拼音排序_学习排序算法,结合这个方法太容易理解了

    排序是一个经典的问题,它以一定的顺序对一个数组或列表中的元素进行重新排序.而排序算法也是各有千秋,每个都有自身的优点和局限性.虽然这些算法平常根本就不用自己去编写,但作为一个有追求的程序员,还是要了解 ...

  6. 《Webservice的应用与开发》学习笔记 ·001【Web服务、XML文档】

    注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 文章目录 一.Web服务 1.特点 2.定义 二.XML文档 ...

  7. 算法学习--排序算法

    排序 1.排序算法的比较 排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 稳定性 冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定 选择排序 O(n^2) O(n^2) O(n ...

  8. apache-cxf 使用_使用Apache CXF进行Web服务学习

    apache-cxf 使用 在我的最后几个项目中,我使用了Web服务,在某些地方创建它们并在其他地方使用它们. 我认为标准任务(例如创建客户端,创建Web服务等)非常简单,如果遇到问题,有足够的资源. ...

  9. 使用Apache CXF进行Web服务学习

    在我的最后几个项目中,我使用了Web服务,在某些地方创建它们并在其他地方使用它们. 我觉得创建客户端,创建Web服务等标准任务非常简单,如果遇到问题,有足够的资源. 但是对于Web服务,这是一项琐碎的 ...

最新文章

  1. 什么是Python?前景怎么样?
  2. 资源贴|吴恩达新课发布第1天,3万人观看 | 完整PPT
  3. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
  4. Git学习笔记;Git bash 库同步问题
  5. boost::format模块异常处理的测试程序
  6. 桂电在linux、Mac OS环境下使用出校器(支持2.14)
  7. 开发ASP.NET下的MP3小偷程序
  8. 报告表明混合云带来IT管理挑战
  9. 『中级篇』Docker-Stack部署wordpress(49)
  10. 聊聊你们关心的视频号
  11. HTML+CSS实战操作旋转魔方
  12. 电池SOC仿真系列-Battery模块
  13. 华为太极magisk安装教程_小米手机官方REC装面具(magisk)教程
  14. 这几款高格调的app,让你的人生妖艳起来!
  15. 2022年「博客之星」参赛博主:(天寒雨落)在等您评价 ~{附实时总榜单排名}
  16. linux脚本-z,shell脚本中的-a到-z的意思
  17. 如何在 Unity3D 制作一杯水 LiquidVolume插件 水杯 烧瓶液体
  18. Win32设计图标、光标样式和窗口标题(简单易懂)
  19. 想知道如何将PDF合并成一个文件?一分钟教会你
  20. 处理100万条数据 python_仅需1秒!搞定100万行数据:超强Python数据分析利器

热门文章

  1. 常见几个方式禁止IP访问网站(PHP、Nginx、Apache不同设置方法)
  2. 知识图谱 - 使用图数据库(记一次eno4j搭建分享)
  3. C语言中阶第四篇:分支与循环语句练习,求阶乘的多种方法(两层for循环求阶乘)、二分查找、字符串汇聚以及模拟用户登录
  4. vue 遍历对象和遍历对象数组
  5. mysql 调用js函数_mysql_存储过程和函数
  6. MySQL数据库——连接查询
  7. 商汤科技-计算机视觉算法实习HC
  8. html中body如何设置图片,如何调整body标记中的html背景图片的大小
  9. 网络基础-路由器工作原理
  10. 传感与检测技术(机电)_简要问答题_复习笔记