翟航天,汪學(xué)明
(貴州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550025)
隨著大數(shù)據(jù)產(chǎn)業(yè)的蓬勃發(fā)展,關(guān)于大數(shù)據(jù)的應(yīng)用越來越貼近人們的日常生活。在完成互聯(lián)網(wǎng)大數(shù)據(jù)累積的同時,也產(chǎn)生了相應(yīng)的問題,即用戶面對眾多的資源信息時,在短時間內(nèi)很難對自己真正的需求做出抉擇,從而降低了選取信息的效率。為了解決這一難題,適用于每一個用戶的個性化推薦系統(tǒng)應(yīng)運而生,并且成為近年來一項非常流行的工具以滿足互聯(lián)網(wǎng)用戶的個性化需求。推薦系統(tǒng)是一項為用戶推薦潛在可能接受的資源的軟件工具和技術(shù)[1-2]。這種推薦和用戶多種多樣的決策過程密不可分,例如用戶要購買何種商品、平時喜歡什么樣的資源、對哪些信息瀏覽或搜索過。通常,推薦系統(tǒng)面向的用戶群體是那些對網(wǎng)絡(luò)上提供的海量商品難以做出抉擇的用戶。推薦系統(tǒng)之所以應(yīng)用廣泛,是因為它可以刺激商品銷量的急速增長,拓展資源的種類,增加用戶的忠實度,更好地理解用戶需求。
一個優(yōu)質(zhì)的推薦系統(tǒng)不但可以為用戶提供個性化推薦,還可以和用戶建立密切聯(lián)系以增加用戶對推薦的依賴感。而在一個推薦系統(tǒng)中,推薦算法[3-5]則是決定其好壞的關(guān)鍵因素,被稱之為推薦系統(tǒng)的靈魂與核心。因此如何設(shè)計高效的推薦算法已經(jīng)成為目前的研究熱點。
在眾多的個性化推薦算法中,協(xié)同過濾推薦的應(yīng)用面最廣,協(xié)同過濾推薦算法主要通過用戶歷史行為進(jìn)行分析,使用聚類算法找到用戶或資源相似的程度值,通過用戶歷史行為相似性或資源相似度進(jìn)行推薦。在現(xiàn)今的眾多協(xié)同過濾算法中,一般僅使用用戶評分等顯式反饋信息作為數(shù)據(jù)進(jìn)行分析,對于用戶的操作行為這類隱式反饋信息造成了浪費。隱式反饋相較于顯式反饋的信息量呈現(xiàn)出數(shù)量級倍數(shù)的增長,但是其中有效數(shù)據(jù)并不能明顯體現(xiàn)出來,因而需要通過相應(yīng)的算法處理得到有效信息。盧慧瓊[4]提出一種基于隱式反饋數(shù)據(jù)的在線旅游推薦算法,將用戶在選取旅游景點時的操作行為與CLIQUE聚類算法相結(jié)合,計算出景點之間的相似性結(jié)果。劉曉[5]使用密度算法計算區(qū)域用戶中點的密度大小,將用戶加到與之相近的聚類中去。資源標(biāo)簽作為資源分類和索引的重要信息,其可見性既能體現(xiàn)資源特征,又能反映用戶偏好。王衛(wèi)平[6]提出一種基于標(biāo)簽的協(xié)同過濾推薦算法,能夠較好地削弱數(shù)據(jù)稀疏性。蔡強(qiáng)[7]使用二維向量來表示用戶的興趣,通過標(biāo)簽的TF-IDF權(quán)重向量來計算用戶間的相似度。
在上述算法基礎(chǔ)上,文中提出一種將隱式反饋數(shù)據(jù)與資源標(biāo)簽相結(jié)合的協(xié)同過濾推薦算法。該算法使用現(xiàn)有資源建立Latent Dirichlet Allocation (LDA)模型,分析每個資源的標(biāo)簽主題,將資源主題加權(quán)計算出資源相似度矩陣。將用戶對各個資源的操作行為賦予標(biāo)簽主題,通過隱式反饋的數(shù)據(jù)累積計算出用戶對資源的偏好概率,以此與資源相似性矩陣相結(jié)合,利用協(xié)同過濾形成推薦結(jié)果。
用戶對于資源使用特定的規(guī)則進(jìn)行評分,推薦系統(tǒng)通過此類評分體系獲取的數(shù)據(jù)稱為顯式反饋。顯式反饋有體現(xiàn)用戶偏好準(zhǔn)確、噪聲小、便于理解等優(yōu)點。同時,顯式反饋的缺點也是不容忽視的,顯式反饋需要用戶通過操作進(jìn)行評分,并不是所有的用戶都會進(jìn)行此類操作,這就造成了用戶評分矩陣存在很大稀疏性,相當(dāng)一部分用戶由于沒有評分?jǐn)?shù)據(jù),推薦系統(tǒng)對其進(jìn)行了錯誤的推薦。另一方面,由于用戶評分能夠充分反映用戶的偏好,這就存在用戶隱私保護(hù)方面的隱患。
隱式反饋是一種通過分析用戶操作行為獲取用戶偏好數(shù)據(jù)的反饋方法。系統(tǒng)可以通過收集用戶對于資源的搜索、瀏覽,頁面停留時長,鼠標(biāo)動態(tài)等方式,獲取數(shù)據(jù)并從中挖掘出用戶對于資源的偏好值。相較于顯式反饋,隱式反饋的方式對于每一個用戶都進(jìn)行了操作數(shù)據(jù)收集,數(shù)據(jù)量是顯式反饋的數(shù)量級倍數(shù),不存在用戶偏好矩陣出現(xiàn)矩陣稀疏的現(xiàn)象。隱式反饋數(shù)據(jù)不能明顯地體現(xiàn)出用戶偏好,噪聲大容易誤導(dǎo)推薦系統(tǒng),但是這種方式能更好地保護(hù)用戶隱私,噪聲大的缺點可以通過算法模型的改進(jìn)加以解決。文中使用的隱式反饋模型如下:
(1)
偏好Pij:多元變量,表示用戶U對資源V的偏好。
Cij=1+αrij
(2)
信度Cij:變量,衡量了推薦系統(tǒng)對觀測值的信任度。
最小化損失函數(shù):
(3)
其中,rij在隱式反饋數(shù)據(jù)集中表示用戶行為的觀測,如用戶U瀏覽信息i的次數(shù)、用戶U收聽音樂i的頻率等等。
LDA模型簡單有效,應(yīng)用于主題模型研究。LDA模型的基本思想:主題和詞匯之間的分布符合多項式分布,資源和主題之間的分布也符合多項式分布[8-9]。
在LDA模型中,有V個相互獨立的詞匯,K個相互獨立的主題,M個資源。根據(jù)模型的基本思想,有w~Multi(w|φk),z~Multi(z|θm),φk表示第K個主題的多項式分布參數(shù),長度為V,θm表示第M個資源的多項式分布參數(shù),長度為K。且φk和θm的先驗分布都是Dirichlet分布,φ~Dirichlet(α),θ~Dirichlet (β)。
那么一個資源的主題和詞匯分布就可以描述為:
P(zm.n|θm)P(θm|α)P(φ|β)
(4)
根據(jù)式4,將隱含變量消除,通過極大似然估計方法求出資源的主題-詞匯邊緣概率。
(5)
在算法的實際應(yīng)用中,通常有一些資源分布,通過算法自動提取主題,或者通過現(xiàn)有的資源訓(xùn)練出LDA模型,然后預(yù)測新的資源所屬主題分類,也就是求出φ和θ的后驗概率分布。雖然LDA的模型很簡單,但是要精確求出參數(shù)的后驗概率分布卻是不可行的,只能通過近似的方式求解?,F(xiàn)如今已經(jīng)發(fā)現(xiàn)了很多近似求解方法,其中比較簡單的就是Gibbs Sampling采樣。對于式4中很復(fù)雜的高維概率分布P(zm,wm,θm,φ|α,β),參數(shù)θm和φ本身關(guān)聯(lián)zm和wm,所以通過Gibbs Sampling多次重復(fù),采樣結(jié)果收斂后由貝葉斯法則可以得到主題分布概率,最后結(jié)合Dirichlet共軛結(jié)構(gòu)推導(dǎo)得到參數(shù)模型結(jié)果:
(6)
(7)
由此,通過將后驗分布參數(shù)代入,通過大量的資源就可以訓(xùn)練LDA模型。
圖1 推薦算法框架
文中將用戶隱式反饋數(shù)據(jù)和資源建立LDA模型相結(jié)合,提出一種基于隱式反饋和LDA模型的協(xié)同過濾推薦算法。如圖1所示,算法分為兩部分,一部分通過LDA模型和Gibbs Sampling采樣,資源可以通過建立LDA模型,挖掘資源中的若干主題標(biāo)簽,通過這些標(biāo)簽統(tǒng)計出資源-標(biāo)簽矩陣,計算該矩陣中資源相互之間的標(biāo)簽關(guān)系,從而得到資源相似度矩陣。另一部分將用戶的隱式反饋數(shù)據(jù)進(jìn)行統(tǒng)計,并在數(shù)據(jù)中加入資源-標(biāo)簽矩陣的標(biāo)簽,計算出用戶對各項資源的偏好概率矩陣。將資源相似度矩陣與用戶偏好矩陣相結(jié)合計算出相似資源中用戶偏好的資源Top-N個性化推薦結(jié)果。
首先將所有資源進(jìn)行LDA建模,根據(jù)模型分析出的標(biāo)簽建立資源-標(biāo)簽矩陣。在所有資源中有主題數(shù)K,對所有資源中所有的詞匯隨機(jī)賦予主題編號ki。重新掃描所有資源,通過Gibbs Sampling重新對每一個資源中的詞匯進(jìn)行采樣,并在資源中更新。重復(fù)此采樣過程直到Gibbs Sampling收斂,從而獲得式6和式7中的超級參數(shù)α、β。將超級參數(shù)帶入式5獲得主題分布,從而LDA模型建立完成,當(dāng)有新資源加入時,不需要將上述模型建立過程重新運行,因為新資源中的主題也存在于上述過程規(guī)定的主題,已求得的參數(shù)φk,t意味著已經(jīng)確定了所有資源主題的分布概率。
(8)
如式8所示,新加入的資源很難撼動原來由大量資源訓(xùn)練出來的LDA模型,因此新加入的資源直接使用該模型即可。統(tǒng)計資源主題出現(xiàn)的頻率,獲得的矩陣就是資源-標(biāo)簽矩陣Pm*k。
基于資源-標(biāo)簽矩陣計算資源相似度,文中采用John S.Breese在論文中提出的一個稱為IUF的計算公式,將統(tǒng)計到的標(biāo)簽個數(shù)作為參數(shù)來修正兩種資源的相似性,他認(rèn)為兩種資源相同標(biāo)簽的共現(xiàn)頻率對資源相似度的影響權(quán)重應(yīng)大于Pearson相關(guān)系數(shù)的影響權(quán)重[10],計算公式如下:
(9)
其中,wi,j表示資源i和資源j之間的相似度;N(i)表示資源i中出現(xiàn)的所有標(biāo)簽的集合;|N(i)∩N(j)|表示資源i和資源j中出現(xiàn)相同標(biāo)簽的頻率。
通過式10可以計算出資源相似度矩陣Wn*n。
(10)
通過第1節(jié)介紹的隱式反饋數(shù)據(jù)處理模型,對隱式反饋數(shù)據(jù)進(jìn)行處理。用戶ui對于每一項資源的各項操作,例如用戶對該資源的搜索次數(shù)、點擊次數(shù)、頁面停留時長等,通過式1、式2、式3進(jìn)行行為分值計算,獲得的結(jié)果就是用戶偏好值hi。計算出的矩陣Hm*i就是用戶對于資源的偏好值矩陣。
計算用戶偏好矩陣Hm*i后,將主題標(biāo)簽分布矩陣Pm*k與其進(jìn)行計算處理,這樣可以充分明確用戶對于各資源與各主題標(biāo)簽的偏好,從而提高推薦結(jié)果的準(zhǔn)確性。
文中提出的基于隱式反饋和LDA模型的協(xié)同過濾推薦算法描述如下:
輸入:資源記錄、主題集、隱式反饋數(shù)據(jù);
輸出:Top-N推薦結(jié)果。
步驟1:輸入資源記錄和主題集,對所有資源進(jìn)行Gibbs Sampling直至收斂;
步驟2:將收斂的采樣結(jié)果進(jìn)行LDA建模,計算出資源-標(biāo)簽矩陣Pm*k;
步驟3:根據(jù)資源-標(biāo)簽矩陣Pm*k中的主題標(biāo)簽共現(xiàn)頻率,根據(jù)相似度公式計算出資源相似度矩陣Wn*n;
步驟4:通過分析隱式反饋數(shù)據(jù),由數(shù)據(jù)模型計算出用戶偏好矩陣Hm*i;
步驟5:將矩陣Wn*n和矩陣Hm*i進(jìn)行協(xié)同過濾計算獲得Top-N推薦結(jié)果。
實驗數(shù)據(jù)集使用Retailrocket電子商務(wù)網(wǎng)站數(shù)據(jù)集,該數(shù)據(jù)集包括三個文件:一個數(shù)據(jù)文件(events.csv),一個屬性文件(item_properties .csv)和一個描述分類樹的文件(category_tree .csv)。這些數(shù)據(jù)是從真實的電子商務(wù)網(wǎng)站收集的。這是原始數(shù)據(jù)沒有任何改變,由于保密問題所有的值都是離散排列的[11-14]。為減少計算量,在該數(shù)據(jù)集中僅選取操作活躍的用戶數(shù)據(jù)作為實驗數(shù)據(jù),并按照3:1的比例劃分訓(xùn)練集和測試集。通過Maven構(gòu)建Mahout協(xié)同過濾項目實現(xiàn)隱式反饋數(shù)據(jù)處理模型和LDA模型代碼,將所有資源的主題數(shù)設(shè)置為25,Gibbs Sampling重復(fù)次數(shù)設(shè)置為500。
準(zhǔn)確率是推薦算法中最重要的測評數(shù)據(jù),用來衡量算法推薦結(jié)果的準(zhǔn)確性,表示推薦給用戶的資源中有多少比例是用戶所接受的物品。計算方法為算法推薦資源集合與用戶接受資源集合的交集與推薦資源集合的比值。準(zhǔn)確率計算公式如下:
(11)
其中,R(u)是推薦給用戶u的資源集合;T(u)是用戶實際操作的資源集合。
召回率是推薦算法中另一個重要測評數(shù)據(jù),與準(zhǔn)確率一起被合稱為精確率,表示用戶所接受的資源中有多少比例是算法推薦給用戶的資源。計算方法為算法推薦資源集合與用戶接受資源集合的交集與用戶實際操作的資源集合的比值。召回率計算公式如下:
(12)
為了驗證提出的協(xié)同過濾算法是否準(zhǔn)確性更高,設(shè)計了3組實驗進(jìn)行對比分析。第一組實驗采用基于LDA模型的協(xié)同過濾算法[15],該算法是通過建立LDA模型計算用戶對于資源的偏好值,將偏好值進(jìn)行排名,推薦排名前N個結(jié)果;第二組實驗使用基于隱式反饋的協(xié)同過濾推薦算法[16],通過處理隱式反饋數(shù)據(jù)得出用戶偏好概率,并將概率較大的資源推薦給用戶;第三組實驗是文中提出的基于隱式反饋和LDA模型的協(xié)同過濾推薦算法。每次實驗選擇相同的測試集和訓(xùn)練集,以推薦資源數(shù)N為變量,分別對三種算法的準(zhǔn)確率和召回率進(jìn)行對比。
在實驗中,超級參數(shù)α、β值的選取對于LDA模型建立會產(chǎn)生巨大影響,由此首先進(jìn)行α、β的值對于準(zhǔn)確度的影響實驗。由圖2可以看出,一開始準(zhǔn)確度隨著α的增大而增大,當(dāng)α的值到達(dá)0.11時準(zhǔn)確率達(dá)到最高,推薦效果達(dá)到最佳,之后隨著α的增大準(zhǔn)確度開始下滑。
圖2 準(zhǔn)確度隨α值的變化曲線
由圖3可以看出,一開始準(zhǔn)確度在β的值取0.01時達(dá)到最高,之后隨著β的增大準(zhǔn)確度逐漸下降。由此可知,當(dāng)α=0.11,β=0.01時文中提出的算法效果會達(dá)到最佳。
圖3 準(zhǔn)確度隨β值的變化曲線
在選取參數(shù)值后,開始對三種算法進(jìn)行對比實驗。根據(jù)圖4所示,隨著推薦資源Top-N中N個數(shù)的增長,三種算法的準(zhǔn)確率整體呈現(xiàn)出先升高后降低的趨勢,當(dāng)N取15時,推薦算法準(zhǔn)確率達(dá)到峰值。
圖4 三種算法的準(zhǔn)確率對比結(jié)果
根據(jù)圖5所示,隨著N個數(shù)的增長,三種算法的召回率整體呈現(xiàn)出穩(wěn)定增長的趨勢。
圖5 三種算法的召回率對比結(jié)果
由實驗結(jié)果可見,基于隱式反饋和LDA模型的協(xié)同過濾推薦算法,在準(zhǔn)確率和召回率兩項指標(biāo)上的推薦質(zhì)量高于基于LDA模型的協(xié)同過濾算法和基于隱式反饋的協(xié)同過濾推薦算法。
從實際角度出發(fā),提出了一種隱式反饋與資源標(biāo)簽相結(jié)合的協(xié)同過濾推薦算法。對資源進(jìn)行Gibbs采樣,通過建立LDA模型計算出資源-標(biāo)簽矩陣。充分利用資源標(biāo)簽矩陣,首先在隱式反饋數(shù)據(jù)中賦予主題標(biāo)簽以此計算出用戶標(biāo)簽偏好,之后依據(jù)資源-標(biāo)簽矩陣計算資源相似度矩陣,將兩矩陣結(jié)合協(xié)同過濾推薦算法,預(yù)測用戶個性化偏好。在Retailrocket網(wǎng)站行為數(shù)據(jù)集上的實驗結(jié)果表明,相較于傳統(tǒng)基于隱式反饋和基于標(biāo)簽的協(xié)同過濾推薦算法,該算法能有效地提高推薦質(zhì)量。下一步將進(jìn)一步改進(jìn)隱式反饋數(shù)據(jù)處理模型,增加偏好精準(zhǔn)度,提高推薦準(zhǔn)確率。