史明哲,吳國棟,2,張 倩,疏 晴
1(安徽農業大學 信息與計算機學院,合肥 230036) 2(東華大學 旭日工商管理學院,上海 200051)
互聯網數據的研究發現,物品往往呈長尾分布[1].少部分物品吸引了大部分關注,網絡技術的發展使關注的成本大大降低,數量巨大的長尾物品不僅滿足了人們的多樣化需求,而且冷門物品的購買總量已經能與暢銷物品的銷售量相當.現有推薦系統的研究中,傾向于熱門物品的推薦,很少考慮挖掘那些真正的冷門物品.如協同過濾推薦通過用戶相似度或物品相似度尋找近鄰進行推薦[2];基于內容的推薦通過提取物品的特征進行推薦[3];基于知識的推薦通過領域知識表示成知識庫進行推薦[4];混合推薦方法依賴各種算法的組合進行推薦等[5].由于很多長尾物品只有很少的評分,在傳統的推薦系統中這些算法很難得到應用,造成長尾分布問題并未得到緩解.當前,盡管針對長尾物品的推薦有所研究,如基于約束關系的長尾推薦方法[6],利用各種約束關系進行推薦;基于聚類的長尾物品推薦方法[7,8],將整個物品構成的集合分為頭部和尾部兩個部分,并只對尾部物品進行聚類,根據聚類中的評分對尾部物品進行推薦.但這些研究,一方面由于評分數據的稀疏性問題,會嚴重造成推薦精度的下降;另一方面僅僅根據用戶的歷史偏好進行推薦,很難對用戶的未來興趣趨勢進行預測和引導,而對用戶未來興趣進行預測又至關重要.
目前,推薦系統的預測算法,常用的如基于評分的預測、基于領域的方法、隱語義模型與矩陣分解模型、加入時間信息、模型融合及基于受限玻爾茲曼機的方法等.其中受限玻爾茲曼機是由可視層和隱藏層相互連接的一個完全二分圖結構,每一個神經元是一個二值單元,也就是每一個神經元只能等于0或1[9].2007年Salakhutdinov等人首次將RBM模型應用于解決推薦問題,但是該模型的缺陷是:需要將實值的評分數據轉化為一個K維的0-1向量,如果訓練數據是浮點型的就無法轉化[10].2013年Georgiev等人提出了可以直接處理實值數據的RBM模型并且改進了模型的訓練過程,使RBM的可見單元可以直接表示實值,模型的訓練和預測過程得到了簡化[11].針對當前長尾推薦在用戶偏好主題挖掘、熱門物品與冷門物品之間關聯度不強等方面的不足,本文提出一種基于多主題的改進受限玻爾茲曼機長尾分布推薦方法,通過挖掘商品信息的主題特征及用戶偏好主題,構建用戶和物品之間的聯系,結合改進受限玻爾茲曼機對用戶未知偏好主題進行預測,以提高長尾物品的推薦性能.
長尾理論最先由美國《連線》雜志主編克里斯·安德森于2004年10月提出,其思想是:如果存儲和流通的渠道能足夠大,需求或銷量不佳的產品共同占據市場份額就可以同那些數量不多的熱賣品所占據的市場份額相抗衡甚至更具有優勢,這就是長尾理論[12].圖1、圖2分別展示了在MovieLens-1M數據集和Netflix數據集數據的長尾分布,表明了長尾分布的普遍存在性.

圖1 MovieLens數據集下的長尾分布Fig.1 Long tailed distribution under movieLens

圖2 Netflix數據集下的長尾分布Fig.2 Long tailed distribution under Netflix
基于多主題受限玻爾茲曼機的長尾分布推薦的基本思路:根據長尾分布的特點,把物品分為頭部(即熱門物品集)和尾部(即冷門物品集)兩個物品集;利用主題模型分別對其提取主題,構建兩集合之間的關系;將長尾分布頭部提取的主題視為用戶已知的偏好領域,通過近鄰用戶,并結合改進受限玻爾茲曼機對用戶未知偏好領域進行預測,發現用戶的未來偏好趨勢,進而對尾部商品推薦,具體研究流程如圖3所示.

