Time Aware and Data Sparsity Tolerant Web Service Recommendation Based on Improved Collaborative Filtering
論文原文:https://pan.baidu.com/s/1D1xjySQD25qaQXKMdJp7eA
1 introduction
面向服務計算(Service-Oriented Computing,SOC)在進幾年廣泛使用,其中web服務就是其中的基石,因為面向服務計算需要web服務封裝應用功能以及提供標準接口。
一個web應有意味著需要滿足用戶的一系列任務,而每一個任務就可以對應到一個web服務上邊,所以,在實際應用中就產生了一個不得不面對的問題,為了需要在一堆功能相當的web服務當中找到我們所需要的那一個,所以我們需要更多的關於麽一個web服務的信息。
這時候就有一種比較好的方法去區分具有功能相似的web服務——服務質量(Quality of Service,QoS),包括,響應時間,吞吐量,有效性等。這時候就可以通過最優QoS,在一堆功能相近的web服務裏邊選擇一個最優的web服務——這也就是所謂的“web服務推薦”。
在執行web服務推薦的時候,所必須要有的就是QoS,顯然沒有這個屬性,就無法進行接下來的預測,而在實際生活中,也確實面臨著這樣的問題,原因如下:
1.web服務的QoS,因為服務狀態(用戶數目,負載等)和網絡狀況(帶寬等)隨著時間一直變化,所以與調用時間有很大的關系;
2.其次,QoS呈現典型的地理分布特征,網絡連接對於QoS的性能影響很大,所以不同的用戶調用同一服務可能會觀察到不同的QoS性能。
至此,引出了本篇論文的主旨——為了更高質量的web服務推薦,我們設計了一個新的QoS預測算法:基於改進的協同過濾的具有時間感知以及數據稀疏容忍的web服務推薦。
協同過濾可以從以下兩方面進行改進:
1.協同過濾的主要基於相似用戶,相似服務,以及上邊兩個方法的結果綜合,這個方法通過從相似用戶或者相似服務中提取出必要的信息之後,對目標用戶進行QoS預測,為了提高預測的準確性,一些研究提出了可以將上下文信息納入進行考慮,但是,這些研究都沒有考慮QoS的時間動態性;
2.既然協同過濾是依賴相似用戶(服務)的數據進行QoS預測,那麽不可避免的情況就是:web服務是成千上萬的,一個用戶調用的也就那麽點,或者說一個服務也就被調用微乎其微的次數,這些數據很明顯是難以找到足夠的相似用戶或者服務的,而隨機遊走機制可以很好的緩解數據稀疏所帶來的問題;
2 related work
這一節主要大概介紹以下web服務推薦,協同過濾,以及數據稀疏問題的研究現狀,然後基於此,進行我們的研究。
web服務推薦可以基於web服務的QoS屬性幫助用戶在功能相當的web服務中挑選出最優的那一個;
又因為QoS是未知的,所以需要協同過濾算法進行QoS預測;
其中,協同過濾算法主要分為以下兩種:基於鄰居(neighborhood-based),基於模型(model-based);
在本篇論文中,因為前者更加直觀地解釋了服務推薦的結果,所以是采用了前者作為研究;
而前者又可以細分為以下三類:基於用戶(used-based),基於服務(item-based),混合以上兩種方法(hybrid);
以下是它們的定義:
- used-based:The used-based method utilizes historical QoS experience from a group of similar users to make QoS prediction.
- item-based:The item-based method uses historical QoS information from similar sevices for QoS prediction.
- hybrid:The hybrid approach is the combination pf the user-based and service -based methods, which can achieve a higher QoS prediction accuracy.
而在協同過濾算法研究中,即使為了提高QoS預測的準確度,考慮了上下文信息,但是依舊忽視了時間信息的影響(since QoS performance of web service is highly related to some time-varying factor (e.g., service, network condition, etc. ))
協同過濾還有不可忽視的一個短板就是,數據稀疏的問題;
為了解決這個問題,采用了一個隨機遊走的改進算法:
大致操作如下:
1. 分別構建用戶圖,服務圖,其中節點表示(用戶、服務),邊上的權值表示(兩個用戶、服務)之間的相似性;
2. 在兩個圖上分別執行隨機遊走算法;
3. 最後發現相似用戶,相似服務,獲得更多的歷史信息;
4. userd-based,service-based的結果結合起來,進行更加準確的預測;
3 problem and approach overview
3.1 problem statement
U={u1,u2...um}表述用戶集合;
S={s1,s2...sn}表示服務集合;
以m*n矩陣表示用戶服務之間的關系,每一項是(qij,tij),分別表示ui調用sj時候的QoS,以及對應的時間戳;
當目標用戶提出功能要求的時候,web服務推薦不僅需要提供一個滿足要求的web服務,還需要是所有web服務候選中最優的那一個;
因此,缺失的QoS值qij需要在每一次服務調用時進行預測(the missing QoS value qij should be predicted for each pair (ui, sj) (sj is a candidate web service) at the current time tcurrnet, based on the historical QoS information contained in Q.)
3.2 overview of our approach
為了解決上述問題,所以我們提出一個新的算法,算法執行流程如下圖所示:
1. 目標用戶通過input handler 提出他的功能要求,從而進行web服務推薦;
2. 系統通過web services search engines 獲得一系列滿足要求的web服務
3. 為每一個用戶,服務通過歷史信息,計算時間感知(time-aware)相似性——直接
4. 執行隨機遊走——間接
5. 發現相似用戶,服務
6. 獲得用戶,服務的QoS預測
7. 合並6的用戶,服務預測結果
8. 根據結果預測,然後返回給用戶
4 time-aware similarity measurement
相似性測量對於基於鄰居的協同過濾是很重要的,因為用戶(服務)之間的相似性越高,就意味著更加準確的QoS預測。
本篇論文反復強調時間對於QoS預測準確性的影響,以下做出具體解釋:
tstart表示web服務推薦的開始時間,tik,tjk分別表示用戶i、j調用服務k的時間點,其他剩下的也就如字面表示的那樣;
1. 兩個用戶調用同一個服務的時間點越接近,對用戶相似性的測量越精準
如果△t1很長,即是用戶i、j擁有相似的QoS經歷,也不意味著他們之間的相似性高,因為這段時間足夠用戶i的QoS在服務k上發生巨大的變化;所以可以用如下衰減方程表示:
2. 越是接近當前時間的,兩個用戶調用同一個服務的QoS經歷,對於QoS預測貢獻更大
如果用戶是在很早以前調用的web服務,這對於相似性測量用處不大,畢竟時間久了,中間的各種情況發生變化的可能性就更大;
至此,時間對於相似性測量的影響,以及公式已經全部得出,現在需要做的是將兩個結果統一起來,得出一個更加精確的結果:
現在以PCC(Pearson Correlation Coefficient (PCC) as their similarity models.)作為例子,構建一個相似性模型:
上述結果是在用戶只調用一次服務的情況下,以下是多次的結果,推導過程本質上是一樣的,只是多次匹配用戶i、j調用服務k,最後求出平均值:
其實以上的結果還存在一個問題,比如說,兩個用戶之間調用的服務是比較少的,此時就可能出現一種情況:雖然兩用戶彼此不相似,但是QoS值是一樣的——有點類似hash碰撞;
所以,可以更進一步的解決這個問題:主要思想在於,彼此重疊的集合越大,下邊公式左邊的值就會越大,否則越小,這就很好的解決了調用服務少卻撞相似性的現象;
同樣的,每個服務被不同用戶調用至多只有一次的公式如下:
調用多次的情況也是類似的:
最後也是通過相似性權重去減少兩個服務因為共同用戶數目少導致的結果不準確:
最後是總結上述過程的算法偽代碼:
1~2:初始化
3~17:對用戶i、j,叠代計算對於不同服務k,計算多次調用服務k的QoS總和以及相似用戶的集合,並且最後進行平均值計算;
18~19:獲取相似性系數
20:最終結果中的一部分
21~28:考慮時間因素,計算用戶i、j的相似性準確性
29~30:計算結果並且返回
對於服務相似性的算法大致如上,此處不再贅述;
5 personalized reandom walk to handle data sparsity
5.1 similarity transition
通過上邊的計算,已經可以為目標用戶(服務)識別相似的鄰居,但是user-service 矩陣通常是稀疏的,也即是數據稀疏問題,這也就導致了許多用戶沒有公共服務,許多服務沒有公共用戶,這也就導致了下邊公式的值為0:
從而導致最後的相似性結果為0,最終導致最後的相似性計算結果為0,沒辦法獲得足夠多的歷史數據去預測準確的QoS值。
因為上邊的相似性用戶是局限於直接鄰居,所以當不存在直接鄰居的時候,就會導致最後結果的不足;那麽可以從另外一個角度出發,從間接相似的用戶那裏獲得足夠多的歷史信息,從而進行有效準確的QoS預測;
以下是這個方法可行性的分析:
用戶i調用了服務1、2、3、4;
用戶k調用了服務3、4、5、6;
用戶j調用了服務5、6、7、8;
如果僅僅只是按照上邊所陳述的算法進行計算,顯然用戶i、j的相似性應該是0的,但是從另外一個角度看待這個問題:用戶i、k共同調用了3、4服務,用戶k、j共同調用了5、6服務,所以我們不能簡單的判斷用戶i、j之間不存在相似性,因為相似性是一個可傳遞的關系——這也就是間接相似鄰居(indirect similar neighbors)
5.2 indirect similarity inference
5.2.1 personalized random walk algorithm
大致思路就是構建用戶圖,服務圖,然後在兩幅圖上邊跑個性化的隨機遊走算法,而至於怎麽跑?大致操作如下闡述:
此處使用用戶圖對間接相似鄰居的識別進行詳細闡述。
在個性化的隨機遊走算法中,如果一個用戶獲得的分數越高,就意味著他與目標用戶的相似性越高。
為了執行個性化隨機遊走,首先需要對每一個用戶選擇top-k的直接相似用戶,並以此為基礎,構建一個用戶鄰接矩陣:
在一個用戶的排序列向量r中,每一項rj表示訪問用戶j的可能性,r定義如下:
初始的r0定義如下:表示在初始階段,每一個用戶都具有相同的分數
關於矢量r,可以有如下化簡:
對於矢量r中的每一項rj,都是用戶j的一個長期訪問概率,因此,rj可以被當做是目標用戶與uj之間相似性的近似測量值,越大表示相似性越接近;
5.2.2 similarity reconstruction
矢量r表示的是在目標用戶與鄰居之間的相對接近性而不是實際近似性(the stationary ranking vector r denotes the relative proximities rather than actual similarities between the target user and his neighbors),但是QoS預測是需要的實際相似性的(the actual similarities are necessary to QoS prediction.)
所以5.1.1中的結果需要進行重構獲得我們所需要的直接相似性,具體操作如下:
同樣的,對目標用戶ui的top-k的直接鄰居,表示如下:
在目標用戶與他所有的直接,間接鄰居的實際相似性構造如下:
最後是時間感知相似性算法的偽代碼總結:
1~2:初始化準備
3~8:矩陣標準化(具體意義見公式10)
9~11:計算排序向量r
12~18:公式14
19~20:得出結果並且返回
服務相似性類似於用戶相似性的推導,此處不再贅述。
6 time-aware QoS prediction
在之前的步驟中,我們已經從直接的,間接的相似性用戶(服務)中獲得最夠多的歷史信息,此時,我們可以通過這些信息進行QoS預測。
條件闡述:
ui和sk分別是目標用戶以及其中一個候補服務;
uj是ui的相似用戶,sl是sk的相似服務;
其余參數之前都以介紹,此處不再贅述;
因此,基於用戶,基於服務的時間感知QoS預測分別如下:
考慮復雜情況,也就是一個用戶調用多次,一個服務被調用多次,其實也就是之前復雜化以後的公式往上套:
現在拿到了兩個不同的qos值,分別代表基於用戶,基於服務,那麽有必要將其統一起來形成一個綜合的結果,也是套用權重的方法,分別表示對user-based以及service-based的信任權重:
最後是使用權值參數將他們的結果統一起來:
權值參數h的定義如下:表示最終結果多少是基於user-based,多少是基於service-based
關於QoS預測,存在多種情況,分別是:
1. 有相似用戶,沒有相似服務;——>公式15或17
2. 沒有相似用戶,有相似服務;——>公式16或18
3. 有相似用戶,有相似服務;——>公式21
4. 沒有相似用戶,沒有相似服務;——>公式24
7 computational complexity analysis
略。
8 experiments
8.1 dataset
在64個時間間隔(15min)中,對於響應時間(response time)以及吞吐量(throughput)分別有64個矩陣(142行——用戶,4532列——服務)表示;
8.2 data processing
以對響應時間數據的處理為例,以下是處理過程:
1. 隨機選擇140個用戶以及140個服務,構造64個user-service response time矩陣(140*140),分別由每一個時間間隔提供;
2. 其中存在一些調用失敗的web服務,此時需要替換掉;
3. 然後將第64個矩陣,也即是最新的那一個,隨機分成兩部分,一部分作為訓練矩陣(60%),剩余的作為測試矩陣(40%);
4. 之後隨即選擇訓練矩陣中90%的條目被之前63個觀察的QoS值取代(具體作用:since it is difficult to discover enough similar users and services for QoS prediction based on sparse training data.這下子就有足夠多的數據去做預測了,與test matrix中的剩余40%數據作對比)
8.3 evalutaion metric
我們用平均絕對誤差(Mean Absolute Error,MAE)衡量我們方法的準確性。
8.4 performance comparison
1. this indicates that the time information is valuable to QoS prediction.(Figs 5a-5h)
2. we can observe that under different training data densities (from 100 to 40 percent), the algorithms performing user or service personalized random walk outperform that without random walk.(Figs 6a-6h)
8.5 the impact of time decay constants
在8.4中,所有常量的值都是統一固定的,在這裏討論它們不同值對結果的影響。
9 conclusions
方法的創新性在於,在前人研究的基礎上,通過時間信息提高預測的準確度,隨機遊走算法解決數據稀疏的問題;
其次,通過實驗結果對比可以發現,這個方法性能還是很不錯的;
但是,這個實驗還是存在一些不足的地方,比如我們沒有考慮時間戳的影響,這周一跟上周一的歷史信息就真的不同嗎?......時間需要從更加廣闊的角度來看待,並與它所處的位置相關聯才有意義(time needs to be regarded from a broader perspective and associated to its location to have meaning)
Time Aware and Data Sparsity Tolerant Web Service Recommendation Based on Improved Collaborative Filtering