陳麗瓊,范國慶,2,畢曉鈺,郭 坤
(1.上海應用技術大學 計算機科學與信息工程學院,上海 201418; 2.上海市行政管理學校 計算機系,上海 201803)
傳統(tǒng)的協(xié)同過濾算法[1]通常使用用戶對商品的評分進行建模。評分數(shù)據(jù)是用戶對商品最直接的交互,它能夠有效構建用戶畫像。但是由于評分數(shù)據(jù)存在數(shù)據(jù)稀疏的問題,影響了推薦結果的準確性[2]。評分的稀疏性問題的實質是數(shù)據(jù)信息的稀疏。因此要解決稀疏性需要引入其它數(shù)據(jù)類型。用戶為商品撰寫的評論中存在著大量的信息[3-5]。這些文本評論能夠體現(xiàn)出用戶的偏好以及商品特征信息,是一種語義信息豐富的隱式特征。相比于單純的利用顯式評分特征,文本信息一方面可以彌補評分稀疏性的問題,另一方面在推薦系統(tǒng)的可解釋方面也能夠做得更好。例如從用戶對某部電影的評論中,能夠看出電影的一些情節(jié)特征,還有用戶自己的理解與喜好興趣等。因此,本文提出一種融合文本評論和用戶評分交互的推薦模型。利用把評論文本作為輔助信息來降低評分矩陣稀疏性的影響達到提高推薦結果的準確性。
評分交互的推薦方法主要是基于隱語義模型的矩陣分解技術。矩陣分解就是把高維的用戶-商品評分矩陣分解成為兩個低維的用戶因子矩陣和商品因子矩陣。使用了用戶向量與商品向量的點積的結果作為用戶對商品的預測評分。但是,現(xiàn)實生活中用戶評分的商品會遠遠小于商品總數(shù),這會使評分矩陣存在的數(shù)據(jù)稀疏問題從而影響了推薦結果的準確性。Gai Li等[6]提出一種融合CLIMF(collaborative less-is-more filtering)和概率矩陣分解(PMF)的協(xié)同過濾算法,提高了推薦結果精度,同時具有低復雜性等優(yōu)點。GuiBing Guo等[7]將隱式反饋(例如點擊、想要)融入到Top-N的推薦中,以緩解數(shù)據(jù)稀疏問題。Xin Zhou等[8]提出了一種基于項目的通用多方面用戶偏好學習(MUPL)框架。通過考慮不同的用戶體驗和意圖,從群體、個人和行為方面捕獲用戶的偏好。JianWu Bi等[9]為了緩解數(shù)據(jù)稀疏問題,利用用戶基本數(shù)據(jù)和商品基本數(shù)據(jù)構建了一個用于預測用戶收視率的深度神經(jīng)網(wǎng)絡模型。基于所獲得的用戶特征矩陣和項目特征矩陣,使用完全連接層進一步構建用戶項目特征矩陣。苑寧萍等[10]融合了社交活動的主題分布、用戶的興趣度、用戶之間的信任值。用戶間的綜合相似度由新的興趣度相似矩陣構建得到,為了得到個性化推薦權值,融合了用戶相似度與信任度兩個特征。最終的推薦結果是由具有不同權重配比的特征而來。
在基于評論文本的推薦系統(tǒng),處理評論文本方法通常分為兩種:①將用戶或者商品的多條評論拼接成一個較長的文檔,然后從該文檔中提取全局的用戶特征或商品特征。②將每一條的評論單獨建模,然后將評論中的特征聚合為用戶特征。Donghyun Kim等[11]采用深度學習與概率圖模型的結合方式來提高評分預測的準確性。即將卷積神經(jīng)網(wǎng)絡用于對商品評論文本中商品特征的提取,然后采用卷積神經(jīng)網(wǎng)絡與概率矩陣分解相結合的方式用于評分預測。但是,文章中僅僅使用了商品的評論數(shù)據(jù)和用戶的評分數(shù)據(jù)。Yufei Wen等[12]有限考慮并利用商品的評論進行建模,采用預訓練的網(wǎng)絡嵌入代替分布函數(shù)來增強推薦效果。Sunyong Seo等[13]引入了局部注意力機制和全局注意力機制來尋找評論文本中更加具有信息的詞。為不同的詞賦予不同的權重來為用戶和商品建模。Chin JY等[14]提出了一種基于角度級別(aspect-based)的神經(jīng)網(wǎng)絡推薦算法。即基于用戶的評論角度和商品介紹角度,設計了一個注意力機制,在學習階段只關注評論的相關角度部分。在預測階段使用共同關注的機制。
本文提出一種融合文本評論和用戶評分交互兩個特征的推薦模型。該模型第一步先將關于用戶的所屬評論短文本和關于商品的相關評論短文本分別連接成一個較長的長文檔。然后經(jīng)過編碼層后得到用戶表示和商品表示。再將用戶表示和商品表示向量分別與傳統(tǒng)矩陣分解的用戶潛在因子向量和商品潛在因子向量進行融合并進行各自評分,最后經(jīng)過動態(tài)的線性加權融合,做出整體模型的評分預測。
表1 符號及其定義
圖1 推薦算法模型結構
2.2.1 文本特征提取模塊
本文使用詞嵌入(word2vector)模型來獲得評論文本的語義特征。詞嵌入是一個基于深度學習的輕量化文本處理模型。它不僅能夠分析出語義而且能夠生成每個此的詞向量表示。詞嵌入模型實際上是一個簡單化的神經(jīng)網(wǎng)絡,它只含有一個隱藏層的全神經(jīng)網(wǎng)絡。它將一個詞的熱編碼(One-Hot)作為輸入層的輸入。然后在隱含層中輸入w*x+b。 這里的x就是輸入的詞向量,w和b是參數(shù)。需要注意的是,隱藏層并沒有激活函數(shù),在這里只是一個做簡單映射的線性模型。輸出層的維度與輸入層的維度一致并且用Softmax回歸。這個過程便稱為詞嵌入,即將高維詞向量嵌入到一個低維空間中的同時還保留了語義。
(1)
(2)
這里符號*是卷積操作,bj表示的是偏置項,f表示的是激活函數(shù)。在這個模型中,使用ReLU函數(shù)作為激活函數(shù)。ReLU函數(shù)的定義如下
f(x)=max{0,x}
(3)
然后進行最大池化操作,將最大值作為與此特定內(nèi)核相對應的特征。在最大池化操作之后,卷積結果將減小為固定大小的向量
Oj=max{Z1,Z2,Z3,…Z(n-t+1)}
(4)
模型使用多個過濾器來獲取各種特征,并且卷積層的輸出向量由式(5)進行表示
O={o1,o2,o3,…on1}
(5)
這里的n1表示了卷積層的核數(shù)。
最大池化的結果將伴隨著權重矩陣W傳到一個全連接層。如式(6)所表示的,全連接層的輸出xu考慮了用戶u的特征。最終,用戶和項目CNN層的輸出xu和yi可以被獲取
xu=f(w×o+g)
(6)
2.2.2 評分交互特征提取模塊
特征提取模塊的基礎是奇異值分解(svd),它是一種矩陣分解算法。矩陣分解技術是實現(xiàn)隱語義模型最常使用的方法。矩陣分解算法的基本原理是將原來的大矩陣,分解成兩個小矩陣的乘積并且要盡可能的與大矩陣相似。在接下來的推薦過程中,使用兩個小矩陣代替大矩陣。根據(jù)矩陣分解的原理可知,原來的m×n大矩陣會被分解成m×k和k×n的兩個小矩陣。這里的k便是隱因子向量。隱因子向量包含了用戶和商品一部分共同擁有的特征。在用戶身上表現(xiàn)為用戶的偏好,在商品上表現(xiàn)為商品的屬性。一般的,隱因子數(shù)量k要遠遠小于用戶的數(shù)量和商品的數(shù)量。矩陣分解利用用戶信息和商品信息中的隱含結構進行建模,它能夠挖掘出用戶和商品的關系。
存在一個評分矩陣R,每行代表一個用戶(User),每列代表一個商品(Item),其中的元素表示User對Item的打分,空表示User未對Item打分。矩陣可分解為矩陣乘積
Rui=PukQki
(7)
式中:下標u和i分別表示用戶數(shù)以及商品數(shù)。
接著使用R中的已知評分訓練矩陣P和Q使得矩陣P和Q相乘的結果能夠擬合已知的評分,則待預測的評分也就可以由P的某一行與Q的某一列相乘得到了
(8)
(9)
(10)
其中,對于One-hot編碼表示的xu和xi, 表示隱空間向量為:pu和qi;p和q分別表示用戶數(shù)目和商品數(shù)目;Zint具有交互特征的高級向量。特征提取模塊原理圖如圖2所示。
圖2 評分特征提取模塊
由于特征之間的關聯(lián)程度將對事件發(fā)生結果產(chǎn)生重要的影響。因此需要構造組合特征來表示特這之間的關聯(lián)。本文所述特征提取模塊的輸出結果是用戶、商品的評分特征和文本特征,但是它們并不在同一個特征空間中。因此,本文分別將特征提取層的高維稀疏向量引入了因子分解機來解決特征之間組合的問題。因子分解機作用是分別為每一個特征引入了一個具有低維特點以及具有稠密特點的向量特征xi,并因子分解機使用特征間向量特征的內(nèi)積來衡量特征間的相關性。這樣可以解決推薦系統(tǒng)工作中存在的兩個特征交集數(shù)據(jù)稀少甚至沒有的問題而且這樣可以很好地衡量兩者之間的相關性,從而能夠有效解決推薦系統(tǒng)中存在的數(shù)據(jù)稀疏帶來的相關問題
(11)
式中:w=(w1,w2,w3,…wn) 是n維向量。w0、w∈Rn、V∈Rn×k是模型參數(shù)。vi、vj是類似于矩陣分解中的用戶或者商品的k維向量。V是由vi組成的矩陣。
2.2.4 評分預測模塊
(12)
(13)
本文用于實驗驗證模型的數(shù)據(jù)集是亞馬遜的商品的一系列數(shù)據(jù)集,它是推薦系統(tǒng)方向常用的數(shù)據(jù)集,具有一定的權威性。它包含了Automotive(亞馬遜汽車)、Music(亞馬遜數(shù)字音樂)、Beauty(亞馬遜美妝)、Toys(亞馬遜玩具游戲)、Sports(亞馬遜運動和戶外)。特別的,對于SVD和NMF算法,需要將數(shù)據(jù)處理為user_id-item_id-ra-ting的格式。
在這些數(shù)據(jù)集中,對于每一個對象,本文我們都將使用到它們包含已有的4個特征。4個特征分別是用戶編號(UserId)、商品編號ItemsId)、用戶對商品的打分(1~5分且為整數(shù))、用戶對商品的評論文本。本文在進行實驗驗證前對上述的數(shù)據(jù)集進行了一些必要的統(tǒng)計。上述數(shù)據(jù)集的數(shù)據(jù)統(tǒng)計信息見表2。
表2 數(shù)據(jù)集統(tǒng)計信息
Density代表評分矩陣密度D,它度量評分矩陣的稀疏程度,它的定義是
雖然最密切聯(lián)系原則已經(jīng)作為一項“兜底條款”寫入了我國《法律適用法》的總則部分,其在我國的司法實踐中也成為了法官運用的最多的法律選擇方法之一,但是我國學界對于該原則的評價始終是褒貶不一的。大部分學者對該原則持支持贊成的態(tài)度,認為最密切聯(lián)系原則使得連結因素多樣化,增強了法律選擇的靈活性,增強了國際私法對新情況的適應能力;同時賦予了法官很大的自由裁量權,拋棄了“法律關系本座說”的機械性做法,并采用了柯里的“政府利益分析說”利益分析的方法決定法律的適用,“最密切聯(lián)系原則已成為當今國際私法界共同的語言與趨勢,并被某些國際私法學者奉為至高無上、神圣不可侵犯的理論?!钡牵瑢W界依然存在對該原則的批判之聲:
(14)
由表2以及矩陣密度公式可知,本文采用的數(shù)據(jù)集評分矩陣密度都低于1%。這表明,雖然每個數(shù)據(jù)集中用戶和商品數(shù)量很大,但是每個用戶對商品進行打分的交互行為卻很少,表明本文中采用的5個實際數(shù)據(jù)集的評分數(shù)據(jù)是及其稀疏的。這將影響到矩陣分解模型對預測評分的準確度。同時從表2可知,這5個數(shù)據(jù)集都包含一定的相關用戶評論和相關商品評論,用戶的偏好以及商品特征能夠很好地從這些文本評論中體現(xiàn)。這些具有豐富的語義信息的信息是一種隱式特征。因此使用這些文本信息可以彌補評分稀疏性的問題。由于本文所述模型的思路主要是采用融合評論文本數(shù)據(jù)作為額外的特征來源來緩解推薦系統(tǒng)中存在的數(shù)據(jù)稀疏問題。因此本文對商品評論中的文本長度進行了統(tǒng)計來說明評論文中蘊含信息。評論長度分布如圖3所示。
圖3 文本數(shù)據(jù)長度分布
由圖3可知,每個數(shù)據(jù)集的文本長度集中在50~150之間,都超過了30%。除了音樂數(shù)據(jù)集,文本長度在0~50個詞也都超過了40%。因此可以發(fā)現(xiàn),大部分的用戶和商品都相應的具有一定長度的評論文本,而在這些評論文本中都蘊含了大量的特定用戶的某些偏好特征和特定的商品特征。因此可以通過融入評論文本信息的手段來實現(xiàn)有效的緩解數(shù)據(jù)稀疏的問題并提高預測評分準確度的目的。
通過對比本文模型和其它推薦模型(Svd、Svdpp、NFM、CONVMF、DeepCoNN)的常用度量指標均方誤差RMSE和平均絕對誤差MAE作為推薦結果的評價指標來評價本文模型。其中RMSE和MAE的值越小表示模型的準確性越高。
RMSE的定義如下
(15)
MAE的定義如下
(16)
為了完成本文的對比實驗,本文設計的對比實驗主要有以下兩個目的:①融合評論文本信息的推薦方法是否比傳統(tǒng)的協(xié)同過濾算法準確度更高。②相比較于單純的基于文本評論的推薦方法,融合矩陣分解和文本評論方法的準確度更高。在對比實驗中我們采用了兩大類5個模型進行對比。其中SVD、SVDpp、NMF、ConvMF代表矩陣分解方法;DeepCoNN代表基于評論文本方法。
(1)SVD是基于隱語義模型(latent factor models)。將數(shù)據(jù)映射到低維空間,然后計算低維空間中的商品之間的相似度,對用戶未評分的商品進行評分預測。
(2)SVDpp在隱語義模型的基礎上,將隱式反饋信息作為補充信息加入。例如用戶瀏覽行為、點擊行為等反饋信息,使用用戶的歷史數(shù)據(jù)來更的挖掘出用戶完整的偏好。SVDpp與SVD相比進一步提高模型預測精度。
(3)NMF非負矩陣分解模型。將一個非負矩陣分解成兩個非負矩陣的乘積以解決非負性引發(fā)的稀疏問題和計算過程中的部分分解問題。
(4)ConvMF將卷積神經(jīng)網(wǎng)絡(cnn)與概率矩陣因式分解(pmf)相結合來提高預測精度。
(5)DeepCoNN深度協(xié)同神經(jīng)網(wǎng)絡模型是一種分別用于提取用戶評論集和商品評論集中特征的深度學習模型。它的局限是僅利用評論文本中的信息來解決數(shù)據(jù)稀疏問題。
我們使用了常用算法的參數(shù)設置來對參數(shù)初始化,并微調(diào)使其達到性能最佳。我們在Sports數(shù)據(jù)集上使用格子搜索法從 {8,16,32,64} 尋找本模型和SVD、SVDpp、NMF、DeepCoNN模型的最佳隱因子個數(shù)。如圖4和圖5所示的是不同隱因子個數(shù)對本文模型結果和對比模型結果的影響。
圖4 不同隱因子個數(shù)對實驗結果的影響(RMSE)
圖5 不同隱因子個數(shù)對實驗結果的影響(MAE)
由圖4、圖5可知,除了NMF算法在 (8,16,32) 上,實驗結果隨著隱因子個數(shù)的增加而明顯變好,這里我們可知增加隱因子個數(shù)可以提高預測精度。但是隱因子個數(shù)從32增加到64時,實驗結果的誤差在這個范圍內(nèi)有一定的所增長。通過分析,我們認為這里誤差增長的原因是由設置的隱因子數(shù)量過多而引起的過擬合現(xiàn)象。分析可知,隨著隱因子個數(shù)在一定范圍內(nèi)增加,模型可以更好學習到用戶和商品特征即用戶畫像得到了完善,提高了預測評分的準確度。但是過多的隱因子個數(shù)使得系統(tǒng)過擬合,不利于系統(tǒng)分辨出隱因子是否為用戶和商品的真實特征,降低了預測評分的準確度。為了使模型達到最優(yōu)性能,提高算法的速度,本文在接下來的實驗中將隱因子的個數(shù)設置為32。對于深度模型DeepCoNN和本文算法的參數(shù)設置如下:Batch_size=100、embedding_dim=300、filter_sizes=3、num_filter=100、dropout_keep_prob=0.5、num_epochs=10。
本文采用了Dropout指標來緩解實驗的過擬合的發(fā)生,起到正則化的效果。本文在Automotive數(shù)據(jù)集上對DeepCoNN模型和本文模型的Dropout指標在 (0.1,0.3,0.5,0.7,0.9) 范圍內(nèi)進行尋優(yōu)。實驗結果見表3。
表3 不同Dropout值對實驗結果的影響(RMSE/MAE)
由表3上的結果可知:①本文模型與DeepCoNN模型相比,隨著Dropout值的變化,本文模型在Automotive數(shù)據(jù)集上的RMSE值和MAE值均優(yōu)于DeepCoNN的RMSE值和MAE值,這體現(xiàn)出了本文推薦方法相比于DeepCoNN方法更加接近實際值。②機器學習的模型中,如果模型參數(shù)過度會導致過擬合的現(xiàn)象。因此可以為模型設置恰當?shù)腄ropout比率值來緩解過擬合現(xiàn)象、提升模型的性能。在這里我們將Dropout值設置為常用值0.5。③由RMSE和MAE的定義可知,RMSE指標更容易受到預測極值的影響,這也體現(xiàn)了出了系統(tǒng)的預測的穩(wěn)定性。本文模型的RMSE和MAE相比于DeepCoNN更小,這意味著本文模型的預測值比DeepCoNN更加平緩且接近真實值。
與對比模型在不同數(shù)據(jù)集下的實驗結果如圖6和圖7所示。
圖6 RMSE結果對比
圖7 MAE結果對比
圖6、圖7顯示的是本文提出模型的評分預測結果與對比模型的評分預測結果。分析圖6、圖7實驗結果,本文有以下結論:在同樣考慮評論文本的模型中, 本文模型相較于其它基于文本預測模型(ConvMF、DeepCoNN)而言,RMSE指標和MAE指標更低即預測的結果更加接近實際值。本文認為當中的原因是:其它基于文本預測模或只考慮文本數(shù)據(jù)中蘊含的用戶偏好或只考慮了商品特征信息而忽略了完整的評論中的用戶和商品信息以及用戶對商品的直接評分的交互的影響。因此可知,用戶的評分特征信息與用戶為商品撰寫的評論中蘊含的大量的信息將對預測結果產(chǎn)生積極的影響。這些文本評論能夠體現(xiàn)出用戶的偏好以及商品特征信息,是一種語義信息豐富的隱式特征。本文在基于文本信息的基礎上融合評分交互,使得用戶偏好以及商品特征信息更加完善,提高了模型的準確率。與傳統(tǒng)評分矩陣模型(SVD、SVDpp)相比,預測結果也優(yōu)于它們,這也驗證額本文的猜想,即評論文本中蘊含的用戶偏好以及商品特征信息較好彌補了矩陣分解技術中的矩陣稀疏性的缺點,提高了評級預測精度。
通過上述的研究可以知道:評論文本作為推薦算法的輔助信息相比單純利用評分交互特征,可以有效緩解了數(shù)據(jù)稀疏性帶來的影響提高了預測評分的準確度。本文提出了融合評分矩陣和評論文本的優(yōu)化推薦模型,提取了用戶評論和商品文本評論中蘊含的豐富的隱式特征并將其與傳統(tǒng)的矩陣分解模型得到的用戶的偏好以及商品特征信息相融合以完善用戶偏好和商品特征。本模型可以較好解決的傳統(tǒng)模型的矩陣稀疏問題,提高了模型評分預測的準確度。由于處理評論文本需要大量的計算資源,這導致了推薦算法不夠靈活。未來的研究中,會關注微服務在推薦系統(tǒng)中的應用。將輔助信息以一個微服務模塊,提高系統(tǒng)的可擴展性。