一種基于用戶元數(shù)據(jù)的快速Web服務(wù)QoS預(yù)測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于Web服務(wù)技術(shù)領(lǐng)域,具體涉及一種基于用戶元數(shù)據(jù)的快速Web服務(wù)QoS 預(yù)測(cè)方法。
【背景技術(shù)】
[0002] 在Web2. 0時(shí)代互聯(lián)網(wǎng)服務(wù)浪潮的推動(dòng)下,傳統(tǒng)的軟件系統(tǒng)的主要形態(tài)、運(yùn)行方 式、生產(chǎn)方式和使用方式正發(fā)生著巨大的變化。Web服務(wù)的廣泛部署和應(yīng)用,給工業(yè)界和學(xué) 術(shù)界帶來源源不斷的動(dòng)力,并促進(jìn)服務(wù)領(lǐng)域?qū)W科的持續(xù)發(fā)展。在業(yè)界的推動(dòng)下,作為服務(wù)科 學(xué)的基礎(chǔ)的Q〇S(QualityofService,服務(wù)質(zhì)量)屬性也引起了眾多服務(wù)學(xué)科研究者的關(guān) 注。近年來,基于QoS的范式也廣泛地應(yīng)用在服務(wù)選擇,服務(wù)發(fā)現(xiàn),服務(wù)組合,服務(wù)推薦和服 務(wù)監(jiān)控等領(lǐng)域,大大推動(dòng)服務(wù)學(xué)科的前行發(fā)展。
[0003] 目前,上述領(lǐng)域的發(fā)展均需要對(duì)大量QoS數(shù)據(jù)資源作挖掘和分析工作。然而,在真 實(shí)情況下,這種數(shù)據(jù)要求比較難得到滿足,原因如下:(1)大部分服務(wù)資源都是由商業(yè)公司 和機(jī)構(gòu)持有。如果通過調(diào)用這類服務(wù)的方式獲得QoS數(shù)據(jù)資源,研究者將需要花費(fèi)大量的 金錢成本。(2)當(dāng)代互聯(lián)網(wǎng)發(fā)展日新月異,每天都有大量的服務(wù)涌現(xiàn)。如果通過調(diào)用這些海 量服務(wù)的方式獲得QoS數(shù)據(jù)資源,研究者將需要花費(fèi)大量的時(shí)間成本。因此,在真實(shí)的應(yīng)用 場(chǎng)景下,大量充足的QoS資源是很難通過調(diào)用服務(wù)的方式獲得的。同時(shí),QoS信息的缺失也 在阻礙了服務(wù)科學(xué)的發(fā)展。
[0004] 近年來,解決QoS稀缺性的問題得到了研究者的高度重視。研究者思考如何通過 使用機(jī)器學(xué)習(xí)方法對(duì)缺失的QoS數(shù)據(jù)資源進(jìn)行預(yù)測(cè)?,F(xiàn)有工作中,對(duì)未知的QoS進(jìn)行預(yù)測(cè) 主要使用基于PCC(PearsonCorrelationCoefficient)方法來計(jì)算客戶端用戶之間或者 Web服務(wù)之間的相似度。然而,這種計(jì)算方法存在以下兩點(diǎn)不足=(I)PCC方法需要對(duì)歷史記 錄中的QoS作統(tǒng)計(jì)學(xué)習(xí),嚴(yán)重依賴于數(shù)據(jù)的準(zhǔn)確性和完備性。然而由于當(dāng)代互聯(lián)網(wǎng)環(huán)境的 復(fù)雜性,QoS記錄并不一定都是準(zhǔn)確的,致使PCC方法在服務(wù)計(jì)算場(chǎng)景下相似性計(jì)算準(zhǔn)確率 下降。(2)傳統(tǒng)的PCC方法廣泛地應(yīng)用在推薦系統(tǒng)領(lǐng)域。然而,推薦系統(tǒng)和服務(wù)計(jì)算的應(yīng)用 場(chǎng)景存在著本質(zhì)的區(qū)別。在QoS歷史記錄中,每一項(xiàng)都是由用戶的實(shí)際使用網(wǎng)絡(luò)環(huán)境決定 的,這種數(shù)據(jù)客觀性的特點(diǎn)直接降低了PCC相似度計(jì)算的精度。
[0005]同時(shí),目前主流的QoS預(yù)測(cè)工作還存在系統(tǒng)求解時(shí)間過長(zhǎng)的問題。實(shí)際上,過長(zhǎng)的 運(yùn)行時(shí)間會(huì)對(duì)各方帶來問題:對(duì)于研究者而言,通過冗長(zhǎng)的學(xué)習(xí)時(shí)間而獲得QoS數(shù)據(jù)資源 不是他們所希望的。而對(duì)于系統(tǒng)設(shè)計(jì)者而言,他們希望通過較少的時(shí)間成本來學(xué)習(xí)數(shù)據(jù)資 源的內(nèi)在規(guī)律。然而,目前的精確的QoS預(yù)測(cè)方法需要大量時(shí)間來學(xué)習(xí)數(shù)據(jù)屬性,同時(shí)也缺 乏對(duì)核心算法復(fù)雜度的實(shí)效分析。
【發(fā)明內(nèi)容】
[0006] 針對(duì)現(xiàn)有技術(shù)所存在的上述技術(shù)問題,本發(fā)明提供了一種基于用戶元數(shù)據(jù)的快速 Web服務(wù)QoS預(yù)測(cè)方法,能夠有效提高預(yù)測(cè)的準(zhǔn)確性,大大提升求解效率,從而實(shí)時(shí)響應(yīng)多 用戶的個(gè)性化QoS查詢請(qǐng)求。
[0007] -種基于用戶元數(shù)據(jù)的快速Web服務(wù)QoS預(yù)測(cè)方法,包括如下步驟:
[0008] (1)收集所有用戶提供的元數(shù)據(jù),所述的元數(shù)據(jù)包括用戶對(duì)其調(diào)用過的所有Web 服務(wù)的QoS數(shù)據(jù)以及用戶的IP地址信息;進(jìn)而根據(jù)所述的QoS數(shù)據(jù)建立用戶與Web服務(wù)之 間的QoS元矩陣R;
[0009] (2)根據(jù)所述的元數(shù)據(jù)計(jì)算用戶之間關(guān)于地理位置的歐式距離以及關(guān)于QoS數(shù)據(jù) 的相似度;
[0010] (3)根據(jù)所述的歐式距離和相似度,確定出每個(gè)用戶的鄰域用戶集合;
[0011] (4)根據(jù)所述的QoS元矩陣R以及每個(gè)用戶的鄰域用戶集合,通過SVD(奇異值分 解)方法建立以下目標(biāo)函數(shù)Q,并對(duì)該目標(biāo)函數(shù)Q進(jìn)行最小化求解,以求得關(guān)于用戶的隱式 特征矩陣U和關(guān)于Web服務(wù)的隱式特征矩陣S;進(jìn)而根據(jù)V=UtS重建用戶與Web服務(wù)之間 的QoS預(yù)測(cè)矩陣V;
[0013] 其中:1^為隱式特征矩陣U中的第i列向量,S為隱式特征矩陣S中的第j列向 量,N2⑴為第i個(gè)用戶的鄰域用戶集合,K為預(yù)設(shè)的鄰域用戶個(gè)數(shù)即鄰域用戶集合N2⑴ 中的用戶總數(shù),Ug為鄰域用戶集合~2(1)中的第g個(gè)用戶在隱式特征矩陣U中所對(duì)應(yīng)的向 量,m為用戶的總數(shù),n為Web服務(wù)的總數(shù);Rlj為QoS元矩陣R中第i行第j列元素值,Iu 為M勺指示符,若R^為null則Ilj= 0,否則Ilj=I;IIII$F-范數(shù),T表示轉(zhuǎn)置,a 和A均為給定的控制系數(shù);
[0014] (5)接受用戶關(guān)于Web服務(wù)的QoS查詢請(qǐng)求,然后根據(jù)QoS預(yù)測(cè)矩陣V向該用戶提 供其所請(qǐng)求查詢的Web服務(wù)的QoS數(shù)據(jù)預(yù)測(cè)結(jié)果。
[0015] 所述的步驟(1)中根據(jù)QoS數(shù)據(jù)建立用戶與Web服務(wù)之間的QoS元矩陣R,具體 為:所述QoS元矩陣R的維度為mXn,QoS元矩陣R中第i行第j列元素值Rlj采用第i個(gè) 用戶對(duì)于第j個(gè)Web服務(wù)的QoS數(shù)據(jù),若第i個(gè)用戶之前未調(diào)用過第j個(gè)Web服務(wù),則元素 值Rlj為null。
[0016] 所述的步驟(2)中通過以下公式計(jì)算用戶之間關(guān)于地理位置的歐式距離:
[0018] 其中:dist(i,p)為第i個(gè)用戶與第p個(gè)用戶之間關(guān)于地理位置的歐式距離,\和 Y1*別為第i個(gè)用戶的經(jīng)度和煒度,Xp和yp分別為第p個(gè)用戶的經(jīng)度和煒度,用戶的經(jīng)煒 度信息由其IP地址信息轉(zhuǎn)化得到;c為經(jīng)煒度單位轉(zhuǎn)化成單位米的常數(shù),i辛P。
[0019] 所述的步驟(2)中通過以下公式計(jì)算用戶之間關(guān)于QoS數(shù)據(jù)的相似度:
[0021] 其中:sim(i,p)為第i個(gè)用戶與第p個(gè)用戶之間關(guān)于QoS數(shù)據(jù)的相似度,瓦為第 i個(gè)用戶對(duì)其調(diào)用過的所有Web服務(wù)的QoS數(shù)據(jù)平均值,為第p個(gè)用戶對(duì)其調(diào)用過的所 有Web服務(wù)的QoS數(shù)據(jù)平均值;S為第i個(gè)用戶與第p個(gè)用戶共同調(diào)用過的Web服務(wù)集合,Rls為第i個(gè)用戶對(duì)Web服務(wù)集合S中第s個(gè)Web服務(wù)的QoS數(shù)據(jù),Rps為第p個(gè)用戶對(duì)Web 服務(wù)集合S中第s個(gè)Web服務(wù)的QoS數(shù)據(jù),i辛p。
[0022] 所述的步驟(3)中確定每個(gè)用戶的鄰域用戶集合,具體方法如下:
[0023] 首先,對(duì)于第i個(gè)用戶,從其他所有用戶中提取出與其關(guān)于地理位置歐式距離小 于0的用戶組成用戶集合N1Q),0為預(yù)設(shè)的距離閾值;
[0024] 然后,從用戶集合N1⑴中提取出與第i個(gè)用戶關(guān)于QoS數(shù)據(jù)相似度最大的前K個(gè) 用戶組成第i個(gè)用戶的鄰域用戶集合N2 (i)。
[0025] 優(yōu)選地,所述的步驟(4)中采用梯度下降迭代算法對(duì)目標(biāo)函數(shù)Q進(jìn)行最小化求解, 且在每一輪迭代計(jì)算過程中構(gòu)造中間變量記錄表;能夠解決重復(fù)項(xiàng)的問題,從而加速梯度 下降求解過程。
[0026] 所述的步驟(5)中最后將用戶所請(qǐng)求查詢的Web服務(wù)的QoS數(shù)據(jù)預(yù)測(cè)結(jié)果包裝成 html頁面格式展現(xiàn)給用戶。
[0027] 本發(fā)明通過使用用戶的元數(shù)據(jù)(地理位置信息和歷史QoS記錄)來精確選擇請(qǐng)求 用戶的領(lǐng)域,同時(shí)通過融合用戶擴(kuò)展內(nèi)在屬性的矩陣分解算法有效地提高預(yù)測(cè)的準(zhǔn)確性。 本發(fā)明通過矩陣分解加速技術(shù)大大提升了求解效率,從而實(shí)時(shí)響應(yīng)多用戶的個(gè)性化QoS查 詢請(qǐng)求。
【附圖說明】
[0028] 圖1為本發(fā)明基于用戶元數(shù)據(jù)的快速Web服務(wù)QoS預(yù)測(cè)方法的流程示意圖。
[0029] 圖2是快速Q(mào)oS預(yù)測(cè)算法引擎的內(nèi)部流程示意圖。
【具體實(shí)施方式】
[0030] 為了更為具體地描述本發(fā)明,下面結(jié)合附圖及【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案 進(jìn)行詳細(xì)說明。
[0031] 如圖1所示,本發(fā)明基于用戶元數(shù)據(jù)的快速Web服務(wù)QoS預(yù)測(cè)方法,包括以下部 分:
[0032] 步驟1 :采集用戶元數(shù)據(jù)。元數(shù)據(jù)包括了兩部分:(1)用戶的IP信息;(2)用戶的 歷史QoS數(shù)據(jù)。假設(shè)一共有m個(gè)用戶和n個(gè)服務(wù),那么:
[0033] 使用歷史數(shù)據(jù)產(chǎn)生一個(gè)mXn的用戶-服務(wù)的QoS矩陣R:其中每一項(xiàng)Rlj是用戶i對(duì)服務(wù)j的QoS使用情況。使用技術(shù)將用戶的IP信息轉(zhuǎn)化為用戶的幾何地理位置坐標(biāo) (Xl,yi)。其中^表示用戶的經(jīng)度位置,y:表示用戶的煒度位置。
[0034] 步驟2 :元數(shù)據(jù)預(yù)處理。對(duì)于采集的兩部分,本發(fā)明分別采取以下處理方式:
[0035] 根據(jù)幾何地理元組計(jì)算用戶間的相對(duì)距離,距離公式如下:
[0037] 其中:c是從經(jīng)煒度單位轉(zhuǎn)化成單位米的常數(shù)。假設(shè)地球是球形,那么c近似等于 111261。
[0038] 對(duì)所有用戶計(jì)算相對(duì)距離,產(chǎn)生一個(gè)mXm的用戶相對(duì)距離信息矩陣D:其中每一 項(xiàng)dist(i,j)表示用戶i和用戶j的相對(duì)距離信息。
[0039] 根據(jù)歷史QoS數(shù)據(jù)計(jì)算用戶間的相似度。相似度公式如下:
[0041] 其中:sGS是用戶i和用戶j調(diào)用過的公共服務(wù)。sim的值域在[-1,1],值越大 表示用戶間相似度越高。
[0042] 對(duì)所有用戶計(jì)算相對(duì)距離,產(chǎn)生一個(gè)mXm的用戶相對(duì)距離信息矩陣D:其中每一 項(xiàng)sim(i,j)表示用戶i和用戶j的相似度。
[0043] 步驟3 :前端門戶頁面接受目標(biāo)用戶QoS查詢請(qǐng)求,并請(qǐng)求用戶輸入自定義的閾值 9 和T0P_K〇
[0044] 步驟4 :對(duì)步驟3采集的查詢請(qǐng)求作分析:
[0045] 假若目標(biāo)用戶已經(jīng)在以前調(diào)用過請(qǐng)求服務(wù),那么系統(tǒng)數(shù)據(jù)庫將會(huì)存在相應(yīng)的QoS 記錄,那么可以把QoS信息發(fā)送到前端顯示引擎,生成結(jié)果返回頁面。
[0046] 假若用戶以前沒有調(diào)用過請(qǐng)求服務(wù),那么需要系統(tǒng)進(jìn)行步驟5的快速預(yù)測(cè)算法引 擎。
[0047] 步驟5 :快速預(yù)測(cè)算法引擎是本發(fā)明的執(zhí)行實(shí)