潘良辰,吳鑫然,岳 昆
(云南大學(xué) 信息學(xué)院,昆明 650500)
隨著Web2.0、電子商務(wù)和社交網(wǎng)絡(luò)的快速發(fā)展,越來(lái)越多的用戶通過(guò)各種Web平臺(tái)參與到互聯(lián)網(wǎng)活動(dòng)中,因此,產(chǎn)生了大量的用戶行為數(shù)據(jù)。用戶對(duì)電影或商品的評(píng)分是目前Web2.0應(yīng)用中具有代表性的一類(lèi)用戶行為數(shù)據(jù),這些數(shù)據(jù)一般包含用戶屬性、評(píng)分對(duì)象屬性和用戶評(píng)分等可以直接觀測(cè)到的信息,也蘊(yùn)含著一些無(wú)法被直接觀測(cè)到的信息,如表示用戶喜好或選擇傾向性的偏好信息。用戶評(píng)分?jǐn)?shù)據(jù)反映了用戶偏好,用戶偏好決定了用戶評(píng)分。例如,MovieLens數(shù)據(jù)集[1]包括用戶信息、電影信息和評(píng)分,電影信息包括年代、類(lèi)型、語(yǔ)言等多種屬性,用戶信息包括年齡、性別、職業(yè)等屬性信息,不同用戶對(duì)不同電影屬性有相應(yīng)的喜好,用戶、電影以及評(píng)分等屬性間存在依賴關(guān)系并具有不確定性。因此,從評(píng)分?jǐn)?shù)據(jù)中建立描述相關(guān)屬性之間依賴關(guān)系及其不確定性的用戶偏好模型,為個(gè)性化推薦和用戶行為建模等應(yīng)用提供知識(shí)模型和計(jì)算框架,具有重要的現(xiàn)實(shí)意義。
貝葉斯網(wǎng)(Bayesian Network,BN)[2]是一種重要的概率圖模型,其是由一組節(jié)點(diǎn)組成的有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG),每個(gè)節(jié)點(diǎn)都有一個(gè)條件概率表(Conditional Probability Table,CPT)[3]。BN可定量地描述屬性間的依賴關(guān)系,因此,其被廣泛應(yīng)用于智能分析和推斷決策等領(lǐng)域。含隱變量的BN稱(chēng)為隱變量模型(Latent Variable Model,LVM)。通過(guò)LVM可有效描述評(píng)分?jǐn)?shù)據(jù)中能直接觀測(cè)到和不能直接觀測(cè)到的屬性之間的依賴關(guān)系,并可進(jìn)行有效的推理計(jì)算,從而為用戶偏好模型的建立提供支持。例如,對(duì)于MovieLens數(shù)據(jù)而言,可使用隱變量表示用戶對(duì)電影的偏好,基于LVM學(xué)習(xí)方法構(gòu)建包括用戶、電影、評(píng)分和偏好屬性的模型。
本文提出一種基于深度信念網(wǎng)(Deep Belief Network,DBN)與隱變量模型的用戶偏好建模方法。采用深度信念網(wǎng)對(duì)評(píng)分?jǐn)?shù)據(jù)進(jìn)行分類(lèi),利用類(lèi)別變量擴(kuò)展隱變量模型,同時(shí)基于評(píng)分?jǐn)?shù)據(jù)的特點(diǎn)和隱變量模型構(gòu)建的關(guān)鍵步驟,給出模型構(gòu)建時(shí)需要滿足的約束條件以及該約束條件下模型的參數(shù)學(xué)習(xí)和結(jié)構(gòu)學(xué)習(xí)方法。
由于隱變量的取值無(wú)法被直接觀測(cè)到,可認(rèn)為其數(shù)據(jù)缺失。期望最大(Expectation Maximization,EM)算法[4]是在不完整數(shù)據(jù)情況下對(duì)數(shù)據(jù)進(jìn)行填充并用于模型參數(shù)最大似然估計(jì)的一種有效方法。結(jié)構(gòu)期望最大(Structure Expectation Maximization,SEM)[5]算法是一種結(jié)合了EM算法和打分搜索的結(jié)構(gòu)學(xué)習(xí)方法。EM算法的運(yùn)行涉及大量迭代計(jì)算[6],計(jì)算復(fù)雜度較高。從BN的結(jié)構(gòu)及特點(diǎn)來(lái)看,CPT中概率參數(shù)的規(guī)模由其父節(jié)點(diǎn)組合的取值數(shù)量決定,不同組合會(huì)帶來(lái)較高的時(shí)間和空間復(fù)雜度。在實(shí)際應(yīng)用中,用戶評(píng)分?jǐn)?shù)據(jù)具有海量、高維、稀疏、內(nèi)部結(jié)構(gòu)復(fù)雜等特征,從評(píng)分?jǐn)?shù)據(jù)中構(gòu)建LVM以有效描述用戶偏好具有較高的難度,這也是本文擬解決的一個(gè)問(wèn)題。
從基于偏好模型的用戶偏好或評(píng)分估算的角度來(lái)看,可利用基于BN的概率推理算法,根據(jù)觀測(cè)到的用戶或?qū)ο髮傩砸约霸u(píng)分來(lái)估計(jì)用戶偏好,或根據(jù)用戶偏好來(lái)估算可能的評(píng)分。但是,針對(duì)CPT中并未包括的新用戶或新對(duì)象信息,傳統(tǒng)的BN模型難以進(jìn)行有效的概率推理。例如,若利用基于樣本集{(男,<18,Educator,R),(男,25~34,Admin,R),(女,>34,Other,R)}構(gòu)建的BN來(lái)估算用戶(男,>34,Farmer)的評(píng)分,由于該用戶信息并未包含于模型的CPT中,因此無(wú)法進(jìn)行有效的概率推理。綜上,如何使得模型能有效支持新用戶或新對(duì)象的偏好估計(jì)及評(píng)分估算,是用戶偏好模型構(gòu)建時(shí)面臨的又一挑戰(zhàn)。
圖1所示為一個(gè)簡(jiǎn)單的隱變量模型,在實(shí)際情形中,Age和Profession等取值的個(gè)數(shù)遠(yuǎn)多于該例中變量取值的個(gè)數(shù),因此,CPT存在組合爆炸的情況,從而導(dǎo)致LVM構(gòu)建效率較低、所占存儲(chǔ)空間較大等問(wèn)題。
圖1 簡(jiǎn)單的隱變量模型
本文在基于LVM的用戶偏好建模方面,研究如何提升模型構(gòu)建效率、克服模型構(gòu)建過(guò)程中CPT組合爆炸等問(wèn)題;在基于傳統(tǒng)LVM的概率推理方面,研究對(duì)新用戶或新對(duì)象信息進(jìn)行概率推理的問(wèn)題。具體而言,本文首先利用隱變量表示用戶偏好,建立一種基于隱變量模型的用戶偏好模型;然后通過(guò)深度信念網(wǎng)對(duì)評(píng)分?jǐn)?shù)據(jù)進(jìn)行分類(lèi),利用類(lèi)別變量擴(kuò)展隱變量模型,得到類(lèi)別簡(jiǎn)化的貝葉斯網(wǎng)(Class Simplified BN,CSBN);接著給出模型構(gòu)建時(shí)需滿足的約束條件及該約束條件下的模型參數(shù)學(xué)習(xí)和結(jié)構(gòu)學(xué)習(xí)方法;最后在MovieLens和大眾點(diǎn)評(píng)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),以驗(yàn)證本文方法的可行性和高效性。
目前,從評(píng)分?jǐn)?shù)據(jù)中構(gòu)建用戶偏好模型,有基于評(píng)分矩陣和項(xiàng)目流行度的推薦方法[7]、建立商品服務(wù)評(píng)估模型[8]和使用向量模型或主題模型來(lái)表示用戶偏好[9-10]等方式。例如,結(jié)合LDA(Latent Dirichlet Allocation)[10]的主題分布描述用戶偏好,利用SVD(Singular Value Decomposition)[11]等矩陣因式分解模型描述用戶偏好,這些方法能夠表達(dá)預(yù)先給定的依賴關(guān)系。但LDA是一種線性模型,SVD的分解矩陣可解釋性較差,因此,兩者均無(wú)法表述評(píng)分?jǐn)?shù)據(jù)中屬性間的依賴關(guān)系及其不確定性。
研究人員在基于BN或LVM的用戶偏好建模方面進(jìn)行了較多研究。文獻(xiàn)[12]用隱變量表示用戶的評(píng)價(jià)行為,文獻(xiàn)[13-14]用隱變量描述用戶對(duì)電影類(lèi)型的偏好,文獻(xiàn)[15]依據(jù)旅游的專(zhuān)家知識(shí)構(gòu)建BN并估計(jì)用戶的旅游偏好,文獻(xiàn)[16]使用隱變量刻畫(huà)用戶興趣并提出一種用以描述用戶點(diǎn)擊行為的動(dòng)態(tài)貝葉斯網(wǎng)模型。但是,上述模型構(gòu)建效率較低,難以適用于高維、稀疏的評(píng)分?jǐn)?shù)據(jù),因此,在評(píng)分?jǐn)?shù)據(jù)上以隱變量模型為基礎(chǔ)構(gòu)建用戶偏好模型,成為亟需解決的問(wèn)題。
在提高模型構(gòu)建效率方面,文獻(xiàn)[17]采用決策樹(shù)對(duì)觀測(cè)數(shù)據(jù)進(jìn)行分類(lèi),用分類(lèi)后的變量構(gòu)建BN,將觀測(cè)值的類(lèi)別作為證據(jù)變量進(jìn)行概率推理,但該方法難以處理海量、稀疏、高維的評(píng)分?jǐn)?shù)據(jù)集。文獻(xiàn)[18-19]提出DBN以對(duì)數(shù)據(jù)進(jìn)行分類(lèi)和降維,DBN在很大程度上保存和還原了原始信息,可適用于海量、多維、內(nèi)部結(jié)構(gòu)復(fù)雜的評(píng)分?jǐn)?shù)據(jù)。本文將DBN和隱變量模型進(jìn)行結(jié)合,以構(gòu)建用戶偏好模型。
將包含用戶屬性、對(duì)象屬性和評(píng)分值等信息的評(píng)分?jǐn)?shù)據(jù)記為D,U=(U1,U2,…,U|U|)表示用戶屬性集合,I∈{i1,i2,…,i|I|}表示對(duì)象屬性,R表示用戶評(píng)分。用戶偏好由用戶對(duì)評(píng)分對(duì)象各個(gè)屬性的喜好構(gòu)成,表示為L(zhǎng)∈{l1,l2,…,l|L|},其中,ix=lx(1≤x≤|I|),lx稱(chēng)為第x維的偏好。例如,某一評(píng)分?jǐn)?shù)據(jù)為U1(性別)=“男性”、U2(年齡)=“18歲~24歲”、U3(職業(yè))=“學(xué)生”、i1(電影類(lèi)別)=“動(dòng)作片”、R(評(píng)分)=“4”,表示該用戶對(duì)某動(dòng)作片的評(píng)分為4,l1=il表示用戶喜好“動(dòng)作片”。
利用DBN分別對(duì)U和I數(shù)據(jù)進(jìn)行分類(lèi),得到分別表示用戶屬性和對(duì)象屬性的類(lèi)別變量UC和IC,分類(lèi)后的評(píng)分?jǐn)?shù)據(jù)DC包含UC、IC和R的信息。
定義1BN是有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG),記為G=(V,E,θ),其滿足如下4個(gè)性質(zhì):
1)V是一組多維隨機(jī)變量集合,其構(gòu)成了G中的節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)變量。
2)含隱變量的BN簡(jiǎn)稱(chēng)隱變量模型,記為G=(V,L,E,θ),其中,L是描述用戶偏好的隱變量節(jié)點(diǎn)。
3)E是連接各節(jié)點(diǎn)有向邊的集合,表示各節(jié)點(diǎn)間的依賴關(guān)系。若存在從節(jié)點(diǎn)u指向節(jié)點(diǎn)v的有向邊u→v(u、v∈V,u≠v),則稱(chēng)u是v的父節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)v在給定其父節(jié)點(diǎn)集π(v)時(shí)獨(dú)立于其非子孫節(jié)點(diǎn)。
4)θ為各節(jié)點(diǎn)條件概率參數(shù)的集合,表示為P(v|π(v))。
定義2類(lèi)別簡(jiǎn)化的貝葉斯網(wǎng)(CSBN)記為G=(V,L,E,θ),其滿足如下3個(gè)性質(zhì):
1)V={UC,IC,R}是包括用戶類(lèi)別、對(duì)象類(lèi)別和評(píng)分的變量集合。
2)L為隱變量,L=lj表示用戶對(duì)評(píng)分對(duì)象屬性第j個(gè)類(lèi)別的偏好,其中,1≤j≤|IC|。
3)E和θ分別為G中有向邊和條件概率參數(shù)的集合。
圖2所示為一個(gè)簡(jiǎn)單的CSBN模型,在采用分類(lèi)變量UC替代圖1中的Age、Gender、Profession變量構(gòu)建隱變量模型時(shí),模型中的依賴關(guān)系得以簡(jiǎn)化,且CPT的組合數(shù)量也大幅降低,便于計(jì)算和存儲(chǔ)。因此,采用分類(lèi)變量構(gòu)建隱變量模型,可以簡(jiǎn)化模型并提高模型構(gòu)建效率。
圖2 CSBN模型示例
根據(jù)定義2,本文使用DBN分別對(duì)用戶屬性數(shù)據(jù)和評(píng)分對(duì)象屬性數(shù)據(jù)進(jìn)行分類(lèi)。分類(lèi)后的評(píng)分?jǐn)?shù)據(jù)維度降低,CPT中不同取值的組合也相應(yīng)減少,從而提高了模型構(gòu)建效率。此外,可以對(duì)訓(xùn)練集中未出現(xiàn)的變量組合進(jìn)行分類(lèi),從而實(shí)現(xiàn)對(duì)這類(lèi)取值的概率推理。DBN分類(lèi)算法[18-19]將DBN看作一個(gè)特殊的多層感知器,是由多個(gè)受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)[20]疊加構(gòu)成的深度學(xué)習(xí)結(jié)構(gòu),預(yù)訓(xùn)練階段通過(guò)逐層訓(xùn)練得到各個(gè)RBM的權(quán)值,下一層的輸出作為更高一層的輸入。DBN訓(xùn)練分為預(yù)訓(xùn)練和微調(diào)2個(gè)步驟,最后將DBN模型輸入softmax回歸分類(lèi)器[21]得到用戶屬性類(lèi)別數(shù)據(jù)集。以用戶屬性數(shù)據(jù)的分類(lèi)為例,基于DBN的評(píng)分?jǐn)?shù)據(jù)分類(lèi)算法R-DBN-Classification步驟如下:
算法1R-DBN-Classification算法
輸入用戶屬性數(shù)據(jù)D,迭代次數(shù)上限gn,學(xué)習(xí)率η
輸出帶有分類(lèi)標(biāo)簽的評(píng)分?jǐn)?shù)據(jù)集Dc
1.η←0.01,gn←2 000
(學(xué)習(xí)率、迭代次數(shù)由經(jīng)驗(yàn)值確定)
2.初始化DBN分類(lèi)器模型,RBMs層數(shù)為3,隱層單元分別設(shè)置為18、36、18//最后一層隱層單元個(gè)數(shù)為輸出的類(lèi)別數(shù)
3.令n為輸入層神經(jīng)元個(gè)數(shù) //例如,針對(duì)性別、年齡和//職業(yè),設(shè)置n=3
4.初始化DBN網(wǎng)絡(luò)的權(quán)值W=[W′1,W′2,W′3]為0矩陣,隨機(jī)初始化偏重b和c
5.W,b,c←DBN_train(n,v,gn)
(使用文獻(xiàn)[18-19]中的DBN_train算法)
6.UC←softmax(W,b,c,D)
算法1采用非監(jiān)督貪婪逐層訓(xùn)練的方法,即對(duì)比散度(Contrastive Divergence,CD)算法[20]獲取權(quán)值,只需單個(gè)步驟就可以接近最大似然學(xué)習(xí),因此,可顯著縮短訓(xùn)練時(shí)間,提高收斂速度。
以用戶屬性信息為例設(shè)計(jì)的DBN分類(lèi)器模型結(jié)構(gòu)如圖3所示,其中,輸入為用戶屬性,包括性別(Gender)、年齡(Age)和職業(yè)(Profession)。Gender取值為0、1,分別代表男、女,Age取值為年齡段,Profession取值為職業(yè)對(duì)應(yīng)的編號(hào)。雖然輸入神經(jīng)元個(gè)數(shù)為3,輸出神經(jīng)元個(gè)數(shù)為18,但輸入神經(jīng)元的3個(gè)節(jié)點(diǎn)取值組合數(shù)為2×7×21=294,相當(dāng)于經(jīng)過(guò)DBN分類(lèi)器后用戶屬性組合從294降到了18,大幅降低了EM算法中間結(jié)果規(guī)模以及CSBN中節(jié)點(diǎn)的CPT規(guī)模,進(jìn)而提高了BN的學(xué)習(xí)效率。
圖3 DBN分類(lèi)器模型
為保證模型構(gòu)建的有效性,根據(jù)用戶偏好、隱變量在評(píng)分?jǐn)?shù)據(jù)中的特定含義,本文給出如下約束:
約束1第j維的偏好lj表達(dá)用戶對(duì)評(píng)分對(duì)象屬性類(lèi)別節(jié)點(diǎn)IC的第j個(gè)取值icj的傾向(1≤j≤|IC|),用戶屬性UC不依賴于其他變量。
約束2P(ic1|l1)>P(ic2|l1),當(dāng)用戶偏好為l1時(shí),該用戶偏好ic1的概率大于ic2;P(R=r2|ic1,l1)>P(R=r1|ic1,l1),用戶更可能對(duì)傾向或喜好的對(duì)象評(píng)高分(r2>r1),反之評(píng)低分(r1>r2)。
將引入分類(lèi)變量后的用戶屬性類(lèi)別數(shù)據(jù)集、評(píng)分對(duì)象屬性類(lèi)別數(shù)據(jù)集以及評(píng)分?jǐn)?shù)據(jù),處理為帶有分類(lèi)標(biāo)簽的評(píng)分?jǐn)?shù)據(jù)集Dc,Dc中一次用戶評(píng)分記錄為一個(gè)樣本Dcy∈{Dc1,Dc2,…,Dc|Dc|},包括ID、用戶屬性類(lèi)別、評(píng)分屬性類(lèi)別以及評(píng)分,用戶偏好L的取值個(gè)數(shù)為|I|,L∈{l1,l2,…,l|I|}。然后,隨機(jī)生成一組滿足約束條件的初始參數(shù),對(duì)數(shù)據(jù)集中隱變量的值進(jìn)行填充,再計(jì)算并更新參數(shù),直至收斂或達(dá)到迭代次數(shù)上限,所得參數(shù)優(yōu)化結(jié)果即為最終參數(shù)學(xué)習(xí)結(jié)果?;诘趖次迭代得到的參數(shù)估計(jì)θt,第t+1次迭代過(guò)程如下:
(1)
(2)
(3)
(4)
EM算法不斷迭代直至收斂,基于約束的CSBN參數(shù)學(xué)習(xí)算法Parameter_learning描述如下:
算法2Parameter_learning算法
輸入帶有分類(lèi)標(biāo)簽的評(píng)分?jǐn)?shù)據(jù)集Dc,收斂閾值δ,迭代次數(shù)上限T
輸出CSBN模型參數(shù)θ
1.隨機(jī)產(chǎn)生一組滿足約束2的初始參數(shù)θ′
2.for t←0 to T do
E步:
M步:
5.end for
例如,表1給出了利用DBN分類(lèi)的用戶評(píng)分類(lèi)別數(shù)據(jù)的片段示例,以圖2結(jié)構(gòu)作為當(dāng)前模型結(jié)構(gòu),執(zhí)行算法2迭代一次修補(bǔ)后的樣本數(shù)據(jù)如表2所示。假設(shè)數(shù)據(jù)集大小為|Dc|,L的取值個(gè)數(shù)為|I|,則每次EM過(guò)程修補(bǔ)后的數(shù)據(jù)有|I|×|Dc|條,計(jì)算最大似然估計(jì)|I|×|Dc|次,EM迭代次數(shù)最多為T(mén)次,因此,需要計(jì)算T×|I|×|Dc|次最大似然估計(jì),算法2的時(shí)間復(fù)雜度為O(T×|I|×|Dc|)??梢?jiàn),EM算法的執(zhí)行效率與修補(bǔ)后的數(shù)據(jù)量、輸入數(shù)據(jù)集以及隱變量取值個(gè)數(shù)呈負(fù)相關(guān)[22],即采用類(lèi)別變量構(gòu)建CSBN后數(shù)據(jù)量下降,從而提高了算法效率。
表1 數(shù)據(jù)集片段
表2 修補(bǔ)后的數(shù)據(jù)
貝葉斯信息準(zhǔn)則(Bayesian Information Criterion,BIC)是一種常用的打分標(biāo)準(zhǔn),能在缺值樣本前提下對(duì)結(jié)構(gòu)進(jìn)行打分,為本文學(xué)習(xí)CSBN結(jié)構(gòu)提供了模型選擇基準(zhǔn)。模型結(jié)構(gòu)ζ的BIC評(píng)分計(jì)算公式如下:
(5)
式(5)右側(cè)第1項(xiàng)是模型ζ的優(yōu)參對(duì)數(shù)似然度,其度量結(jié)構(gòu)ζ數(shù)據(jù)D的擬合程度;第2項(xiàng)是一個(gè)關(guān)于模型復(fù)雜度的罰項(xiàng),其能夠有效避免依據(jù)優(yōu)參似然度選擇模型導(dǎo)致的過(guò)擬合現(xiàn)象。本文使用SEM算法結(jié)合BIC打分準(zhǔn)則作為CSBN結(jié)構(gòu)學(xué)習(xí)方法的基礎(chǔ)。首先根據(jù)約束1和約束2,隨機(jī)生成一組滿足約束1的初始結(jié)構(gòu)和一組滿足約束2的初始參數(shù),以生成的初始結(jié)構(gòu)與初始參數(shù)作為SEM算法的初始值進(jìn)行參數(shù)學(xué)習(xí);然后計(jì)算初始結(jié)構(gòu)的BIC評(píng)分,通過(guò)當(dāng)前結(jié)構(gòu)邊的變化得出一系列的候選結(jié)構(gòu),根據(jù)當(dāng)前修補(bǔ)的數(shù)據(jù)集學(xué)習(xí)候選結(jié)構(gòu)的參數(shù)并進(jìn)行BIC打分,選出局部最優(yōu)候選模型并與當(dāng)前模型作對(duì)比,選其中評(píng)分較高者作為當(dāng)前模型繼續(xù)進(jìn)行參數(shù)學(xué)習(xí),重復(fù)迭代上述步驟。
從初始CSBN模型出發(fā)進(jìn)行參數(shù)學(xué)習(xí),基于約束的CSBN結(jié)構(gòu)學(xué)習(xí)算法Structure_learning描述如算法3所示。
算法3Structure_learning算法
輸入帶有分類(lèi)標(biāo)簽的評(píng)分?jǐn)?shù)據(jù)集Dc,收斂閾值δ,迭代次數(shù)上限T,節(jié)點(diǎn)個(gè)數(shù)C_num
輸出CSBN模型結(jié)構(gòu)G,CSBN模型參數(shù)θ
1.隨機(jī)生成滿足約束1的BN結(jié)構(gòu)G′和滿足約束2的初始參數(shù)θ′
3.for i←0 to (C_num-1) do
4.令G_set為當(dāng)前節(jié)點(diǎn)加、減或轉(zhuǎn)邊得到的候選結(jié)構(gòu)
5.θi,Di←EM(Gi,D′i,θi,δ,1)//參數(shù)計(jì)算
6.temp←θi,Di,tempBIC←BIC(G,θ|D′)
7.if tempBIC>newscore then
8.θi,Di←temp,newscore←tempBIC
9.end if
10.if newscore>oldscore then
11.θi+1,Di+1←EM(Gi,D′i,θi,δ,T)
12.(G,θ)←(Gi+1,θi+1)
13.oldscore←BIC(G,θ|Dt+1)
14.else
return (G,θ)
15.end if
16.end for
假設(shè)模型的節(jié)點(diǎn)數(shù)為C_num,一次結(jié)構(gòu)學(xué)習(xí)過(guò)程產(chǎn)生的候選結(jié)構(gòu)個(gè)數(shù)為z,對(duì)所有候選結(jié)構(gòu)執(zhí)行一次EM算法,得出當(dāng)前最優(yōu)候選結(jié)構(gòu)并對(duì)其執(zhí)行EM算法直至收斂或達(dá)到迭代次數(shù)上限T,候選結(jié)構(gòu)選擇的時(shí)間開(kāi)銷(xiāo)遠(yuǎn)低于EM算法的執(zhí)行時(shí)間開(kāi)銷(xiāo),則SEM算法需要執(zhí)行z×C_num次EM算法,C_num在算法開(kāi)始時(shí)就給定,z由初始結(jié)構(gòu)決定,則算法3的時(shí)間復(fù)雜度為O(T×|I|×|Dc|)。
本文實(shí)驗(yàn)采用GroupLens提供的MovieLens-1M數(shù)據(jù)集[1],其包括6 040條用戶屬性數(shù)據(jù)、3 952條電影屬性數(shù)據(jù)、1 000 209條電影評(píng)分?jǐn)?shù)據(jù)。此外,在大眾點(diǎn)評(píng)網(wǎng)利用爬蟲(chóng)爬取20個(gè)城市各100個(gè)用戶的評(píng)分?jǐn)?shù)據(jù),該數(shù)據(jù)集包括2 000條用戶屬性數(shù)據(jù)、5 162家餐廳屬性數(shù)據(jù)以及114 023條評(píng)分?jǐn)?shù)據(jù)。2個(gè)數(shù)據(jù)集經(jīng)過(guò)預(yù)處理后,每行數(shù)據(jù)對(duì)應(yīng)一次用戶評(píng)分記錄,每個(gè)記錄分別由3個(gè)用戶屬性信息、1個(gè)電影/餐廳屬性信息和1個(gè)評(píng)分值組成。
實(shí)驗(yàn)環(huán)境如下:Intel Core i7-6700 @ 3.40 GHz處理器,12 GB DDR4內(nèi)存,Nvidia GeForce GTX 750 Ti顯卡,Windows 10(64位)操作系統(tǒng),Python作為開(kāi)發(fā)語(yǔ)言。
本文主要針對(duì)模型構(gòu)建效率、所構(gòu)建模型有效性等方面進(jìn)行實(shí)驗(yàn)分析。首先,分別在MovieLens和大眾點(diǎn)評(píng)數(shù)據(jù)集上對(duì)LVM和CSBN的模型構(gòu)建時(shí)間進(jìn)行對(duì)比,經(jīng)測(cè)試DBN分類(lèi)算法執(zhí)行時(shí)間在CSBN模型構(gòu)建時(shí)間中占比較小,因此,本文效率測(cè)試部分忽略DBN分類(lèi)算法帶來(lái)的時(shí)間開(kāi)銷(xiāo)。然后,基于CSBN模型的結(jié)構(gòu)和參數(shù),計(jì)算條件概率P(Q|e),其中,e是由用戶屬性構(gòu)成的證據(jù)變量取值,Q是電影類(lèi)型的查詢變量,計(jì)算具有最大后驗(yàn)概率的電影類(lèi)型并作為用戶偏好。本文對(duì)計(jì)算出的用戶偏好電影類(lèi)型和統(tǒng)計(jì)出的真實(shí)用戶偏好電影類(lèi)型進(jìn)行對(duì)比,估計(jì)召回率(Recall)、準(zhǔn)確率(Precision)以及F值。三者計(jì)算公式分別如下:
其中,num(inference)是推理出用戶有傾向觀看的電影類(lèi)型數(shù)目,num(ture)是推理出有傾向且實(shí)際也有傾向觀看的電影類(lèi)型數(shù)目,num(sample)是實(shí)際用戶有傾向觀看的電影類(lèi)型數(shù)目。
本文在MovieLens數(shù)據(jù)集上選取不同用戶數(shù),分別測(cè)試CSBN和LVM的模型構(gòu)建執(zhí)行時(shí)間,結(jié)果如圖4所示。從圖4可以看出,隨著數(shù)據(jù)量的增加,CSBN和LVM的執(zhí)行時(shí)間均增加,在同樣大小的數(shù)據(jù)集下,CSBN的執(zhí)行效率高于LVM,并且隨著數(shù)據(jù)量的增加,CSBN更能有效地提升用戶偏好模型構(gòu)建效率。
圖4 MovieLens數(shù)據(jù)集上模型構(gòu)建執(zhí)行時(shí)間對(duì)比
Fig.4 Comparison of model construction execution time on MovieLens dataset
圖5所示為大眾點(diǎn)評(píng)數(shù)據(jù)集上LVM和CSBN的模型構(gòu)建時(shí)間對(duì)比,由于大眾點(diǎn)評(píng)數(shù)據(jù)集在每個(gè)城市均爬取了100個(gè)用戶的數(shù)據(jù),從中隨機(jī)選取30%、50%、80%的數(shù)據(jù)來(lái)測(cè)試算法3的效率。從圖5可以看出,隨著數(shù)據(jù)集的增大,LVM和CSBN的執(zhí)行時(shí)間均增加,在相同比例的數(shù)據(jù)集下,CSBN的執(zhí)行時(shí)間遠(yuǎn)低于LVM,原因在于數(shù)據(jù)量增加時(shí),LVM模型中間結(jié)果規(guī)模以|I|倍增長(zhǎng),導(dǎo)致其執(zhí)行時(shí)間增長(zhǎng)更快。
圖5 大眾點(diǎn)評(píng)數(shù)據(jù)集上模型構(gòu)建時(shí)間對(duì)比
Fig.5 Comparison of model construction time on DianPing dataset
此外,本文進(jìn)一步比較不同數(shù)據(jù)集下LVM和CSBN模型構(gòu)建時(shí)的中間結(jié)果規(guī)模,以反映算法執(zhí)行過(guò)程中所需要的內(nèi)存空間大小。表3和表4分別為MovieLens和大眾點(diǎn)評(píng)數(shù)據(jù)集上構(gòu)建LVM和CSBN模型時(shí)一次迭代計(jì)算的中間結(jié)果規(guī)模,可以看出,在相同數(shù)據(jù)量時(shí),CSBN構(gòu)建時(shí)中間結(jié)果規(guī)模比LVM模型低1個(gè)數(shù)量級(jí),隨著數(shù)據(jù)量的增加,LVM構(gòu)建時(shí)中間結(jié)果規(guī)模以接近60%的比例快速增長(zhǎng),而CSBN模型增長(zhǎng)較為平緩,這說(shuō)明本文通過(guò)對(duì)評(píng)分?jǐn)?shù)據(jù)進(jìn)行分類(lèi)再構(gòu)建隱變量模型的方法,大幅減少了模型構(gòu)建中的中間結(jié)果數(shù)量,且保證了模型構(gòu)建的高效性。
表3 MovieLens數(shù)據(jù)集上模型構(gòu)建的中間結(jié)果規(guī)模比較
Table 3 Comparison of intermediate result size in model construction on MovieLens dataset
表4 大眾點(diǎn)評(píng)數(shù)據(jù)集上模型構(gòu)建的中間結(jié)果規(guī)模比較
Table 4 Comparison of intermediate result size in model construction on DianPing dataset
為了測(cè)試模型的有效性,本文在1 300個(gè)用戶的MovieLens數(shù)據(jù)集和80%大眾點(diǎn)評(píng)數(shù)據(jù)集上,測(cè)試基于CSBN和LVM模型估計(jì)的不同top-k用戶偏好的召回率、準(zhǔn)確率和F值,結(jié)果分別如圖6和圖7所示。
圖6 MovieLens數(shù)據(jù)集上基于LVM和CSBN模型的用戶偏好對(duì)比
Fig.6 Comparison of user preferences based on LVM and CSBN models on MovieLens dataset
圖7 大眾點(diǎn)評(píng)數(shù)據(jù)集上基于LVM和CSBN模型的用戶偏好對(duì)比
Fig.7 Comparison of user preferences based on LVM and CSBN models on DianPing dataset
從圖6、圖7可以看出,在2種數(shù)據(jù)集上基于CSBN和LVM估計(jì)的偏好的召回率、精確率和F值基本相同,隨著k值的增加,基于CSBN和LVM的召回率、F值隨之上升,精確率隨之下降,并且相差不大。在k=7和k=3時(shí),兩者的F值基本相同,說(shuō)明此時(shí)CSBN和LVM的召回率和精確率達(dá)到了平衡,這在一定程度上說(shuō)明了本文方法有效。
本文在不同數(shù)據(jù)量的2種數(shù)據(jù)集上,分別測(cè)試基于CSBN模型估計(jì)的偏好的召回率、精確率和F值,結(jié)果如圖8和圖9所示??梢钥闯?在MovieLens數(shù)據(jù)集上,隨著k值的增加,CSBN的召回率上升,精確率下降,而F值趨于穩(wěn)定,在不同用戶個(gè)數(shù)下訓(xùn)練的模型結(jié)果幾乎相同,說(shuō)明了本文方法的穩(wěn)定性。但在大眾點(diǎn)評(píng)數(shù)據(jù)集上,不同數(shù)據(jù)量的召回率、精確率和F值差距較MovieLens上偏大,原因在于大眾點(diǎn)評(píng)數(shù)據(jù)量較小,僅為MovieLens的10%,導(dǎo)致模型的結(jié)構(gòu)和參數(shù)并未達(dá)到最優(yōu),這也符合大眾點(diǎn)評(píng)數(shù)據(jù)集的真實(shí)情況。
圖8 MovieLens數(shù)據(jù)集上CSBN模型的用戶偏好發(fā)現(xiàn)結(jié)果
Fig.8 User preference discovery results of CSBN model on MovieLens dataset
圖9 大眾點(diǎn)評(píng)數(shù)據(jù)集上CSBN模型的用戶偏好發(fā)現(xiàn)結(jié)果
Fig.9 User preference discovery results of CSBN model on DianPing dataset
大眾點(diǎn)評(píng)數(shù)據(jù)集上偏好估計(jì)的精確率高于MovieLens數(shù)據(jù)集,原因在于用戶喜好的“餐飲”類(lèi)型比“電影”類(lèi)型更加明顯。上述實(shí)驗(yàn)結(jié)果說(shuō)明了CSBN模型構(gòu)建方法在真實(shí)數(shù)據(jù)集上的有效性,并且沒(méi)有因?yàn)樘岣咝识档陀行浴?/p>
本文提出一種基于深度信念網(wǎng)和隱變量模型的用戶偏好發(fā)現(xiàn)方法,該方法既可以描述隱含的用戶偏好,又可以反映用戶評(píng)分?jǐn)?shù)據(jù)中各屬性間的任意不確定性依賴關(guān)系,且能夠提高模型構(gòu)建效率,克服傳統(tǒng)隱變量模型構(gòu)建過(guò)程中迭代計(jì)算多、中間結(jié)果規(guī)模大等問(wèn)題。但是,本文方法是在靜態(tài)數(shù)據(jù)中構(gòu)建CSBN模型,實(shí)際應(yīng)用的評(píng)分?jǐn)?shù)據(jù)是動(dòng)態(tài)變化且不斷增加的。因此,下一步將以增量學(xué)習(xí)的方式在動(dòng)態(tài)數(shù)據(jù)上構(gòu)建CSBN模型。此外,用戶的偏好也隨著時(shí)間發(fā)生變化,建立動(dòng)態(tài)的模型對(duì)不斷變化的偏好進(jìn)行預(yù)測(cè),也是今后的研究方向。