一種基于隨機(jī)游走的Web服務(wù)質(zhì)量預(yù)測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及Web服務(wù)質(zhì)量預(yù)測技術(shù),具體涉及一種用于Web服務(wù)選擇或推薦的基 于隨機(jī)游走的Web服務(wù)質(zhì)量預(yù)測方法。
【背景技術(shù)】
[0002] Web服務(wù)是自描述、自包含的可用網(wǎng)絡(luò)模塊,用來幫助實(shí)現(xiàn)通過遠(yuǎn)程調(diào)用來完成不 同機(jī)器之間的交互操作,并成為了構(gòu)造分布式系統(tǒng)、模塊化應(yīng)用程序和面向服務(wù)應(yīng)用集成 的主要技術(shù),如電子商務(wù)、車載系統(tǒng)、多媒體服務(wù)等。隨著網(wǎng)絡(luò)上Web服務(wù)數(shù)量的快速增長, 為用戶推薦最優(yōu)的服務(wù)變得更具有挑戰(zhàn)性。為了能在大量的可供選擇的功能相同的Web服 務(wù)集中找到最優(yōu)的服務(wù),Web服務(wù)的質(zhì)量,即QoS(Quality of Service)被廣泛用來描述和 評價(jià)Web服務(wù)的非功能屬性。Web服務(wù)的QoS常常被定義為一系列用戶感知的屬性,典型的 有響應(yīng)時(shí)間、吞吐量、可靠性等。由于QoS在成功建立面向服務(wù)的應(yīng)用中的至關(guān)重要性,基 于QoS的Web服務(wù)選擇和推薦方法成為近幾年的一個(gè)研究熱點(diǎn)。
[0003] 傳統(tǒng)的基于QoS的Web服務(wù)選擇的研究都有一個(gè)通用的假設(shè),即所有Web服務(wù)的 QoS值都是可用且準(zhǔn)確的。然而,在現(xiàn)實(shí)中,這個(gè)前提不一定是真實(shí)的,用戶想要總能獲取到 服務(wù)的QoS值是不切實(shí)際的。這是由于Web服務(wù)的QoS值容易受到不可預(yù)測的網(wǎng)絡(luò)環(huán)境和 用戶環(huán)境(例如:用戶位置,用戶網(wǎng)絡(luò)條件等)的影響,從而使得不同的用戶在相同的Web 服務(wù)上所觀察到的QoS值不同。換而言之,用戶在進(jìn)行服務(wù)選擇時(shí),不能直接使用另一個(gè)用 戶對服務(wù)的QoS評價(jià)值。并且,由于現(xiàn)實(shí)中Web服務(wù)的調(diào)用既耗時(shí)間又耗資源,因此用戶想 要通過自己調(diào)用Web服務(wù)來評價(jià)所有候選服務(wù)以獲取QoS信息是不實(shí)際的。此外由于服務(wù) 用戶需要評價(jià)的候選服務(wù)過多,且還有一些合適的Web服務(wù)未被發(fā)現(xiàn),使得服務(wù)的QoS信息 大量缺失。針對這些未知的QoS進(jìn)行預(yù)測是基于QoS的Web服務(wù)選擇和推薦的重要依據(jù)。
[0004] 現(xiàn)有技術(shù)中,最常用的預(yù)測QoS缺失值的方法存在以下缺陷:1)由于Web服務(wù)和 用戶數(shù)量的劇增,存在數(shù)據(jù)稀疏性問題,使得協(xié)同過濾方法難以解決"冷啟動"問題,即某用 戶從未調(diào)用過任何服務(wù),或某服務(wù)從未被任何用戶調(diào)用過。2)有研究表明由于位置與服務(wù) 的QoS存在相關(guān)性,處于同一或鄰近區(qū)域的用戶在相同服務(wù)上會有相似的QoS體驗(yàn)。因此, 可以利用用戶的位置來找到源用戶的鄰居,然后再根據(jù)這些鄰居的歷史QoS信息來進(jìn)行推 薦,可以有效的解決QoS數(shù)據(jù)稀疏問題。然而,僅考慮用戶位置來預(yù)測QoS可能降低預(yù)測精 度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題是:針對現(xiàn)有技術(shù)的上述問題,提供一種能在覆蓋率和 預(yù)測精度間得到顯著好的平衡,預(yù)測成功率高、通用性好、可評估置信度和可解釋性好的基 于隨機(jī)游走的Web服務(wù)質(zhì)量預(yù)測方法。
[0006] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0007] -種基于隨機(jī)游走的Web服務(wù)質(zhì)量預(yù)測方法,步驟包括:
[0008] 1)根據(jù)Web服務(wù)QoS數(shù)據(jù)集中用戶的位置信息計(jì)算用戶和用戶之間的物理距離;
[0009] 2)為每個(gè)用戶選擇物理距離最近的K個(gè)近鄰用戶作為該用戶的鄰域;
[0010] 3)為每個(gè)用戶連接各自鄰域的用戶構(gòu)建用戶關(guān)系網(wǎng)絡(luò)G ;
[0011] 4)針對用戶關(guān)系網(wǎng)絡(luò)G,計(jì)算用戶和用戶之間的相似度、服務(wù)和服務(wù)之間的相似 度;
[0012] 5)根據(jù)所述用戶和用戶之間的物理距離、用戶和用戶之間的相似度計(jì)算用戶關(guān)系 網(wǎng)絡(luò)G中每一條邊的權(quán)重;
[0013] 6)針對源用戶u。所請求的目標(biāo)服務(wù)i,從源用戶u。開始分別進(jìn)行多次查找關(guān)于目 標(biāo)服務(wù)i的隨機(jī)游走,每一次隨機(jī)游走中的每一跳基于用戶關(guān)系網(wǎng)絡(luò)G中每一條邊的權(quán)重 確定下一跳的用戶選擇概率,并根據(jù)所述用戶選擇概率從當(dāng)前跳的用戶u的鄰域NUu中隨 機(jī)選擇一個(gè)用戶V作為本次隨機(jī)游走的下一跳節(jié)點(diǎn),最終在找到調(diào)用過目標(biāo)服務(wù)i或相似 服務(wù)的用戶后結(jié)束本次游走并返回一個(gè)QoS值;
[0014] 7)綜合所有隨機(jī)游走返回的QoS值計(jì)算源用戶u。相對目標(biāo)服務(wù)i的QoS預(yù)測值。
[0015] 優(yōu)選地,所述步驟1)中具體是指根據(jù)式(1)計(jì)算用戶和用戶之間的物理距離;
[0017] 式(1)中,du,v為用戶u和用戶V之間的物理距離,為用戶u的煒度、A u為用戶 u的經(jīng)度,乾為用戶V的煒度、λ v為用戶V的經(jīng)度。
[0018] 優(yōu)選地,所述步驟4)具體是指根據(jù)式(2)計(jì)算用戶和用戶之間的相似度、根據(jù)式 (4)計(jì)算服務(wù)和服務(wù)之間的相似度;;
[0020] 式(2)中,sim(u, V)為用戶u和用戶V之間的相似度,ICu,v是指用戶u和用戶V 共同調(diào)用過的Web服務(wù)集合,corr(u,V)為用戶u和用戶V之間的皮爾森相關(guān)系數(shù),皮爾森 相關(guān)系數(shù)corr(u,v)的計(jì)算公式如式(3)所示;
[0022] 式(3)中,ICu,v為用戶u和用戶V共同調(diào)用過的Web服務(wù)集合,r Uil為用戶u在 Web服務(wù)i上觀察到的QoS值,ξ為用戶u的QoS向量的平均值,6為用戶V的QoS向量的 平均值;
[0024] 式⑷中,sim(i,j)為服務(wù)i和服務(wù)j之間的相似度,UCu是指共同調(diào)用過Web 服務(wù)i和j的用戶集,c〇rr(i,j)為服務(wù)i和j之間的皮爾森相關(guān)系數(shù),皮爾森相關(guān)系數(shù) corr (i, j)的計(jì)算公式如式(5)所示,且服務(wù)i和j之間的皮爾森相關(guān)系數(shù)corr (i, j)僅僅 取正相關(guān);
[0026] 式(5)中,UCli j為共同調(diào)用過Web服務(wù)i和j的用戶集,r Uil為用戶u在Web服務(wù) i上觀察到的QoS值,巧為服務(wù)i的QoS向量的平均值,C為服務(wù)j的QoS向量的平均值。
[0027] 優(yōu)選地,所述步驟5)中具體是指根據(jù)式(6)計(jì)算用戶關(guān)系網(wǎng)絡(luò)G中每一條邊的權(quán) 重;
[0029] 式(6)中,用戶關(guān)系網(wǎng)絡(luò)G中用戶u和用戶V之間的邊的權(quán)重,du,v為用戶 u和用戶V之間的物理距離,sim(u,V)為用戶u和用戶V之間的相似度,λ為[0, 1]區(qū)間 內(nèi)的可調(diào)參數(shù)。
[0030] 優(yōu)選地,所述步驟6)中每一次隨機(jī)游走的詳細(xì)步驟包括:
[0031] 6. 1)從源用戶u。開始進(jìn)行查找有關(guān)目標(biāo)服務(wù)i的隨機(jī)游走,當(dāng)本次游走隨機(jī)過程 中的某一跳到達(dá)某個(gè)用戶u時(shí)跳轉(zhuǎn)執(zhí)行步驟6. 2);
[0032] 6. 2)判斷當(dāng)前跳的用戶u在目標(biāo)服務(wù)i上是否有QoS值,如果有QoS值則將該QoS 值rUil作為本次隨機(jī)游走的QoS值返回,本次隨機(jī)游走結(jié)束;否則,跳轉(zhuǎn)執(zhí)行下一步;
[0033] 6. 3)判斷源用戶u。開始進(jìn)行隨機(jī)游走的跳數(shù)是否等于預(yù)設(shè)的最大游走深度 max-depth,如果不等于預(yù)設(shè)的最大游走深度max-depth,則跳轉(zhuǎn)執(zhí)行步驟6. 4),否則跳轉(zhuǎn) 執(zhí)行步驟6. 5);
[0034] 6.4)以指定的終止概率Civlik判斷本次隨機(jī)游走是否需要終止,如果不需要終 止,則基于用戶關(guān)系網(wǎng)絡(luò)G中每一條邊的權(quán)重確定下一跳的用戶選擇概率,并根據(jù)所述用 戶選擇概率從當(dāng)前跳的用戶u的鄰域NUu中選擇一個(gè)用戶V作為本次游走隨機(jī)的下一跳節(jié) 點(diǎn),跳轉(zhuǎn)執(zhí)行步驟6.2);如果需要終止,則跳轉(zhuǎn)執(zhí)行步驟6.5);
[0035] 6. 5)從當(dāng)前跳的用戶u調(diào)用過的服務(wù)集合RSu中以指定的服務(wù)選擇概率選擇一個(gè) 和目標(biāo)服務(wù)i相似的服務(wù)j,將當(dāng)前跳的用戶u在目標(biāo)服務(wù)j上的QoS值作為本次隨機(jī)游走 的QoS值rUi j返回,本次隨機(jī)游走結(jié)束。
[0036] 優(yōu)選地,所述步驟6. 3)的詳細(xì)步驟包括:
[0037] 6. 3. 1)判斷是否滿足式(7)所示的全局游走終止條件,如果滿足全局游走終止條 件,則跳轉(zhuǎn)執(zhí)行步驟6.5);否則跳轉(zhuǎn)執(zhí)行步驟6.3.2);
[0038] |σ2, -σ"j < f (7)
[0039] 式(7)中,<表示前i次隨機(jī)游走結(jié)果的方差,表示前i+1次隨機(jī)游走結(jié)果的 方差,ε為預(yù)設(shè)的收斂常數(shù),其中前i次隨機(jī)游走結(jié)果的方差<的計(jì)算表達(dá)式如式(8)所 示;
[0041] 式(8)中,< 為前i次隨機(jī)游走結(jié)果的方差,T為已返回QoS值的隨機(jī)游走總次 數(shù),F(xiàn)為T趟隨機(jī)游走返回的QoS平均值,Γι為第i次隨機(jī)游走返回的QoS值;
[0042] 6. 3. 2)判斷源用戶u。開始進(jìn)行隨機(jī)游走的跳數(shù)是否等于預(yù)設(shè)的最大游走深度 max-depth,如果不等于預(yù)設(shè)的最大游走深度max-depth,則跳轉(zhuǎn)執(zhí)行步驟6. 4),否則跳轉(zhuǎn) 執(zhí)行步驟6. 5)。
[0043] 優(yōu)選地,所述步驟6. 4)中以指定的終止概率判斷本次隨機(jī)游走是否需要終止時(shí), 所述終止概率ΦUilik的計(jì)算表達(dá)式如式(9)所示;
[0045] 式(9)中,(Km為針對目標(biāo)服務(wù)i的游走隨機(jī)過程中經(jīng)過第k跳到達(dá)用戶u時(shí)的 終止概率,RSu為當(dāng)前跳的用戶u調(diào)用過的服務(wù)集合,sim(i,j)為目標(biāo)服務(wù)i和當(dāng)前跳的用 戶u調(diào)用過的服務(wù)集合RSu中的服務(wù)j之間的相似度,k為當(dāng)前跳的用戶u和源用戶u。之 間的跳數(shù)。
[0046] 優(yōu)選地,所述步驟6. 4)中具體是指根據(jù)式(10)確定下一跳的用戶選擇概率;
[0048] 式(10)中,,?+ι =ν|χ =?,足,)為從用戶u的鄰域NUu中選擇一個(gè)用戶V的 用戶選擇概率,尤。#+1為在尋找源用戶u。對目標(biāo)服務(wù)i的一個(gè)QoS預(yù)測值時(shí)隨機(jī)游走在第 k跳找到用戶V的隨機(jī)變量,為在尋找源用戶u。對目標(biāo)服務(wù)i的一個(gè)QoS預(yù)測值時(shí)隨 機(jī)游走在第k-Ι跳找到用戶u的隨機(jī)變量,見,.表示在第k-Ι步時(shí)所在節(jié)點(diǎn)用戶u對目標(biāo)服 務(wù)i沒有QoS記錄的前提條件;NUu為和源用戶u。距離k跳的用戶u的鄰域,V為從用戶u 的鄰域NUu中選擇的作為下一跳的用戶,Φ ^,為針對目標(biāo)服務(wù)i的游走隨機(jī)過程中經(jīng)過第 k跳到達(dá)用戶u時(shí)的終止概率,tu,v為用戶關(guān)系網(wǎng)絡(luò)G中用戶u和下一跳的用戶V之間的邊 的權(quán)重,tu,w為用戶關(guān)系網(wǎng)絡(luò)G中用戶u、用戶u的鄰域NU u中用戶w之間的邊的權(quán)重。
[0049] 優(yōu)選地,所述步驟6. 5)中以指定的服務(wù)選擇概率選擇一個(gè)和目標(biāo)服務(wù)i相似的服 務(wù)j時(shí),所述服務(wù)選擇概率的計(jì)算表達(dá)式如式(11)所示;
[0050] CN 105117325 A 說明書 5/16 頁
[0051] 式(11)中,Ρ(Υ^= j)為以指定的服務(wù)選擇概率選擇一個(gè)和目標(biāo)服務(wù)i相似的服 務(wù)j時(shí)的服務(wù)選擇概率,sim(i,j)為目標(biāo)服務(wù)i和服務(wù)j之間的相似度,sim(i,1)為目標(biāo) 服務(wù)i和當(dāng)前跳的用戶u調(diào)用過的服務(wù)集合RSu