馮 勇,韓曉龍,顧兆旭,王 龍,徐孟陽,劉志國
1(遼寧大學 信息學院,沈陽 110036)2(遼寧輕工職業(yè)學校 計算機系,遼寧 大連 116100)3(中國石油天然氣股份有限公司 華北化工銷售公司,鄭州 450000)
隨著多媒體技術(shù)的迅猛發(fā)展與移動互聯(lián)的廣泛應用,互聯(lián)網(wǎng)用戶數(shù)量得到急速增加.根據(jù)IDC報告顯示,進入2020年后全球的數(shù)據(jù)總量預計超過40ZB,人類社會將正式進入“信息大爆炸”時代[1].用戶的角色由傳統(tǒng)的信息消費者變成信息提供者,在此轉(zhuǎn)變過程中用戶間的信任關(guān)系顯得尤為重要,用戶往往更愿意接受自己相信的人提供的信息.在電子商務(wù)的商品推薦過程中用戶也更愿意選擇自己信任用戶給予好評或推薦的商品[2].
Web2.0技術(shù)的興起使得用戶可以自由地發(fā)表對商品的評論,相對于稀疏的評分數(shù)據(jù),如何從商品的在線評論短文本中挖掘代表用戶興趣、喜好的主題,已經(jīng)成為眾多學者研究的熱點.在線評論反映的是用戶對購買商品或享受服務(wù)后最直觀和最真實的感受,包含著用戶對商品正向和負向的客觀評價.電商平臺可以依據(jù)評論數(shù)據(jù)發(fā)現(xiàn)商品的受歡迎程度,以便發(fā)現(xiàn)質(zhì)量差或令客戶不滿意的商品,對商品采購以及經(jīng)營策略做出正確地調(diào)整;也可以依據(jù)評論發(fā)現(xiàn)客服、物流等相關(guān)服務(wù)出現(xiàn)的問題,并及時做出應對管理[3].
傳統(tǒng)的推薦方法中普遍存在因評分數(shù)據(jù)稀疏而導致推薦準確率低等問題,因而很多學者考慮分析用戶或項目的其他相關(guān)信息來進行評分的數(shù)據(jù)填充,以提高推薦準確率[4].因此,在商品的個性化推薦系統(tǒng)中,大量存在的評論信息可以充分反應用戶對所購買物品的喜好.因此,本文利用構(gòu)建的耦合CNN模型對評論文本進行分析,從中提取商品特征、預測用戶對商品的評分而生成相應的預測評分矩陣,最終將高預測評分商品推薦給用戶.
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是在人工神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上發(fā)展起來的一種具有卷積操作的特殊前饋神經(jīng)網(wǎng)絡(luò),已經(jīng)在語音識別、圖像處理和自然語言處理等方面得到廣泛應用[5].典型的CNN模型主要包括:輸入層、隱含層(卷積層、池化層、全連接層)、輸出層.卷積層和池化層的組合可以在隱含層中多次出現(xiàn).
隱含層各組成部分功能如下:
1)卷積層:對輸入的數(shù)據(jù)進行特征提取操作,由m個卷積核(神經(jīng)元)組成,通過對輸入層過來的數(shù)據(jù)進行卷積運算得到新特征.
2)池化層:在特征映射上的最大池化操作,取最大值作為對應于這個特定內(nèi)核的特征.這種方案可以處理不同長度的文本.在最大值合并操作之后,卷積結(jié)果被減少為固定大小的向量.
3)全連接層:將經(jīng)過多個卷積層和池化層提取出來的特征,利用全連接網(wǎng)絡(luò)進行特征分類,最終得到一個關(guān)于輸入層的概率分布函數(shù).
針對數(shù)據(jù)稀疏問題,Sarwar Badrul等人[6]最早提出了基于項目的協(xié)同過濾算法,該方法比基于用戶的推薦方法更加穩(wěn)定,并且在實驗中加入奇異值分解,以此降低高維數(shù)據(jù)維度,填補稀缺數(shù)據(jù),較好地解決了數(shù)據(jù)稀疏問題,但推薦準確率卻不盡人意.
Koren Yehuda等人[7]提出采用矩陣分解技術(shù)來降低數(shù)據(jù)維度,解決數(shù)據(jù)稀疏問題,并成為近年來推薦系統(tǒng)研究的熱點.該方法通過將用戶和商品特征分別映射到不同的低維空間中,將用戶-評分矩陣降維,得到用戶矩陣和商品矩陣,以兩個低維矩陣乘積的形式表示原來的高維矩陣.
程芳等人[8]考慮傳統(tǒng)用戶相似度計算存在的問題,提出了直接相似度與間接相似度的概念,然后引入關(guān)鍵人物權(quán)重計算最終評價值.該算法在一定程度上解決了稀疏性問題,但關(guān)鍵人物的選取以及在缺少關(guān)鍵人物情況下,該解決方案尚存問題.
李全等人[9]在解決信任數(shù)據(jù)稀疏時,提出了一種融合信任度與項目關(guān)聯(lián)度的推薦方法,其關(guān)鍵在于將用戶信任矩陣進行分解降維,并引入用戶影響力,以此提出局部信任度和全局信任度的概念,并通過項目相關(guān)度與流行度進行模型構(gòu)建,以此提高推薦的效果.
隨著深度學習在圖像處理、自然語言處理和語音識別等領(lǐng)域的迅猛發(fā)展,學者研究的焦點轉(zhuǎn)移到將深度學習與推薦系統(tǒng)相融合,以此來構(gòu)建更加符合用戶需求的個性化推薦模型.Oord等人[10]提出了基于CNN模型的音樂推薦系統(tǒng),通過訓練CNN模型,學習用戶的歷史收聽記錄和音樂的音頻信號,將兩種記錄通過CNN模型映射到共享空間,來尋找用戶和音樂的隱式表達,進而為用戶推薦其感興趣的音樂,在一定程度上緩解了數(shù)據(jù)稀疏為推薦系統(tǒng)帶來的制約.
受到上述推薦算法的啟發(fā),本文構(gòu)建了由用戶網(wǎng)絡(luò)和商品網(wǎng)絡(luò)組成的耦合CNN模型,利用該模型進行商品推薦時,將用戶評論和商品評論文本輸入到模型中,利用對評論數(shù)據(jù)的分析來提取商品的特征信息,同時模擬用戶對感興趣商品進行評分的行為來生成商品的預測評分矩陣.本文所提的商品推薦策略并不依賴于原始評分數(shù)據(jù),而是使用CNN模型形成的預測評分矩陣來生成推薦列表,因此即使原始評分矩陣為稀疏矩陣也不會影響本文算法的推薦效率.最后通過實驗驗證,本文所提的基于預測評分的商品推薦算法與使用原始評分矩陣進行商品推薦的傳統(tǒng)算法在準確率上具有明顯的優(yōu)勢.
模型中使用用戶評論和商品評論模擬用戶行為和商品屬性,將學習到的用戶和商品特征匯集于共享層,共享層使相互獨立的不同特征交互后形成商品的評分預測.
基于耦合CNN評分預測模型結(jié)構(gòu)如圖1所示.