圖3 長尾物品推薦流程Fig.3 Long tail items recommended process
在圖3所示流程中,利用分詞工具,分別對頭部物品內容信息及尾部物品內容信息進行分詞.針對某一用戶歷史行為信息(用戶有過行為的物品信息),利用主題模型提取出用戶A初始偏好主題,結合用戶A的近鄰用戶發現其未知偏好主題,通過改進受限玻爾茲曼機,對用戶A的未知偏好主題進行預測,得到用戶A的最終偏好主題.同時根據物品信息利用主題模型提取物品主題,根據用戶A的最終偏好主題詞和待推薦的每個物品的主題詞進行相似度計算,并對相似度進行排名,推薦相似度較高的N個物品,最后對推薦結果做出解釋,來增加用戶對推薦結果的信任度.
在推薦過程中,熱門物品和冷門物品的主要區別是被關注的程度不同,如果能找到它們的共性(主題),就可以對長尾物品進行有效的推薦.將用戶的偏好抽象為不同的主題,每個主題包含具有相似主題的熱門物品和冷門物品,而每個物品因其主題特征的多樣性,也可屬于不同的主題.
經過分析,長尾分布的頭部物品集和尾部物品集可以通過主題這一隱含變量,彌補尾部物品用戶行為數據較為稀疏和很難得到推薦的問題.本文基于LDA主題模型提取主題,其中LDA模型是一個三層概率模型,它由文檔、主題和詞組成[13].為提取主題[14],兩個重要的參數需要估計:主題-詞語分布φk和文檔-主題分布θm,參數估計采用以下步驟:
Step1.首先要對物品內容信息進行分詞,去除停用詞造成的影響以生成文檔.
Step2.為文檔中的所有商品信息單詞采樣初始主題:
zm,n=k~Info(K)
(1)
Step3.每當新觀察到一個詞語ωi=t,利用公式(2)計算當前的主題.
(2)

Step4.重復執行Step 2的抽樣過程,直至所有的主題分布達到收斂,此時,每個單詞的主題標號確定以后,兩個參數的計算公式如下:
(3)
(4)

在對海量商品信息數據的主題提取時,根據提取的用戶偏好主題詞,利用加權平均的方法得到加權平均權重,其中加權平均權重較大的主題詞,從一定程度上反應了用戶的歷史偏好特征,但是加權平均權重較小的主題詞不能簡單地認為用戶對這一主題不感興趣,因為隨著時間的推移,用戶的興趣會發生改變,這就需要去挖掘用戶潛在興趣即對主題詞加權平均權重較小或沒有涉及到的主題進行預測.在推薦時不但可以根據歷史主題偏好發現長尾商品,而且可以通過預測用戶未知偏好主題,提高用戶的驚喜度及長尾商品的挖掘能力.
針對文獻[10,11]方面的不足,本文中每一個RBM對應一個用戶,每個可視層單元對應一個主題詞,相應主題詞的權重通過計算各個主題中的主題詞的加權平均,把加權平均值作為相應主題詞的權重(把加權平均值最大的幾個作為用戶的偏好主題,而改進受限玻爾茲曼機的輸入為所有相應主題詞加權平均值).由圖4可知,RBM由主題的可視單元、隱層單元及可視單元和隱層單元之間的RBM權重組成,其中RBM權重具有一定的隨機性,不同的RBM經過訓練達到收斂時會有不同的RBM權重值,為保證RBM能協同對每個主題權重預測,則要求不同RBM的每個相同主題對應的權重要有相同的權重和偏置.但是,在并行計算RBM時,造成同一主題有不同的RBM權重值,無法保證對于同一主題有相同的RBM權重值,缺乏可解釋性.如果按線性方法計算每一個RBM,能達到相應主題RBM權重相同.根據圖4的模型,可視層代表用戶的偏好傾向,RBM權重代表每個主題所固有的潛藏特征.然而我們并不能清楚的了解到哪個用戶RBM的訓練權重能較好地描述主題所固有的潛藏特征.因此必須要找到一個代表用戶,但是在推薦系統中,單個用戶很難代表所有用戶,因此本文通過以下方法就RMB這一問題做以下改進:
Step1.模型結構:對于每一個用戶RBM模型,都是相互獨立的,且不共享同一隱層,但是,隱層單元個數相同.
Step2.訓練方法:獨立訓練每一個用戶RBM模型.
Step3.數學表達:具體說明如下定義.
定義1.主題的向量表示:D=(T1,T2,…,Ti,…,Tn-1,Tn),其中Ti表示第i個主題;Ti=(t1,w1;t2,w2;…;ti,wi;…;tn-1,wn-1;tn,wn),其中ti表示主題詞,wi表示主題詞權重.
定義2.主題詞權值表示:W={I1,I2,I3,…,Ii,…,In},其中Ii表示相應主題中第i個位置處主題詞相應的權值.
用戶偏好主題中某一主題詞t的加權平均權重計算如公式(5)為:
(5)


