李佳琪,劉紅巖,何 軍+,王 蓓,杜小勇
1.數(shù)據(jù)工程與知識工程教育部重點實驗室(中國人民大學(xué) 信息學(xué)院),北京 100872
2.清華大學(xué) 經(jīng)濟管理學(xué)院,北京 100084
目前移動市場的火爆使得手機應(yīng)用爆炸式增長,從而產(chǎn)生了信息過載的問題,現(xiàn)階段各大手機應(yīng)用商城如360手機助手、百度手機助手等都利用推薦系統(tǒng)為用戶提供個性化的App推薦列表,良好的推薦策略可以大大提升用戶的體驗滿意度。很多營銷專家和社會學(xué)家發(fā)現(xiàn)用戶的生命周期對用戶的購買行為有很大的影響[1-2],隨著用戶年齡、身份的變化,用戶的喜好也隨之改變,而在手機應(yīng)用商城App的推薦場景中,生命周期的概念也同樣適用。通過對艾瑞發(fā)布的多項行業(yè)報告以及對收回的調(diào)查問卷的分析,發(fā)現(xiàn)同年齡段用戶對App的偏好具有一定的相似性,而不同年齡段的用戶對手機應(yīng)用的需求和喜好有較大的不同?;诖擞^察試圖研究如何將用戶的年齡信息與推薦算法相結(jié)合,以使App的推薦結(jié)果有更高的推薦準確度。
本文的主要貢獻如下:
(1)將用戶年齡預(yù)測問題看成多分類問題,在用戶年齡信息未知的情況下,通過發(fā)放調(diào)查問卷獲取訓(xùn)練集,并分別使用LDA(latent Dirichlet allocation)和詞向量描述用戶特征,構(gòu)建了邏輯回歸模型和決策樹模型對問卷用戶的年齡進行分類,之后采用多視圖學(xué)習(xí)的方式對兩個分類器的分類結(jié)果互相校正以得到應(yīng)用商城用戶的標準集。
(2)挖掘應(yīng)用商城中用戶的行為特征與用戶所屬年齡段之間的聯(lián)系,構(gòu)建用戶年齡預(yù)測模型,預(yù)測出應(yīng)用商城中其余所有用戶的年齡階段。
(3)提出了兩個基于用戶年齡的推薦模型,實驗結(jié)果表明,本文提出的在推薦算法中恰當?shù)厝谌肽挲g信息的方式,可以獲得更高的App推薦準確度,因而可為用戶提供更有價值的App推薦列表。
本文的工作主要包括兩部分內(nèi)容:一是研究如何根據(jù)應(yīng)用商城中用戶的歷史行為數(shù)據(jù)推測出用戶所處的年齡階段;二是研究如何將用戶年齡信息融入到推薦算法中,以提升App的推薦準確度。第2章介紹相關(guān)工作;第3章介紹本文提出的用戶年齡預(yù)測模型;第4章介紹本文提出的兩個基于用戶年齡的推薦模型,即AgeBPR和AgeSocialMF模型;第5章描述以及分析實驗結(jié)果;第6章對本文進行總結(jié)并指出未來的工作方向。
近年來,利用矩陣分解算法進行推薦的相關(guān)研究取得了很多重要的成果,其中之一是利用用戶的隱式反饋信息與傳統(tǒng)的推薦模型相結(jié)合的方式進行推薦,用戶的隱式反饋信息可以是用戶的購買記錄、瀏覽記錄、搜索記錄、用戶個人信息甚至鼠標瀏覽時長等。文獻[3]將用戶信息與協(xié)同過濾算法相結(jié)合來處理OCCF(one-classcollaborativefiltering)問題。OCCF是指數(shù)據(jù)集中沒有用戶顯式評分的數(shù)據(jù),只有用戶是否購買、是否瀏覽過等隱式反饋信息。單獨使用多種不同的用戶信息來預(yù)測用戶對物品的喜好程度,之后與傳統(tǒng)協(xié)同過濾的方法進行線性組合,得出用戶對物品的最終評分。文獻[4]認為用戶對商品的評分與用戶和商品的自身情況有關(guān),為了降低用戶和商品自身特征對評分的影響,增加了用戶和物品的偏置項。為了解決冷啟動問題,將用戶隱式反饋信息即用戶的性別、年齡、收入水平等融入到矩陣分解模型中來增強用戶的特征表示。文獻[5]提出使用隱式反饋信息將用戶特征矩陣和物品特征矩陣進行恰當?shù)某跏蓟瘯葌鹘y(tǒng)矩陣分解中隨機初始化的方法來解決隱式反饋推薦問題的效果更好。文獻[6]使用矩陣分解模型用于電視節(jié)目的推薦。文獻[7]通過將用戶的社交關(guān)系信息融入到矩陣分解模型中來降低數(shù)據(jù)稀疏問題和新用戶冷啟動問題帶來的影響。文獻[8]中作者認為用戶的社交網(wǎng)絡(luò)信息會對用戶的Web行為產(chǎn)生影響,利用用戶的社交網(wǎng)絡(luò)信息和用戶的評分信息提出了基于概率矩陣分解的方法來解決數(shù)據(jù)稀疏問題。文獻[9]中提出的CircleCon(circlebased recommendation)方法將用戶的朋友圈分成多個類別即多個子網(wǎng)絡(luò),該方法背后的思想是用戶對不同領(lǐng)域的知識有不同的信任好友。文獻[10]將矩陣分解用于音樂歌曲的推薦,也是基于隱式反饋的推薦,數(shù)據(jù)集中只有用戶的聽歌記錄,并沒有用戶對音樂歌曲的評分情況。用戶點擊播放歌曲的次數(shù)可以表示用戶對歌曲的喜愛程度,歌曲被用戶播放的次數(shù)越多,用戶越喜愛該歌曲,評分則越高。
文獻[11]基于貝葉斯分析使用似然函數(shù)和模型參數(shù)的先驗概率分布提出BPR-OPT方法來解決個性化排序問題,并將該方法應(yīng)用于矩陣分解和KNN(Knearest neighbor)推薦中。該文中的數(shù)據(jù)是用戶的購買記錄,沒有具體評分數(shù)據(jù),是基于隱式反饋的推薦場景。將用戶-物品評分矩陣R轉(zhuǎn)化為每個用戶自己的物品-物品矩陣,如i>uj表示用戶u在物品i和物品j中更喜歡物品j,矩陣中的對應(yīng)值為1,否則為0。構(gòu)建好所有用戶的物品-物品矩陣后,不使用用戶-物品矩陣作為訓(xùn)練集,而是使用物品和物品的pair對作為訓(xùn)練集,利用貝葉斯公式得到所有物品正確的個性化排序,來最大化參數(shù)θ的后驗概率,參數(shù)θ代表參數(shù)向量,在矩陣分解中則是對應(yīng)分解出的用戶-特征矩陣和特征-物品矩陣,之后使用隨機梯度下降求解用戶的個性化推薦列表。
文獻[12]提出將信任傳播機制融入到矩陣分解中,作者認為社交網(wǎng)絡(luò)中的好友會有相似的偏好,用戶u的行為受其直接好友偏好的影響,換句話說就是用戶u的特征向量取決于u所有直接好友的特征向量,即是其直接好友的特征向量的加權(quán)平均。該方法從概率生成的角度解釋用戶和物品的特征向量,假設(shè)用戶和物品的隱含特征向量服從高斯先驗分布,通過最大化后驗概率來求解用戶和物品的特征向量,該方法可以降低對冷啟動新用戶的推薦誤差。
文獻[13]將用戶的生命周期融入到推薦算法中,該文中關(guān)注的是淘寶母嬰產(chǎn)品的在線推薦,數(shù)據(jù)集包含用戶的歷史行為記錄以及部分用戶的個人資料中的小孩年齡信息。該文首先預(yù)測出小孩所處的生命周期,之后將生命周期融入到傳統(tǒng)推薦算法進行推薦。因訓(xùn)練集中小孩的年齡信息是已知的,將小孩生命周期的預(yù)測問題看作多分類問題,將小孩的生命周期分為5個階段,分別是懷孕階段、出生6個月內(nèi)、6個月~1年、1~3年及3~6年。選取了五方面特征,分別是用戶購買物品所屬的種類特征、用戶的搜索query特征、產(chǎn)品特定的屬性特征、產(chǎn)品名稱特征以及購買行為的時間特征。使用L1正則化的邏輯回歸模型預(yù)測用戶的小孩所處的生命階段,之后預(yù)估出在小孩年齡為a時用戶購買產(chǎn)品j的概率p(pproductj,a)。
根據(jù)上文的介紹可以發(fā)現(xiàn),目前在推薦算法中融入用戶年齡信息的相關(guān)研究并不是很多,且用戶的年齡信息均是顯式已知的,在本文應(yīng)用商城App的推薦場景中,用戶的年齡信息是未知的。在此背景下本文通過調(diào)查問卷的方式獲得初始訓(xùn)練集,將用戶的年齡預(yù)測問題看作多分類問題,通過多視圖學(xué)習(xí)的方式擴充了原始訓(xùn)練集,預(yù)測出了所有用戶所屬的年齡段,并提出了兩種將用戶年齡信息融入到矩陣分解的方法,提升了App推薦的準確度。
本文將用戶年齡段的預(yù)測問題看作分類問題,將用戶的年齡階段分為4個類別,即A={20歲以下,21~30歲,31~40歲,40歲以上}。若用戶年齡已知,即有標準訓(xùn)練集,則可以直接使用監(jiān)督學(xué)習(xí)的方法構(gòu)建分類器,并對年齡段未知的用戶進行年齡段的預(yù)測。但在本文的場景中,已知的數(shù)據(jù)主要包括兩部分內(nèi)容:一是用戶歷史行為數(shù)據(jù),主要包括用戶瀏覽APP、搜索App、下載App的記錄及已安裝的App記錄;二是App本身的信息,主要包括App所屬的類別、App的tag信息等。并沒有用戶的年齡信息,為了解決這個問題,首先在線上問卷星和線下均發(fā)放了調(diào)查問卷,想以此獲得初始訓(xùn)練集,問卷中的問題主要包括用戶的年齡以及用戶當前手機中安裝的App,獲取到初始訓(xùn)練集P后,分別使用邏輯回歸和決策樹對問卷中的用戶構(gòu)建兩個分類器,使用邏輯回歸構(gòu)建分類器時,用戶的特征使用LDA[14-15]來生成。具體來說本文認為應(yīng)用商城中一個用戶一段時間內(nèi)下載所有App的Tag為一個文檔,所有App的tag組成word集合,以此來訓(xùn)練LDA模型,得到topic-word矩陣。之后將問卷用戶當前手機中安裝的所有App的tag看作一個文檔,使用之前LDA訓(xùn)練得到的topic-word矩陣來生成問卷用戶的文檔-話題分布,得到的文檔話題分布看作是該用戶的特征。使用決策樹構(gòu)建分類器時,使用詞向量來表示用戶特征。具體來說,利用中文維基百科作為語料訓(xùn)練Word2Vec模型得到詞向量,把每個問卷用戶手機中已安裝的App在應(yīng)用商城中對應(yīng)的每個tag都作為一個詞語,然后把每一個問卷用戶安裝的App的tag的詞向量相加之后取平均,這樣就得到了問卷用戶的K維特征向量。在此得到了使用初始訓(xùn)練集構(gòu)建的兩個年齡分類的分類器,即邏輯回歸(logistic regression,LR)分類器和決策樹(decision tree,DT)分類器。
因問卷用戶的數(shù)據(jù)量較少,且只有安裝App的信息,并沒有太多用戶行為的信息。在得到LR和DT兩個分類器后,并不是將其直接用于應(yīng)用商城中用戶年齡的預(yù)測,而是采用多視圖學(xué)習(xí)的方式得到標準集,具體算法過程如算法1所示。標準集中的用戶是應(yīng)用商城中的用戶,這些用戶除了有安裝App的信息之外,還有較多的用戶行為信息,從多個角度來描述這部分用戶的特征,重新構(gòu)建一個分類器,使用該分類器可以對應(yīng)用商城中其余所有用戶進行年齡的預(yù)測,這樣就可以得到應(yīng)用商城中所有用戶的年齡段分類結(jié)果。這里依舊將用戶的年齡分為4個階段,即A={20歲以下,21~30歲,31~40歲,40歲以上},用戶的特征表示主要從以下幾個方面考慮:
(1)用戶一段時間內(nèi)下載App的tag作為一個文檔,依舊使用之前LDA訓(xùn)練得到的topic-word分布生成用戶文檔的文檔-話題分布,該特征表示為LDA。
(2)使用詞向量來表示用戶特征,具體來說,利用一段時間內(nèi)所有用戶下載App的ID序列作為語料訓(xùn)練Word2Vec模型得到詞向量,把一個用戶下載的每一個App的ID作為一個詞語,然后把一個用戶一段時間內(nèi)下載的App的ID的詞向量相加之后取平均,這樣就得到了一個用戶的K維特征向量,該特征表示為word2vec。
(3)用戶下載App的種類分布,即App所屬的類別分布,如育兒母嬰、旅游出行等,該特征表示為category。
從上述幾個方面表示出用戶的特征后,針對使用多視圖學(xué)習(xí)得到的標準集,使用邏輯回歸預(yù)測應(yīng)用商城中用戶年齡分類器,即可預(yù)測出應(yīng)用商城中其余所有用戶所屬的年齡階段。
算法1Multi-view learning
輸入:問卷用戶初始訓(xùn)練集P,隨機抽取的應(yīng)用商城中無年齡信息的用戶集合U。
1.使用邏輯回歸對初始訓(xùn)練集P構(gòu)建分類器LR,訓(xùn)練集記為T1;
2.使用決策樹對初始訓(xùn)練集P構(gòu)建分類器DT,訓(xùn)練集記為T2;
3.WhileU!=NULL:
4.使用LR預(yù)測U中用戶的年齡,得到年齡分類結(jié)果R1;
2.6 BRMS1、CD82、KISS1、TIMP1在侵襲性乳腺導(dǎo)管癌中mRNA表達降低 與非侵襲性乳腺導(dǎo)管癌相比,在侵襲性乳腺導(dǎo)管癌中抑制乳腺癌轉(zhuǎn)移基因BRMS1、CD82、KISS1、TIMP1 mRNA 表達量均降低(P<0.05),見圖6。
5.使用DT預(yù)測U中用戶的年齡,得到年齡分類結(jié)果R2;
6.對R1、R2中的結(jié)果按分類置信度排序,取出兩個序列的top-100條記錄,記為L1、L2;
7.計算LR和DT分類的準確度,對于同時出現(xiàn)在L1、L2中的用戶,使用分類準確度較高的分類器(假設(shè)為LR)對另一個分類器的結(jié)果(DT)進行校正,L2被校正后的結(jié)果記為L22;
8.將L1和L22中的樣本分別加入到對方分類器的訓(xùn)練集中,即將L1中的用戶加入到DT的訓(xùn)練集T2中,將L22中的用戶加入到LR的訓(xùn)練集T1中;
9.將L1、L22中的用戶從無標記樣本U中刪除;
10.使用LR和DT對自身新的訓(xùn)練集重新擬合訓(xùn)練,得到新的LR和DT分類器;
輸出:U中的用戶及年齡,將其作為標準集。
本文提出的基于用戶年齡的AgeBPR模型是對BPR(Bayesian personalized ranking)模型的改進。BPR模型的應(yīng)用場景也是基于隱式反饋的推薦,結(jié)合本文的應(yīng)用場景,用戶集合X,App集合Y,以及用戶-App的評分矩陣R,定義矩陣S?X×Y,矩陣S表示有過下載行為的用戶-有被用戶下載過的App的評分矩陣。定義Yu+:={i∈Y:(u,i)∈S},Yu+表示被用戶下載過的App集合;定義Xi+:={u∈X:(u,i)∈S},Xi+表示有過下載App行為的用戶集合。對于用戶u來說,若用戶下載過Appi,沒有下載過Appj,那么說明對于用戶u來說,u在Appi和Appj之中更喜歡Appi,并可以表示為i>uj。
BPR算法中定義了集合Ds,即Ds?{(u,i,j)|i∈Yu+∧j∈YYu+},其中 (u,i,j)∈Ds表示用戶u在Appi和Appj中更喜歡Appi。通過此方法可以將用戶-App評分矩陣R轉(zhuǎn)化為用戶的App-App矩陣。構(gòu)建好所有用戶的App-App矩陣后,BPR模型將用戶的App和App的pair對作為訓(xùn)練集,使用貝葉斯公式得到所有APP的用戶個性化排序下參數(shù)θ的后驗概率,通過最大化該后驗概率求解參數(shù)θ,如式(1)所示,參數(shù)θ代表參數(shù)向量,在矩陣分解中則是對應(yīng)用戶特征矩陣和特征物品矩陣。
這里假設(shè)所有用戶是相互獨立的,且對于一個用戶來說,每個App對(i,j)之間也是相對獨立的,因此似然函數(shù)p(>u|θ)可以轉(zhuǎn)化為式(2)的形式。
其中,δ函數(shù)定義如下:若b為真,則δ(b)=1,否則δ(b)=0。對于用戶u來說,在Appi和Appj中用戶更喜歡Appi的概率如式(3)所示:
其中,σ函數(shù)是sigmoid函數(shù),如式(4)所示:
為了使用貝葉斯模型來對物品進行個性化排序,定義p(θ)服從均值為0,協(xié)方差矩陣Σθ為方差的正態(tài)分布即p(θ)~N(0,Σθ),其中Σθ=λθI,λθ是正則化參數(shù)。BPR算法通過最大化參數(shù)θ的最大后驗概率,使用隨機梯度下降優(yōu)化參數(shù)θ直至收斂,BPR算法及參數(shù)求解優(yōu)化過程如算法2所示。
算法2BPR
使用隨機梯度下降求解參數(shù)θ:
本文將BPR的思想用于基礎(chǔ)矩陣分解模型中,并將其作為對比實驗。在矩陣分解模型中,參數(shù)θ是評分矩陣R分解出的k×m維的用戶矩陣特征W和k×n維的物品特征矩陣H,并定義,其中是用戶u對Appi的評分,即,同理,是用戶u對Appj的評分。那么則可以求出,如式(5)所示:
通過分析艾瑞發(fā)布的多項行業(yè)報告、調(diào)查問卷以及預(yù)測出年齡的應(yīng)用商城中用戶的各項行為,發(fā)現(xiàn)同年齡段的用戶對App的偏好具有一定的相似性,不同年齡段的用戶在App的偏好上有一定的不同。在目前應(yīng)用商城App的推薦中很少有考慮年齡這一因素,應(yīng)用商城中用戶年齡未知可能是原因之一,通過用戶年齡預(yù)測模型,預(yù)測出了應(yīng)用商城中所有用戶所處的年齡階段,之后考慮將其融入到傳統(tǒng)推薦模型中,因此本文在BPR模型的基礎(chǔ)上,提出了基于用戶年齡的AgeBPR模型。通過修改原始BPR模型中的Ds集合來將用戶的年齡信息考慮到推薦系統(tǒng)中,具體來說,若用戶u下載了Appa、b,瀏覽后未下載Appc、d,在原始BPR的Ds集合中,Appa、b、c、d有如下關(guān)系:a>uc,a>ud,b>uc,b>ud。而在本文提出的AgeBPR模型中,若用戶u下載了Appa、b,瀏覽后未下載APPc、d,但用戶u同年齡段的用戶下載了Appm、n,那么用戶u對這些App的喜愛程度有如下關(guān)系:a>uc,a>ud,b>uc,b>ud且a>um,a>un,b>um,b>un,m>uc,m>ud,n>uc,n>ud。也就是說對于用戶u來說,用戶u下載過的App的地位仍然高于用戶u瀏覽后未下載的App的地位,但是用戶u同年齡的部分用戶下載過的App的地位高于用戶u未下載過的App的地位,且低于用戶u下載過的那些App的地位?;诖怂枷耄匦聵?gòu)建了Ds集合,并將用戶-App的評分矩陣R轉(zhuǎn)化為用戶自身的App-App矩陣。之后再通過最大化參數(shù)θ的后驗概率,使用隨機梯度下降求出最優(yōu)的參數(shù)θ,就可以得到考慮了用戶年齡后用戶對所有App的評分,將用戶沒有下載過且用戶評分在top-N的App推薦給用戶,即可得到基于用戶年齡的推薦列表L(Ageu)。
除了AgeBPR模型,本文還提出了另外一種基于用戶年齡的推薦模型,即AgeSocialMF模型。AgeSocialMF模型是在文獻[9]中SocialMF模型基礎(chǔ)上的應(yīng)用與改進。文獻[9]將信任傳播機制融入到矩陣分解中的方法,作者認為社交網(wǎng)絡(luò)中的好友會有相似的偏好,用戶u的行為受其直接好友興趣的影響,換句話說就是用戶的特征向量取決于u的所有直接好友的特征向量,即是其直接好友的特征向量的加權(quán)平均。在本文中發(fā)現(xiàn)同年齡段的用戶對App的偏好具有一定的相似性,不同年齡段的用戶在App的喜好上有一定的不同,故提出基于用戶年齡的AgeSocialMF模型。用戶u的行為是受其同年齡段的部分用戶影響的,也就是說用戶u的特征向量取決于用戶u部分同年齡段用戶的特征向量,即是其部分同年齡段用戶特征向量的加權(quán)平均。結(jié)合本文的應(yīng)用場景,已知的數(shù)據(jù)包括用戶集合X,App集合Y,以及用戶-App的評分矩陣R,W表示矩陣分解模型中的用戶特征矩陣,H表示矩陣分解模型中的物品特征矩陣,同時定義矩陣T,表示用戶-用戶信任矩陣,用戶u置信度較高的同年齡段用戶集合為Nu。根據(jù)上述思想,用戶u的特征向量Wu可以表示為式(6)的形式。
將信任矩陣T的每一行進行歸一化處理,即,則用戶u的特征向量Wu可以表示成式(7)的形式。
用戶-App評分矩陣R的條件概率分布如式(8)所示。
其中,N(x|μ,σ2)是均值為μ,方差為σ2的高斯分布,若用戶u下載過Appi,則,否則。g(x)是sigmoid函數(shù),考慮到用戶的年齡因素,用戶特征向量W的條件概率分布如式(9)所示。
該方法的思想是嘗試從概率生成的角度來解釋用戶和物品的特征向量。假設(shè)用戶和物品的隱含特征向量服從高斯先驗分布,通過最大化后驗概率來求解用戶和物品的特征向量,考慮到用戶的年齡因素,用戶特征向量和物品特征向量的后驗概率如式(10)所示。
對式(10)中的后驗概率取其log值可以求其極大似然,最大化極大似然可以轉(zhuǎn)化為最小化損失函數(shù)的形式,故損失函數(shù)表示為式(11)的形式。
算法3TrainingAgeSocialMF
求解出矩陣分解模型中的用戶特征矩陣W以及物品特征矩陣H后,就可以得到考慮了用戶年齡后用戶對所有App的評分,將用戶沒有下載過且用戶評分在top-N的App推薦給用戶即可得到基于用戶年齡的推薦列表L(Ageu)。
本文的工作是基于某手機助手的項目,主要分為兩部分內(nèi)容:一是研究如何根據(jù)用戶的歷史行為數(shù)據(jù)推測用戶當前的年齡段;二是研究如何將用戶年齡信息與傳統(tǒng)推薦方法相結(jié)合以提升推薦的準確度。本文使用的數(shù)據(jù)主要包括兩部分內(nèi)容:一是用戶歷史行為數(shù)據(jù),主要包括用戶瀏覽、下載App的記錄及已安裝的App記錄;二是App本身的信息,主要包括App所屬的類別、App的tag信息等。
實驗中使用了2015年9月1日到2015年11月15日的用戶歷史行為數(shù)據(jù),若用戶在這段時間內(nèi)有瀏覽、搜索、下載行為中的一種記錄,認定其為活躍用戶,分析中也發(fā)現(xiàn)有的用戶會在一天的時間內(nèi)大量重復(fù)下載App,若用戶在一天的時間內(nèi)下載App的數(shù)量大于1 000個,認為該用戶是刷量用戶,這類用戶不在研究范圍內(nèi)。去除掉刷量用戶后,抽取了18萬活躍用戶作為實驗對象,應(yīng)用商城中包含的App數(shù)量為70萬左右,2015年9月1日到11月15日,這些用戶一共下載了7 313 004個App,平均每個用戶下載了39.77個App。
5.1.1 分類準確度
本文將用戶年齡段的預(yù)測問題看作分類問題,并使用分類準確度來衡量分類算法的效果。構(gòu)建分類器時,將80%的數(shù)據(jù)集用于訓(xùn)練模型,20%的數(shù)據(jù)集用于測試模型。測試模型時,當分類器預(yù)測出的年齡段與用戶實際的年齡段一致時,認為其分類正確,測試集中分類正確的樣本數(shù)目與測試集總樣本數(shù)目的比值就是分類準確度,如式(12)所示。
5.1.2 推薦準確度
當預(yù)測出用戶的年齡段后,將用戶的年齡信息應(yīng)用到推薦算法中,使用準確率、召回率和F值來衡量推薦的效果。訓(xùn)練推薦算法模型使用的是2015年9月1日到2015年11月15日的數(shù)據(jù),評估推薦模型效果使用的是2015年11月16日到2015年11月30日的數(shù)據(jù)。因為大部分用戶登錄手機助手的頻率較低,故采用半個月的數(shù)據(jù)進行評估。對于用戶u來說,其推薦準確率如式(13)所示,召回率如式(14)所示,其中L(Ageu)表示u推薦列表中的App,Bu表示u實際下載的App,系統(tǒng)的推薦準確率、召回率分別為所有用戶推薦準確率、召回率的平均值,如式(15)、式(16)所示,系統(tǒng)的F值如式(17)所示。
為了解決數(shù)據(jù)集中沒有顯式年齡信息的問題,首先在線上問卷星和線下均發(fā)放了調(diào)查問卷,想以此獲得初始訓(xùn)練集。線上和線下一共收回有效問卷518份,問卷中包括20歲以下用戶102個,21~30歲用戶236個,31~40歲用戶104個,以及40歲以上用戶76個。
獲得了上述初始訓(xùn)練集后,分別使用邏輯回歸和決策樹對問卷中的用戶構(gòu)建兩個分類器。使用邏輯回歸構(gòu)建分類器時,使用LDA來表示用戶特征,具體來說本文認為應(yīng)用商城中一個用戶下載所有App的Tag為一個文檔,所有App的tag組成word集合,以此來訓(xùn)練LDA模型。訓(xùn)練時選取K=100,即100個主題,根據(jù)經(jīng)驗[11],令α=50/K,β=0.01,通過訓(xùn)練得到了LDA的topic-word矩陣,之后將問卷用戶中每個用戶當前手機中安裝的所有App的tag看作一個新文檔,使用topic-word矩陣來生成每個新文檔的文檔-話題分布。該文檔話題分布就是對應(yīng)問卷用戶的特征,即每個用戶由100維向量表示,每一維表示該用戶對App主題上的概率。使用決策樹構(gòu)建分類器時,使用詞向量來表示用戶特征,令K=60,即每個用戶由60維向量表示。之后使用算法1得到標準集,隨機抽取了應(yīng)用商城中的2萬用戶,這些用戶即是無標記集合U。訓(xùn)練過程中需要不斷比較兩個分類器LR和DT的準確度來調(diào)整分類結(jié)果。每次構(gòu)建分類器時都將訓(xùn)練集中的80%作為訓(xùn)練集,20%作為測試集,來計算分類準確度。在集合U為空之前最后一次模型訓(xùn)練的準確度結(jié)果如表1所示。從表中可以看出LR模型的準確度為0.914 8,DT模型的準確度為0.951 8,因最后一次訓(xùn)練時DT的準確度高于LR的準確度,故采用DT模型預(yù)測出的年齡作為集合U中用戶的最終年齡,將集合U中的用戶及其預(yù)測出的年齡作為標準集。
Table 1 Accuracy of multi-view learning algorithm表1 多視圖學(xué)習(xí)算法的準確度
標準集中的用戶是應(yīng)用商城中的用戶,這些用戶除了有已安裝App的信息,還有較多的用戶行為信息,嘗試使用不同的特征組合來描述用戶的特征,并選擇邏輯回歸(LR)和決策樹(DT)分別構(gòu)建新分類器來預(yù)測應(yīng)用商城中其余所有用戶的年齡。評估時將標準集中80%的數(shù)據(jù)用于訓(xùn)練,20%的數(shù)據(jù)用于測試,不同特征組合的分類準確度如表2所示,可以看出4個組合特征構(gòu)建的LR分類器準確度最高,采用該LR分類器預(yù)測應(yīng)用商城中其余所有用戶所屬的年齡階段,并將預(yù)測出的年齡階段用于基于用戶年齡的推薦模型中進行實驗。
Table 2 Classification accuracy表2 分類準確度
因數(shù)據(jù)中并沒有用戶對App的評分,因此對于評分矩陣R,定義當用戶在2015年9月1日到2015年11月15日內(nèi)對App有過下載行為,則用戶對該App的評分為1。若用戶在這段時間內(nèi)對App有過瀏覽行為,但是瀏覽App后沒有下載該App,則用戶對此App的評分為0,評分矩陣R中的其余位置則是缺省值。選擇矩陣分解(MF)和BPR模型作為基準模型,實驗時令正則化參數(shù)λ=0.01。矩陣分解的特征維度f嘗試了兩個比較常用的值,即f=5,f=10。根據(jù)預(yù)測出的用戶對App的評分進行top-N推薦,嘗試了top-10推薦和top-5推薦兩種情況。本文提出的基于用戶年齡的AgeBPR模型是在BPR模型的基礎(chǔ)上進行的改進,實驗時并不是取用戶x1同年齡的所有用戶來修改Ds集合,而是取與用戶x1同年齡段的用戶中各方面特征最接近的top-K個用戶。具體來說,在使用邏輯回歸預(yù)測出用戶x1所屬的年齡段是k的同時,可以獲得用戶屬于年齡段k的概率pkx1,那么在年齡段為k的用戶中,可以計算出用戶x1與其他用戶之間的距離。同年齡段用戶x1與x2的距離如式(18)所示。嘗試了3種K值,分別為K=30,K=50,K=100。
本文提出的基于用戶年齡的AgeSocialMF模型是在SocialMF模型的基礎(chǔ)上進行的改進。在構(gòu)建用戶x1置信度較高的同年齡段用戶集合為Nu時,也是使用式(15)中的方法取top-K個置信度較高的同年齡段用戶,同時定義信任矩陣T,對于用戶x1來說,x1與Nu集合中的用戶存在信任關(guān)系,信任權(quán)重統(tǒng)一設(shè)置為1,同樣嘗試了3種K值。不同算法的top-10推薦準確度和top-5推薦準確度分別如表3和表4所示。可以看出將用戶年齡信息融入到推薦算法中可以有效提升推薦的準確度。
本文研究如何根據(jù)用戶在App應(yīng)用商城中的各項歷史行為數(shù)據(jù)推測出用戶所處的年齡階段,并將用戶年齡信息融入到應(yīng)用商城App的推薦中,以提升推薦的準確度。本文提出了基于用戶年齡的AgeBPR及AgeSocialMF推薦模型,來預(yù)測應(yīng)用商城中用戶所屬的年齡段。在真實數(shù)據(jù)集上的實驗結(jié)果表明,AgeBPR模型和AgeSocialMF模型的推薦準確度較基準模型均有一定幅度的提升,說明將用戶年齡信息考慮到推薦算法中的確可以有效提升推薦的準確度。未來可以進一步挖掘用戶行為特征與用戶年齡的關(guān)系,對用戶的年齡段進行更加細致的推測,以達到更好的推薦效果。
Table 3 Recommendation accuracy of top-10表3 top-10推薦準確度
Table 4 Recommendation accuracy of top-5表4 top-5推薦準確度