圖1 耦合CNN評分預測模型Fig.1 Scoring prediction model of coupled CNN
該模型由一個用戶網(wǎng)絡(luò)和一個商品網(wǎng)絡(luò)耦合并行而成.該耦合CNN模型由三層構(gòu)成:
1)輸入層:將用戶評論數(shù)據(jù)和商品評論數(shù)據(jù),分別從兩個并行網(wǎng)絡(luò)的輸入層輸入.
2)隱含層:包括卷積層、池化層和全連接層,用于對輸入的評論數(shù)據(jù)進行字向量角度的語義分析,使用多個并行的卷積層,利用多個大小不同的卷積核對句子進行特征提取,并產(chǎn)生相應的商品特征輸出.
3)共享層:匯集來自兩個并行網(wǎng)絡(luò)輸出的用戶特征與商品特征后,使用機器學習算法(Factorization Machine,F(xiàn)M)進行商品評分預測.
目前,評論的處理方式大都采用詞袋模型[11],但詞袋模型不考慮句子中詞語的順序,往往會將評論隱含的主題提取出完全相反的結(jié)果.例如,“正義最終打敗了邪惡”和“邪惡最終打敗了正義”,在詞袋模型中擁有完全相同的表示方法,但實際卻是完全相反的表達[12].另外,在進行評論主題特征提取方面,目前主要做法是對句子進行分詞處理,但現(xiàn)在的短文本通常是噪聲大、網(wǎng)絡(luò)用語多且沒有足夠的上下文信息作參考[13],使用傳統(tǒng)分詞方法常常會產(chǎn)生歧義或者無法切分分詞.針對這些問題,本文將從字向量的角度,對句子進行處理,學習評論的主題特征,以提高評分預測準確率.
從字角度來解析句子,就是將單個字作為句子的基本組成單位,對單個字進行字向量級別的訓練.例如,“我喜歡學習”,分詞處理結(jié)果是“我-喜歡-學習”,分字處理的結(jié)果便是“我-喜-歡-學-習”.
在對句子進行處理時,往往會碰到兩方面的問題:一是不同的句子其長度不同,最后得到的特征向量長度也不同;二是句子中的主題特征信息將會出現(xiàn)在句首、句中和句尾等不同的地方[14,15].利用耦合CNN模型進行處理時,可以有效地解決上述問題,問題一的解決是通過在隱含層進行最大池化操作,從而得到固定長度的主題特征向量;問題二的解決是采用多個大小不同的卷積核對句子進行處理,卷積操作后可以得到句子中所有字的局部特征[16].

