基于动态用户偏好和服务质量的推荐算法
引用:
Zhang Y, Qian Y, Wang Y. A RecommendationAlgorithm Based on Dynamic User Preference and Service Quality[C]//2018 IEEEInternational Conference on Web Services (ICWS). IEEE, 2018: 91-98.
摘要:
在服務計算領域,用戶偏好和服務質量可能隨時間、環境和其他因素而變化。本文提出了一種既考慮用戶動態特性又考慮動態服務質量(QoS)的推薦算法。一方面,該算法使用時態LDA(Latent Dirichlet Allocation)模型來挖掘動態用戶偏好。另一方面,它考慮了QoS的動態變化,并關注最新的QoS。然后,基于動態用戶偏好和動態QoS為用戶生成服務推薦列表。基于真實數據集的實驗結果表明,所提出的算法在準確性,召回率和多樣性方面優于一些經典的和當今前沿的算法。
關鍵字:
服務組成;服務推薦;用戶偏好;LDA;服務質量
1. 介紹
隨著云計算,大數據和物聯網等新興計算領域的發展,互聯網環境中的可用服務在數量和類型上都迅速增加。服務計算技術的成熟及其在各個領域的廣泛應用,導致了服務經濟,服務市場和服務業務的快速增長。因此,如何為市場提供“以用戶為中心”的服務及其組合技術將成為服務計算的未來趨勢之一,準確挖掘用戶偏好并做出高效準確的服務推薦是非常重要和迫切的需要。
但是,在服務計算領域,用戶偏好顯示出動態的特征。首先,由于許多內部和外部因素,用戶的長期偏好可能隨著時間的推移而變化。其次,用戶偏好可能由于其他用戶的影響而改變。最后,用戶的短期興趣可能會在商家的意外推薦下突變,例如,產品體驗的驚喜可能立即導致對用戶的新偏好。因此,用戶偏好改變過程的曲線應該是整體連貫,偶爾跳躍的。用戶偏好的變化包括偏好內容的變化和偏好強度的變化。
此外,在服務計算領域,QoS(服務質量)也具有動態特性。首先,服務本身的質量可能包含升級,更新和其他更改。其次,QoS可能隨著價格策略(例如,捆綁銷售)和其他策略而改變。最后,網絡環境的性能也是動態變化的,例如:吞吐量,延遲等動態變化。因此,對于每個服務,在提出建議時要注意其近期的QoS才能更有意義。
在文獻中,已經提出了許多關于服務推薦的方法。然而大多數作品提出的是靜態方法。一些動態方法僅考慮動態偏好或服務動態。只有少數方法],考慮用戶偏好的動態和服務的動態。然而,這些最前沿的方法仍然存在一些問題。首先,動態偏好挖掘技術是有限的; 其次,它們忽略了一些評估指標,如多樣性。
本文提出了DPDQ(DynamicPreference and Dynamic QoS)推薦算法,它既考慮了動態用戶偏好,又考慮了動態服務質量。首先,時態LDA用于分析動態用戶偏好的變化。由于概率主題模型使用抽樣方法,因此在每個時間片中采樣的用戶偏好不具有直接連續性。此外,兩個相鄰切片的偏好之間存在遺傳關系,其對應于生物遺傳變異。因此,該模型使用前一時間片的后驗概率來影響下一時間片的先驗概率。因此,它可以在不同的時間片上保持相應偏好的語義相關性。其次,該算法還考慮了服務質量隨時間的變化而動態變化。它計算每項服務的最近服務質量,然后在提出服務建議時會將它們納入考量。
方法的主要貢獻如下:
-
將用戶偏好變化過程建模為“遺傳和變異”過程,并通過動態偏好(DP)模型挖掘用戶偏好,以提高推薦精度;
-
通過使用時間模型來考慮QoS隨時間的變化,從而提高推薦性能;
-
通過測量真實世界數據集WS-Dream的準確性和多樣性來驗證所提出方法的有效性。
2. DPDQ服務推薦算法
DPDQ(動態偏好和動態QoS)算法的框架如圖1所示:數據集分為時間片。在每個時間片上,使用動態偏好(DP)模型提取用戶偏好,并計算動態QoS。一方面,用戶偏好的特征是動態的,其包括偏好內容和偏好強度。另一方面,QoS隨時間而變化。在最終推薦過程中,每個用戶-服務對(相當于一個鍵值對)的興趣度與最新時間片上的對應QoS值匹配。
A. 動態偏好模型
DP(動態偏好)模型結合了LDA模型和時間模型,其中LDA用于提取用戶的偏好,時間模型用于表示偏好的“遺傳和變化”。“遺傳和變異”,即當前偏好繼承了前一時期的偏好但又因為其他因素而有所不同。
LDA模型是近年來具有高使用率的隱式文檔主題分析模型。LDA的主要思想是文檔中出現的單詞的概率由文檔的主題分布和主題的詞匯分布決定。對應于服務推薦,LDA的主要思想是用戶選擇服務的概率由用戶的偏好分布和偏好的服務分布確定。用戶和服務通過偏好鏈接,形成三層結構“用戶-偏好-服務”圖,如Fig.2所示。由于偏好的“遺傳和變化”,添加時間模型以鏈接當前時間片與先前時間片之間的用戶偏好。
B. Gibbs采樣
Gibbs采樣是解決LDA模型最常用的方法。我們可以用它從數據集中提取θ和Φ。第一次切片通過傳統的Gibbs采樣求解,后來的時間切片通過增量Gibbs采樣求解。
C. 服務的動態質量
服務質量(QoS)是用戶在使用服務時所感知的對象,包括服務響應時間和吞吐量。QoS是服務性能的客觀度量。前一個時間片中的QoS將影響用戶在后續時間片中的服務選擇。用戶傾向于選擇服務質量好的服務。對于一個服務,同一時間段內不同用戶感知到的QoS是不同的,不同時間段的QoS也是不同的,因此QoS是動態變化的。本文利用服務吞吐量和響應時間來計算服務質量。
D. DPDQ推薦算法
在得到用戶偏好分布θ和偏好服務分布Φ后,可以計算出每項服務的用戶興趣度。
3. 實驗
在本節中,我們進行了幾項實驗,以比較我們的DPDQ算法與最前沿的推薦方法和經典推薦方法的性能。我們的實驗旨在解決以下問題:
Q1:如何選擇算法的最佳參數?
Q2:DPDQ與現有最前沿的推薦方法和經典推薦方法水平相比如何?
Q3:用戶偏好如何隨時間變化?
Q4:QoS如何隨時間變化?
A. 數據集描述
在我們的實驗中,我們使用了真實的數據集WS-Dream(http://wsdream.github.io/)。
我們的程序是由java開發的,執行環境是Windows7操作系統,CPU主頻為2.60ghz,內存為4GB。
B. 評估指標
我們采用四種常用的度量來衡量DPDQ算法的性能,包括精確率、召回率、F1值和漢明距離。
C. 實驗算法
為了評估DPDQ(動態偏好和動態QoS)算法的性能改進,我們將DPDQ算法與一些經典算法LDA,SVD ,ICF 和最前沿的算法如TLDA 進行了比較。在本文中,我們提出了DPDQ算法,該算法考慮了DP模型中的動態QoS。同樣,我們也可以考慮LDA和TLDA中的動態QoS,分別形成LDA + DQ算法和TLDA + DQ算法。
-
DP(動態偏好):該算法采用本文提出的DP模型來提取用戶偏好。
-
LDA + DQ(動態QoS):該算法采用LDA模型提取用戶偏好,并考慮動態QoS。
-
TLDA + DQ(動態QoS):該算法采用TLDA模型提取用戶偏好,并考慮動態QoS。
-
DPDQ(動態偏好和動態QoS):該算法采用DP模型提取用戶偏好并考慮動態QoS。
-
ICF:這是一個基于項目的協同過濾算法。
-
SVD:基于奇異值分解和矩陣維數約簡算法。
D. 實驗結果分析
Q1:如何選擇算法的最佳參數?
本實驗旨在回答Q1。對于DP算法和DPDQ算法,我們設置DP模型參數α = 50 /K ,β= 0.01 ,K= 10 我們使用網格搜索來找到最佳值 w1 和 w2
結果:圖4顯示了何時w1= 0.9 和 w2= 0.2,DP算法具有最高的精度。如w1增加,精度增加。如w2增加,精度先增加后減小。w1和 w2 的價值也適用于DPDQ算法。
分析:在DP模型中,如w1 如果增加,則當前時間片的偏好可以在很大程度上與前一時間片的偏好一致。 w2確定用戶繼承的前一時間片的偏好量。當w2太大時,將覆蓋當前時間片的偏好,導致過度擬合問題。
Q2:DPDQ與現有最前沿的推薦方法和經典推薦方法水平相比如何?
實驗2旨在回答Q2。我們通過計算精度,召回率,F1和漢明距離來比較DPDQ算法與現有的最前沿推薦算法和經典推薦算法的性能。在本實驗中,需要對QoS進行規范化,然后根據范圍值進行調整θ矩陣。
Fig.5表明,當不考慮動態QoS且推薦數量小于50時,LDA的精度大于TLDA和DP的精度。DP算法比ICF和SVD更準確。當建議的數量大于50時,TLDA和DP優于LDA。與TLDA相比,DP的精度略有提高。在考慮動態QoS后,LDA + DQ,TLDA + DQ和DPDQ的精度得到了提高。DPDQ的精度高于其他算法。
圖6顯示隨著推薦數量的增加,每種算法的召回率增加。算法的召回率存在細微差別,但仍然可以看出,考慮QoS的算法明顯優于無QoS算法,DPDQ的召回率明顯高于ICF和SVD,略高于LDA和TLDA。
圖7示出了考慮動態QoS的算法的F1值大于那些無QoS算法。DPDQ算法的F1值大于其他算法。
圖8顯示TLDA + DQ和DPDQ的多樣性優于其他算法。對于相同的服務,每個用戶感知的服務質量是不同的。因此,當我們考慮動態OoS時,推薦列表的多樣性會增加。
結果:DPDQ算法在準確性和多樣性方面優于其他算法。靜態算法(例如,LDA,SVD,ICF)的性能不如動態算法。考慮DP和DQ(例如,DPDQ,TLDA + DQ)的算法的性能優于僅考慮DP(例如,DP,TLDA)或DQ(例如,LDA + DQ)的算法。
分析:將動態偏好考慮在內的算法可以捕獲用戶偏好的變化,以獲得更準確的建議。對于特定服務,不同用戶同時體驗不同的質量,因此在考慮動態QoS之后,推薦列表的多樣性可以增加
Q3:用戶偏好如何隨時間變化?
本實驗旨在回答Q3,了解用戶偏好如何隨時間變化。偏好的強度從LDA算法中的主題強度演變而來,這意味著偏好的比例k在用戶u的所有偏好。通過增量Gibbs采樣,我們在時間片t中獲得用戶偏好分布矩陣θ。基于矩陣中的值,我們可以得到每個用戶的每個偏好的比率。我們提取用戶1的十個偏好以觀察偏好強度的變化。
結果:圖9顯示偏好5和偏好2具有更大的強度變化。偏好8和偏好1在強度上的變化不強烈但影響排名。其他偏好波動但相對穩定。
分析:用戶的長期偏好波動但變化不會很大,而用戶的短期偏好很容易受到環境和其他因素的影響。
Q4:QoS如何隨時間變化?
本實驗旨在回答Q4,了解QoS如何隨時間變化。我們在用戶1的交互記錄中選擇五個服務,并在每個時間片上計算它們的QoS。
結果:圖10顯示服務2,3,4,5具有顯著的質量變化,服務1具有輕微的波動。而剩余服務的質量相對穩定。
分析:服務質量受到許多因素的影響,例如技術,設備和訪問。這些因素導致不同時間片上的服務質量不同。
4. 結論
用戶偏好隨著內部和外部環境的變化而變化。如何及時捕捉用戶偏好的變化,準確挖掘用戶的動態偏好是服務推薦的關鍵。考慮到LDA模型在機器學習領域中提取隱式偏好的優勢,采用時態LDA概率偏好模型用于模擬用戶對挖掘隱式用戶偏好因子的動態偏好。然后,基于這些隱式偏好因子,為用戶生成服務推薦列表。實際數據集的實驗結果表明,該算法在準確性,召回率和多樣性方面優于一些經典算法和最前沿的算法。由于空間的限制,本文僅將基本LDA模型與時間模型相結合。如果可以使用隨機游走算法擴展LDA模型以減輕數據稀疏性問題,則在準確性和多樣性方面的性能將更好。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的基于动态用户偏好和服务质量的推荐算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MathType使用
- 下一篇: CrowdRec:众包环境中,基于信任感