一種融合社會(huì)網(wǎng)絡(luò)和項(xiàng)目特征的移動(dòng)應(yīng)用推薦方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及的移動(dòng)應(yīng)用推薦領(lǐng)域,特別是一種融合社會(huì)網(wǎng)絡(luò)和項(xiàng)目特征的移動(dòng)應(yīng) 用推薦方法。
【背景技術(shù)】
[0002] 近年來(lái),移動(dòng)應(yīng)用的發(fā)展十分迅猛。然而,移動(dòng)應(yīng)用行業(yè)長(zhǎng)期以來(lái)存在的長(zhǎng)尾問(wèn)題 卻不容忽略,一些需求和下載量不高的應(yīng)用所占據(jù)的共同市場(chǎng)份額可以和主流應(yīng)用的市場(chǎng) 相當(dāng),甚至更大。同時(shí),移動(dòng)應(yīng)用市場(chǎng)存在顯式反饋少、評(píng)分?jǐn)?shù)據(jù)可信度較低的問(wèn)題,國(guó)內(nèi)應(yīng) 用市場(chǎng)推薦大多只考慮了評(píng)分和下載量?jī)蓚€(gè)因素,學(xué)術(shù)界則集中于研究基于社交關(guān)系的應(yīng) 用推薦,但這些實(shí)際應(yīng)用和研究的推薦效果還有很大的提升空間,因此,移動(dòng)應(yīng)用領(lǐng)域推薦 系統(tǒng)的研究勢(shì)在必行。
[0003] 推薦算法作為推薦系統(tǒng)的核心內(nèi)容,對(duì)推薦結(jié)果的準(zhǔn)確性有著直接影響。協(xié)同過(guò) 濾算法是推薦系統(tǒng)中廣泛應(yīng)用的算法之一,主要分為基于用戶的協(xié)同過(guò)濾算法和基于物品 的協(xié)同過(guò)濾算法兩大類。基于用戶的協(xié)同過(guò)濾算法主要思想是利用已經(jīng)掌握的用戶群過(guò)去 的行為和操作來(lái)推測(cè)當(dāng)前用戶的興趣點(diǎn)。簡(jiǎn)單來(lái)說(shuō),就是通過(guò)分析用戶共同評(píng)分項(xiàng)目來(lái)計(jì) 算兩個(gè)用戶之間的相似度,從而為相似用戶提供可能感興趣的推薦。傳統(tǒng)協(xié)同過(guò)濾算法通 常使用余弦公式或Pearson公式來(lái)計(jì)算用戶相似度。然而,協(xié)同過(guò)濾算法普遍存在數(shù)據(jù)稀 疏性問(wèn)題,當(dāng)評(píng)分?jǐn)?shù)據(jù)稀疏時(shí),用戶共同評(píng)分項(xiàng)目就會(huì)很少,甚至沒(méi)有。顯然,在這種情況下 判斷兩個(gè)用戶是否相似的計(jì)算方法并不準(zhǔn)確。如表1所示,用戶^對(duì)"憤怒的小鳥(niǎo)I "和"斗 地主"進(jìn)行了評(píng)分,用戶u2對(duì)"憤怒的小鳥(niǎo)II "和"升級(jí)"進(jìn)行了評(píng)分。按照余弦和Pearson 方法,兩個(gè)用戶之間沒(méi)有共同評(píng)分項(xiàng)目,相似度為零。然而,"憤怒的小鳥(niǎo)I "和"憤怒的小 鳥(niǎo)II "是同一游戲的不同版本,相似度極高。"斗地主"和"升級(jí)"都屬于棋牌類游戲,也有一 定的相似度。判斷兩個(gè)用戶相似度為零顯然是不合理的。
[0004] 表1用戶-應(yīng)用評(píng)分矩陣示例
[0006] 目前國(guó)內(nèi)主流的移動(dòng)應(yīng)用市場(chǎng)主要包括騰訊應(yīng)用寶、360手機(jī)助手、豌豆莢、小米 應(yīng)用市場(chǎng)等,其推薦策略如下:一,分類排行榜熱門應(yīng)用推薦;二,應(yīng)用開(kāi)發(fā)者其他熱門應(yīng) 用推薦;三,與已下載應(yīng)用有關(guān)聯(lián)關(guān)系的系列應(yīng)用推薦。此外,國(guó)外的一些移動(dòng)應(yīng)用推薦服 務(wù)如AppHero等,還能根據(jù)用戶的歷史活動(dòng)數(shù)據(jù)和社交數(shù)據(jù)進(jìn)行應(yīng)用推薦??偟膩?lái)說(shuō),當(dāng)前 推薦所考慮的因素主要是用戶評(píng)分和應(yīng)用下載量。由于移動(dòng)應(yīng)用相關(guān)信息具有多樣性、異 構(gòu)性、動(dòng)態(tài)性等特點(diǎn),并且面臨著數(shù)據(jù)稀疏、用戶欺詐等問(wèn)題,導(dǎo)致推薦結(jié)果不夠準(zhǔn)確、不夠 全面、且相似和單一,嚴(yán)重影響了移動(dòng)應(yīng)用推薦的質(zhì)量。
[0007] 傳統(tǒng)的協(xié)同過(guò)濾技術(shù)需要用戶提供顯示的評(píng)分才能產(chǎn)生推薦結(jié)果,給使用者增加 了負(fù)擔(dān)。有研究者提出利用數(shù)據(jù)挖掘技術(shù)來(lái)隱式獲取用戶的評(píng)分,常用技術(shù)有:基于關(guān)聯(lián)規(guī) 則挖掘的推薦、基于知識(shí)的推薦、基于貝葉斯分類和決策樹(shù)技術(shù)等。對(duì)于評(píng)分?jǐn)?shù)據(jù)的高度稀 疏問(wèn)題,可以利用奇異值分解技術(shù)來(lái)減少項(xiàng)目空間的維數(shù),從而改善用戶評(píng)分?jǐn)?shù)據(jù)的稀疏 性。
[0008] 隨著QQ、微信、微博等社交平臺(tái)的廣泛應(yīng)用,研究學(xué)者對(duì)在線社會(huì)網(wǎng)絡(luò)中豐富的社 會(huì)關(guān)系類型、隱含的大量社會(huì)關(guān)系信息、社會(huì)關(guān)系信息與推薦系統(tǒng)的融合等進(jìn)行了大量的 研究。目前比較流行的是基于用戶聚類的推薦算法,該方法在稀疏數(shù)據(jù)和冷啟動(dòng)的情況下 具有更好的推薦效果;此外,Irwin King、Qiang Yang、Enhong Chen等在用戶相似度、用戶 信任度和用戶影響力的協(xié)同過(guò)濾推薦算法方面也進(jìn)行了較為深入的研究;后來(lái),為進(jìn)一步 提高推薦的準(zhǔn)確性,Jon Kleinberg、Jie Tang等又提出了通過(guò)多重異構(gòu)社會(huì)網(wǎng)絡(luò)進(jìn)行推薦 的算法。但是,融合社會(huì)關(guān)系的推薦系統(tǒng)一般都聚焦于社會(huì)網(wǎng)絡(luò)本身,如好友推薦、社會(huì)推 薦等,如何針對(duì)移動(dòng)應(yīng)用推薦的特征,將社會(huì)關(guān)系與移動(dòng)應(yīng)用推薦相結(jié)合,仍有待進(jìn)一步研 究。
[0009] 本發(fā)明基本定義如下:
[0010] 定義1(移動(dòng)應(yīng)用集合)Α= 為移動(dòng)應(yīng)用集合,其中a」l彡i彡m為項(xiàng) 目名稱。
[0011] 定義2(用戶集合)U = {Up . . . un}為用戶集合,其中Ui I 1彡i彡η為用戶ID。
[0012] 定義3(用戶-應(yīng)用評(píng)分矩陣)R = {ru,a|u e U,a e A}為用戶-應(yīng)用評(píng)分矩陣, 其中\(zhòng)3表示用戶u對(duì)應(yīng)用a的評(píng)分,評(píng)分值為1~5的整數(shù)。
[0013] 定義4 (應(yīng)用相似度矩陣)
為應(yīng)用相似度矩陣,其中
表示應(yīng)用與應(yīng)用a j之間的相似程度,0表示完全不相似,1表示完全 相同,值越大用戶之間的相似度越高。
[0014] 定義5 (用戶相似度矩陣)
為用戶相似度矩陣,其 中表示用戶+與u ^的相似度,〇表示完全不相似,:表示完全相同,值越大用戶 之間的相似度越高。
[0015] 注意,"項(xiàng)目"(item)是協(xié)同過(guò)濾推薦算法中的概念,用于表示待推薦的物品或?qū)?象,在本發(fā)明中,主要針對(duì)的推薦對(duì)象為移動(dòng)應(yīng)用,因此在后文中,"(移動(dòng))應(yīng)用"和"項(xiàng)目" 為等價(jià)互用的概念。
【發(fā)明內(nèi)容】
[0016] 本發(fā)明所要解決的技術(shù)問(wèn)題是,針對(duì)現(xiàn)有技術(shù)不足,提供一種融合社會(huì)網(wǎng)絡(luò)和項(xiàng) 目特征的移動(dòng)應(yīng)用推薦方法。
[0017] 為解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是:一種融合社會(huì)網(wǎng)絡(luò)和項(xiàng)目特 征的移動(dòng)應(yīng)用推薦方法,其特征在于,包括以下步驟:
[0018] 1)從表征移動(dòng)應(yīng)用項(xiàng)目的節(jié)點(diǎn)集合中隨機(jī)取出k個(gè)節(jié)點(diǎn)作為觀測(cè)點(diǎn);
[0019] 2)利用如下所示的項(xiàng)目相似度計(jì)算公式,計(jì)算項(xiàng)目與每個(gè)觀測(cè)點(diǎn)之間的相似度:
[0021] ItemSim(A,B) e [0,1],如果項(xiàng)目與觀測(cè)點(diǎn)完全相同,則相似度ItemSim(A, B)為1 ;如果項(xiàng)目與觀測(cè)點(diǎn)沒(méi)有任何的共同特征,那么相似度ItemSim(A,B)為0 ;其中, distant(A,B)表示A與B之間的語(yǔ)義距離,ε為調(diào)節(jié)因子,取值為1,用于防止distant(A, B)值為0 ;depth⑷表示項(xiàng)目A所在節(jié)點(diǎn)的深度;depth⑶表示項(xiàng)目B所在節(jié)點(diǎn)的深度; density (A, B)表示A與B最近的共同祖先的子節(jié)點(diǎn)密度;α、β、γ取值范圍均為[0, 1], 且α+β+γ=1;
[0022] 3)根據(jù)經(jīng)上述步驟2)計(jì)算得到某節(jié)點(diǎn)與k個(gè)觀測(cè)點(diǎn)之間的相似度,將該節(jié)點(diǎn)劃歸 到相似度最高的觀測(cè)點(diǎn)為中心的簇中;同理對(duì)所有節(jié)點(diǎn)進(jìn)行劃歸,形成k個(gè)簇;
[0023] 4)將每個(gè)簇中到簇中其它點(diǎn)距離和最小的點(diǎn)作為新的觀測(cè)點(diǎn);
[0024] 5)迭代步驟2)~步驟4),直到這k個(gè)觀測(cè)點(diǎn)收斂,得到最終的簇;
[0025] 6)計(jì)算目標(biāo)用戶u與其它用戶在項(xiàng)目評(píng)分經(jīng)歷上的相似度;計(jì)算目標(biāo)用戶u對(duì)其 它用戶的信任度;根據(jù)top-N最近鄰選擇策略,選擇在項(xiàng)目評(píng)分經(jīng)歷上相似度最高的N個(gè)用 戶和信任度最高的N個(gè)的用戶作為目標(biāo)用戶u的相似最近鄰和信任最近鄰,分別記為相似 用戶集合S和信任用戶集合T ;N為正整數(shù);
[0026] 7)利用下式預(yù)測(cè)目標(biāo)用戶對(duì)未評(píng)分項(xiàng)目的偏好r" u,1:
[0028] r" u,;表示用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分;其中,UserSim(u, u s)和trust(u, ut)分 別表示用戶的相似度和信任度;識(shí)表示兩個(gè)最近鄰集合的評(píng)分預(yù)測(cè)在計(jì)算中所占的權(quán)重; $表示用戶u評(píng)分的均值;usS相似用戶集合S中的某一用戶,巧表示用戶us評(píng)分的均值; 4為信任用戶集合T中的某一用戶,$表示用戶ut評(píng)分的均值;表示用戶us對(duì)項(xiàng)目i 或其相似項(xiàng)目的評(píng)分;表示用戶Ut對(duì)項(xiàng)目i的評(píng)分;
[0029] 8)根據(jù)用戶對(duì)未評(píng)分項(xiàng)目的預(yù)測(cè)評(píng)分,選擇預(yù)測(cè)評(píng)分前top-N的項(xiàng)目作為推薦項(xiàng) 目推薦給用戶。
[0030] 其中,步驟