(1)


(2)
其中*是卷積運算符,bi是一個偏置項,f是一個激活函數(shù)——線性整流函數(shù)(ReLU),通過加入ReLU可以避免了梯度爆炸和梯度消失問題,加速隨機梯度下降的收斂速度,大大提高訓練的速度[17].f的選擇我們采用斜坡函數(shù)如式(3)所示.
f(x)=max{0,x}
(3)

圖2 句子處理過程Fig.2 Sentence processing
接著,將在特征映射層上進行最大池化操作,取操作后的最大值作為對應的這個特定卷積內(nèi)核的特征.這種方法可以處理不同長度的文本,在最大合并操作之后,卷積結(jié)果被減少為固定大小的向量[18],如式(4)所示.
(4)
通過從一個卷積核中提取一個特征的過程可知,卷積層的輸出向量經(jīng)過最大池化操作時,只會選取句子中特征最強的局部信息,而把其他信息拋棄,所以該模型使用多個濾波器來獲得各種特征,卷積窗口t的大小不同,致使學習到的局部信息是不同的,利用多個并行的卷積層,可以得到不同的n-gram信息[19],如公式(5)所示.
R={R1,R2,R3,…,Rj}
(5)
其中,R表示所有卷積核輸出特征的集合,j為卷積層中進行卷積操作的卷積核數(shù).
來自最大池化層的結(jié)果被傳遞到具有權(quán)重矩陣W的全連接層.如公式(6)所示,全連接層的輸出Xu被認為是用戶u的特征.
Xu=f(W×R+b)
(6)
上述過程是以用戶網(wǎng)絡(luò)為例得到用戶特征,同樣,將商品評論由商品網(wǎng)絡(luò)輸入,將會得到商品特征Yc,兩個網(wǎng)絡(luò)并行運行,最終輸出用戶特征Xu和商品特征Yc.
這些輸出特征雖然是從用戶評論和商品評論中得到的,但它們存在于兩個網(wǎng)絡(luò)的不同映射空間中,兩者之間并不具有可比性.因此,為了將它們映射到相同的特征空間,我們引入了一個共享層來耦合用戶網(wǎng)絡(luò)輸出和商品網(wǎng)絡(luò)輸出,將Xu和Yc連接成單個向量Z=(Xu,Yc).為了模擬Z中的所有相互獨立的用戶與商品變量之間的交互關(guān)系,我們引入FM算法進行相應的評分預測.因此,給定N個訓練樣本,我們可以用公式(7)進行訓練.
(7)
其中,S表示評分預測,w0表示模型參數(shù),wj表示全局偏置,k表示分解所得隱因子向量維度,vj,fvi,f分別為特征j和i對應隱向量的一個隱因子.
最終,對于預測的商品評分進行由高到低的排序,采用top-k的方法選取前k個高評分商品推薦給用戶.
本文通過公式(7)來訓練耦合的CNN評分預測網(wǎng)絡(luò).對公式(7)中函數(shù)y求關(guān)于z的偏導數(shù)[20],得到公式(8).
(8)
對于不同層中的其他參數(shù)的導數(shù)可以通過鏈式法則進行計算.給定一組由N個樣本組成的訓練集T,通過RMSprop梯度下降法進行模型優(yōu)化[21].該方法對于梯度的絕對值自適應地控制步長,通過將每個權(quán)重的更新值按其梯度范數(shù)的運行平均值進行縮放來實現(xiàn).
本文實驗環(huán)境具體的配置如表1所示.
表1 實驗環(huán)境配置
Table 1 Configure of experiment environment