根據定義3可知,改進RBM訓練結束后,經過預測模型得到的用戶偏好未知主題的權重值是加權平均權重.但在實際中,我們需要的是沒有經過加權的主題詞權重,因此需要去權值,去權值的關鍵是如何確定預測得到未知主題詞在相應用戶偏好主題中的個數及位置,確定好這些就可以通過公式(5)得到去權值的主題詞權重.對于未知主題的個數確定,通過比較用戶近鄰用戶中相應主題的主題詞與其他主題的主題詞的眾數,如果在某主題中相應主題詞在近鄰用戶相應主題的眾數小于一定閾值,則該預測主題詞就不被分配到該主題中.由于對于所有近鄰用戶相應主題的主題詞個數都相同,取這些近鄰用戶中相應主題中主題詞的平均位置作為該主題詞在相應主題中的位置.針對改進RBM主題預測模型的預測過程如圖4所示,把用戶A近鄰用戶中具有相同主題A,其相應的主題詞的RBM權重取平均,以獲得該主題詞的潛藏特征(平均RBM權重),根據用戶A的原有隱層和平均RBM權重,預測主題A的相應主題的加權平均權重.針對圖4所示,改進的實值受限玻爾茲曼機主題預測模型中標注的主題,只有主題詞的加權平均權重較大的N個被視為用戶的偏好主題,其他主題詞的加權平均權重也稱為主題,但不是用戶偏好主題,只是為保證在挖掘用戶的潛在特征時信息不至于丟失,即參與模型的訓練和預測,輔助完成用戶偏好主題的挖掘過程.

圖4 改進的實值受限玻爾茲曼機主題預測模型Fig.4 Topic prediction model based on improved real RBM
根據上述模型,由于RBM模型是一個基于能量的模型[9,15](Energy Based Model,EBM),對于一組給定的狀態(v,h),可定義如下能量函數
(6)
(7)
其中,vi,hj分別表示第i個可見單元與第j個隱單元的狀態,wij則為第i個可見單元與第j個隱單元的鏈接權重,T表示主題的個數,F表示隱藏層的個數.
由式(6)(7),給定隱單元狀態,可見單元的激活概率為:
(8)
其中,由于初值的影響需要加ζ為調節參數,給定可見單元狀態,隱單元的激活概率為,
(9)

(10)
其中,I表示具有近鄰用戶相應同一主題的個數.
當訓練結束,給定某個用戶的已知偏好主題V,該用戶對于未知主題q的預測的概率可直接計算,

(11)
主題相似度計算是一個復雜的過程,文本處理中最常用的相似性度量方式如余弦相似度、向量空間模型等[16].
根據定義1用戶某個偏好主題和物品某個主題相似度,通過向量的夾角余弦得出:
(12)
其中,Ti表示用戶偏好主題的第i個主題詞權重;Ii表示物品主題的第i個主題詞權重,同時要求用戶偏好主題詞和物品主題詞相同;n表示用戶某一偏好主題和物品某一偏好主題中具有相同主題詞的個數.
用戶某個偏好主題Ti和相應物品所有主題相似度計算:
(13)

