1.一种web中面向服务环境的基于张量的信任评估方法,其特征在于,包括以下步骤:
步骤1、基于张量机制,服务消费者根据服务提供者提供的的历史服务报告,对服务提供者的服务提供表现进行建模;从服务提供者接收到所有相关的历史服务报告后,服务消费者为所有潜在服务提供者的所有历史服务构建稀疏张量模型;
步骤2、基于cp分解的稀疏张量补全方法补全张量中的缺失条目,从而服务消费者可以在当前时间段中评估所有潜在服务提供者在所需求服务上的潜在表现,并选择表现最好的服务提供者来提供所需服务。
2.如权利要求1所述的一种web中面向服务环境的基于张量的信任评估方法,其特征在于,存在m个松散耦合的智能体即agent={a1,a2,…,am},其中每一个ai是服务消费者或服务提供者或两者都是;面向服务环境中的所有服务提供者都可以提供n种不同的服务即service={s1,s2,…,sn};每一个服务提供者pi可以定义为三元组,pi=<id,service,,reporti>,其中id是pi的唯一标识;servicei={si1,si2,…,sin}表示pi提供的所有服务的集合即servicei∈service,reporti={ri1,ri2,…,rin}包括所有由pi保存的其历史服务提供报告,由pi以前的服务消费者所提供,以反映其历史服务表现和其服务提供信息;pi的历史服务报告rik定义为一个五元组,rik=<sik,cik,pi,tik,valueik>,其中sik是pi提供的服务即sik∈servicei,cik是sik的服务消费者,pi是sik的服务提供者,tik是pi提供sik的时间段,将一天划分为48个时段,每个时间段为30分钟,第一个时间段为t0,最后一个时间段为tcurrent,valueik表示对于pi在sik上的服务提供表现的评分。
3.如权利要求1所述的一种web中面向服务环境的基于张量的信任评估方法,其特征在于,步骤1所述基于张量机制,根据服务提供者提供的历史服务报告对服务提供者的服务提供表现进行建模,其方法如下:
步骤1-1、提出服务提供请求,当服务消费者ci需要服务sj时,ci将根据其要求生成服务提供请求;然后,ci在基于web的面向服务环境中广播该请求以找到sj的潜在服务提供者;
步骤1-2、提供历史服务报告,如果服务提供者pi收到ci的请求,能够并且愿意为其提供sj,则pi向ci提供其与相关的历史服务提供表现,即提供相关的历史服务报告rik;
步骤l-3、服务提供者信任评估,在从所有潜在服务提供者接收到所有历史服务报告之后,服务消费者ci为所有潜在服务提供者的所有历史服务报告构建服务表现张量h∈rs×c×p×t模型,其中s,c,p和t表示服务提供者所提供的服务的集合即sik∈s,服务的消费者即cik∈c,服务的提供者即pi∈p和服务提供的时间段即tik∈t;其中,张量中的一个值h(sj,ci,pi,t)=value表示服务消费者ci在时间段t中对于服务提供者pi其提供的服务sj上的服务提供表现的评价为value;另外,由于一个服务提供者只能在一个时间段对一个服务消费者在一个服务上提供服务,所以服务表现张量h是稀疏张量,即h中的很多值都是缺失的。
4.如权利要求1所述的一种web中面向服务环境的基于张量的信任评估方法,其特征在于,步骤2所述基于cp分解的稀疏张量补全方法,对于稀疏张量h∈rs×c×p×t缺失值的补全方法如下所述:
步骤2-1、补全方法的输入包括:稀疏张量h∈rs×c×p×t、用于停止循环过程的阈值e和cp分解的秩r;
步骤2-2、根据稀疏张量h的规模和其cp分解的规则,建立并初始化h的因子矩阵a(s)∈r|s|×r,a(c)∈r|c|×r,a(p)∈r|p|×r,
步骤2-3、计算相邻两轮损失值的变化即|l0-l1|,如果该变化大于误差阈值e时,根据cp分解的逆过程,计算由四个因子矩阵合成的全张量h′∈rs×c×p×t,即h′=[a(s),a(c),a(p),a(t)],基于h现有值和h’中对应值之间的差距即w*(h-h′),基于梯度下降方法交替更新四个因子矩阵;更新因子矩阵后,首先,保留上次损失值l1即,l1=l0,然后计算当前循环中,更新因子矩阵后的损失值,即当前损失值l0,损失值的计算公式如下:
其中,
步骤2-4、重复步骤2-3,直到两次相邻循环的损失值变化小于误差阈值e时,我们可以说张量h’与稀疏张量h的不同已经被最小化,即h和h’基本相同,所以h中的缺失值可以从h’中的对应位置找到。
5.如权利要求4所述的一种web中面向服务环境中的基于张量的信任评估方法,其特征在于,步骤2-3所述的基于梯度下降的四个因子矩阵的调整方法如下:
a(s)=a(s)+η(w*(h-h′))(1)(a(t)⊙a(p)⊙a(c))
a(c)=a(c)+η(w*(h-h′))(2)(a(t)⊙a(p)⊙a(s))
a(p)=a(p)+η(w*(h-h′))(3)(a(t)⊙a(c)⊙a(s))
a(t)=a(t)+η(w*(h-h′))(4)(a(p)⊙a(c)⊙a(s))
其中,′*′表示张量的hadamard乘积,(·)(n)表示张量的模式nmatricization,并且’⊙’代表因子矩阵的khatri-rao乘积。