陳曙輝,范玉順
(清華大學(xué) 自動化系,北京 100084)
近年來,隨著信息技術(shù)的飛速發(fā)展,電子商務(wù)[1]進(jìn)入一個迅猛發(fā)展的階段。商業(yè)服務(wù)和信息支撐技術(shù)不斷融合,軟件即服務(wù)(Software as a Service, SaaS)[2]和面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture, SOA)[3]的普及,使得商業(yè)服務(wù)系統(tǒng)的開發(fā)不再是個難題。以某一訂餐平臺為例,訂餐平臺的開發(fā)者無需再去重復(fù)開發(fā)地圖顯示和定位功能、餐館名稱和菜品管理、天氣信息獲取、送餐員管理等功能模塊,而是通過調(diào)用互聯(lián)網(wǎng)上的各類Web服務(wù),將其組合在一起,就能輕松快捷地完成訂餐平臺所需要的各種功能。在這種環(huán)境的驅(qū)動下,互聯(lián)網(wǎng)上Web服務(wù)的種類和數(shù)量與日俱增。
在一個服務(wù)系統(tǒng)中,單一的服務(wù)個體(service)由于功能性單一,很難滿足用戶復(fù)雜多變的需求,更多的情況是將多個服務(wù)集成為一個服務(wù)組合(service composition),以服務(wù)組合的形式為用戶提供服務(wù)[4]。服務(wù)組合的產(chǎn)生與使用為用戶提供了更為便利的使用方式,但也帶來一些新的問題。Web服務(wù)的數(shù)量與日俱增,如Web服務(wù)生態(tài)系統(tǒng)[5]描述的那樣,相似功能的Web服務(wù)之間相互競爭,失利的Web服務(wù)會走向消亡。在上述應(yīng)用場景下,消亡的Web服務(wù)會對使用它的服務(wù)組合帶來巨大損失和影響。例如上例中,構(gòu)成訂餐平臺的地圖顯示和定位、餐館管理和菜品管理、天氣信息服務(wù)中,無論哪一個出現(xiàn)問題,都會使訂餐平臺出現(xiàn)系統(tǒng)崩潰。再以ProgrammableWeb[www.programmableWeb.com]為例,截止到2016年8月,ProgrammableWeb提供了15 368個應(yīng)用程序編程接口(,Application Programing Interface, API)和7 822個Mashup。其中:API可以為用戶提供較為單一的功能,可視為單個服務(wù);Mashup則綜合了多個API,能夠滿足用戶較為復(fù)雜的需求,可視為服務(wù)組合。統(tǒng)計(jì)表明,平臺中282個API失效導(dǎo)致1 527個Mashup失效,給Mashup的開發(fā)者造成了極大的損失。因此,服務(wù)組合開發(fā)者在選擇服務(wù)時,必須考慮服務(wù)的可靠性,避免因單個服務(wù)個體失效造成整體崩潰,從根基上提高服務(wù)組合的持久可用性。
在研究Web服務(wù)可靠性的相關(guān)問題中,Web服務(wù)失效問題[6-9]的研究熱度更高。Web服務(wù)失效與本文研究的Web服務(wù)消亡問題存在一定的相似性,二者都是研究因Web服務(wù)不能正常工作而對整個服務(wù)系統(tǒng)造成的影響。前者Web服務(wù)本身并沒有問題,通常是由于網(wǎng)絡(luò)環(huán)境或者網(wǎng)絡(luò)節(jié)點(diǎn)等原因?qū)е路?wù)失效。在這類Web服務(wù)失效中,隨著網(wǎng)絡(luò)環(huán)境的改善、受損網(wǎng)絡(luò)節(jié)點(diǎn)的修復(fù)或網(wǎng)絡(luò)節(jié)點(diǎn)的調(diào)整,很快又可以恢復(fù)使用,從長遠(yuǎn)角度來說并不對服務(wù)組合和整個服務(wù)系統(tǒng)造成太大影響。Web服務(wù)消亡是Web服務(wù)在當(dāng)前服務(wù)系統(tǒng)中永久失效。因?yàn)閃eb服務(wù)本身退出服務(wù)系統(tǒng)不再繼續(xù)提供服務(wù),所以無法通過調(diào)整網(wǎng)絡(luò)等手段恢復(fù),必然導(dǎo)致相關(guān)的服務(wù)組合徹底崩潰,如果大量的服務(wù)組合出現(xiàn)問題則會威脅到整個服務(wù)系統(tǒng)的穩(wěn)定。
Web服務(wù)消亡最直觀的原因是因Web服務(wù)在同類服務(wù)激烈的競爭中處于劣勢,Web服務(wù)的開發(fā)者從戰(zhàn)略的角度停止了對Web服務(wù)的繼續(xù)支持。在相關(guān)研究中,夏博飛等[10]使用服務(wù)標(biāo)簽標(biāo)注同類服務(wù),利用加權(quán)服務(wù)網(wǎng)絡(luò)分析法分析競爭失利的Web服務(wù),從而為服務(wù)組合開發(fā)者提供有效的參考。這類方法存在的問題是標(biāo)簽的準(zhǔn)確性問題,大多數(shù)服務(wù)系統(tǒng)中的標(biāo)簽由開發(fā)者填寫,出于競爭和宣傳的原因可能不會如實(shí)填寫,影響了分類的準(zhǔn)確性;另外,標(biāo)簽為手工標(biāo)注,存在標(biāo)簽種類太多、標(biāo)簽格式不統(tǒng)一、維護(hù)困難等問題。Web服務(wù)消亡另外一個容易理解的動機(jī)是,實(shí)力欠缺的供應(yīng)商在Web服務(wù)處于競爭劣勢時更容易放棄堅(jiān)持,相反實(shí)力強(qiáng)勁的供應(yīng)商則因?yàn)槠放坪托抛u(yù)等原因堅(jiān)持得更長久。Xia等[11]引入Web服務(wù)供應(yīng)商的信息,并依此建立了服務(wù)特征融合建模(,Service Comprehensive Feature Modeling, SCFM)算法,得到了很好的預(yù)測效果,但是供應(yīng)商信息等個性化數(shù)據(jù)受限于服務(wù)系統(tǒng),甚至受限于當(dāng)前服務(wù)系統(tǒng)的版本更新。
近年來,隨著機(jī)器學(xué)習(xí)的興起,用機(jī)器學(xué)習(xí)方法提取文本特征的方法[12-17]得到了廣泛應(yīng)用,從Web服務(wù)的描述、用戶的反饋文本中提取Web服務(wù)的主題特征成為可能。而在這些主題中,隨著社會流行趨勢的變化,有一些主題隨著時間的發(fā)展必然整體走向沒落,以這些主題特征為主要功能點(diǎn)開發(fā)的Web服務(wù)退出服務(wù)系統(tǒng)的原理機(jī)制其實(shí)與Web服務(wù)之間的競爭因素并不相同。另外,從實(shí)驗(yàn)數(shù)據(jù)中可以觀察到,一個新的服務(wù),如果在產(chǎn)生的若干時間段內(nèi)未能及時得到調(diào)用和認(rèn)可,就很容易淹沒在新生的Web服務(wù)大潮中,從而使被調(diào)用的幾率大大降低,實(shí)驗(yàn)表明長時間未被調(diào)用的服務(wù)出現(xiàn)服務(wù)消亡的幾率大為增加。本文從主題消亡的角度,結(jié)合時間敏感的因素,對Web服務(wù)消亡進(jìn)行了預(yù)測。在ProgrammableWeb數(shù)據(jù)集上的實(shí)驗(yàn)驗(yàn)證表明,該方法能有效地從服務(wù)系統(tǒng)中篩選出消亡的服務(wù),從而為服務(wù)的使用者提供有效的參考。
本文工作是在服務(wù)系統(tǒng)環(huán)境下進(jìn)行服務(wù)失效研究。對服務(wù)系統(tǒng)的描述如圖1所示,一個服務(wù)系統(tǒng)包括服務(wù)和服務(wù)組合兩種類型,服務(wù)提供商開發(fā)單一功能的服務(wù),服務(wù)組合開發(fā)者則利用這些服務(wù)組合出功能豐富多彩的服務(wù)組合,用戶更傾向于使用滿足復(fù)雜需求的服務(wù)組合而非功能單一的服務(wù)個體。從這個角度給出研究環(huán)境和研究問題的定義如下:
定義2服務(wù)消亡預(yù)測。在服務(wù)系統(tǒng)G中,定義服務(wù)消亡向量P=[p1,p2,…,pj],其中pj∈[0,1]為第j個服務(wù)出現(xiàn)服務(wù)消亡的概率值。pj值越大,其服務(wù)退出的可能性越大。
通過上述定義將較為抽象的服務(wù)消亡現(xiàn)象轉(zhuǎn)化為以概率值度量出現(xiàn)服務(wù)消亡可能性的研究方法,在進(jìn)行特征分析、建立模型并解決問題前,首先介紹使用到的一些數(shù)學(xué)模型。
在用于推薦的機(jī)器學(xué)習(xí)算法中,使用文本主題特征提取的有很多,常見的有隱狄利克雷分布—主題模型(Latent Dirichlet Allocation, LDA)[12-13]、泊松分解[14-15]和深度學(xué)習(xí)[16-17]等。LDA通過模擬人們的寫作過程,從語料庫中挑選詞匯構(gòu)成文本來訓(xùn)練模型,但是LDA認(rèn)為文本中的詞匯是從詞袋中隨機(jī)挑選而得,忽視了一篇文章中詞匯間存在的內(nèi)在關(guān)系,并不完全符合實(shí)際情況;深度學(xué)習(xí)通過構(gòu)建多層神經(jīng)網(wǎng)絡(luò),抽象出較為準(zhǔn)確的主題特征,然而深度學(xué)習(xí)在學(xué)習(xí)代價上,特別是學(xué)習(xí)矩陣維數(shù)較大、中間層設(shè)置較多的情況下,需要較大的計(jì)算量;泊松分解認(rèn)為文檔的詞匯使用情況滿足某一特定參數(shù)下的泊松分布模型,通過EM算法不斷調(diào)整參數(shù),使預(yù)設(shè)模型逐漸逼近文檔的真實(shí)模型,其缺點(diǎn)是對模型參數(shù)要求較高,但對于稀疏矩陣,通過使用獨(dú)特的訓(xùn)練方法,可以大大降低模型的訓(xùn)練成本。與前兩種算法相比泊松分解有極大的優(yōu)勢,而服務(wù)系統(tǒng)中的服務(wù)主題特征提取恰好滿足這種情況。
泊松分解在2013年由Prem Gopalan提出[14],作為機(jī)器學(xué)習(xí)中比較新的研究成果,泊松分解屬于產(chǎn)生式概率模型,如圖2所示。泊松分解本質(zhì)上仍然是一種非負(fù)的矩陣分解算法,與傳統(tǒng)的非負(fù)矩陣分解(Nonnegative Matrix Factorization, NMF)[18]不同的是,對于一個滿足泊松分布的系數(shù)矩陣,泊松分解在非負(fù)矩陣分解的基礎(chǔ)上,通過調(diào)整系數(shù)使分解后得到的兩個矩陣都滿足Gamma分布,即
ηu~Gamma(λua,λub);
θi~Gamma(λia,λib);
(1)
式中(λ·a,λ·b)表示Gamma分布的形狀參數(shù)和尺度參數(shù)。
ηu,k~Gamma(λua,k,λub,k);
θi,k~Gamma(λia,k,λib,k);
(2)
式(2)的聯(lián)合概率公式可以表示為
(3)
使用變分推斷的前提假設(shè)是各個Gamma分布之間相互獨(dú)立。對于式(3)中的每個ηu,k(?k∈K),從中抽取與其相關(guān)的部分,得到
p(ηu,k|yui,k,λua,k,λub,k)
(4)
由此得到迭代公式
(5)
=exp(Eq[log(ηu,kθi,k)])∝log(ηu,k)+log(θi,k)。
(6)
式中Eq(·)表示在分布q下的期望。因?yàn)閘og(ηu,k)=Ψ(λua,k)-log(λub,k),所以φui,k的迭代公式為
φui,k←exp{Ψ(λua,k)-log(λub,k)+Ψ(λia,k)-
log(λib,k)}。
(7)
(8)
可以看出,當(dāng)yui=0時無需計(jì)算φui,k,對于稀疏矩陣而言,泊松分解的這個特性可以節(jié)省很大一部分計(jì)算量?,F(xiàn)實(shí)生活的大多數(shù)服務(wù)系統(tǒng)在海量的Web服務(wù)隊(duì)列中,其服務(wù)組合調(diào)用的往往只有其中少數(shù)幾個,因此對于服務(wù)系統(tǒng)的特征提取,使用泊松分解構(gòu)建模型是非常適宜的一種方法。
預(yù)測服務(wù)消亡與否在本質(zhì)上屬于分類問題,目前常見的可用于分類的算法有Logistic回歸、支持向量機(jī)(Support Vector Machine, SVM)、極限學(xué)習(xí)機(jī)(Extreme Learning Machine, ELM)。依據(jù)摩爾—彭羅斯廣義逆理論提出的ELM[19]算法,在保證較優(yōu)的訓(xùn)練結(jié)果的前提下,具有更快的訓(xùn)練速度。
ELM在結(jié)構(gòu)上是一種單隱層神經(jīng)網(wǎng)絡(luò),通過一步計(jì)算就可以求出網(wǎng)絡(luò)的輸出權(quán)值,其模型結(jié)構(gòu)如圖3所示。對于一個有N個樣本點(diǎn)的數(shù)據(jù)集(Xi,Ti),i=1,…,N,其中Xi=[xi1,xi2,…,xin]T∈Rn,Ti=[ti1,ti2,…,tim]T∈Rm。設(shè)置一個有L個隱層節(jié)點(diǎn)的單隱層神經(jīng)網(wǎng)絡(luò),公式為
(9)
式中:g(x)為激活函數(shù),對于第j個隱層節(jié)點(diǎn),Wj=[w1j,w2j,…,wnj]T為輸入權(quán)重,βj=[βj1,βj2,…,βjm]T為輸出權(quán)重,bj為偏置量。
ELM的訓(xùn)練目標(biāo)是使輸入Xi通過網(wǎng)絡(luò)訓(xùn)練后與輸出Ti之間的誤差最小,即
(10)
將式(9)代入后得到
(11)
H(W1,…,WL,b1,…bL,X1,…,XN)=
則
(12)
采用機(jī)器學(xué)習(xí)算法從服務(wù)系統(tǒng)中提取主題特征的方法通常用于尋找服務(wù)系統(tǒng)中使用頻繁或者熱門的Web服務(wù)和服務(wù)主題,以便對服務(wù)系統(tǒng)中的熱門服務(wù)進(jìn)行分類、聚類、推薦等。服務(wù)消亡需要搜尋服務(wù)系統(tǒng)中容易退出系統(tǒng)的服務(wù),這類服務(wù)通常是不常使用或者冷門的,傳統(tǒng)算法模型并不適用。本文的主題分析側(cè)重于通過服務(wù)系統(tǒng)的主題特征分析,尋找其對服務(wù)消亡的潛在因素和影響,從而提高服務(wù)系統(tǒng)的整體穩(wěn)定性。
主題特征分析的定性分析以ProgrammableWeb為背景,本文使用LDA提取了2005~2016年間的所有Web服務(wù)在不同主題下的分布情況,其中主題數(shù)目設(shè)置為50,圖4所示為所提取的Web服務(wù)主題分布排序后的結(jié)果。分析認(rèn)為,雖然當(dāng)前時期下的Web服務(wù)主題有冷熱之分,但從長遠(yuǎn)角度看,Web服務(wù)的一個主題總是經(jīng)歷從產(chǎn)生、熱門到最終冷卻沒落的過程。圖4統(tǒng)計(jì)的結(jié)果表明,在主題更替過程中圍繞這個主題而產(chǎn)生的Web服務(wù)總數(shù)相差不多,占比大致在2%上下浮動。另外一方面,以已經(jīng)或者正在走向沒落的主題為中心開發(fā)的Web服務(wù)必然會更多地退出服務(wù)系統(tǒng)。循此思路,本文統(tǒng)計(jì)在不同主題中已經(jīng)退出系統(tǒng)的Web服務(wù)占所有Web服務(wù)的比例,將結(jié)果從高到低排序,如圖5所示。由圖可以看出,數(shù)據(jù)呈現(xiàn)明顯的規(guī)律性特征,某些主題內(nèi)的Web服務(wù)較多產(chǎn)生了消亡現(xiàn)象。服務(wù)系統(tǒng)內(nèi)的Web服務(wù)會因?yàn)橹黝}分布的不同而呈現(xiàn)不同的服務(wù)消亡趨勢,從這個角度出發(fā),本文將服務(wù)主題分布數(shù)據(jù)引入服務(wù)消亡預(yù)測。
在研究服務(wù)組合失效問題時,一個比較容易推斷出的結(jié)論是,那些不能得到用戶認(rèn)可的Web服務(wù)通常會最先退出服務(wù)系統(tǒng),時間因素是檢驗(yàn)Web服務(wù)是否活躍的一個重要判別特征。本文通過服務(wù)從創(chuàng)建到第一次被調(diào)用的時間間隔來研究時間因素對服務(wù)退出的影響。
在服務(wù)數(shù)量和種類都飛速增長的今天,如果某一服務(wù)在發(fā)布后的若干時間段未能得到調(diào)用,則很容易淹沒在海量的服務(wù)中,其被調(diào)用的可能性大大降低。以ProgrammableWeb數(shù)據(jù)為例,本文抓取應(yīng)用程序接口(Application Programming Interface,API)的創(chuàng)建時間和Mashup的發(fā)布時間,以月為單位計(jì)算API的首次調(diào)用時間和創(chuàng)建時間的差值。圖6中柱狀圖為統(tǒng)計(jì)結(jié)果,曲線為擬合曲線,曲線方程為y=max(A)×e-i/10,其中A為統(tǒng)計(jì)結(jié)果向量,i為月份。從圖中可見,從發(fā)布后至下個月開始前獲得調(diào)用的API有144個,在創(chuàng)建18個月內(nèi)得到首次調(diào)用的服務(wù)數(shù)目占所有被調(diào)用服務(wù)數(shù)目的50%,隨著時間的增長,服務(wù)被調(diào)用的可能性降低。
服務(wù)在得到調(diào)用后,會得到一種類似“再激活”的屬性,即重新進(jìn)入服務(wù)組合開發(fā)者的視野,從而大大增加再次被調(diào)用的幾率。從另一個角度觀察ProgrammableWeb的數(shù)據(jù),統(tǒng)計(jì)服務(wù)被調(diào)用的總次數(shù)。圖7所示為統(tǒng)計(jì)被調(diào)用最多的前200個服務(wù)調(diào)用次數(shù),與圖6相比,服務(wù)被調(diào)用次數(shù)迅速下降。分析表明,服務(wù)調(diào)用次數(shù)與服務(wù)創(chuàng)建—首次調(diào)用時間差呈現(xiàn)大致的對應(yīng)關(guān)系,可能由于從眾心理,人們更容易相信已經(jīng)被別人認(rèn)可的服務(wù),體現(xiàn)在數(shù)據(jù)上就是越是經(jīng)常被使用的服務(wù),被調(diào)用的次數(shù)越多。相對而言,對于一個服務(wù),“創(chuàng)建—首次調(diào)用”時間指標(biāo)越大,被調(diào)用的總次數(shù)越少。
算法模型主要使用主題特征和時間特征預(yù)測Web服務(wù)消亡,模型的流程圖如圖8所示。流程分為線下和線上兩部分:線下部分為圖8的左半部分,對于目標(biāo)服務(wù)系統(tǒng),算法使用泊松分解從Web服務(wù)的自然語言描述信息中提煉Web服務(wù)的主題分布特征和時間特征并將其融合,然后使用機(jī)器學(xué)習(xí)算法計(jì)算出服務(wù)消亡的概率模型提供給線上部分調(diào)用;當(dāng)用戶輸入希望調(diào)用的某個Web服務(wù)或者某類型的Web服務(wù)進(jìn)行查詢時,線上部分通過在線算法則提供對應(yīng)的Web服務(wù)消亡的概率值作為建議。
算法流程中的幾個關(guān)鍵步驟分別為主題特征提取、時間信息處理、綜合兩類特征算出概率模型和在線算法部分。下文對這幾個步驟分別進(jìn)行說明。
3.1.1 主題特征提取
Web服務(wù)的主題特征采用泊松分解算法從Web服務(wù)描述文本中提取,在正式處理前需要將服務(wù)系統(tǒng)內(nèi)的所有Web服務(wù)描述文本進(jìn)行預(yù)處理,包括去除分類無關(guān)用詞、詞性轉(zhuǎn)換等工作,最終將其轉(zhuǎn)化為“服務(wù)—詞”矩陣,具體過程不再贅述。
設(shè)獲得的“服務(wù)—詞”矩陣為Y,使用泊松分解求解服務(wù)的主題分布,即
ηs~Gamma(λua,λub);
θw~Gamma(λia,λib);
(13)
后續(xù)的求解步驟如1.1節(jié),最終獲取的參數(shù)迭代公式如表1所示。
表1 泊松分解迭代公式
依據(jù)參數(shù)迭代公式,設(shè)計(jì)主題特征提取的算法流程如下:
算法1Web服務(wù)主題特征提取算法。
輸入:“Web服務(wù)—詞”使用關(guān)系矩陣Msw、主題數(shù)目K、Web服務(wù)的Gamma分布參數(shù)(λsa,λsb)、詞的Gamma分布參數(shù)(λwa,λwb)。
輸出:Web服務(wù)的主題特征分布μs。
算法:
1.for(k=1:K){
2. 由(λsa,λsb)計(jì)算出μs,k初值;
3. 由(λwa,λwb)計(jì)算出βw,k初值;}
4.repeat{
5. 對于矩陣Msw中每一個元素msw>0,根據(jù)表1中公式,更新φsw,k;
6. for(k=1:K){msw,k=mswφsw,k};
7. 由表1中公式,更新μs,k和βw,k;
8.}until(convergence)
因?yàn)椴此煞纸馐欠秦?fù)分解,所以很容易推斷出當(dāng)msw=0時φsw,k=0,因此在算法步驟5和6中可以忽略矩陣Msw中非零元素的各項(xiàng)計(jì)算,當(dāng)矩陣Msw為稀疏矩陣時可以節(jié)約大量計(jì)算時間,這也是泊松分解在計(jì)算速度上相對于其他機(jī)器學(xué)習(xí)算法的優(yōu)勢所在。
3.1.2 時間特征提取
Web服務(wù)的“創(chuàng)建—初次使用”與Web服務(wù)的活躍程度呈現(xiàn)一種負(fù)指數(shù)的對應(yīng)關(guān)系,對于服務(wù)消亡而言,無論創(chuàng)建—首次調(diào)用特征還是調(diào)用次數(shù)特征,消亡的服務(wù)都位于數(shù)據(jù)的長尾部分,而服務(wù)系統(tǒng)中數(shù)據(jù)量龐大的長尾部分使得消亡服務(wù)的特征并不十分明顯,因此對時間因素作對應(yīng)的線性化處理,突出其時間因素與服務(wù)退出的對應(yīng)關(guān)系,以提高服務(wù)消亡預(yù)測的準(zhǔn)確度?;谏鲜鲈颍趯?shí)驗(yàn)中將采集到的時間特征做如下處理:
tr=log(t1-t0)。
(14)
式中:t1為服務(wù)得到首次調(diào)用的時間,t0為服務(wù)的創(chuàng)建時間。再將處理過的tr作歸一化處理:
(15)
在進(jìn)行線下部分訓(xùn)練前,通過3.1節(jié)和3.2節(jié)已經(jīng)得到集合{μs,ts},其中μs為服務(wù)的主題特征,ts為服務(wù)的時間特征。訓(xùn)練時設(shè)置
τs=[λ1μsλ2ts]。
(16)
式中λ=[λ1λ2]為系數(shù)。因?yàn)镋LM算法需要求矩陣廣義逆運(yùn)算,設(shè)置系統(tǒng)λ的目的是使合并后的矩陣元素在數(shù)量級上保持基本一致,以避免不必要的計(jì)算誤差。在此使用rs標(biāo)志采集到的服務(wù)退出信息,其中rs=1表示服務(wù)退出服務(wù)系統(tǒng),rs=0表示服務(wù)仍在提供服務(wù)。
使用ELM算法訓(xùn)練模型,模型的輸入為ts,輸出為rs,訓(xùn)練目標(biāo)為
(17)
訓(xùn)練過程如1.2節(jié)所示。利用{τs,rs}訓(xùn)練出ELM模型的隱層參數(shù),至此完成模型的線下訓(xùn)練。
對于線上部分,當(dāng)一個新的服務(wù)sk被用戶輸入模型時,利用特征提取訓(xùn)練完成的參數(shù),容易算出新服務(wù)對應(yīng)的{μsk,tsk}并生成出對應(yīng)的τsk,通過τsk和訓(xùn)練好的服務(wù)退出概率模型,最終計(jì)算出rsk。rsk為一個[0,1]間的概率值,用來表示該服務(wù)退出服務(wù)系統(tǒng)的可能性,其提供給用戶作為是否使用該服務(wù)的參考建議,值越大,該服務(wù)越有可能出現(xiàn)消亡現(xiàn)象。
ProgrammableWeb網(wǎng)站提供API(Web服務(wù))和Mashup(服務(wù)組合)兩種在線服務(wù)功能,其中API僅提供單一功能的服務(wù),例如Google Maps提供地圖服務(wù),Zillow提供在線房屋估值、掛售功能。Mashup則通過調(diào)用一個多個API,提供功能眾多、能滿足用戶復(fù)雜需求的服務(wù)。例如BetterHome通過調(diào)用Zillow, Walk Score, Google Maps等多個API,根據(jù)用戶的各種喜好(如環(huán)境、位置等信息)為用戶提供個性化房屋購買、租賃建議;Globebop則通過調(diào)用Google Maps, Wikipedia等API,為用戶提供旅游地點(diǎn)路線、景點(diǎn)介紹、推薦等服務(wù)。
截止2017年5月10日,ProgrammableWeb網(wǎng)站提供了17 455個API和7 877個Mashup(包括已退出的API和Mashup)。實(shí)驗(yàn)中抓取了網(wǎng)站2005~2016年間的所有API數(shù)據(jù),放棄了從2016年12月底至今時長約半年的API數(shù)據(jù),原因是這部分API屬于新生服務(wù),其退出服務(wù)系統(tǒng)的可能性幾乎為0,實(shí)際觀測也是如此。在實(shí)驗(yàn)數(shù)據(jù)中加入這部分?jǐn)?shù)據(jù)無疑會增加算法結(jié)果的準(zhǔn)確度(全為負(fù)樣本),但對算法性能測試并無實(shí)際意義。
使用數(shù)據(jù)前通過服務(wù)組合的使用情況對Web服務(wù)進(jìn)行了一次過濾,剔除了從未被調(diào)用過的API。這樣的數(shù)據(jù)處理出發(fā)點(diǎn)是,被調(diào)用的Web服務(wù)退出系統(tǒng)會對整個服務(wù)系統(tǒng)的穩(wěn)定性造成更大危害,如果算法能針對這些Web服務(wù)給出可靠的消亡預(yù)測,則將更具實(shí)際應(yīng)用價值。通過上述處理后實(shí)驗(yàn)數(shù)據(jù)集如表2所示。
表2 處理后的ProgrammableWeb.com數(shù)據(jù)
對于一個給定的區(qū)分閾值,如果計(jì)算得到的服務(wù)消亡概率值大于這個閾值,則認(rèn)為該服務(wù)在未來一段時間內(nèi)并不穩(wěn)定;小于這個閾值,則表示該服務(wù)能在服務(wù)系統(tǒng)內(nèi)更穩(wěn)定地提供服務(wù)。因此服務(wù)消亡預(yù)測問題本質(zhì)上還是一個二分類問題,閾值調(diào)整需要根據(jù)不同的服務(wù)系統(tǒng)或用戶的使用需求而定。在這種情況下,曲線下面積(Area Under Curve,AUC)指標(biāo)值是非常適合的一種評價方法。
二分類問題樣本的觀察結(jié)果常表示為正類(positive)和負(fù)類(negative),分類結(jié)果有正確分類(true)和錯誤分類(false)兩種情況,綜合起來有TP,F(xiàn)P,TN,F(xiàn)N4種指標(biāo),這4種指標(biāo)能更好地體現(xiàn)分類的準(zhǔn)確性。定義真正類率TPR和負(fù)正類率FPR分別為:
(18)
在[0,1]間逐漸改變分類閾值,可以得到逐漸變化的多組分類結(jié)果,以FPR為橫坐標(biāo),TPR為縱坐標(biāo),繪制受試者工作特性(Receiver Operating Characteristic, ROC)曲線,曲線與X軸之間的面積即為AUC值。ROC曲線越接近(0,1)越好,曲線拱起的弧頂使視覺判斷更為直觀。在多種算法曲線相近的情況下,AUC值越接近1,分類算法的效果越好。
實(shí)驗(yàn)中需要設(shè)置的參數(shù)主要為泊松分解算法參數(shù)和ELM算法部分參數(shù)。泊松分解算法中,Gamma分布參數(shù)λsa=0.14,λwa=0.16,λsb和λwb并未單獨(dú)設(shè)置,而是采用文獻(xiàn)[20]介紹的方法,其中
(19)
主題數(shù)目K=150。ELM算法中設(shè)置λ=[10 1]。
另外,本文在實(shí)驗(yàn)中采用LDA作為泊松分解的比較算法,采用樸素貝葉斯分類算法作為ELM的對比算法。LDA的參數(shù)設(shè)置中,主題數(shù)目同樣設(shè)置為150,迭代次數(shù)設(shè)置為2 000次;樸素貝葉斯算法中無參數(shù)設(shè)置。
實(shí)驗(yàn)將4種算法交叉應(yīng)用,最終的實(shí)驗(yàn)結(jié)果如圖9所示。當(dāng)主題特征提取采用泊松分解,分類算法采用ELM時取得了最好的實(shí)驗(yàn)結(jié)果,即圖中的PF+ELM曲線,AUC面積為0.800 3;采用LDA提取主題特征、ELM分類時的AUC面積為0.780 8,效果次之;再次的為使用PF算法提取主題特征、使用樸素貝葉斯分類,其AUC面積為0.698;效果最差為采用LDA和樸素貝葉斯組合的算法,其AUC面積為0.652 7。綜合考慮得出結(jié)論為:對于主題特征提取,泊松分解略優(yōu)于LDA算法,而分類算法中的ELM分類效果明顯優(yōu)于樸素貝葉斯算法。
使用訓(xùn)練完成的PF+ELM算法對數(shù)據(jù)集中最后150個服務(wù)進(jìn)行預(yù)測,預(yù)測結(jié)果如表3所示。
表3 預(yù)測結(jié)果
在實(shí)際的服務(wù)系統(tǒng)中,產(chǎn)生服務(wù)消亡現(xiàn)象的仍然為少數(shù)服務(wù),在本組數(shù)據(jù)中,真正失效的只有Yahoo Image Search一個服務(wù)。對于其他幾個服務(wù),由于受Yahoo search服務(wù)消亡的影響,導(dǎo)致Google的類似服務(wù)迅速占據(jù)了絕對領(lǐng)先地位,Yahoo Local Search和Yahoo Travel也因此處于長期無人問津的尷尬地位。預(yù)測中的第4位Wolfram Alpha是一個計(jì)算類服務(wù),在其介紹中有“computational knowledge engine”和“make it possible to compute whatever can be computed about anything”等,在ProgrammableWeb網(wǎng)站上計(jì)算類服務(wù)并非熱門的類別,過度夸張的宣傳或許會使用戶敬而遠(yuǎn)之。Wookmark是一個社交類網(wǎng)站,用戶可以在上面發(fā)布照片和視頻以及交友等。Facebook基本涵蓋其所有功能,不能獲得用戶青睞也比較容易理解。
為觀察僅使用單特征情況下的預(yù)測效果,單獨(dú)采用主題特征和時間特征分別進(jìn)行預(yù)測。從圖10可以看到,當(dāng)單獨(dú)使用主題信息進(jìn)行服務(wù)消亡預(yù)測時,AUC面積為0.703;當(dāng)單獨(dú)使用時間信息進(jìn)行預(yù)測時,AUC面積為0.732 7;而當(dāng)將二者結(jié)合使用后,預(yù)測效果則有了一個較大的提升。從算法上來說,增加一個參數(shù),最壞的情況仍然是保持之前的結(jié)果,即這部分參數(shù)的隱層參數(shù)全為0。相反,如果能采用更多可用的特征信息,則可以進(jìn)一步提高服務(wù)退出預(yù)測的整體精確度。
雖然更多的特征加入會提高服務(wù)消亡預(yù)測的精度,但是本文在算法中僅考慮了時間特征和主題特征兩種參數(shù)。一個服務(wù)系統(tǒng)中必然包括很多特征,有些是屬于所有服務(wù)系統(tǒng)共有的特征,而有些則是該服務(wù)系統(tǒng)特有的個性化參數(shù)。在算法的可用特征的選擇上,應(yīng)該盡可能選擇那些通用的、普適性的參數(shù),而不僅是某個服務(wù)系統(tǒng)所獨(dú)有的屬性,否則必然降低算法在不同服務(wù)系統(tǒng)間的通用性,甚至受限于服務(wù)系統(tǒng)的更新而導(dǎo)致算法失效。例如文獻(xiàn)[11]使用的供應(yīng)商信息,由于ProgrammableWeb網(wǎng)站改版的原因,新增加的Web服務(wù)中大部分已經(jīng)不再提供該項(xiàng)數(shù)據(jù),導(dǎo)致該算法的可用性大大降低。本文僅選擇時間特征和主題特征正是出于這方面的考慮,所選取的特征均為各類服務(wù)系統(tǒng)具備的通用屬性。
近年來,隨著服務(wù)系統(tǒng)在人們?nèi)粘I钪械娜找嫫占?,對服?wù)系統(tǒng)的研究逐漸引起了學(xué)者們的重視。目前的研究問題多數(shù)集中在從用戶使用的角度出發(fā)所作的服務(wù)推薦工作,如文獻(xiàn)[5,12-14]。但對服務(wù)系統(tǒng)來說,Web服務(wù)消亡也是一個必然的現(xiàn)象,目前有關(guān)服務(wù)系統(tǒng)內(nèi)Web服務(wù)退出服務(wù)系統(tǒng)的機(jī)制和影響的研究還比較少。服務(wù)消亡不等同于服務(wù)失效,服務(wù)消亡和服務(wù)失效的最大區(qū)別在于,導(dǎo)致服務(wù)失效的往往是因?yàn)榫W(wǎng)絡(luò)異常等原因,在故障排除后Web服務(wù)依然能夠繼續(xù)提供服務(wù),從長遠(yuǎn)的角度看對服務(wù)系統(tǒng)的影響并不嚴(yán)重,對服務(wù)失效的研究多聚焦于研究失效的原因及處理方法[6-9]。服務(wù)消亡則是Web服務(wù)徹底退出了服務(wù)系統(tǒng),不再提供任何服務(wù)支持,解決這類問題更側(cè)重于預(yù)防以及相似Web服務(wù)的備選工作。目前,有關(guān)Web服務(wù)消亡問題的研究尚處于起步階段,文獻(xiàn)[21]研究了服務(wù)消亡的產(chǎn)生機(jī)制,依此提出一個研究框架并給出了一套度量指標(biāo),但目前Web服務(wù)正處于蓬勃發(fā)展的上升期,對應(yīng)的框架和指標(biāo)也應(yīng)該隨著服務(wù)系統(tǒng)的日趨成熟而不斷修改和變化;文獻(xiàn)[10]使用服務(wù)標(biāo)簽對Web服務(wù)進(jìn)行分類,使用二部圖度量同類Web服務(wù)間的競爭關(guān)系來進(jìn)行服務(wù)消亡預(yù)測,然而服務(wù)標(biāo)簽為人工生成,難免存在一些分類誤差或者遺漏;文獻(xiàn)[11]加入供應(yīng)商信息,通過判別供應(yīng)商實(shí)力來進(jìn)行服務(wù)消亡預(yù)測,分類算法取得了不錯的效果,但供應(yīng)商信息受限于服務(wù)系統(tǒng),非通用性的參數(shù)限制了算法的可移植性和通用性。本文通過使用主題信息和時間信息兩類特征數(shù)據(jù),有效地對Web服務(wù)消亡進(jìn)行了預(yù)測。本文采用機(jī)器學(xué)習(xí)方法減少了人工干預(yù)可能帶來的誤差,特征數(shù)據(jù)的通用性則保證了預(yù)測算法在不同服務(wù)系統(tǒng)間的可移植性。
近年來,隨著Web服務(wù)的迅猛發(fā)展,服務(wù)計(jì)算及其相關(guān)研究得到了極大關(guān)注。從軟件生命周期[22]的角度分析,Web服務(wù)必然包括產(chǎn)生、提供服務(wù)和最終消亡的過程。目前,學(xué)者們的研究往往集中在從用戶的角度解決Web服務(wù)中出現(xiàn)的各種問題,以及面向用戶做各種類型的服務(wù)推薦等,有關(guān)Web服務(wù)生命周期中服務(wù)消亡現(xiàn)象的研究還比較少。研究服務(wù)消亡問題,是通過檢測服務(wù)系統(tǒng)中存在不穩(wěn)定因素的相關(guān)服務(wù),提醒服務(wù)組合開發(fā)者和服務(wù)系統(tǒng)開發(fā)與研究人員加以重視,從而提高服務(wù)系統(tǒng)的穩(wěn)定性。一個健康穩(wěn)定的服務(wù)系統(tǒng)才能更好地滿足用戶的各種需求,持續(xù)吸引用戶的關(guān)注并得到更好的發(fā)展。
社會流行元素的更替必然影響Web服務(wù)主題分布,不合時宜的Web服務(wù)會逐漸退出服務(wù)系統(tǒng),時間特征則是所有Web服務(wù)共有的因素。本文提出的Web服務(wù)消亡預(yù)測方法利用機(jī)器學(xué)習(xí)算法有效提取了服務(wù)系統(tǒng)中服務(wù)消亡個體的特點(diǎn),基于ProgrammableWeb上的實(shí)驗(yàn)表明,該方法能有效預(yù)測服務(wù)消亡,為服務(wù)的使用者特別是服務(wù)組合開發(fā)者提供可靠的建議。
引入更多的可用指標(biāo)必然會增加預(yù)測的準(zhǔn)確性,后續(xù)研究計(jì)劃增強(qiáng)這方面的研究和探索,以發(fā)現(xiàn)和利用更多的通用性指標(biāo)。另外,算法中有一部分需要線下計(jì)算,而服務(wù)系統(tǒng)在運(yùn)行一段時間后必然會有新服務(wù)加入或已有服務(wù)消亡,導(dǎo)致線下部分必須在模型運(yùn)行一段時間后重新計(jì)算,以保持與當(dāng)前系統(tǒng)的一致性,后續(xù)研究將致力于完成對應(yīng)的增量改進(jìn)算法,從而更好地提供在線服務(wù)。