用戶u對某一物品m的偏好度為:
(14)
其中,sim′(Ti)表示用戶某個偏好主題Ti和相應所有物品主題相似度數值較高的N個相似度;N′表示取sim′(Ti)值的數量.
根據公式(12)(13)(14)用戶偏好主題和物品主題相似度計算及推薦偽代碼如下所示:
def getSim(persons,items):#用戶偏好主題和物品主題相似度計算
P1=[]#存放用戶某偏好主題和相應所有物品主題相似度列表
for P in persons:#取出用戶偏好主題列表中某個主題
S=0
n=0
for T in items:#取出物品主題列表中某個主題
sim=sim(P,T)#用戶和物品某個主題相似度
S+=sim#求和
n++
sim1=S/n#用戶某個偏好主題物品的相似度
P1.append(sim1)
P1.sort()
P1.reverse()
sum=0
for t in P1[0:n]#取前n個數值
sum+=t
P′=sum/len(P1[0:n])
return P′
def getRecommendations(persons,items,I):#推薦
M={}
P=[]#用戶偏好列表
for i in I:
M[i]=getSim(persons,items)
for j in M
P.append((M[j],j))
P.sort()
P.reverse()
return P
為了驗證算法的可行性及其性能,首先,就本試驗用到的數據集和執行方法進行闡述;其次,給出試驗的評價指標并對結果進行分析.
為了驗證算法的性能,在Intel(R)Core(TM)i5-4460 CPU@3.20GHZ處理器、8GB內存的臺式機上進行試驗,使用Python程序設計語言對數據集進行處理.數據源使用一個涉及電影評價的真實數據集——MovieLens,MovieLens是由明尼蘇達州立大學的GroupLens項目組開發的.可以從http://grouplens.org/datasets/movielens/處下載到數據集,本論文采用的是ml-1m.zip數據集.
對于長尾物品,由于缺乏用戶評價數據,導致長尾物品很難被用戶發現,因此需要找到所有物品的共性,提取用戶偏好主題就顯得十分重要.利用LDA主題模型提取主題時,取主題數K=3,每類主題取經過排序后的前5個主題詞,如表1所示為MovieLens數據集中某用戶所喜歡的53部電影風格及通過主題模型提取得到的權重值.
表1 用戶偏好主題詞及權重值(概率)
Table 1 Subject and weighting (probability)of user preference

第0類第1類第2類電影風格權重值電影風格權重值電影風格權重值Comedy0.3612Adventure0.3235Comedy0.3383Drama0.2119Action0.2988Adventure0.2262Sci?Fi0.1224Thriller0.1259Action0.2075Animation0.0925Horror0.0765Western0.1140Children′s0.0925Romance0.0765Romance0.0393
在得到用戶偏好主題類別后,需要選取3個主題詞作為主題,為改進的受限玻爾茲曼機的主題預測做準備.具體計算采用加權平均的方法,其中每類(主題)中有5個排好序的主題詞,從大到小給權值依次賦值為5、4、3、2、1.以“Comedy”為例,加權平均值為:(0.3612*5+0.3383*5)/2=1.74875,其他依次類推.在每類中選擇加權平均值最大且與其他類別不重復的主題詞作為該類別的主題,經過計算,三個類別相應的主題依次為“Comedy”“Adventure”“Action”.根據用戶信息可知,該用戶是一位小于18歲的女學生,提取的主題基本符合我們的認知,后面權重值較小的主題詞可以確定為干擾因素,但也不排除用戶興趣發生改變,因此需要對主題詞進行預測,來最終確定用戶的偏好主題.
根據改進的受限玻爾茲曼機對主題權重進行訓練時,需要確定對比散度中Gibbs采樣步數為多少能使訓練達到最優,其中學習率η=0.02.試驗結果如圖5、圖6、圖7所示,在圖5中隨著橫坐標Gibbs采樣步數的增加,相應縱坐標原始主題權重和經過訓練后的主題權重的誤差(取所有訓練前后主題權重的最大值作為Error)趨于0,試驗結果表明改進的RBM能較好的處理實值數據.

