李曉菊 顧君忠 程 潔
1(華東師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 上海 200062)2(上海智臻智能網(wǎng)絡(luò)科技股份有限公司 上海 201800)
隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,人們逐漸從一個(gè)信息匱乏的時(shí)代步入了信息過(guò)載的時(shí)代。在一些電子商務(wù)平臺(tái),由于商家提供的商品種類繁多,用戶很難快速地從大量的商品信息中發(fā)現(xiàn)對(duì)自己有價(jià)值的信息,而個(gè)性化的推薦系統(tǒng)就是解決這一問(wèn)題的有效工具。推薦系統(tǒng)可以聯(lián)系用戶和商品,讓特定商品能夠展現(xiàn)在對(duì)它感興趣的用戶面前,節(jié)省用戶精力,提高用戶滿意度,并且最大化商家利益。近年來(lái),越來(lái)越多的推薦方法相繼被提出,根據(jù)模型構(gòu)建方式,可分為三大類:基于內(nèi)容的推薦方法[1]、基于協(xié)同過(guò)濾的推薦方法[2]和混合推薦方法[3-4]。
在上述推薦方法中,協(xié)同過(guò)濾是應(yīng)用最廣泛的算法。協(xié)同過(guò)濾算法的核心思想是:利用用戶的歷史反饋數(shù)據(jù)來(lái)挖掘用戶的喜好,將用戶劃分群組,并為其推薦與其偏好相同的用戶所喜歡的物品。隨后,基于物品的協(xié)同過(guò)濾算法[5],基于用戶的協(xié)同過(guò)濾算法[6]和基于矩陣分解的協(xié)同過(guò)濾算法[7]相繼被提出。其中,基于矩陣分解的協(xié)同過(guò)濾算法(如概率矩陣分解)因其擴(kuò)展性好,靈活性高等諸多優(yōu)點(diǎn),得到了越來(lái)越多研究者的關(guān)注。
PMF(概率矩陣分解)[8]的核心思想是:將用戶-商品的評(píng)分矩陣分解成兩個(gè)服從高斯分布的低維矩陣:用戶特征矩陣和商品特征矩陣,通過(guò)重構(gòu)這兩個(gè)低維矩陣來(lái)預(yù)測(cè)用戶對(duì)商品的評(píng)分。概率矩陣分解模型對(duì)推薦對(duì)象沒(méi)有特殊要求,不需要領(lǐng)域知識(shí),能發(fā)現(xiàn)用戶潛在的興趣愛(ài)好。但是由于該模型只利用了評(píng)分矩陣,在評(píng)分?jǐn)?shù)據(jù)非常稀疏的情況下,預(yù)測(cè)準(zhǔn)確性會(huì)下降。
鑒于概率矩陣分解中的稀疏問(wèn)題,一些學(xué)者提出可利用除評(píng)分?jǐn)?shù)據(jù)以外的信息(如商品的描述文本)來(lái)提高推薦性能。近年來(lái),深度學(xué)習(xí)已經(jīng)在計(jì)算機(jī)視覺(jué)[9]和自然語(yǔ)言處理領(lǐng)域[10]中取得突破性的進(jìn)展,深度學(xué)習(xí)模型對(duì)文本的挖掘能力恰好適用于商品文本內(nèi)容上,一些研究者[14]提出將深度學(xué)習(xí)模型與推薦系統(tǒng)相結(jié)合,將深度學(xué)習(xí)模型應(yīng)用到商品的文本內(nèi)容中,再與評(píng)分?jǐn)?shù)據(jù)聯(lián)系起來(lái),以緩解矩陣分解中的稀疏問(wèn)題。
本文提出一種基于變分循環(huán)自動(dòng)編碼器的概率矩陣分解模型(vraeMF),該方法使用無(wú)監(jiān)督的深度學(xué)習(xí)模型對(duì)商品的描述文本進(jìn)行編碼,得到一個(gè)低維并且服從高斯分布特征向量,作為該商品的初始特征向量,然后將其融合到PMF中來(lái)緩和稀疏問(wèn)題。在編碼特征向量時(shí),我們考慮了文本的上下文信息和語(yǔ)義信息,并且利用變分自動(dòng)編碼器的思想,提取出來(lái)的特征向量服從高斯分布。
協(xié)同過(guò)濾是推薦系統(tǒng)中應(yīng)用最廣泛的方法,可分為基于鄰域的協(xié)同過(guò)濾和基于模型的協(xié)同過(guò)濾。基于鄰域的協(xié)同過(guò)濾算法通過(guò)用戶的歷史反饋數(shù)據(jù)將用戶(或商品)劃分群組,找到與目標(biāo)用戶(商品)最為相似的其他用戶(商品),然后利用與目標(biāo)用戶(商品)相似度高的鄰居來(lái)預(yù)測(cè)用戶感興趣的商品列表。該算法主要包括基于用戶的協(xié)同過(guò)濾和基于商品的協(xié)同過(guò)濾兩類。基于用戶的協(xié)同過(guò)濾算法核心是找相似用戶,基于商品的協(xié)同過(guò)濾找相似的商品。
基于鄰域的協(xié)同推薦早期研究很多,隨著推薦系統(tǒng)的發(fā)展,基于模型的協(xié)同過(guò)濾收到越來(lái)越多的關(guān)注。其中矩陣分解(包括SVD[12]、PMF等)是基于模型的協(xié)同過(guò)濾中應(yīng)用最廣泛的方法。SVD算法假設(shè)用戶對(duì)商品的評(píng)分只受到少數(shù)幾個(gè)特征因子的影響,先將用戶和商品映射到相同的特征空間中,再通過(guò)評(píng)分矩陣來(lái)學(xué)習(xí)用戶和商品的特征矩陣,最后利用用戶和商品的特征矩陣來(lái)補(bǔ)全評(píng)分矩陣。PMF在SVD的基礎(chǔ)上,從概率生成的角度來(lái)解釋用戶和商品的特征向量,PMF假設(shè)用戶和商品的特征向量均服從高斯先驗(yàn)分布,通過(guò)最大化后驗(yàn)概率的方式來(lái)求解用戶和商品的特征矩陣。
深度學(xué)習(xí)已經(jīng)在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理領(lǐng)域取得巨大的成功,將深度學(xué)習(xí)和推薦系統(tǒng)結(jié)合起來(lái)的模型也受到越來(lái)越多研究者的關(guān)注。如文獻(xiàn)[14]提出,為了緩解評(píng)分矩陣的稀疏性對(duì)協(xié)同過(guò)濾算法的影響,可將商品的內(nèi)容作為輔助信息,首先使用SDEA (降噪自動(dòng)編碼器)[13]提取商品內(nèi)容的一個(gè)非線性特征表示,再將該特征表示結(jié)合到協(xié)同過(guò)濾中。
SDEA是一個(gè)特殊形式的多層感知機(jī)網(wǎng)絡(luò),是一種無(wú)監(jiān)督模型。由三部分構(gòu)成:編碼器,解碼器和重構(gòu)損失函數(shù)。編碼器將輸入x∈d通過(guò)一個(gè)非線性的變換映射到一個(gè)中間表示z∈d′,如式(1)所示,其中,W∈d′×d是權(quán)重矩陣,b∈d′是偏置向量(d′ z=fe(Wx+b) (1) 解碼器將編碼器的輸出z作為輸入,再通過(guò)一個(gè)非線性變換fd重構(gòu)輸入x,如式(2)所示。其中,權(quán)重矩陣W′∈d×d′,常用編碼器的權(quán)重矩陣W的轉(zhuǎn)置矩陣WT來(lái)代替W′,偏置向量b′∈d。 x′=fd(W′z+b′) (2) (3) 但是SDEA在提取文本特征時(shí),用詞袋向量作為輸入,并使用一個(gè)前向反饋網(wǎng)絡(luò)去編碼文本。這種模型結(jié)構(gòu)在處理像文本這樣的序列數(shù)據(jù)時(shí),無(wú)法有效地捕捉文本中的語(yǔ)義信息和上下文信息。如“這篇文章的主題是決策樹,不是隨機(jī)森林”和“這篇文章的主題是隨機(jī)森林,不是決策樹”,這兩句話想表達(dá)的意思完全不一樣,但是經(jīng)過(guò)SDEA編碼后,卻會(huì)得到同樣的表示。其次,我們也無(wú)法知道,經(jīng)過(guò)SDEA編碼后,得到的中間表示z服從什么分布。 本文提出一個(gè)基于變分循環(huán)自動(dòng)編碼器的概率矩陣分解模型(vraeMF),該模型首先使用基于循環(huán)神經(jīng)網(wǎng)絡(luò)的變分自動(dòng)編碼器從商品的描述文本中提取出商品特征向量,再將該特征向量與概率矩陣分解模型相融合,來(lái)補(bǔ)全評(píng)分矩陣。 假設(shè)數(shù)據(jù)集一共有N個(gè)用戶,M個(gè)商品,觀測(cè)評(píng)分矩陣R=[Rij](i=1,2,…,N;j=1,2,…,M)是一個(gè)二元值矩陣,每個(gè)商品有一段長(zhǎng)度為l的描述文本x。我們的任務(wù)是根據(jù)觀測(cè)評(píng)分矩陣R和商品描述文本x來(lái)對(duì)每個(gè)用戶推薦一個(gè)其可能感興趣的商品列表。 本文采用基于循環(huán)神經(jīng)網(wǎng)絡(luò)的變分自動(dòng)編碼器從商品的描述內(nèi)容中提取該商品的內(nèi)容特征表示z。該編碼器結(jié)合了循環(huán)神經(jīng)網(wǎng)絡(luò)和變分自動(dòng)編碼器的優(yōu)點(diǎn):循環(huán)神經(jīng)網(wǎng)絡(luò)由于其本身天然序貫的結(jié)構(gòu)性質(zhì),能更有效地處理文本這樣的序列數(shù)據(jù)。變分自動(dòng)編碼器是一種生成模型,用該編碼器編碼得到的中間表示z服從高斯分布。本節(jié)中我們會(huì)詳細(xì)討論該模型的結(jié)構(gòu),如圖1所示,該模型由三部分構(gòu)成:編碼器,內(nèi)容特征表示z的生成和解碼器。 圖1 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的變分自動(dòng)編碼器 2.2.1 編碼器 2) 雙向動(dòng)態(tài)LSTM層 我們用一個(gè)雙向動(dòng)態(tài)LSTM網(wǎng)絡(luò)作為編碼器。首先由于商品的文本內(nèi)容長(zhǎng)短不一,所以我們采用動(dòng)態(tài)LSTM網(wǎng)絡(luò)。其次,由于傳統(tǒng)RNN能夠存取的上下文信息范圍有限,在處理長(zhǎng)度較長(zhǎng)的序列數(shù)據(jù)時(shí),RNN能將信息串聯(lián)起來(lái)的能力就越來(lái)越弱,為了解決這個(gè)問(wèn)題,我們采用雙向LSTM[15]網(wǎng)絡(luò)。LSTM的關(guān)鍵就是貫穿整個(gè)序列的細(xì)胞單元狀態(tài)Ct和三個(gè)精心設(shè)計(jì)的“門”:遺忘門ft,輸入門it和輸出門Ot,這三個(gè)“門”有選擇的讓信息通過(guò)序列,從而更新細(xì)胞狀態(tài)Ct和隱藏狀態(tài)ht,相應(yīng)的門的計(jì)算公式如下: (4) (5) (6) ht=Ot×tanh(Ct) (7) (8) 2.2.2 商品內(nèi)容特征表示z的生成 (9) (10) z=σ×ε+μ (11) 式中:WF,WB∈k×m,bF,bB∈k,μ,σ∈k,我們將μ和σ2分別視作為k個(gè)高斯分布的均值和方差,并且z~Ν(μ,σ2),所以我們可以從Ν(μ,σ2)采樣生成特征表示z,但是這個(gè)采樣操作對(duì)μ和σ不可導(dǎo),無(wú)法使用通過(guò)梯度下降法來(lái)優(yōu)化,參考文獻(xiàn)[11],我們首先從Ν(0,1)上采樣得到ε后,然后利用式(11)來(lái)計(jì)算z。這種操作下,從編碼器輸出到z,只涉及線性操作,因此,可通過(guò)梯度下降法優(yōu)化。 2.2.3 解碼器 解碼器pθ(x|z)將上一步的商品內(nèi)容特征表示z作為輸入重構(gòu)輸入數(shù)據(jù)x。我們采用長(zhǎng)度和對(duì)應(yīng)編碼器相同的單向LSTM網(wǎng)絡(luò)。其中每個(gè)LSTM單元的隱藏單元數(shù)量跟編碼器一樣為m。和編碼器網(wǎng)絡(luò)不同的是,在解碼器中,我們?cè)O(shè)置初始輸入為0,在后面的每一步中,將上一步的輸出作為下一步的輸入。解碼器中,LSTM網(wǎng)絡(luò)的初始細(xì)胞狀態(tài)值Cinit由z經(jīng)過(guò)式(12)所示的一個(gè)線性變換得到,其中Wd∈m×k,bd∈m。我們希望解碼器在每一步t的輸出和編碼器的輸入盡可能相同。 Cinit=Wdz+bd (12) 2.2.4 訓(xùn) 練 數(shù)據(jù)xi目標(biāo)損失函數(shù)由兩部分構(gòu)成:pθ(z)與qφ(z|xi)的KL散度和重構(gòu)損失,KL散度可以看作是一個(gè)正則因子,用來(lái)衡量?jī)蓚€(gè)分布的相似程度,相應(yīng)的損失函數(shù)如下所示: ξ(θ,φ,xi)=-DKL(qφ(z|xi)‖pθ(z))+ Εqφ(z|xi)[logpθ(xi|z)] (13) 根據(jù)變分貝葉斯理論[11],上式可以簡(jiǎn)化為: (14) 我們通過(guò)隨機(jī)梯度下降法優(yōu)化上述損失函數(shù),得到最優(yōu)的μ和σ,然后用式(11)得到z,作為商品的初始特征向量,用于下一步的概率矩陣分解中。 我們將上一步得到的特征表示z作為商品的初始特征矩陣融合到概率矩陣分解模型中,融合過(guò)程如圖2所示。用戶特征矩陣為U(U∈k×N),商品特征矩陣為V(V∈k×M),這里用戶和商品的特征向量維度和z相同,然后用這兩個(gè)特征矩陣的乘積UTV來(lái)補(bǔ)全評(píng)分矩陣R。 圖2 vraeMF模型框架 2.3.1 融合過(guò)程 (15) 對(duì)商品特征矩陣V,我們假設(shè)其由兩部分構(gòu)成:(1) 由商品內(nèi)容得到的特征向量z;(2) 高斯噪聲ε,用來(lái)優(yōu)化商品特征矩陣。如式(16)、式(17)所示。商品特征矩陣的條件分布可表示為式(18)。 V=z+ε (16) (17) (18) (19) 式(15)-式(19)中:N(x|μ,σ2)表示均值為μ;方差為σ2的高斯分布。Iij是0-1指示函數(shù),如果用戶i對(duì)商品j有過(guò)評(píng)分反饋,則Iij為1,否則為0。 2.3.2 優(yōu)化策略 我們使用最大后驗(yàn)估計(jì)(MAP)來(lái)優(yōu)化用戶和商品的特征矩陣,如下所示: (20) 對(duì)R、U、V的聯(lián)合密度負(fù)對(duì)數(shù)化,最大化后驗(yàn)概率U和V,等價(jià)于求式(21)最小值。 (21) ui←(VIiVT+λUIk)-1VRi (22) vj←(UIjUT+λVIK)-1(URj+λVzj) (23) 用戶特征向量u的優(yōu)化過(guò)程為式(22),Ii是一個(gè)單位對(duì)角矩陣,對(duì)角元素為Ii,j(j=1,2,…,M),Ri是一個(gè)向量,具體值為:Rij(j=1,2,…,M)。商品特征向量的優(yōu)化過(guò)程為式(23),與用戶特征向量?jī)?yōu)化的過(guò)程不同的是,其中考慮了商品內(nèi)容特征表示Z的影響,Ij和Rj的定義和式(22)中的Ii和Ri類似。我們通過(guò)交替的方式,更新U和V,直至收斂。 最后,通過(guò)更新得到U和V來(lái)重構(gòu)評(píng)分矩陣,補(bǔ)全缺失的評(píng)分。用戶i對(duì)商品j的評(píng)分可由(24)式計(jì)算。在推薦過(guò)程中,對(duì)用戶i,我們將Ri的按照值的大小從高到低排序,將排在前面的商品認(rèn)為是該用戶感興趣的商品集。 (24) 我們使用來(lái)自CiteULike的兩個(gè)數(shù)據(jù)集:citeulike-a和citeulike-t。 CiteULike是一個(gè)學(xué)術(shù)資料庫(kù)網(wǎng)站。用戶可以在該網(wǎng)站創(chuàng)建自己的學(xué)術(shù)資料庫(kù),并在庫(kù)中收藏自己感興趣的學(xué)術(shù)文獻(xiàn)。數(shù)據(jù)集包括:(1) 每個(gè)用戶庫(kù)中的文獻(xiàn)列表,代表該用戶感興趣的商品集;(2) 所有文獻(xiàn)的標(biāo)題和摘要,作為商品的描述文本。表1列出了這兩個(gè)數(shù)據(jù)集的統(tǒng)計(jì)情況。在實(shí)驗(yàn)預(yù)處理過(guò)程中,我們刪除了收藏文獻(xiàn)數(shù)據(jù)少于5的用戶。 表1 數(shù)據(jù)集統(tǒng)計(jì)情況 為了分析本文算法的推薦性能,我們?cè)谕拳h(huán)境下分別使用經(jīng)典推薦算法PMF和基于深度學(xué)習(xí)的推薦算法CDL[14]進(jìn)行對(duì)比。在我們的實(shí)驗(yàn)當(dāng)中,Word2Vec詞向量維度為250維,LSTM隱藏層單元數(shù)量為150維。用戶和商品的特征向量維度和文獻(xiàn)[14]相同,為50。對(duì)于參數(shù)λU和λV的設(shè)置,我們?nèi)≡诿糠N模型下結(jié)果最好的參數(shù)值,具體如表2所示。 表2 參數(shù)設(shè)置 由于本文使用的數(shù)據(jù)集中,用戶對(duì)商品的評(píng)分都是隱式反饋,只有0、1兩種數(shù)據(jù)。用戶對(duì)商品的評(píng)分為1代表對(duì)該商品感興趣。用戶對(duì)一個(gè)商品的評(píng)分為0,則有兩種情況:一是用戶對(duì)該商品不感興趣,二是用戶沒(méi)有意識(shí)到該商品的存在。所以相比準(zhǔn)確率,召回率是一個(gè)更合適的評(píng)測(cè)指標(biāo)。本文采用recall@M作為實(shí)驗(yàn)的評(píng)測(cè)標(biāo)準(zhǔn),對(duì)于每個(gè)用戶,recall@M定義為: 3.4.1 試驗(yàn)安排 我們分兩種情況在上述兩個(gè)數(shù)據(jù)集上來(lái)測(cè)試三種模型的推薦性能:稀疏情況和稠密情況。對(duì)于每個(gè)用戶,我們從隨機(jī)選取1個(gè)該用戶收藏過(guò)的商品記錄作為稀疏情況下的訓(xùn)練樣本,然后隨機(jī)選取10個(gè)該用戶收藏過(guò)的商品記錄作為稠密情況下的訓(xùn)練樣本。兩種情況下,將剩下的數(shù)據(jù)作為測(cè)試樣本。將5次交叉驗(yàn)證結(jié)果的平均值作為實(shí)驗(yàn)的最終結(jié)果。 3.4.2 實(shí)驗(yàn)結(jié)果與分析 表3列出了在稀疏情況下三種模型在兩個(gè)數(shù)據(jù)集下的recall@200值,我們可以得出:在稀疏情況下,vraeMF和CDL的結(jié)果都要優(yōu)于只使用評(píng)分矩陣的PMF。其中在citeulike-a數(shù)據(jù)集下,CDL比PMF要高出17%左右,vraeMF比PMF要高出21%左右。在citeulike-t數(shù)據(jù)集下,CDL比PMF要高出24%左右,vraeMF比PMF要高出27%左右。說(shuō)明將商品內(nèi)容的特征表示融合到概率矩陣分解中,能夠提高推薦性能。 表3 稀疏情況下recall@200 % 圖3、圖4為稀疏情況下,三種模型的recall@M值隨著M變化情況,圖5、圖6為稠密情況下三種模型的recall@M值隨著M變化情況。可以看出:(1) 在稀疏和稠密兩種情況下,vraeMF的recall@M均高于CDL。說(shuō)明vraeMF在根據(jù)商品內(nèi)容提取特征表示的時(shí)候,由于考慮了文本內(nèi)容的語(yǔ)義信息和上下文信息,能更好地表示商品特征。(2) 我們由表1可知,數(shù)據(jù)集citeulike-t的評(píng)分矩陣和商品內(nèi)容比citeulike-a更稀疏,根據(jù)實(shí)驗(yàn)結(jié)果,即使在稀疏的情況下,vraeMF在citeulike-t上的recall@M比citeulike-a高出5%左右,說(shuō)明vraeMF更適合與處理稀疏的文本和評(píng)分矩陣。 圖3 citeulike-a稀疏情況recall@M 圖4 citeulike-t稀疏情況recall@M 圖5 citeulike-a稠密情況recall@M 圖6 citeulike-t稠密情況recall@M 本文針對(duì)概率矩陣分解中的稀疏問(wèn)題,提出一種基于變分循環(huán)自動(dòng)編碼器的概率矩陣分解方法。該方法首先從商品內(nèi)容信息中提取出一個(gè)服從高斯分布的商品特征表示,然后將該特征表示融合到概率矩陣分解中來(lái)緩和稀疏問(wèn)題。實(shí)驗(yàn)結(jié)果表明,本文方法在評(píng)分矩陣極其稀疏的情況下,能提高推薦準(zhǔn)確性。此外,由于本文算法只考慮了提取初始商品特征表示,在此后的研究中,可以考慮將用戶初始特征表示也考慮進(jìn)來(lái)。2 本文算法
2.1 問(wèn)題定義
2.2 商品特征提取
2.3 商品特征融合
2.4 預(yù) 測(cè)
3 實(shí) 驗(yàn)
3.1 數(shù)據(jù)集
3.2 參數(shù)設(shè)置
3.3 評(píng)測(cè)標(biāo)準(zhǔn)
3.4 實(shí)驗(yàn)安排與結(jié)果比較
5 結(jié) 語(yǔ)