




摘" 要: 在構建用戶興趣模型時,為了充分挖掘用戶間的信任度和關注度,針對現有的API服務推薦算法,提出一種基于用戶信任度和關注度的改進型協同過濾API服務推薦算法。該算法在傳統算法的基礎上引入用戶間的信任度和關注度概念,以此提升準確性,優化推薦順序。針對矩陣的稀疏性和用戶客觀原因造成的推薦誤差,分別采用改進的空值填補法和均值中心化法進行處理。通過實現模型和算法的實驗仿真,證明了改進的算法比傳統算法具有更高的準確性及更優的推薦順序。
關鍵詞: API服務; 協同過濾推薦算法; 信任度挖掘; 空值填補; 個性化推薦; 仿真實驗
中圖分類號: TN911?34" " " " " " " " " " " " "文獻標識碼: A" " " " " " " " " " " " " "文章編號: 1004?373X(2019)21?0086?04
Abstract: In order to sufficiently explore the trust and attention among users when building the user interest model, an improved collaborative filtering API service recommendation algorithm based on the trust and attention of users is proposed for the existing API service recommendation algorithm. On the basis of the traditional algorithm, the concept of trust and attention among users is introduced into this algorithm to improve the accuracy and optimize the recommendation order. In allusion to the sparseness of matrix and recommendation error caused by objective reasons of users, the improved 1 value fill?up method and mean centralization method are used to deal with them, respectively. The simulation experiment to realize the model and algorithm, proves that the improved algorithm has higher accuracy and better recommendation sequence than the traditional algorithm.
Keywords: API service; collaborative filtering recommendation algorithm; trust mining; 1 value fill?up; personalized recommendation; simulation experiment
0" 引" 言
隨著信息技術和互聯網技術的快速發展,API服務得到充分的發揮空間,越來越多的API服務被應用到各個領域。同時,如何快速有效地從眾多的API服務中獲取對于用戶有價值的信息成為當前大數據發展的關鍵問題。
推薦系統是處理“信息超載”的有效方法[1],已經成為各個領域的關注熱點并得到廣泛的應用。其中協同過濾推薦算法是由Sarwar等人最早提出的[2],并且應用最廣泛的一種算法,該算法主要通過分析相似用戶評分過的物品預測目標用戶可能感興趣的物品。文獻[3]通過關鍵詞的語義分析技術引入到協同過濾系統中,應用于廣告領域。文獻[4]通過納入新聞熱度影響并運用懲罰用戶相似度方法,應用于新聞領域。文獻[5]根據移動用用戶特點引入杰卡德系數對算法進行修改,應用于餐飲領域。這些研究都是通過修改相似度的計算方法應用在新的領域中。本文針對數據稀疏性問題對協同過濾算法進行改進,最終將改進的算法應用在API服務推薦領域。
本文在API服務個性化推薦中,針對上述問題,在現有的協同過濾算法的基礎上,對社區中涉及用戶的特征信息進行數據清洗,同時引入社區信任度和好友關注度,對傳統的相似度計算方法進行改進,在API服務個性化推薦中取得了比較理想的效果。
1" 個性化推薦算法原型
個性化推薦算法主要包括收集數據、數據預處理、引入社區信任度和好友關注度的相似度計算,最后對推薦結果進行排序,獲取Top?[N]的最優推薦結果,基本原理如圖1所示。其中收集數據包括收集和更新用戶的相關信息及API數據的最新動態;數據預處理包括對數據的清理、填充空值、歸一化處理等操作;其中最為關鍵的是相似度的計算,通過引入社區信任度和好友關注度對傳統的相似度計算方法進行改進,直接影響API個性化推薦算法的推薦質量。
2" 基于改進用戶相似度的協同過濾算法
2.1" 數據預處理
2.1.1" 空值填補
隨著API服務數據的不斷增加,網上用戶對數據的顯性評分逐漸減少,這些問題導致了數據的稀疏性急劇增大。同時,傳統的相似度計算依賴用戶間的共同評分項,若兩用戶無共同評分項,將無法計算用戶間的相似度。
本文將API服務的相關特征融合到填補空值的計算中,主要包括API服務的類別、第二類別、風格、使用范圍,同時假設API服務的特征向量相同可以得到相似評分的前提下,通過計算獲得新的缺省值。計算公式為:
2.1.2" 平均評分
由于每個用戶對API服務的認可度和評分習慣有所差異,給出的評分也有所差異。例如,某些用戶習慣評價低分或高分,導致在計算相似度的過程中,相似度最終的準確性降低。因此,需要考慮每個用戶對每個項目的具體評分差異。本文采用用戶平均評分的方法進行評分標準化。計算方法如下:
式中:[mu,i]表示用戶[u]對[i]的均值化結果;每個[su,i]表示用戶[u]對[i]的評分;[su]表示用戶[u]的平均評分;[Iu]是用戶[u]的所有物品。
2.2" 引入信任度和關注度的相似度計算
常見的計算相似度的方法有[6]余弦、Pearson相似度、修正余弦相似度等,這些相似度的計算方法主要通過用戶?評分向量,在計算初期能很好地計算出用戶之間的相似度。但隨著API的數量逐漸增多導致矩陣極度稀疏,計算結果的準確性也隨之降低。
本文通過數據預處理對稀疏的數據進行填補,同時根據API服務的特征向量,引入用戶間的信任度和關注度,對傳統相似度計算方法進行改進。一方面根據用戶所在社交平臺中的關注信息計算用戶間的關注度,用符號[Usi]表示,同時分為3種情況:
1) 用戶[u]和用戶[i]在社區平臺中互相關注。
2) 用戶[u]和用戶[i]在社區平臺中單方面關注。
3) 用戶[u]和用戶[i]在社區平臺中互不關注。
將三種情況分別代入式(3)獲得用戶間關注度:
式中:[Usu,i]表示用戶[u]對用戶[i]的關注度;[gu,i]代表關注情況,可根據三種情況賦予不同的值;[nu]代表用戶[u]在各平臺中的關注數量,[u∈Ptnu]代表用戶[u]在平臺中的關注數量總和。[Usu,i]越大,說明用戶[u]和用戶[i]之間的感興趣度越高,[Usu,i]越小則說明用戶[u]和用戶[i]之間感興趣度越低。
另一方面,可根據用戶在社交平臺中的特征信息計算用戶[u]對用戶[i]的信任度,用符號 [infuj]表示。主要選取社交平臺中用戶的3個基本特征:評論數[c]、回復數[d]、最優解答數[m],并通過計算得到用戶自身的信任度[infuj]:
式中:[cu,j]代表用戶[u]在平臺[j]中的評論數;[du,j]代表用戶[u]在平臺[j]中的回復數;[mu,j]代表用戶[u]在平臺中最優解答數;[Pt]代表所有社交平臺。[infuj]越大說明用戶[u]在社交平臺中的可信度越大,[infuj]越小則說明用戶[u]在社交平臺中的可信度越低。
綜上所述,通過數據預處理解決稀疏性問題,同時引入用戶間的關注度和信任度,解決了傳統算法在API領域未考慮用戶感興趣度和可信度的問題,改進的余弦相似度的計算公式如下:
式中:[ui]代表用戶[i]對各API服務的評分;[uj]代表用戶[j]對各API服務的評分;[infuj]代表用戶[j]間的信任度;[Usui,uj]代表用戶之間的關注度。
3" 實" 驗
3.1" 實驗數據及環境
本文實驗環境為:16 GB 內存,3.0 GHz 雙核 CPU,Win 10 操作系統,Pycharm 集成環境,MySQL數據庫和MongoDB數據庫。API數據集是通過Python爬取ProgrammableWeb網站上的真實API服務信息,包括 10 260 個API服務信息,同時以問卷調查的方式獲取100名用戶使用的API服務、評分及社交信息。
3.2" 評價標準
在本文中,通過準確率和折損累積增益進行評估Top?[N]推薦的預測質量。
準確率(Precision)是通過計算測試集中預測的用戶選擇情況與實際數據的選擇情況進行評測,用來評價結果的質量。則推薦結果的準確率定義為:
式中:[Top K(u)]是用戶在推薦算法訓練集上的數據產生的推薦列表;[Test(u)]是用戶在測試集上真實的訪問項目列表。
折損累積增益(Discounted Cumulative Gain,DCG)是信息檢索領域評價網頁搜索算法的有效衡量指標,其基本思想是用戶喜歡的商品排在推薦列表前邊比排在后邊會更大程度增加用戶的體驗。當用戶搜索API服務時,通常關注于系統所返回的推薦結果列表中的[Top?K]個API服務。DCG定義為:
式中:[i]代表推薦列表中的排序的位置,如果目標用戶r的推薦項目列表中第[k]個項目出現在測試集中,則 [scoi=1],否則 [scoi=0],[DCGr]為推薦列表前[Top?K]項得分的累加值,其值越大表示用戶興趣度越高。
3.3" 實驗描述及結果分析
3.3.1" 實驗前準備工作
為確保仿真實驗結果的準確性,排除偶然因素造成的影響,本文將實驗數據集隨機分成兩部分,分別為訓練數據集占60%和測試數據集占40%。
對實驗數據進行預處理,采用空值填補法降低矩陣稀疏性,再通過對評分數據進行均值化處理降低用戶評分習慣差異,最后通過引入關注度和信任度改進傳統相似度的計算。
3.3.2" 實驗描述及結果分析
本文使用傳統的基于用戶的協同過濾推薦算法作對比實驗,對比結果如圖2,圖3所示。
由圖2可知,隨著推薦數量[K]的逐漸增大,兩種算法的準確性均呈下降趨勢,在[K]值為5~10個時,準確性偏高。本文算法較傳統算法準確性高,下降速度也相對較慢。由此可知,本文算法可以更好地適應用戶的喜好,更加值得用戶信任。
由圖3可知,在所有數據相同的情況下,隨著推薦資源個數的增加,傳統的基于用戶的協同過濾推薦算法和改進算法的DCG指標均有所提高,但本文提出的算法的DCG值比傳統算法要高。由此可知,本文算法不僅能夠獲得較優的推薦順序,而且能夠適應用戶的喜好,使得項目推薦列表整體推薦效果較優。
綜上所述,本文提出的改進算法在準確率和折損累積增益兩個指標上均比傳統的協同過濾算法有所提高。表明本文推薦算法不僅能夠挖掘出用戶需要的API服務,而且可以通過用戶間的信任關系獲取更為準確的推薦結果,其推薦效果和質量均優于傳統的協同過濾算法。
4" 結" 語
本文結合用戶間的信任度和關注度的實際特點,提出了一種改進的基于協同過濾的API服務推薦算法。結合用戶評分矩陣進行空值填補和用戶評分標準化處理,很好地解決了用戶矩陣稀疏性和用戶習慣差異導致的不準確性的問題。并且通過實際數據進行實驗,同時對實驗結果與傳統的協同過濾算法進行對比驗證,證明改進的算法比傳統算法具有更高的準確性及更優的推薦順序。
參考文獻
[1] 高發展,黃夢醒,張婷婷.綜合用戶特征及專家信任的協作過濾推薦算法[J].計算機科學,2017,44(2):103?106.
GAO Fazhan, HUANG Mengxing, ZHANG Tingting. Collaborative filtering recommendation algorithm based on user characte?ristics and expert trust [J]. Computer science, 2017, 44(2): 103?106.
[2] 郭彩云,王會進.改進的基于標簽的協同過濾算法[J].計算機工程與應用,2016,52(8):56?61.
GUO Caiyun, WANG Huijin. Improved label?based collaborative filtering algorithm [J]. Computer engineering and applications, 2016, 52(8): 56?61.
[3] 盧軍,李哲,黃一杰,等.一種基于協同過濾與語義分析的個性化網絡廣告投放方法研究[J].現代電子技術, 2016, 39(19):107?110.
LU Jun, LI Zhe, HUANG Yijie, et al. Research on a personalized internet advertising delivery method based on collaborative filtering and semantic analysis [J]. Modern electronics technique, 2016, 39(19): 107?110.
[4] 吳彥文,齊旻,楊銳.一種基于改進型協同過濾算法的新聞推薦系統[J].計算機工程與科學,2017,39(6):1179?1185.
WU Yanwen, QI Min, YANG Rui. A news recommendation system based on improved collaborative filtering algorithm [J]. Computer engineering amp; science, 2017, 39(6): 1179?1185.
[5] 朱保華,張曉濱.移動用戶餐飲個性化需求推薦研究[J].現代電子技術,2015,38(11):13?15.
ZHU Baohua, ZHANG Xiaobin. Research on individualized demand recommendation for mobile users′catering [J]. Modern electronics technique, 2015, 38(11): 13?15.
[6] 李容,李明奇,郭文強.基于改進相似度的協同過濾算法研究[J].計算機科學,2016,43(12):206?208.
LI Rong, LI Mingqi, GUO Wenqiang. Research on collaborative filtering algorithm based on improved similarity [J]. Computer science, 2016, 43(12): 206?208.
[7] 朱強,孫玉強.一種基于信任度的協同過濾推薦方法[J].清華大學學報(自然科學版),2014(3):360?365.
ZHU Qiang, SUN Yuqiang. A trust?based collaborative filte?ring recommendation method [J]. Journal of Tsinghua University (Natural science edition), 2014(3): 360?365.
[8] 李濤.基于個性化特征的協同過濾推薦算法[J].現代電子技術,2017,40(5):78?81.
LI Tao. Collaborative filtering recommendation algorithm based on personalized features [J]. Modern electronics technique, 2017, 40(5): 78?81.
[9] RICCI F, ROKACH L, SHAPIRA B, et al. Recommender systems handbook [M]. Heidelberg: Springer, 2011: 1?35.
[10] 汪從梅,王成良,徐玲.自適應用戶的Item?based協同過濾推薦算法[J].計算機應用研究,2013,30(12):3606?3609.
WANG Congmei, WANG Chengliang, XU Ling. Item?based collaborative filtering recommendation algorithm for adaptive users [J]. Computer applications, 2013, 30(12): 3606?3609.
[11] 王立才,孟祥武,張玉潔.上下文感知推薦系統[J].軟件學報, 2012,23(1):1?20.
WANG Licai, MENG Xiangwu, ZHANG Yujie. Context?aware recommender systems [J]. Journal of software, 2012, 23(1): 1?20.
[12] 王志虎,黃曼瑩.基于用戶歷史行為的協同過濾推薦算法[J].微電子學與計算機,2017,34(5):132?136.
WANG Zhihu, HUANG Manying. Collaborative filtering re?commendation algorithm based on user′s historical behavior [J]. Microelectronics and computer, 2017, 34(5): 132?136.