圖5 RBM吉布斯采樣步數優化確定Fig.5 RBM Gibbs sampling step number optimization

圖6 經過2步吉布斯RBM訓練效果Fig.6 After 2 steps Gibbs RBM training effect

圖7 經過3步吉布斯RBM訓練效果Fig.7 After 3 steps Gibbs RBM training effect

(15)
MAE采用絕對值計算預測誤差,它的定義為:
(16)
在采用改進RBM對主題權重預測時,需找到與待預測主題的若干相同主題,來保證針對不同用戶對于相同主題得到不同的主題權重值.尋找這些相同主題可以通過近鄰用戶方法,但是近鄰用戶方法存在用戶偏好聚集,很難向其他偏好領域跨越.于是在采用近鄰用戶方法時,不再僅僅取近鄰用戶中相似度較高的N個用戶,而是把近鄰用戶推薦列表按相似度大小分成3個部分,第一部分是和目標用戶相似度最高的若干近鄰用戶,也就是在近鄰用戶方法中經常采用的對象;第二部分相似度次之;第三部分較次之.試驗的目標是在第一部分數據的基礎上,再從第二部分和第三部分數據中按照1:2的比例隨機加入若干數據,這種方法的特點是明顯增加了待選主題的多樣性,但需要確定對模型的預測精度影響是否較大.本文根據MAE作為衡量指標,MAE越小則表明模型的預測性能越強.
其中,橫坐標分為兩組試驗,第一組試驗采用按三部分比例3:1:2取近鄰用戶,其中第一部分選擇最相似的若干用戶,第二、三部分按照比例隨機選取;第二組試驗只選取第一組試驗的第一部分數據,每組都通過3次試驗得到MAE.第一組試驗結果表明隨機加入的數據對模型預測造成一定的干擾,并且三次試驗穩定性明顯低于第二組.但是第一組絕對值誤差MAE的表現通過和6.2節得到的最小用戶偏好主題“Action”的加權平均值0.90885相比影響可以忽略.同時如若為增加待預測主題的多樣性,幫助用戶向未知領域引導,第一組的表現效果要強于第二組.

圖8 第一組及第二組方法的MAE對比Fig.8 MAE comparison of the method for the first group and the two group
為驗證本論文提出的L_RRBM算法的有效性,在推薦算法中以LFM(隱語義模型)就各自的準確率、召回率和覆蓋率進行了分析比較,分別如圖9、圖10和圖11所示.其中,橫坐標ratio為用戶沒有過行為的物品/有過行為的物品,圖11能較好的反應了本算法發掘長尾商品的能力.
試驗結果表明,與傳統的LFM推薦算法相比,本文所提出的L_RRBM算法,各項評測指標有明顯的提高.

圖9 LFM算法和L_RRBM算法的準確率試驗對比結果Fig.9 Comparison results of LFM algorithm and L_RRBM algorithm for precision test

圖10 LFM算法和L_RRBM算法的召回率試驗對比結果Fig.10 Comparison results of LFM algorithm and L_RRBM algorithm for recall test

