馮永 陳以剛 強保華
汽車相對于普通生活用品,屬于特殊商品,一是價格高,在購買時用戶相對更謹(jǐn)慎;二是用戶購買需求復(fù)雜,決策過程的總體時間相對較長.由于汽車自身具有復(fù)雜度高、交易和消費頻次低等特點,所以在推薦任務(wù)執(zhí)行過程中,會遇到用戶相關(guān)領(lǐng)域知識匱乏、用戶歷史交易數(shù)據(jù)少、商品屬性復(fù)雜等困難.
針對相關(guān)領(lǐng)域知識匱乏和商品屬性復(fù)雜,研究者一般通過構(gòu)建相關(guān)知識領(lǐng)域?qū)<蚁到y(tǒng)應(yīng)對.這些專家系統(tǒng)通過與用戶進行信息交互來準(zhǔn)確獲得用戶的信息及需求,在此基礎(chǔ)上結(jié)合已有的領(lǐng)域?qū)I(yè)知識體系協(xié)同計算分析,從而對用戶提供高效的推薦[1].然而,專家系統(tǒng)的構(gòu)建過程相對繁瑣,在系統(tǒng)構(gòu)建初期,需要將領(lǐng)域?qū)<姨峁┑男畔⒑椭R體系轉(zhuǎn)化成系統(tǒng)能理解的數(shù)據(jù)模型,這些數(shù)據(jù)模型主要包括專業(yè)知識庫、規(guī)則集合等,這個過程需要花費大量的時間和人力.同時,在整理專業(yè)知識和規(guī)則時,由于人為將需求和屬性特征關(guān)聯(lián),導(dǎo)致專家系統(tǒng)的知識庫和規(guī)則庫產(chǎn)生一定的片面性和主觀性,最終對推薦結(jié)果形成干擾.針對用戶歷史交易數(shù)據(jù)少,一些研究者利用社交網(wǎng)絡(luò)來獲取用戶更多的相關(guān)信息來彌補信息缺失,而另外一些研究者則使用項目信息(例如項目描述、簡介、評論文本信息)進行處理.雖然在社交網(wǎng)絡(luò)和評論文本這兩個領(lǐng)域的研究已分別有了矚目的成果,但是將社交網(wǎng)絡(luò)和評論文本相互結(jié)合的研究卻相對較少.社交網(wǎng)絡(luò)為用戶提供了豐富的社交信息,可緩解用戶歷史交易記錄少的困難,而評論文本分析則可緩解用戶相關(guān)領(lǐng)域知識匱乏和商品屬性復(fù)雜帶來的負(fù)面影響.
本文首次將評論文本與社交網(wǎng)絡(luò)信息結(jié)合應(yīng)用于汽車商品推薦領(lǐng)域,一方面構(gòu)建購買用途需求社交圈,在此社交圈的基礎(chǔ)上分析個人偏好和偏好相似度兩種社交因素,并給出合理的量化計算方法.另一方面,以評論文本為汽車的附屬信息,利用卷積神經(jīng)網(wǎng)絡(luò)提取文本隱特征.在設(shè)計汽車推薦模型時,融合社交環(huán)境因素和評論文本卷積網(wǎng)絡(luò)獲得的附加屬性信息,從而提升汽車推薦系統(tǒng)的效果.
綜上,在對社交網(wǎng)絡(luò)和評論行為兩方面的數(shù)據(jù)充分挖掘的基礎(chǔ)上,設(shè)計汽車推薦模型這一研究在技術(shù)理論和現(xiàn)實應(yīng)用層面都具有重要的意義和價值.
近年來,研究人員提出了幾種基于社會信任的推薦系統(tǒng)來提高推薦準(zhǔn)確性.事實上,用戶可以信任不同類別中的不同朋友.基于這一概念,最近有研究引入了“推斷的信任圈”概念[2],用于社交網(wǎng)絡(luò)中的推薦,考慮人際信任的影響.他們專注于推斷類別特定的社交信任圈.然而,一些社交網(wǎng)絡(luò)用戶喜歡選擇與他們的個人偏好密切相關(guān)的產(chǎn)品,很少考慮人際影響.研究者探索使用矩陣分解工具設(shè)計社交推薦從而解決“冷啟動”問題.Jamali等[3]在社會網(wǎng)絡(luò)中探索了這類方法,將信任傳播機制加入到推薦模型中.潘濤濤等[4]利用置信系數(shù)區(qū)分評分值之間的可信度.信任傳播已被證明是社會網(wǎng)絡(luò)分析和信任推薦中的關(guān)鍵因素.Yang等[5]提出社會網(wǎng)絡(luò)中“信任圈”的概念.他們的模型優(yōu)于BasicMF[6]和SocialMF[3].用戶之間的信任值由矩陣S表示,用戶u與用戶v的有向加權(quán)社會關(guān)系由正值表示.其基本思想是用戶特征應(yīng)該類似于他/她的好友的特征的平均值,其種類為c中的權(quán)重.除了文獻[5]中的人際影響因素外,Jiang等[7]提出另一個重要因素:個人偏好.他們對中國的人人網(wǎng)數(shù)據(jù)集和騰訊微博數(shù)據(jù)進行了實驗,結(jié)果表明社會語境因素(個人偏好和人際影響)在模型中有重要的意義.例如張燕平等[8]利用歷史記錄獲取用戶聲譽來建立聲譽推薦系統(tǒng).Qian等[9]提出了一種結(jié)合用戶人際興趣相似性、人際影響力和個人興趣因素的個性化推薦模型(Personalized recommender model,PRM).Wang等[10]提出使用社會傳播模擬和內(nèi)容相似性分析來更新用戶內(nèi)容矩陣.他們還構(gòu)建了一個聯(lián)合的社會內(nèi)容空間來衡量用戶和視頻之間的相關(guān)性,為視頻導(dǎo)入和重新分享推薦提供了高度的準(zhǔn)確性.Feng和Qian[2]提出了一個推薦模型,以滿足用戶(特別是對有經(jīng)驗的用戶)的個性.此外,他們的方法不僅考慮個人偏好,而且結(jié)合了人際信任影響和人際興趣相似性.
隱含狄利克雷分布(Latent Dirichlet allocation,LDA)和棧式降噪自編碼器(Stacked denoising auto-encoder,SDAE)等基于文檔建模的方法主要是利用了評論、摘要或概要的項目描述文檔[11?14].具體來說,Wang等[11]提出了協(xié)同主題回歸(Collaborative topic regression,CTR),在概率方法中結(jié)合了LDA和協(xié)同過濾.而CTR的變體是將LDA集成到協(xié)同過濾中通過使用不同的集成方法來分析項目描述文檔[12?13].Wang等[6]提出了協(xié)同深度學(xué)習(xí)(Collaborative deep learning,CDL),將SDAE整合到概率矩陣分解(Probabilistic matrix factorization,PMF)中,從而在評分預(yù)測精度方面產(chǎn)生更準(zhǔn)確的隱義模型[14].
但是,現(xiàn)有的集成模型不能完全捕獲文檔信息,因為它們采用詞袋模型,該模型假定忽略如周圍單詞和單詞順序文檔的上下文信息.但文檔內(nèi)的這種細(xì)微差異也是成為更深入理解文檔的重要因素,并且進一步理解有助于改進評分預(yù)測準(zhǔn)確度.為了解決上述問題,部分研究者嘗試使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN).CNN通過本地接收場、共享權(quán)重和亞采樣的建模組件有效地捕獲圖像或文檔的局部特征[15?16].因此,CNN的使用有助于更深入地理解文檔,并且產(chǎn)生比LDA和SDAE更好的隱義模型,特別是缺乏評分的描述文檔.此外,CNN能夠利用預(yù)訓(xùn)練的詞嵌入模型,例如Glove[17],以便更好地理解項目描述文檔,而LDA和SDAE不能利用預(yù)訓(xùn)練的詞嵌入模型.
然而,現(xiàn)有的CNN不適合推薦任務(wù).具體來說,常規(guī)CNN主要解決預(yù)測詞、短語或文檔的標(biāo)簽分類任務(wù).相反,推薦的目的通常是回歸任務(wù),旨在準(zhǔn)確地逼近用戶對項目的評分.因此,現(xiàn)有的CNN不能直接應(yīng)用于本文的推薦任務(wù).為了解決該技術(shù)問題,Kim等[18]提出了一種文檔上下文感知推薦模型—卷積矩陣分解(Convolutional matrix factorization,ConvMF),利用CNN捕獲項目描述文檔的上下文信息,進一步增強評分預(yù)測精度.
本文對汽車推薦系統(tǒng)進行研究,為了更好地理解用戶的評分行為,需要挖掘用戶的個性化特征.本文從兩方面入手:1)社交環(huán)境對用戶的影響,在特定的車型下構(gòu)建購買用途需求的社交圈,在此社交圈的基礎(chǔ)上,分析用戶的個人偏好和偏好相似度兩個社交因素,并計算量化其社交關(guān)系;2)分析評論文本對項目的影響,通過深度學(xué)習(xí)技術(shù)構(gòu)建了四層卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)文本特征.最終,本文提出了新穎的SCTCMAR汽車推薦模型,該模型融合了社交影響和評論文本特征,即用戶的個人偏好、偏好相似度以及項目的評論文本特征,最終將這三個因素注入到推薦模型中體現(xiàn)社交因素和評論文本特征因素對用戶決策過程的影響.
本文提出的模型如圖1所示,中間的點線框為PMF,左邊線框是社交因素,右邊線框是CNN.該模型在概率矩陣分解(PMF)的基礎(chǔ)上,融合社交因素對用戶的影響和評論文本特征對項目的影響,提出了SCTCMAR模型.推薦模型中的符號定義見表1.
假設(shè)有N個用戶和M個項目以及真實評分矩陣,目標(biāo)是找到用戶和項目的隱義模型,求其乘積來重構(gòu)評分矩陣R.通過概率矩陣分解模型使用W,F和Q不斷地影響用戶和項目的隱義模型,從而求其乘積得到預(yù)測u到i的評分值,不斷逼近預(yù)測值與實際值之間的差距,從而提高推薦精準(zhǔn)度.在概率上真實評分的條件概率分布如下:
其中,N(x|u,σ2)表示均值為u,方差為σ2的高斯分布概率密度函數(shù),Iui是指示函數(shù),如果用戶u對項i評價過,則Iui=1,反之為0.
表1 推薦框架的符號定義Table 1 Notations in recommender framework
圖1 SCTCMAR的圖模型Fig.1 Graphical model of SCTCMAR
對于用戶隱義模型有三個因素:1)為了防止過擬合的0均值高斯先驗概率;2)在已知該用戶社交圈中朋友的偏好隱特征時,用戶隱特征的條件概率;3)在已知該用戶社交圈中個人偏好隱特征時,用戶隱特征的條件概率.具體定義為
與常規(guī)PMF中的項隱義模型不同,我們假設(shè)從三個變量生成項目隱義模型.1)CNN中的內(nèi)部權(quán)重W;2)表示項i的文檔Xi;3)εi變量作為高斯噪聲.這使我們能夠進一步優(yōu)化項隱義模型的評分.因此,最終項隱義模型為
其中,cnn表示卷積運算.
對于W中的每個權(quán)重wk,設(shè)置最常用0均值高斯先驗概率.具體定義如下:
于是,項隱義模型的條件概率如下:
其中,X是項目的描述文檔集合.為了建立CNN和PMF之間的橋梁,使用從CNN模型獲得的評論隱向量作為高斯分布均值,并且項的高斯噪聲作為高斯分布的方差,這有助于完全分析描述文檔和評分.
接下來將按以下過程詳細(xì)介紹:
1)為了確定社交環(huán)境的影響范圍,需要構(gòu)建基于購買用途需求的社交圈;
2)在該社交圈的基礎(chǔ)上分別分析用戶的個人偏好和偏好相似度;
3)使用卷積神經(jīng)網(wǎng)絡(luò)提取評論隱特征.
2.1.1 社交圈
給定用戶u,類別c和用途t,本文使用Yang等[2]提出的推理規(guī)則為當(dāng)前類別評分用戶建立社交圈.
定義1.基于購買用途需求的社交圈.在特定類別c下,對于用途t,原始社交網(wǎng)絡(luò)SN(Social network)滿足以下條件的所有用戶v構(gòu)成u的社交圈,即.
1)在SN中用戶u和用戶v有直接社交關(guān)系,即SNu,v=1;
按照給出的說明,圖2展示了購買用途需求的社交圈的構(gòu)造過程.每個用戶購買用途需求使用括號標(biāo)注在用戶旁邊,例如用戶u的購買用途需求為t1,t2,t3.用戶u為了構(gòu)造特定購買用途需求t1下的社交圈,首先需要在SN中找出與u有直接社交關(guān)系的用戶集合,再按照條件進行篩選,最后找到用戶集合是用戶u在購買用途需求t1下的社交圈.同理,可推出u在t1和t2下的社交圈和.下文對社交影響中的社交因素的有關(guān)研究全部限制在購買用途需求的社交圈范疇內(nèi).
2.1.2 個人偏好
Feng和Qian[2]提出了一種基于項類別分布向量來衡量用戶個人偏好的方法,但忽略了歷史用戶評分值.然而,u對項i的評分值反映了u喜歡i的程度.因此,將項類別分布與用戶評分?jǐn)?shù)據(jù)結(jié)合,可以更精確地學(xué)習(xí)用戶的個人偏好.關(guān)于類別c,可以從評分矩陣Rc獲得用戶評分?jǐn)?shù)據(jù).矩陣Rc的每一行歸一化如下:
圖2 構(gòu)造購買用途需求的社交圈Fig.2 The inference process of purpose-based social circle of users
其中,Icn是指示函數(shù),如果項i屬于類別cn,則Icn=1,反之亦然.n是目錄的數(shù)量.
定義2.個人偏好是用戶u在特定類別c下對汽車主題的偏愛分布情況,用表示.
如果u在類別c中具有評分,則其個人偏好應(yīng)該類似于項類別分布向量的加權(quán)平均值.u在類別c中的個人偏好為
如果u從來沒有為類別c中的項評分,作為其個人偏好的近似值,使用屬于他的社交圈的朋友的個人偏好的平均值.從而
在實踐中,用戶u的個人偏好與項目i的主題的相關(guān)性被視為用戶u在項目i上的隱實際評分值,用Qu,i表示.
其中,Cosin表示兩個向量間的余弦相似度.
2.1.3 偏好相似度
定義3.偏好相似度是在特定類別c下,用戶u和v之間的主題偏好向量相似度,用表示.具體來說,本文采用Feng和Qian[2]提出的方法來度量偏好相似度.
歸一化后如下:
2.1.4 評論隱特征
CNN的目標(biāo)是從汽車評論文本數(shù)據(jù)中學(xué)習(xí)文本的隱特征向量.圖3顯示了CNN的結(jié)構(gòu),包括Embedding層、卷積層、Pooling層和輸出層.
圖3 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Structure of convolutional neural network
1)Embedding層
該層將預(yù)處理的汽車評論文本變換成表示下一個卷積層文檔的密集矩陣.具體來說,對于作為l個詞的序列文檔,通過連接文檔中詞的向量將文檔表示為矩陣.詞向量由隨機初始化或用詞向量嵌入模型GloVe預(yù)先訓(xùn)練好,通過優(yōu)化過程進一步訓(xùn)練,文檔矩陣D∈Rp×l變?yōu)?/p>
其中,l為文檔長度,p為wi的嵌入維度大小.
2)卷積層
卷積層提取上下文特征.
定義4.上下文特征向量用來提取汽車評論文本的上下文信息的向量,用表示.
其中,?是卷積算子,是的偏差,f是非線性激活函數(shù).在諸如sigmoid、tanh和ReLU的非線性激活函數(shù)中,使用ReLU來避免梯度消失的問題,導(dǎo)致優(yōu)化收斂慢并且可能導(dǎo)致差的局部最小值[19?20].帶有權(quán)重文檔的上下文特征向量由下式構(gòu)成:
然而,一個共享權(quán)重只能捕獲一種類型的上下文特征.因此,使用多個共享權(quán)重來捕獲多種類型的上下文特征,能夠生成與Wc數(shù)量nc一樣多的上下文特征向量.例如中的.
3)Pooling層
Pooling層從卷積層提取表征特征,并且通過構(gòu)建固定長度特征向量的池化操作來處理文檔的可變長度.在卷積層之后,文檔被表示為nc個上下文特征向量,其中每個上下文特征向量具有可變長度(即l?ws+1個上下文特征).然而,這種表示存在兩個問題:1)存在太多的上下文特征ci,其中大多數(shù)上下文特征可能不會幫助增強其性能;2)上下文特征向量的長度變化,使得難以構(gòu)建接下來的層.因此,利用max-pooling,通過從每個上下文特征向量中僅提取最大上下文特征,將文檔的表示減少到nc個固定長度向量中.
4)輸出層
通常,在輸出層,從前一層獲得的高級特征應(yīng)該被轉(zhuǎn)換用于特定任務(wù).因此,在推薦任務(wù)的用戶和項目隱義模型的k維空間上投影,通過使用常規(guī)非線性投影最終產(chǎn)生評論隱向量.
定義5.評論隱向量是表示汽車評論文本中的隱義特征向量,又作為評論隱特征,用表示.
通過上述過程,CNN架構(gòu)以預(yù)處理的汽車評論文本為輸入函數(shù),返回每個文檔的隱向量作為輸出.
其中,W表示所有權(quán)重和偏差變量,以防止混亂.Xi表示項目i的文檔,si表示項目i的評論隱向量.
本文采用低階矩陣分解技術(shù)將用戶–評分矩陣分為用戶隱特征矩陣UT∈Rn×k和汽車隱特征矩陣V∈Rm×k,k是隱空間的向量維度,對于每個類別c,汽車推薦模型SCTCMAR的目標(biāo)函數(shù)為
針對推薦模型SCTCMAR的目標(biāo)函數(shù),使用梯度下降法進行優(yōu)化,將看作變量并求偏導(dǎo).
求偏導(dǎo)后同時更新用戶隱特征向量和汽車隱特征向量,然后把更新后的隱特征向量代入目標(biāo)函數(shù)中重新計算,使目標(biāo)函數(shù)值最快速度下降,循環(huán)迭代該過程直到目標(biāo)函數(shù)收斂為止,最終經(jīng)過訓(xùn)練得到用戶隱特征矩陣和汽車隱特征矩陣.
然而,由于W與CNN結(jié)構(gòu)中的特征(例如max-pooling層和非線性激活函數(shù))密切相關(guān),所以W不能像對U和V一樣由梯度下降的方式來優(yōu)化.然而,當(dāng)U和V是暫時恒定時,我們觀察到L可以被解釋為具有如下的L2正則化項的平方誤差函數(shù).
其中,constan表示返回一個常量.
W是每一層的權(quán)重和偏置,為了優(yōu)化W,使用反向傳播算法.重復(fù)整個優(yōu)化過程(U,V,W交替地更新)直到收斂.通過優(yōu)化U,V,W,最終可以預(yù)測用戶對汽車的未知評分.
本文實驗主要使用網(wǎng)絡(luò)爬蟲從Internet抓取的汽車基本信息、用戶信息、用戶對汽車評論信息和與汽車有關(guān)的語料文本集.汽車和用戶數(shù)據(jù)主要來源于汽車之家和網(wǎng)易汽車,預(yù)訓(xùn)練詞嵌入模型主要將語料數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù),通過使用GloVe工具1GloVe,available:https://nlp.stanford.edu/projects/glove,2017來構(gòu)建.該工具使用的是一種無監(jiān)督學(xué)習(xí)算法,主要用于獲取詞特征向量,本質(zhì)上是具有加權(quán)最小二乘的log-bilinear模型,其模型的主要來源于觀察的現(xiàn)象,即詞–詞共同出現(xiàn)可能性的比例具有編碼某種形式的意義的潛力.此外,分詞過程中使用了數(shù)據(jù)堂和搜狗輸入法提供的汽車領(lǐng)域字典以及爬取的互聯(lián)網(wǎng)上的汽車字典資源,如表2所示.
汽車評論文本預(yù)處理的主要任務(wù)包括,數(shù)據(jù)清理和中文分詞兩部分.1)清理:由于實驗數(shù)據(jù)主要是通過網(wǎng)絡(luò)爬蟲技術(shù)從相關(guān)的汽車網(wǎng)站上抓取得到的,所以數(shù)據(jù)信息的格式有很多不規(guī)范的地方,存在結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù).得到的數(shù)據(jù)中存在HTML標(biāo)簽、Javascript代碼、廣告標(biāo)語等不同形式的噪點,需要進行去噪、清洗,轉(zhuǎn)為合適的數(shù)據(jù)結(jié)構(gòu),便于使用和理解.去噪主要采用正則表達式,對廣告標(biāo)語主要靠人工清理.2)分詞:在自然語言處理的相關(guān)研究工作中,分詞占據(jù)著重要的地位.對于中文語料,分詞工作更是如此.本文采用ICTCLAS2ICTCLAS,available:http://ictclas.nlpir.org,June 10,2017系統(tǒng)作為研究工作中的分詞工具,主要使用基于詞典的分詞功能.
爬取的數(shù)據(jù)經(jīng)過清理、去重和整合處理之后,最終數(shù)據(jù)集中有266995個用戶信息、702輛汽車信息以及用戶購買的汽車信息,其中每一個用戶的購車用途需求有多個,例如上班、接送孩子、自駕游等;汽車車型有11種類型,如跑車、小轎車、SUV、皮卡等.用戶對其購買汽車的評分主要是1~5的整數(shù).本文將數(shù)據(jù)集分成5組,進行5-fold交叉驗證來評估算法的性能.
針對汽車的推薦性能,主要從三個方面進行評價:1)汽車推薦列表中用戶真正購買的比例;2)在用戶–汽車測試集中向用戶成功推薦的比例;3)汽車推薦列表中用戶最終購買汽車的排名.評價指標(biāo)為精確率(Precision)和召回率(Recall).
表2 數(shù)據(jù)集信息列表Table 2 The list of datasets
其中,T為用戶數(shù),N表示系統(tǒng)為用戶推薦的汽車列表長度,H指最終購買汽車推薦列表中的汽車的用戶數(shù).
對于汽車這一特定商品,還采用平均倒序排名(Average reciprocal hit rank,ARHR)[21]對推薦排序準(zhǔn)確度進行評價.排序準(zhǔn)確度評估指標(biāo)衡量的是系統(tǒng)產(chǎn)生的推薦集中商品的排序與用戶個人偏好的相似度,平均倒序排名衡量推薦系統(tǒng)向用戶輸出的效用性,用戶最終購買的商品在推薦列表中的排名越高,該推薦系統(tǒng)的效用性越強.在推薦列表中,排序位置pi的成功推薦效果值設(shè)置為1/pi,然后進行迭代,迭代后求平均值得到平均倒序排名值.具體如下:
為了驗證提出的汽車推薦模型SCTCMAR的有效性,選用具有代表性的推薦算法與SCTCMAR進行比較,被選入實驗對比的四種推薦算法如下:
1)FMM(Flexible mixture model).由Si等[22]提出的靈活混合模型.FMM通過將用戶和項目同時聚類在一起,同時進行協(xié)同過濾來擴展現(xiàn)有的分區(qū)/聚類算法,而不必假定每個用戶和項目只應(yīng)屬于單個集群.實驗中,按照該算法的主要思想,將用戶和汽車以購買用途需求分別進行聚類,實現(xiàn)了FMM模型,最終完成測試用戶的汽車推薦任務(wù).
2)TR(Trust rank).由Zou等[23]提出的算法.該算法利用可用于電子商務(wù)的用戶信任網(wǎng)絡(luò)來處理冷啟動問題給推薦系統(tǒng)帶來的限制.用戶信任網(wǎng)絡(luò)由用戶在其中指定的友誼或信任關(guān)系形成,主要通過應(yīng)用個性化的PageRank算法,擴展了給定用戶的朋友,即其他具有類似購買記錄的人的朋友.在實驗中,根據(jù)該模型的主要想法,構(gòu)造一個以購車用戶組成的社交網(wǎng)絡(luò),并且實現(xiàn)了該模型和算法.
3)RS(Random sampling).從整個汽車信息集中隨機抽取N輛汽車向用戶推薦,作為其他算法的對比實驗.
4)SCTCMAR+.本文提出的推薦算法的另外一個版本,該方法使用了GloVe預(yù)訓(xùn)練詞嵌入模型.
現(xiàn)有的深度學(xué)習(xí)平臺和工具種類繁多[24],本文使用Python和Keras3F.Chollet.Keras.http://github.com/fchollet/keras,2017庫來實現(xiàn)本文模型SCTCMAR.良好的學(xué)習(xí)率策略可以顯著提高深度學(xué)習(xí)模型的收斂速度,減少模型的訓(xùn)練時間[25].為了訓(xùn)練CNN的權(quán)重,本文使用小批量的RMSprop(自動調(diào)節(jié)學(xué)習(xí)速率的深度學(xué)習(xí)優(yōu)化方法),每個小批量包括128個訓(xùn)練項目.至于詳細(xì)的CNN架構(gòu),本文使用以下設(shè)置:1)將文檔的最大長度設(shè)置為3000.2)SCTCMAR:隨機初始化維度大小為50的詞潛在向量.SCTCMAR+:通過尺寸大小為50的預(yù)訓(xùn)練詞嵌入模型初始化詞潛在向量.兩種詞潛在向量都將通過優(yōu)化過程訓(xùn)練.3)在卷積層中,使用的各種窗口大小為3,4和5,并且使用每個窗口大小的100個共享權(quán)重.4)代替與CNN的權(quán)重相關(guān)的L2正則化器,使用dropout和設(shè)置dropout率為0.2以防止CNN過度擬合.本文按照原文的調(diào)優(yōu)成果將FMM算法中的用戶和汽車種類分別設(shè)為10和20,對于TR算法和其他參數(shù)的設(shè)置設(shè)為默認(rèn)值.
在實驗對比中,首先對比N取值為5,10,15,20的情況下的精確率和召回率.表3、表4和圖4是各算法的精確率和召回率的比較,以及SCTCMAR+相對于其他方法提升百分比的實驗結(jié)果.
表3、表4和圖4表明,SCTCMAR相較于其他方法在精確率和召回率上的性能好,進一步驗證了算法對于汽車這個特殊商品的推薦有效性.無論是精確率還是召回率,隨機抽取算法比其他各個算法都低很多.具體來說,在精確率方面,從圖4(a)可以看出,SCTCMAR汽車推薦模型比FMM和TR推薦算法性能要好,相對于FMM在N=5時提升了46.1%,而相對于TR在N=10時提高了41.1%;召回率方面,從圖4(b)可以看出,當(dāng)N=5時,SCTCMAR達到54.6%,相對于FMM上升了43%,TR上升了25.8%.從圖4可以看出,N值越大,各個算法的推薦精準(zhǔn)率逐漸下降,即推薦列表中的汽車越來越多,算法錯誤推薦的概率也越大;而召回率的走勢與精確率相反,隨著N值增大,召回率逐漸上升,N值越大,算法預(yù)測到用戶最終購買汽車的概率越大.
表3 本文提出的算法與其他算法在推薦精確率上的比較及提升百分比Table 3 Precision comparison and improvement between our algorithm and other algorithms
表4 本文提出的算法與其他算法在推薦召回率上的比較及提升百分比Table 4 Recall comparison and improvement between our algorithm and other algorithms
圖4 在精確率和召回率上本文提出的算法與其他算法的對比Fig 4 Precision and recall comparisons between our algorithm and other algorithms
但是,從表3和圖4可以發(fā)現(xiàn),相對于一般消費商品來說,本文中各個算法精確率都很低,主要是由精確率的定義和汽車這種特定商品的屬性造成的.從精確率的定義來看,它計算推薦列表中用戶真正購買的汽車比例.對汽車而言,用戶通常情況下只會選購列表中的一輛,即所占比例不會超過1/N.
為了對系統(tǒng)推薦準(zhǔn)確性進行更好的評估,本文還采用了平均倒序排名ARHR[21]這一評價標(biāo)準(zhǔn).平均倒序排名值越大,表明用戶真正購買的汽車在推薦列表中的排名越靠前,對于購買汽車用戶的推薦效果越優(yōu).實驗結(jié)果如表5和圖5所示.
從圖5可以看出,各算法遠(yuǎn)比隨機抽取的平均倒序排名高.在汽車這種特定領(lǐng)域商品Top-N推薦任務(wù)中,SCTCMAR相比于FMM和TR算法在平均倒序排名上有更好的推薦準(zhǔn)確度.進一步可知,N值越大,各推薦算法的平均倒序排名越高,最終慢慢趨于平穩(wěn).說明該評價標(biāo)準(zhǔn)對于汽車商品推薦的有效性,也進一步說明將社交因素與評論文本特征融合到推薦模型的有效性.
表5 各算法在平均倒序排名上的對比Table 5 ARHR comparison between our algorithm and other algorithms
圖5 各算法在平均倒序排名上的對比Fig 5 ARHR comparison between our algorithm and other algorithms
1)預(yù)訓(xùn)練詞嵌入模型的影響
與協(xié)同過濾的主題回歸(CTR)和協(xié)同深度學(xué)習(xí)(CDL)不同,SCTCMAR能夠利用預(yù)先訓(xùn)練的詞語嵌入模型,例如GloVe[17].因此,通過使用GloVe預(yù)先訓(xùn)練的詞嵌入模型初始化SCTCMAR的CNN的嵌入層來分析預(yù)訓(xùn)練的詞嵌入模型對汽車推薦任務(wù)的影響.表3~5顯示了SCTCMAR+與SCTCMAR在數(shù)據(jù)集上的實際變化,精確率、召回率和平均倒序排名都有不錯的提升,但是可以看出詞嵌入模型對SCTCMAR的影響與推薦列表長度N沒有直接關(guān)系.為了進一步分析預(yù)訓(xùn)練詞嵌入模型的影響,實驗選取皮卡(pika)、面包(mianbao)、小型車(small)和緊湊型車(compact)四種車型在N=5時的平均倒序排名影響.其中車型的評分?jǐn)?shù)據(jù)稀疏度是pika>mianbao>small>compact.實驗結(jié)果如表6所示.
表6 本文算法使用詞嵌入模型在平均倒序排名上的影響Table 6 ARHR comparison between our algorithm with pre-trained word embedding model
在表6中,盡管有微小的變化,可以觀察到一致的趨勢,評分?jǐn)?shù)據(jù)越來越稀疏,預(yù)先訓(xùn)練的詞嵌入模型有助于提高SCTCMAR的性能.因為預(yù)先訓(xùn)練的詞嵌入模型的語義和句法信息補充了評分的不足.還可以觀察到,給定足夠數(shù)量的評分來訓(xùn)練,則預(yù)先訓(xùn)練的詞嵌入模型使SCTCMAR的性能惡化.換句話說,由于評分直接反映了用戶和項目之間的關(guān)系,最好是充分利用評分信息,而不是在評估數(shù)據(jù)相對密集的時候,使用從外部文檔獲得的預(yù)先訓(xùn)練的詞嵌入模型.
2)因素組合的影響
在實驗中將研究的因素的參數(shù)設(shè)為一定值,將剩余其他的因素的參數(shù)設(shè)為0.在SCTCMAR模型中,對于個人偏好因素,設(shè)定γ=5和cnn(Wc,Xc)=λw=β=0,對于偏好相似度因素,設(shè)定β=5和cnn(Wc,Xc)=λw=γ=0;對于評論隱特征因素設(shè)定β=γ=0.SCTCMAR模型有兩個社交因素,因此性能比較時設(shè)置相同的參數(shù).
我們系統(tǒng)地比較了不使用因素以及使用1個、2個、3個因素的各種方法,比較結(jié)果如圖6所示.UP,PS,CTC分別表示SCTCMAR中的個人偏好、偏好相似度和評論隱特征.+表示因素組合.通過比較可以發(fā)現(xiàn),所有因素對提高平均倒序排名都有積極影響.進一步,SCTCMAR模型中的每一個因素比PMF中的每個社會因素都有更好的表現(xiàn).此外,SCTCMAR的多因素組合比其他方法更好,例如FMM,Trust rank和Random sampling.
本文主要針對汽車推薦進行研究,重點探索社交因素和評論文本因素對用戶購車決策過程的影響,融合以上兩方面提出了新穎的SCTCMAR推薦模型.雖然實驗結(jié)果表明SCTCMAR模型在一定程度上改善了推薦性能,但是還沒有考慮用戶購車需求與決策過程中更多的關(guān)聯(lián)關(guān)系以及更多的汽車屬性信息.下一步工作將考慮將更多的汽車屬性信息和交互關(guān)系信息融入到推薦模型中,進一步提高推薦精準(zhǔn)度,并找到更有趣的規(guī)律.
圖6 本文算法多因素聯(lián)合對平均倒序排名的影響Fig 6 ARHR line chart of impact of factors combination in our model