名稱規(guī) 格硬盤SATA 1TB 7200轉(zhuǎn)內(nèi)存8G DDRIII 1600CPUCORE I5-4590 3.3GHz 6MB緩存操作系統(tǒng)Windows 7 64位系統(tǒng)編程平臺JetBrains PyCharm 2017編程語言Python
在評論處理方面,本文選用新浪微博數(shù)據(jù)對本文提出的利用耦合CNN從字角度劃分文本的方法進行有效性驗證.該數(shù)據(jù)集是從2012年11月26日至2012年12月28日之間的微博數(shù)據(jù)中隨機爬取的75740條記錄組成實驗數(shù)據(jù)集,主題分布如表2所示.
表2 微博數(shù)據(jù)主題分布
Table 2 Microblog data topic distribution

主題數(shù)量主題數(shù)量明星7305政治6427體育8692旅游7305數(shù)碼7850汽車7563游戲7365寵物6387時尚8529財經(jīng)8047
本文選用余弦相似度作為評價標準,對比實驗分別從字角度和詞角度劃分句子,相似度計算如式(9)所示.
(9)
相似度計算結(jié)果如表3所示.
實驗結(jié)果可以看出,評論文本從字角度作為原始特征取得了更好的實驗效果.原因主要在于:字級別特征的粒度比詞級別的粒度小,字角度向量相比于詞角度向量可以學習到更加具體的特征.
在實驗中選擇了兩個聚數(shù)力的Amazon公開數(shù)據(jù)集1對模型進行評估,Amazon Food(642M)抓取了截止2012年10月份在Amazon網(wǎng)站上的568454條數(shù)據(jù),包括用戶、評論內(nèi)容、食品評分等9項數(shù)據(jù);Unlocked Mobile phone(141M)抓取了在Amazon網(wǎng)站上的40萬條數(shù)據(jù),包括用戶、無鎖移動手機的價格、用戶評分、評論等8項數(shù)據(jù).實驗中選擇數(shù)據(jù)集的70%作為訓練集,10%作為驗證集,用于調(diào)整模型的超參數(shù)和用于對模型的能力進行初步評估,20%作為測試集.實驗選擇均方誤差(MSE)作為評價標準,如式(10)所示.
(10)
表3 余弦相似度比較
Table 3 Comparisons of cosine similarity

詞語詞角度字角度詞語余弦相似度詞角度字角度手機手+機華為0.6670.682球鞋球+鞋耐克0.6730.691酸奶酸+奶牛奶0.8110.842電腦電+腦聯(lián)想0.6210.601汽車汽+車現(xiàn)代0.6220.664
潛在因子Xu和Yc的選擇實驗,結(jié)果如圖3所示.

圖3 潛在因子數(shù)量Fig.3 Number of potential factors
在圖3中顯示了模型在兩個所選數(shù)據(jù)集上的性能,潛在因子數(shù)量的變化范圍從5到100.從結(jié)果可以看出,當潛在因子的數(shù)量大于50時,模型的性能幾乎不變.因此,實驗中設(shè)置潛在因子Xu=Yc=40.
卷積核數(shù)量m的選擇實驗,結(jié)果如圖4所示.

