專利名稱:一種基于貝葉斯原理的服務(wù)組合推薦方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web服務(wù)領(lǐng)域,尤其涉及一種基于貝葉斯原理的服務(wù)組合推薦方法及系統(tǒng)。
背景技術(shù):
隨著面向服務(wù)的思想的發(fā)展,一種新型的分布式計(jì)算模型S0A(Service Oriented Architecture,面向服務(wù)的體系架構(gòu))已經(jīng)在電子商務(wù)、系統(tǒng)集成等等的領(lǐng)域起到了越來(lái)越重要的作用。在工業(yè)界中,Oracle、IBM、MicrOSOft、BEA等軟件巨頭都發(fā)布了自己的SOA戰(zhàn)略,他們都建議用戶在建設(shè)企業(yè)IT系統(tǒng)的時(shí)候應(yīng)首先考慮SOA ;在學(xué)術(shù)界中,研究人員們組織了多個(gè)服務(wù)計(jì)算技術(shù)委員會(huì),并重點(diǎn)關(guān)注SOA的研究。根據(jù)美國(guó)著名的IT市場(chǎng)研究與顧問咨詢公司Gartner Group的預(yù)測(cè),SOA將結(jié)束傳統(tǒng)的整體軟件體系架構(gòu)長(zhǎng)達(dá)40年的統(tǒng)治地位,并成為新的占絕對(duì)優(yōu)勢(shì)的軟件工程實(shí)踐方法。在SOA的思想中,服務(wù)是功能組件的基本單位,而通過發(fā)現(xiàn)與組合服務(wù)可以滿足用戶的各種需求。然而隨著SOA的迅速發(fā)展,互聯(lián)網(wǎng)上的各種Web服務(wù)的數(shù)量在急劇增加,因此讓用戶手動(dòng)的發(fā)現(xiàn)與組合合適的服務(wù)來(lái)實(shí)現(xiàn)預(yù)定的功能已越來(lái)越困難,而針對(duì)服務(wù)組合的推薦機(jī)制能夠主動(dòng)的向用戶推薦合適的服務(wù)組合,所以它逐漸成為學(xué)術(shù)界與工業(yè)界關(guān)注的問題。目前對(duì)于服務(wù)組合推薦機(jī)制的研究,都是基于服務(wù)的顯式屬性(如服務(wù)的功能與服務(wù)的質(zhì)量等)進(jìn)行的,但是服務(wù)的顯式屬性并不能完全反映用戶的需求,對(duì)于用戶偏好等隱式屬性則無(wú)法體現(xiàn)。因此,一種能充分體現(xiàn)用戶需求,既能考慮服務(wù)的顯式屬性,又能兼顧服務(wù)的隱式屬性的服務(wù)組合推薦機(jī)制,已成為目前學(xué)術(shù)界與工業(yè)界的急切需求。Web服務(wù)是由服務(wù)提供商發(fā)布在互聯(lián)網(wǎng)上的功能體,通過調(diào)用Web服務(wù)可以實(shí)現(xiàn)一定的功能,而通過組合多個(gè)Web服務(wù),就能實(shí)現(xiàn)更豐富的功能,但是隨著互聯(lián)網(wǎng)上Web服務(wù)的數(shù)量的激增,要在眾多的Web服務(wù)中找到滿足需求且質(zhì)量良好,并得到一個(gè)很好的服務(wù)組合方案變得越來(lái)越困難。
發(fā)明內(nèi)容
針對(duì)上述技術(shù)缺陷,本發(fā)明根據(jù)用戶需求的共通性,以及服務(wù)的好壞表現(xiàn)為使用該服務(wù)的人數(shù)(或次數(shù))的多少,充分利用了所有用戶的服務(wù)組合的歷史使用記錄,從眾多的候選服務(wù)中選出最好(也就是使用次數(shù)最多)的服務(wù)組合,最終為用戶推薦一個(gè)最好的服務(wù)組合方案并由此提出該服務(wù)組合的推薦系統(tǒng)。為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下
一種基于貝葉斯原理的服務(wù)組合推薦方法,包括如下步驟
1)將使用過的歷史服務(wù)組合根據(jù)相似度進(jìn)行K中心聚類;
2)根據(jù)服務(wù)組合的使用日志,統(tǒng)計(jì)每個(gè)歷史服務(wù)組合的使用次數(shù);
3)根據(jù)原始服務(wù)組合方案,找出歷史服務(wù)組合中概率P最大的一個(gè)并推薦給用戶,所述概率P為推薦系統(tǒng)猜測(cè)用戶真正想要的服務(wù)組合在歷史服務(wù)組合概率最大的一個(gè);所述原始服務(wù)組合方案為用戶輸入的服務(wù)組合方案。進(jìn)一步的,所述步驟1)中首先輸入所有歷史服務(wù)組合集合R、分類數(shù)K以及最大循環(huán)次數(shù)L,經(jīng)過初始化后從服務(wù)組合集合R中為K個(gè)分類隨機(jī)選擇K個(gè)服務(wù)組合作為中心點(diǎn);然后進(jìn)入循環(huán),先為服務(wù)組合集合R中的每個(gè)服務(wù)組合尋找與它最相似的中心點(diǎn),并將其加入該中心點(diǎn)對(duì)應(yīng)的分類中,再重新計(jì)算每個(gè)分類的中心點(diǎn),即與分類中其他服務(wù)組合的相似度最高的服務(wù)組合,如果中心點(diǎn)較上一輪循環(huán)發(fā)生了變化并且循環(huán)次數(shù)小于L,則繼續(xù)循環(huán),否則跳出循環(huán);最后輸出K個(gè)服務(wù)組合分類以及它們的中心點(diǎn)。進(jìn)一步的,所述步驟3)輸入原始服務(wù)組合方案&、Κ個(gè)服務(wù)組合分類以及它們的中心點(diǎn),首先從K個(gè)分類的中心點(diǎn)中找出與Stl最相似的中心點(diǎn),設(shè)其對(duì)應(yīng)的分類為G ;然后從分類G中找出服務(wù)組合S,使乘積Sim(Stl, S) XU(S)最大,將服務(wù)組合S作為推薦的服務(wù)組合輸出;
所述SinK、S)為服務(wù)組合Stl與服務(wù)組合S的相似度;U(S)為服務(wù)組合S的使用次數(shù)。應(yīng)用上述方法的推薦系統(tǒng),包括服務(wù)組合聚類器、使用次數(shù)計(jì)數(shù)器、服務(wù)組合推薦器;
所述服務(wù)組合聚類器從服務(wù)注冊(cè)中心和服務(wù)組合使用日志庫(kù)獲取服務(wù)相似度以及歷史服務(wù)組合方案,利用K中心聚類方法對(duì)歷史服務(wù)組合進(jìn)行分類,使分類中的服務(wù)組合都是相似的;
所述使用次數(shù)計(jì)數(shù)器從所述服務(wù)組合使用日志庫(kù)獲取服務(wù)組合使用記錄,并統(tǒng)計(jì)每個(gè)歷史服務(wù)組合的使用次數(shù);
所述服務(wù)組合推薦器在需要根據(jù)原始服務(wù)組合方案計(jì)算服務(wù)組合推薦方案時(shí),在線的從所述服務(wù)組合聚類器和所述使用次數(shù)計(jì)數(shù)器獲取服務(wù)組合分類以及服務(wù)組合使用次數(shù), 并尋找使SinK、S) XU(S)最大的服務(wù)組合S推薦給用戶。本發(fā)明的有益效果在于
1.以服務(wù)的使用次數(shù)來(lái)代替服務(wù)的QoS作為服務(wù)好壞的評(píng)價(jià)標(biāo)準(zhǔn),從而解決了QoS的不可共度性和矛盾性帶來(lái)的問題;
2.上述推薦過程是全自動(dòng)化的,并不需要用戶對(duì)服務(wù)進(jìn)行評(píng)分等形式的反饋,因此完全不需要人工參與;
3.與任何的服務(wù)組合方法或服務(wù)組合系統(tǒng)是松耦合的,因此可以很容易的應(yīng)用于任何服務(wù)組合系統(tǒng)中,從而提高服務(wù)組合的質(zhì)量。
圖1為整體結(jié)構(gòu)圖2為服務(wù)組合聚類器內(nèi)部流程圖; 圖3為服務(wù)組合推薦器內(nèi)部流程圖。
具體實(shí)施例方式下面將根據(jù)附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說明。本發(fā)明根據(jù)用戶需求的共通性,以及服務(wù)的好壞表現(xiàn)為使用該服務(wù)的人數(shù)(或次數(shù))的多少,充分利用了所有用戶的服務(wù)組合的歷史使用記錄,從而從眾多的候選服務(wù)中選出最好(也就是使用次數(shù)最多)的服務(wù),最終為用戶推薦一個(gè)最好的服務(wù)組合方案。本發(fā)明主要利用了貝葉斯原理以及K中心聚類方法,首先將所有使用過的歷史服務(wù)組合根據(jù)相似度進(jìn)行K中心聚類,因此分類中的服務(wù)組合都是相似的;然后根據(jù)服務(wù)組合的使用日志, 統(tǒng)計(jì)每個(gè)服務(wù)組合的使用次數(shù);最后基于由人工或自動(dòng)的方法得到一個(gè)原始服務(wù)組合方案即通過人工或者自動(dòng)的方法得到需要輸入的服務(wù)組合方案,找出歷史服務(wù)組合中使概率 “P(推薦系統(tǒng)猜測(cè)用戶真正想要的服務(wù)組合I原服務(wù)組合方案)”最大的一個(gè),并推薦給用戶。根據(jù)貝葉斯原理可知,這個(gè)概率與“歷史服務(wù)組合與原服務(wù)組合的相似度”和“歷史服務(wù)組合的使用頻率”的乘積成正比,因此只需要在與原服務(wù)組合最相似的服務(wù)組合分類中查找使這個(gè)乘積最大的服務(wù)組合即可。整個(gè)推薦系統(tǒng)主要由三個(gè)模塊組成服務(wù)組合聚類器、使用次數(shù)計(jì)數(shù)器、服務(wù)組合推薦器。服務(wù)組合聚類器從服務(wù)注冊(cè)中心獲取服務(wù)間的相似度,從服務(wù)組合使用日志庫(kù)獲取所有的歷史服務(wù)組合方案,并利用K中心聚類方法,對(duì)所有的歷史服務(wù)組合按相似度進(jìn)行分類。使用次數(shù)計(jì)數(shù)器從服務(wù)組合使用日志庫(kù)中獲取服務(wù)組合的使用記錄,從而統(tǒng)計(jì)出各個(gè)歷史服務(wù)組合的使用次數(shù)。服務(wù)組合推薦器從服務(wù)組合聚類器輸入服務(wù)組合分類,從使用次數(shù)計(jì)數(shù)器輸入歷史服務(wù)組合的使用次數(shù),結(jié)合用戶輸入的服務(wù)組合方案并運(yùn)用貝葉斯原理,最終計(jì)算出推薦的服務(wù)組合方案。在整個(gè)系統(tǒng)中,將Web服務(wù)表示為以下形式
Web服務(wù)WS=(N,Cl, I,F(xiàn), 0,CO),其中N為Web服務(wù)的名稱,CI為服務(wù)執(zhí)行的前置條件(也稱為先決條件)的列表,I為服務(wù)的輸入?yún)?shù)列表,F(xiàn)為服務(wù)的功能,0為服務(wù)的輸出參數(shù)列表,CO為服務(wù)執(zhí)行的后置條件列表。本例中只考慮服務(wù)間只存在順序關(guān)系的服務(wù)組合,并將其表示為以下形式
服務(wù)組合:於(/巧,WS2,'", /巧),其中為按順序執(zhí)行的第i個(gè)Web服務(wù),并且滿足
/ C U ^ υ …υ Oi^ 和 CI^ {CO, Λ CO2 !\ …/\C0i_;)的約束。作為推薦的主要依據(jù)的服務(wù)組合相似度和服務(wù)組合使用次數(shù)表示為以下形式
服務(wù)組合相似度:SiTO(Uj) = FK=I汾·.(W^lf,膠S找),其中Λ· (/Τ5^,WSjk)為
&中第左個(gè)服務(wù)與&中第左個(gè)服務(wù)的相似度,取值范圍為^),1],所以&>議,乂.)的取值范圍也是
O服務(wù)組合使用次數(shù)-.UiS) = Σ ,Ui⑶,其中Ui {S)為用戶i使用服務(wù)組合S的次數(shù)。設(shè)原始服務(wù)組合方案為&,本推薦系統(tǒng)的目標(biāo)是在所有使用過的歷史服務(wù)組合中找到服務(wù)組合義使概率/7CJli),即“廣(推薦系統(tǒng)猜測(cè)用戶真正想要的服務(wù)組合ι原服務(wù)組合方案)”最大。根據(jù)貝葉斯定理,概率"㈣幻可表示為因?yàn)?7C^)為常數(shù)(原服務(wù)組合的概率不變),所以
其中/^(5^15·)即為服務(wù)組合4與服務(wù)組合S的相似度Si (4,5·),而PC )則是服務(wù)組合S的先驗(yàn)概率,即服務(wù)組合S的使用次數(shù)UiS)。因此,問題可以轉(zhuǎn)化為,求這樣的一個(gè)服務(wù)組合孓它使乘積&>(&,s、YJJiS)最大。要對(duì)每一個(gè)歷史服務(wù)組合方案&計(jì)算Si (&,^i) XU(S1)是一個(gè)耗時(shí)的工作, 可以先利用K中心聚類對(duì)所有的歷史服務(wù)組合進(jìn)行分類,分類中的服務(wù)組合都是相似的; 由于當(dāng)Λ· (5^,幻的數(shù)值大時(shí),Si (5^,幻Χ /議)的數(shù)值也極有可能是大的,所以要求 Sim{S0, S1) XUiS1)的最大值時(shí),只需要先找出與&相似的分類,再對(duì)分類中的每個(gè)服務(wù)組令束Sim、S0, S1) Χ /(&),并取最大值,即可找到推薦的服務(wù)組合&下面將結(jié)合附圖來(lái)說明整個(gè)服務(wù)組合推薦的過程
從圖1可以看出,服務(wù)組合聚類器和使用次數(shù)計(jì)算器先離線的計(jì)算服務(wù)組合分類以及服務(wù)組合使用次數(shù),再由服務(wù)組合推薦器在線的為原始服務(wù)組合方案計(jì)算推薦的服務(wù)組合方案。服務(wù)組合聚類器首先從服務(wù)注冊(cè)中心和服務(wù)組合使用日志庫(kù)獲取服務(wù)相似度以及歷史服務(wù)組合方案,再利用K中心聚類方法對(duì)歷史服務(wù)組合進(jìn)行分類,使分類中的服務(wù)組合都是相似的;使用次數(shù)計(jì)數(shù)器則從服務(wù)組合使用日志庫(kù)獲取服務(wù)組合使用記錄,并統(tǒng)計(jì)每個(gè)歷史服務(wù)組合的使用次數(shù);最后,當(dāng)需要根據(jù)原始服務(wù)組合計(jì)算服務(wù)組合推薦方案時(shí),服務(wù)組合推薦器從服務(wù)組合聚類器和使用次數(shù)計(jì)數(shù)器獲取服務(wù)組合分類以及服務(wù)組合使用次數(shù),并尋找使Sim(Stl, S) XU(S)最大的服務(wù)組合S推薦給用戶。圖2介紹了服務(wù)組合聚類器中的主要流程。服務(wù)組合聚類器的輸入為所有歷史服務(wù)組合的集合禮分類數(shù)^以及最大循環(huán)次數(shù)Ζ。首先進(jìn)行初始化,從服務(wù)組合集合/P中為 ^個(gè)分類隨機(jī)選擇^個(gè)服務(wù)組合作為中心點(diǎn);然后進(jìn)入循環(huán),先為服務(wù)組合集合/P中的每個(gè)服務(wù)組合尋找與它最相似的中心點(diǎn),并將其加入該中心點(diǎn)對(duì)應(yīng)的分類中,再重新計(jì)算每個(gè)分類的中心點(diǎn),即與分類中其他服務(wù)組合的相似度最高的服務(wù)組合,這時(shí)候如果中心點(diǎn)較上一輪循環(huán)發(fā)生了變化并且循環(huán)次數(shù)小于Z,則繼續(xù)循環(huán),否則跳出循環(huán);最后輸出f個(gè)服務(wù)組合分類以及它們的中心點(diǎn)。圖3介紹了服務(wù)組合推薦器中的主要流程。服務(wù)組合推薦器的輸入為原始服務(wù)組合方案?jìng)€(gè)服務(wù)組合分類以及它們的中心點(diǎn)。首先從f個(gè)分類的中心點(diǎn)中找出與& 最相似的中心點(diǎn),假設(shè)其對(duì)應(yīng)的分類為G ;然后從分類G中找出服務(wù)組合&使乘積Si (&, 幻XUiS)最大;最后將^作為推薦的服務(wù)組合方案輸出。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于貝葉斯原理的服務(wù)組合推薦方法,其特征在于,包括如下步驟1)將使用過的歷史服務(wù)組合根據(jù)相似度進(jìn)行K中心聚類;2)根據(jù)服務(wù)組合的使用日志,統(tǒng)計(jì)每個(gè)歷史服務(wù)組合的使用次數(shù);3)根據(jù)原始服務(wù)組合方案,找出歷史服務(wù)組合中概率P最大的一個(gè)并推薦給用戶,所述概率P為推薦系統(tǒng)猜測(cè)用戶真正想要的服務(wù)組合在歷史服務(wù)組合概率最大的一個(gè);所述原始服務(wù)組合方案為用戶輸入的服務(wù)組合方案。
2.根據(jù)權(quán)利要求1所述的一種基于貝葉斯原理的服務(wù)組合推薦方法,其特征在于,所述步驟1)中首先輸入所有歷史服務(wù)組合集合R、分類數(shù)K以及最大循環(huán)次數(shù)L,經(jīng)過初始化后從服務(wù)組合集合R中為K個(gè)分類隨機(jī)選擇K個(gè)服務(wù)組合作為中心點(diǎn);然后進(jìn)入循環(huán),先為服務(wù)組合集合R中的每個(gè)服務(wù)組合尋找與它最相似的中心點(diǎn),并將其加入該中心點(diǎn)對(duì)應(yīng)的分類中,再重新計(jì)算每個(gè)分類的中心點(diǎn),即與分類中其他服務(wù)組合的相似度最高的服務(wù)組合,如果中心點(diǎn)較上一輪循環(huán)發(fā)生了變化并且循環(huán)次數(shù)小于L,則繼續(xù)循環(huán),否則跳出循環(huán);最后輸出K個(gè)服務(wù)組合分類以及它們的中心點(diǎn)。
3.根據(jù)權(quán)利要求1所述的一種基于貝葉斯原理的服務(wù)組合推薦方法,其特征在于,所述步驟3)輸入原始服務(wù)組合方案S。K個(gè)服務(wù)組合分類以及它們的中心點(diǎn),首先從K個(gè)分類的中心點(diǎn)中找出與Stl最相似的中心點(diǎn),設(shè)其對(duì)應(yīng)的分類為G ;然后從分類G中找出服務(wù)組合S,使乘積SinK、S) XU(S)最大,將服務(wù)組合S作為推薦的服務(wù)組合輸出;所述SinK、S)為服務(wù)組合Stl與服務(wù)組合S的相似度;U(S)為服務(wù)組合S的使用次數(shù)。
4.應(yīng)用權(quán)利要求1所述方法的推薦系統(tǒng),其特征在于,包括服務(wù)組合聚類器、使用次數(shù)計(jì)數(shù)器、服務(wù)組合推薦器;所述服務(wù)組合聚類器從服務(wù)注冊(cè)中心和服務(wù)組合使用日志庫(kù)獲取服務(wù)相似度以及歷史服務(wù)組合方案,利用K中心聚類方法對(duì)歷史服務(wù)組合進(jìn)行分類,使分類中的服務(wù)組合都是相似的;所述使用次數(shù)計(jì)數(shù)器從所述服務(wù)組合使用日志庫(kù)獲取服務(wù)組合使用記錄,并統(tǒng)計(jì)每個(gè)歷史服務(wù)組合的使用次數(shù);所述服務(wù)組合推薦器在需要根據(jù)原始服務(wù)組合方案計(jì)算服務(wù)組合推薦方案時(shí),在線的從所述服務(wù)組合聚類器和所述使用次數(shù)計(jì)數(shù)器獲取服務(wù)組合分類以及服務(wù)組合使用次數(shù), 并尋找使SinK、S) XU(S)最大的服務(wù)組合S推薦給用戶。
全文摘要
本發(fā)明公開了一種基于貝葉斯原理的服務(wù)組合推薦方法,包括如下步驟:1)將使用過的歷史服務(wù)組合根據(jù)相似度進(jìn)行K中心聚類;2)根據(jù)服務(wù)組合的使用日志,統(tǒng)計(jì)每個(gè)歷史服務(wù)組合的使用次數(shù);3)根據(jù)原始服務(wù)組合方案,找出歷史服務(wù)組合中概率P最大的一個(gè)并推薦給用戶,所述概率P為推薦系統(tǒng)猜測(cè)用戶真正想要的服務(wù)組合在歷史服務(wù)組合概率最大的一個(gè);所述原始服務(wù)組合方案為用戶輸入的服務(wù)組合方案,具有以服務(wù)的使用次數(shù)來(lái)代替服務(wù)的QoS作為服務(wù)好壞的評(píng)價(jià)標(biāo)準(zhǔn),從而解決了QoS的不可共度性和矛盾性帶來(lái)的問題;推薦過程是全自動(dòng)化的,與任何的服務(wù)組合方法或服務(wù)組合系統(tǒng)是松耦合的,可以很容易的應(yīng)用于任何服務(wù)組合系統(tǒng)中,從而提高服務(wù)組合的質(zhì)量。
文檔編號(hào)G06F17/30GK102521283SQ20111038315
公開日2012年6月27日 申請(qǐng)日期2011年11月28日 優(yōu)先權(quán)日2011年11月28日
發(fā)明者吳健, 吳朝暉, 尹建偉, 李瑩, 簡(jiǎn)恒懿, 鄧水光 申請(qǐng)人:浙江大學(xué)