圖11 LFM算法和L_RRBM算法的覆蓋率試驗對比結果Fig.11 Comparison results of LFM algorithm and L_RRBM algorithm for coverage test
論文針對長尾中冷門商品很難得到用戶的關注,造成評價數據稀疏的問題,提出L_RRBM算法,從商品的內容信息著手,對商品信息進行主題提取,并改進RBM對提取主題中權重較小和未知主題權重進行預測,以增強因用戶偏好改變,而多主題模型難以提取到用戶偏好主題而造成的影響.
然而,我們的工作中還存在一些需要改進的地方.比如在對改進的實值RBM進行訓練時涉及到“加權”和“去權”的問題,參數的調整過于復雜.另外,在對主題進行預測時,通過引入近鄰用戶,經過試驗驗證能較好的對主題進行較好的進行預測,但是在一定程度上增加了算法的復雜度.在未來的工作中,我們會嘗試通過深度學習或深層受限玻爾茲曼機來解決這些問題.
[1] Xiang Liang.Recommendation system practice[M].Beijing:Posts and Telecom Press,2012.
[2] Goldberg D,Nichols D,Oki B M,et al.Using collaborative filtering to weave an information tapestry[J].Communications of the Acm,1992,35(12):61-70.
[3] Han P,Xie B,Yang F,et al.A scalable P2P recommender system based on distributed collaborative filtering[J].Expert Systems with Applications,2004,27(2):203-210.
[4] Xu Hai-ling,Wu Xiao,Li Xiao-dong,et al.Comparison study of Internet recommendation system[J].Journal of Software,2009,20(2):350-362.
[5] Jamali M,Ester M.TrustWalker:a random walk model for combining trust-based and item-based recommendation[C].Proceedings of the 15th Association for Computing Machinery Special Interest Group on Management of Data International Conference on Knowledge Discovery and Data Mining,Association for Computing Machinery,2009:397-406.
[6] Yin Gui-sheng,Zhang Ya-nan,Dong Hong-bin,et al.A long tail distribution constrained recommendation method[J].Journal of Computer Research and Development,2013,50(9):1814-1824.
[7] Feng Yuan-yuan,Wang Xiao-dong,Yao Yu.Long tail problem of recommender system in electronic commerce[J].Journal of Computer Applications,2015(s2):151-154.
[8] Park Y J,Tuzhilin A.The long tail of recommender systems and how to leverage it[C].Association for Computing Machinery Conference on Recommender Systems,Recsys 2008,Lausanne,Switzerland,2008:11-18.
[9] He Jie-yue,Ma Bei.Based on Real-valued conditional restricted boltzmann machine and social network for collaborative filtering[J].Chinese Journal of Computers,2016,(1):183-195.
[10] Salakhutdinov R,Mnih A,Hinton G.Restricted boltzmann machines for collaborative filtering[C].Machine Learning,Proceedings of the Twenty-Fourth International Conference.2007:791-798.
[11] Georgiev K,Nakov P.A non-IID framework for collaborative filtering with restricted boltzmann machines[C].International Conference on Machine Learning,2013:1148-1156.
[12] Chris Anderson.The long tail[M].Beijing:China Crtic Press,2006.
[13] Griffiths T L,Steyvers M.Finding scientific topics[J].Proceedings of the National Academy of Sciences of the United States of America,2004,101 Suppl 1(1):5228-5235.
[14] Zu Xian,Xie Fei.Review of the latent dirichlet allocation topic model[J].Journal of Hefei Normal University,2015,33(6):55-58.
[15] Luo Heng.Restricted boltzmann machines:a collaborative filtering perspective[D].Shanghai:Shanghai Jiao Tong University,2011.
[16] Chen Xiao-hai,Zhou Ya.A crawling algorithm based on topical similarity for guiding the web crawler though tunnels[J].Computer Engineering and Science,2009,31(10):126-128.
附中文參考文獻:
[1] 項 亮.推薦系統實踐[M].北京:人民郵電出版社,2012.
[4] 許海玲,吳 瀟,李曉東,等.互聯網推薦系統比較研究[J].軟件學報,2009,20(2):350-362.
[6] 印桂生,張亞楠,董紅斌,等.一種由長尾分布約束的推薦方法[J].計算機研究與發展,2013,50(9):1814-1824.
[7] 馮媛媛,王曉東,姚 宇.電子商務中長尾物品推薦方法[J].計算機應用,2015(s2):151-154.
[9] 何潔月,馬 貝.利用社交關系的實值條件受限玻爾茲曼機協同過濾推薦算法[J].計算機學報,2016,(1):183-195.
[12] 克里斯·安德森.長尾理論[M].北京:中信出版社,2006.
[14] 祖 弦,謝 飛.LDA主題模型研究綜述[J].合肥師范學院學報,2015,33(6):55-58.
[15] 羅 恒.基于協同過濾視角的受限玻爾茲曼機研究[D].上海:上海交通大學,2011.
[16] 陳小海,周 婭.基于主題相似度指導網絡蜘蛛穿越隧道的爬行算法[J].計算機工程與科學,2009,31(10):126-128.