摘" 要: 在構(gòu)建用戶興趣模型時(shí),為了充分挖掘用戶間的信任度和關(guān)注度,針對(duì)現(xiàn)有的API服務(wù)推薦算法,提出一種基于用戶信任度和關(guān)注度的改進(jìn)型協(xié)同過(guò)濾API服務(wù)推薦算法。該算法在傳統(tǒng)算法的基礎(chǔ)上引入用戶間的信任度和關(guān)注度概念,以此提升準(zhǔn)確性,優(yōu)化推薦順序。針對(duì)矩陣的稀疏性和用戶客觀原因造成的推薦誤差,分別采用改進(jìn)的空值填補(bǔ)法和均值中心化法進(jìn)行處理。通過(guò)實(shí)現(xiàn)模型和算法的實(shí)驗(yàn)仿真,證明了改進(jìn)的算法比傳統(tǒng)算法具有更高的準(zhǔn)確性及更優(yōu)的推薦順序。
關(guān)鍵詞: API服務(wù); 協(xié)同過(guò)濾推薦算法; 信任度挖掘; 空值填補(bǔ); 個(gè)性化推薦; 仿真實(shí)驗(yàn)
中圖分類號(hào): TN911?34" " " " " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " " " " " "文章編號(hào): 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" 引" 言
隨著信息技術(shù)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,API服務(wù)得到充分的發(fā)揮空間,越來(lái)越多的API服務(wù)被應(yīng)用到各個(gè)領(lǐng)域。同時(shí),如何快速有效地從眾多的API服務(wù)中獲取對(duì)于用戶有價(jià)值的信息成為當(dāng)前大數(shù)據(jù)發(fā)展的關(guān)鍵問(wèn)題。
推薦系統(tǒng)是處理“信息超載”的有效方法[1],已經(jīng)成為各個(gè)領(lǐng)域的關(guān)注熱點(diǎn)并得到廣泛的應(yīng)用。其中協(xié)同過(guò)濾推薦算法是由Sarwar等人最早提出的[2],并且應(yīng)用最廣泛的一種算法,該算法主要通過(guò)分析相似用戶評(píng)分過(guò)的物品預(yù)測(cè)目標(biāo)用戶可能感興趣的物品。文獻(xiàn)[3]通過(guò)關(guān)鍵詞的語(yǔ)義分析技術(shù)引入到協(xié)同過(guò)濾系統(tǒng)中,應(yīng)用于廣告領(lǐng)域。文獻(xiàn)[4]通過(guò)納入新聞熱度影響并運(yùn)用懲罰用戶相似度方法,應(yīng)用于新聞?lì)I(lǐng)域。文獻(xiàn)[5]根據(jù)移動(dòng)用用戶特點(diǎn)引入杰卡德系數(shù)對(duì)算法進(jìn)行修改,應(yīng)用于餐飲領(lǐng)域。這些研究都是通過(guò)修改相似度的計(jì)算方法應(yīng)用在新的領(lǐng)域中。本文針對(duì)數(shù)據(jù)稀疏性問(wèn)題對(duì)協(xié)同過(guò)濾算法進(jìn)行改進(jìn),最終將改進(jìn)的算法應(yīng)用在API服務(wù)推薦領(lǐng)域。
本文在API服務(wù)個(gè)性化推薦中,針對(duì)上述問(wèn)題,在現(xiàn)有的協(xié)同過(guò)濾算法的基礎(chǔ)上,對(duì)社區(qū)中涉及用戶的特征信息進(jìn)行數(shù)據(jù)清洗,同時(shí)引入社區(qū)信任度和好友關(guān)注度,對(duì)傳統(tǒng)的相似度計(jì)算方法進(jìn)行改進(jìn),在API服務(wù)個(gè)性化推薦中取得了比較理想的效果。
1" 個(gè)性化推薦算法原型
個(gè)性化推薦算法主要包括收集數(shù)據(jù)、數(shù)據(jù)預(yù)處理、引入社區(qū)信任度和好友關(guān)注度的相似度計(jì)算,最后對(duì)推薦結(jié)果進(jìn)行排序,獲取Top?[N]的最優(yōu)推薦結(jié)果,基本原理如圖1所示。其中收集數(shù)據(jù)包括收集和更新用戶的相關(guān)信息及API數(shù)據(jù)的最新動(dòng)態(tài);數(shù)據(jù)預(yù)處理包括對(duì)數(shù)據(jù)的清理、填充空值、歸一化處理等操作;其中最為關(guān)鍵的是相似度的計(jì)算,通過(guò)引入社區(qū)信任度和好友關(guān)注度對(duì)傳統(tǒng)的相似度計(jì)算方法進(jìn)行改進(jìn),直接影響API個(gè)性化推薦算法的推薦質(zhì)量。
2" 基于改進(jìn)用戶相似度的協(xié)同過(guò)濾算法
2.1" 數(shù)據(jù)預(yù)處理
2.1.1" 空值填補(bǔ)
隨著API服務(wù)數(shù)據(jù)的不斷增加,網(wǎng)上用戶對(duì)數(shù)據(jù)的顯性評(píng)分逐漸減少,這些問(wèn)題導(dǎo)致了數(shù)據(jù)的稀疏性急劇增大。同時(shí),傳統(tǒng)的相似度計(jì)算依賴用戶間的共同評(píng)分項(xiàng),若兩用戶無(wú)共同評(píng)分項(xiàng),將無(wú)法計(jì)算用戶間的相似度。
本文將API服務(wù)的相關(guān)特征融合到填補(bǔ)空值的計(jì)算中,主要包括API服務(wù)的類別、第二類別、風(fēng)格、使用范圍,同時(shí)假設(shè)API服務(wù)的特征向量相同可以得到相似評(píng)分的前提下,通過(guò)計(jì)算獲得新的缺省值。計(jì)算公式為:
2.1.2" 平均評(píng)分
由于每個(gè)用戶對(duì)API服務(wù)的認(rèn)可度和評(píng)分習(xí)慣有所差異,給出的評(píng)分也有所差異。例如,某些用戶習(xí)慣評(píng)價(jià)低分或高分,導(dǎo)致在計(jì)算相似度的過(guò)程中,相似度最終的準(zhǔn)確性降低。因此,需要考慮每個(gè)用戶對(duì)每個(gè)項(xiàng)目的具體評(píng)分差異。本文采用用戶平均評(píng)分的方法進(jìn)行評(píng)分標(biāo)準(zhǔn)化。計(jì)算方法如下:
式中:[mu,i]表示用戶[u]對(duì)[i]的均值化結(jié)果;每個(gè)[su,i]表示用戶[u]對(duì)[i]的評(píng)分;[su]表示用戶[u]的平均評(píng)分;[Iu]是用戶[u]的所有物品。
2.2" 引入信任度和關(guān)注度的相似度計(jì)算
常見(jiàn)的計(jì)算相似度的方法有[6]余弦、Pearson相似度、修正余弦相似度等,這些相似度的計(jì)算方法主要通過(guò)用戶?評(píng)分向量,在計(jì)算初期能很好地計(jì)算出用戶之間的相似度。但隨著API的數(shù)量逐漸增多導(dǎo)致矩陣極度稀疏,計(jì)算結(jié)果的準(zhǔn)確性也隨之降低。
本文通過(guò)數(shù)據(jù)預(yù)處理對(duì)稀疏的數(shù)據(jù)進(jìn)行填補(bǔ),同時(shí)根據(jù)API服務(wù)的特征向量,引入用戶間的信任度和關(guān)注度,對(duì)傳統(tǒng)相似度計(jì)算方法進(jìn)行改進(jìn)。一方面根據(jù)用戶所在社交平臺(tái)中的關(guān)注信息計(jì)算用戶間的關(guān)注度,用符號(hào)[Usi]表示,同時(shí)分為3種情況:
1) 用戶[u]和用戶[i]在社區(qū)平臺(tái)中互相關(guān)注。
2) 用戶[u]和用戶[i]在社區(qū)平臺(tái)中單方面關(guān)注。
3) 用戶[u]和用戶[i]在社區(qū)平臺(tái)中互不關(guān)注。
將三種情況分別代入式(3)獲得用戶間關(guān)注度:
式中:[Usu,i]表示用戶[u]對(duì)用戶[i]的關(guān)注度;[gu,i]代表關(guān)注情況,可根據(jù)三種情況賦予不同的值;[nu]代表用戶[u]在各平臺(tái)中的關(guān)注數(shù)量,[u∈Ptnu]代表用戶[u]在平臺(tái)中的關(guān)注數(shù)量總和。[Usu,i]越大,說(shuō)明用戶[u]和用戶[i]之間的感興趣度越高,[Usu,i]越小則說(shuō)明用戶[u]和用戶[i]之間感興趣度越低。
另一方面,可根據(jù)用戶在社交平臺(tái)中的特征信息計(jì)算用戶[u]對(duì)用戶[i]的信任度,用符號(hào) [infuj]表示。主要選取社交平臺(tái)中用戶的3個(gè)基本特征:評(píng)論數(shù)[c]、回復(fù)數(shù)[d]、最優(yōu)解答數(shù)[m],并通過(guò)計(jì)算得到用戶自身的信任度[infuj]:
式中:[cu,j]代表用戶[u]在平臺(tái)[j]中的評(píng)論數(shù);[du,j]代表用戶[u]在平臺(tái)[j]中的回復(fù)數(shù);[mu,j]代表用戶[u]在平臺(tái)中最優(yōu)解答數(shù);[Pt]代表所有社交平臺(tái)。[infuj]越大說(shuō)明用戶[u]在社交平臺(tái)中的可信度越大,[infuj]越小則說(shuō)明用戶[u]在社交平臺(tái)中的可信度越低。
綜上所述,通過(guò)數(shù)據(jù)預(yù)處理解決稀疏性問(wèn)題,同時(shí)引入用戶間的關(guān)注度和信任度,解決了傳統(tǒng)算法在API領(lǐng)域未考慮用戶感興趣度和可信度的問(wèn)題,改進(jìn)的余弦相似度的計(jì)算公式如下:
式中:[ui]代表用戶[i]對(duì)各API服務(wù)的評(píng)分;[uj]代表用戶[j]對(duì)各API服務(wù)的評(píng)分;[infuj]代表用戶[j]間的信任度;[Usui,uj]代表用戶之間的關(guān)注度。
3" 實(shí)" 驗(yàn)
3.1" 實(shí)驗(yàn)數(shù)據(jù)及環(huán)境
本文實(shí)驗(yàn)環(huán)境為:16 GB 內(nèi)存,3.0 GHz 雙核 CPU,Win 10 操作系統(tǒng),Pycharm 集成環(huán)境,MySQL數(shù)據(jù)庫(kù)和MongoDB數(shù)據(jù)庫(kù)。API數(shù)據(jù)集是通過(guò)Python爬取ProgrammableWeb網(wǎng)站上的真實(shí)API服務(wù)信息,包括 10 260 個(gè)API服務(wù)信息,同時(shí)以問(wèn)卷調(diào)查的方式獲取100名用戶使用的API服務(wù)、評(píng)分及社交信息。
3.2" 評(píng)價(jià)標(biāo)準(zhǔn)
在本文中,通過(guò)準(zhǔn)確率和折損累積增益進(jìn)行評(píng)估Top?[N]推薦的預(yù)測(cè)質(zhì)量。
準(zhǔn)確率(Precision)是通過(guò)計(jì)算測(cè)試集中預(yù)測(cè)的用戶選擇情況與實(shí)際數(shù)據(jù)的選擇情況進(jìn)行評(píng)測(cè),用來(lái)評(píng)價(jià)結(jié)果的質(zhì)量。則推薦結(jié)果的準(zhǔn)確率定義為:
式中:[Top K(u)]是用戶在推薦算法訓(xùn)練集上的數(shù)據(jù)產(chǎn)生的推薦列表;[Test(u)]是用戶在測(cè)試集上真實(shí)的訪問(wèn)項(xiàng)目列表。
折損累積增益(Discounted Cumulative Gain,DCG)是信息檢索領(lǐng)域評(píng)價(jià)網(wǎng)頁(yè)搜索算法的有效衡量指標(biāo),其基本思想是用戶喜歡的商品排在推薦列表前邊比排在后邊會(huì)更大程度增加用戶的體驗(yàn)。當(dāng)用戶搜索API服務(wù)時(shí),通常關(guān)注于系統(tǒng)所返回的推薦結(jié)果列表中的[Top?K]個(gè)API服務(wù)。DCG定義為:
式中:[i]代表推薦列表中的排序的位置,如果目標(biāo)用戶r的推薦項(xiàng)目列表中第[k]個(gè)項(xiàng)目出現(xiàn)在測(cè)試集中,則 [scoi=1],否則 [scoi=0],[DCGr]為推薦列表前[Top?K]項(xiàng)得分的累加值,其值越大表示用戶興趣度越高。
3.3" 實(shí)驗(yàn)描述及結(jié)果分析
3.3.1" 實(shí)驗(yàn)前準(zhǔn)備工作
為確保仿真實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,排除偶然因素造成的影響,本文將實(shí)驗(yàn)數(shù)據(jù)集隨機(jī)分成兩部分,分別為訓(xùn)練數(shù)據(jù)集占60%和測(cè)試數(shù)據(jù)集占40%。
對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行預(yù)處理,采用空值填補(bǔ)法降低矩陣稀疏性,再通過(guò)對(duì)評(píng)分?jǐn)?shù)據(jù)進(jìn)行均值化處理降低用戶評(píng)分習(xí)慣差異,最后通過(guò)引入關(guān)注度和信任度改進(jìn)傳統(tǒng)相似度的計(jì)算。
3.3.2" 實(shí)驗(yàn)描述及結(jié)果分析
本文使用傳統(tǒng)的基于用戶的協(xié)同過(guò)濾推薦算法作對(duì)比實(shí)驗(yàn),對(duì)比結(jié)果如圖2,圖3所示。
由圖2可知,隨著推薦數(shù)量[K]的逐漸增大,兩種算法的準(zhǔn)確性均呈下降趨勢(shì),在[K]值為5~10個(gè)時(shí),準(zhǔn)確性偏高。本文算法較傳統(tǒng)算法準(zhǔn)確性高,下降速度也相對(duì)較慢。由此可知,本文算法可以更好地適應(yīng)用戶的喜好,更加值得用戶信任。
由圖3可知,在所有數(shù)據(jù)相同的情況下,隨著推薦資源個(gè)數(shù)的增加,傳統(tǒng)的基于用戶的協(xié)同過(guò)濾推薦算法和改進(jìn)算法的DCG指標(biāo)均有所提高,但本文提出的算法的DCG值比傳統(tǒng)算法要高。由此可知,本文算法不僅能夠獲得較優(yōu)的推薦順序,而且能夠適應(yīng)用戶的喜好,使得項(xiàng)目推薦列表整體推薦效果較優(yōu)。
綜上所述,本文提出的改進(jìn)算法在準(zhǔn)確率和折損累積增益兩個(gè)指標(biāo)上均比傳統(tǒng)的協(xié)同過(guò)濾算法有所提高。表明本文推薦算法不僅能夠挖掘出用戶需要的API服務(wù),而且可以通過(guò)用戶間的信任關(guān)系獲取更為準(zhǔn)確的推薦結(jié)果,其推薦效果和質(zhì)量均優(yōu)于傳統(tǒng)的協(xié)同過(guò)濾算法。
4" 結(jié)" 語(yǔ)
本文結(jié)合用戶間的信任度和關(guān)注度的實(shí)際特點(diǎn),提出了一種改進(jìn)的基于協(xié)同過(guò)濾的API服務(wù)推薦算法。結(jié)合用戶評(píng)分矩陣進(jìn)行空值填補(bǔ)和用戶評(píng)分標(biāo)準(zhǔn)化處理,很好地解決了用戶矩陣稀疏性和用戶習(xí)慣差異導(dǎo)致的不準(zhǔn)確性的問(wèn)題。并且通過(guò)實(shí)際數(shù)據(jù)進(jìn)行實(shí)驗(yàn),同時(shí)對(duì)實(shí)驗(yàn)結(jié)果與傳統(tǒng)的協(xié)同過(guò)濾算法進(jìn)行對(duì)比驗(yàn)證,證明改進(jìn)的算法比傳統(tǒng)算法具有更高的準(zhǔn)確性及更優(yōu)的推薦順序。
參考文獻(xiàn)
[1] 高發(fā)展,黃夢(mèng)醒,張婷婷.綜合用戶特征及專家信任的協(xié)作過(guò)濾推薦算法[J].計(jì)算機(jī)科學(xué),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] 郭彩云,王會(huì)進(jìn).改進(jìn)的基于標(biāo)簽的協(xié)同過(guò)濾算法[J].計(jì)算機(jī)工程與應(yīng)用,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] 盧軍,李哲,黃一杰,等.一種基于協(xié)同過(guò)濾與語(yǔ)義分析的個(gè)性化網(wǎng)絡(luò)廣告投放方法研究[J].現(xiàn)代電子技術(shù), 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ìn)型協(xié)同過(guò)濾算法的新聞推薦系統(tǒng)[J].計(jì)算機(jī)工程與科學(xué),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] 朱保華,張曉濱.移動(dòng)用戶餐飲個(gè)性化需求推薦研究[J].現(xiàn)代電子技術(shù),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] 李容,李明奇,郭文強(qiáng).基于改進(jìn)相似度的協(xié)同過(guò)濾算法研究[J].計(jì)算機(jī)科學(xué),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] 朱強(qiáng),孫玉強(qiáng).一種基于信任度的協(xié)同過(guò)濾推薦方法[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),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] 李濤.基于個(gè)性化特征的協(xié)同過(guò)濾推薦算法[J].現(xiàn)代電子技術(shù),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] 汪從梅,王成良,徐玲.自適應(yīng)用戶的Item?based協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)應(yīng)用研究,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] 王立才,孟祥武,張玉潔.上下文感知推薦系統(tǒng)[J].軟件學(xué)報(bào), 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] 王志虎,黃曼瑩.基于用戶歷史行為的協(xié)同過(guò)濾推薦算法[J].微電子學(xué)與計(jì)算機(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.