圖4 卷積核數(shù)量Fig.4 Number of convolution cores
圖4中,m的取值范圍從10到400,觀察模型在兩個所選數(shù)據(jù)集上的性能可以看出:當卷積核數(shù)量m大于100時,模型的性能將不再提高.因此,實驗中卷積核數(shù)目m=100.實驗中其他超參數(shù)的設(shè)置如下:卷積窗口t=3,維度c=400,學習率λ=0.001和batch_szie=100.
在對預測評分數(shù)據(jù)推薦準確性進行評價的實驗中,實驗數(shù)據(jù)集仍采用Food和Unlocked Mobile phone數(shù)據(jù)集.首先,使用本文所提出的CNN評分預測模型對數(shù)據(jù)集中的評論文本進行分析得到預測評分矩陣,然后依據(jù)評分矩陣將評分高的商品推薦給用戶.對比算法中的LDA方法同樣也是利用文本分析生成評分矩陣進行推薦,而其他算法的推薦依舊是基于原始評分矩陣.因為本文方法在推薦商品時不使用原始評分矩陣,因此即使原始評分為稀疏數(shù)據(jù)集,對本文算法的推薦結(jié)果亦無任何影響.
評價評分預測結(jié)果的指標除了采用MSE,還使用均方根誤差(RMSE)、平均絕對誤差(MAE)作為評價標準,如式(11)、式(12)所示.
(11)
(12)
在參數(shù)確定的情況下,將本文評分預測模型與MF、LDA、SVD、SVD++、LFM等評分預測方法進行對比.在Food和Unlocked Mobile phone兩份數(shù)據(jù)集上以MSE、RMSE及MAE為指標進行對比,如圖5所示,本文模型在各指標的對比上均優(yōu)于其他方法.

圖5 不同評分預測模型對比Fig.5 Comparison of different scoring prediction models
通過圖5的對比結(jié)果可以看出,本文模型在評分預測的各個指標上均優(yōu)于其他對比方法.在指標MSE上,本文方法在Food數(shù)據(jù)集上提高了4.8%,在Unlocked Mobile phone數(shù)據(jù)集上提高了4.9%,平均提高了4.8%;在指標RMSE上,本文方法在Food數(shù)據(jù)集上提高了2.5%,在Unlocked Mobile phone數(shù)據(jù)集上提高了6.3%,平均提高了4.3%;在指標MAE上,本文方法在Food數(shù)據(jù)集上提高了1.6%,在Unlocked Mobile phone數(shù)據(jù)集上提高了6.7%,平均提高了4.1%.
圖6是本文方法與對比算法在處理每個用戶數(shù)據(jù)的平均時間,本文方法在時間效率上要略差于SVD、SVD++及MF算法,原因是對比的三種方法均是基于對數(shù)值型矩陣的分析,而本文方法是基于對評論文本的分析;本文方法的處理時間要優(yōu)于LFM和LDA,其原因是:LFM要在提取隱式因子的基礎(chǔ)上進行矩陣計算,而隱式因子的提取會耗費大量時間,從而降低LFM算法的時間效率;而LDA作為非監(jiān)督機器學習算法,在處理大量短文本評論時,需要重復遍歷計算主題概率以提取主題,因而處理效率較低.

圖6 不同模型算法時間對比Fig.6 Time comparison of different model algorithm
本文將卷積神經(jīng)網(wǎng)絡(luò)引入到個性化商品推薦中,提出了基于耦合CNN評分預測模型的個性化商品推薦方法.該方法主要通過構(gòu)建的耦合網(wǎng)絡(luò)分別進行用戶和商品評論分析,以提取商品特征和模擬用戶行為,在共享空間進行交互評分預測,最終選取高評分商品推薦給用戶.所提方法充分利用卷積神經(jīng)網(wǎng)絡(luò)在短文本分析方面的優(yōu)勢,并通過對比實驗驗證了所給評分預測方法在MSE、RMSE、MAE等指標方面均有明顯提升.在今后的研究工作中,考慮充分利用深度學習模型處理異構(gòu)數(shù)據(jù)的優(yōu)勢,例如處理評論中的圖片數(shù)據(jù),進而充分挖掘評論數(shù)據(jù)中蘊含的價值,進一步提升推薦的準確率.