徐 俊,張 政,杜宣萱,肖 剛
(浙江工業(yè)大學 計算機科學與技術學院,浙江 杭州 310023)
互聯(lián)網和大數(shù)據(jù)技術的快速發(fā)展導致信息爆炸式增長,為用戶獲取信息提供了便利,但同時用戶面對如此紛繁復雜的數(shù)據(jù)難以快速、準確地獲取自己想要的數(shù)據(jù).推薦技術就是依據(jù)用戶的個性化偏好在海量數(shù)據(jù)中選擇符合用戶需求的信息、產品及服務提供給用戶,目前已經廣泛應用在電子商務、社交網絡等領域[1].
基于協(xié)同過濾的方法是應用最廣的推薦技術,其中基于模型的方法和基于內存的方法是傳統(tǒng)協(xié)同過濾方法的兩大類別[2].特別是基于模型的方法因為有較高的推薦精度和良好的可擴展性,所以受到學術界和工業(yè)界的廣泛關注[3].然而,在大數(shù)據(jù)環(huán)境下,隨著評分矩陣規(guī)模的不斷擴增,未評分記錄越來越多,新用戶和新項目的不斷加入,這兩種協(xié)同過濾推薦算法都面臨著嚴重的數(shù)據(jù)稀疏性和冷啟動挑戰(zhàn)[4].研究人員一般采用結合輔助信息,例如用戶人口統(tǒng)計學數(shù)據(jù)[5-8]、社會網絡數(shù)據(jù)[9-12]和語境感知[13-15]等多方面數(shù)據(jù),來解決數(shù)據(jù)稀疏性和冷啟動問題.這些多源數(shù)據(jù)一般為高維稀疏性數(shù)據(jù),數(shù)據(jù)真實性和可靠性不高、噪聲大且涉及隱私較難獲取或并不真實存在.
項目語義是指項目本身的描述信息包含的語義,例如電影的劇情簡介、產品的功能描述等,根據(jù)這些自然語言的描述文本提取語義向量表示項目語義.由于項目語義具有更加準確、穩(wěn)定且容易獲取的優(yōu)勢,并且能表達項目間的深層次關聯(lián)性,因此本文提出了一種基于項目語義的協(xié)同過濾冷啟動推薦算法(ISCF),通過改進TF-IDF算法構建語義表示模型來提取項目語義向量,并融入到矩陣分解中補全評分矩陣,利用聚類對評分矩陣進行分割,然后通過協(xié)同過濾冷啟動推薦.
本部分主要對本文算法以及本文研究領域方面所用到的一些知識進行簡單介紹.
word2vec是Google的Mikolov等人[16]在2003年提出的一種基于深度學習的詞向量模型.它的基本思想是通過訓練語料庫將每個單詞轉換成n維實向量,利用向量之間的距離來計算單詞的語義相似度.下面是CBOW模型(Continuous Bags-of-Words Model)網絡結構圖如圖1所示:
圖1 CBOW模型網絡結構
該網絡結構主要分為3層:輸入層、映射層和輸出層.W(t-k),…,W(t-2),W(t-1),W(t+1),W(t+2),…,W(t+k)為當前詞W(t)的上下文Context(t),通過調整k選擇上下文的范圍.CBOW模型利用當前詞W(t)的上下文Context(t)預測當前詞W(t)的概率P(W(t)|Context(t)),通過極大似然估計把概率最大化.Word2vec模型會因為選取向量維度和上下文個數(shù)的不同導致向量效果不同.
因為Word2vec模型是對文本中的詞構建向量,而不是對整個文本構建向量,因此Word2vec在向量空間上可以進行加減法運算[17],文獻[18]中結合TF-IDF(term frequency inverse document frequency)算法構建文本語義表示模型.TF-IDF算法是一種常用加權技術,廣泛應用與信息檢索和文本挖掘,核心是利用權重來評價特征詞對整個文本貢獻的程度.該算法通過統(tǒng)計詞頻TF和逆向文件頻率IDF來評估特征詞對文本語義貢獻的重要程度,詞頻TF的公式定義如下所示:
(1)
其中,該特征詞在文本j中的總次數(shù)表示為ni,j,所有特征詞在文本j中出現(xiàn)的總次數(shù)表示為∑knk,j.特征詞的普遍重要性利用逆向文件頻率IDF來統(tǒng)計,所有文本總數(shù)與出現(xiàn)該特征詞的文本數(shù)量比的對數(shù)統(tǒng)計就是IDF,IDF值與特征詞的重要性呈正相關.逆向文件頻率IDF的公式定義如下:
(2)
公式(2)中,語料庫中所有文本的總數(shù)為|D|,包含特征詞ti的文本數(shù)量為|{j:ti∈dj}|,為了避免無特征詞導致分母0,公式對分母進行加1操作,即|{j:ti∈dj}|+1.通過詞頻TF與逆向文件頻率IDF的相乘放大了權重,從而可以將權重較小的常見特征詞過濾掉,篩選出高權重的特征詞.TF-IDF算法如下所示:
TF-IDFi,j=TFi,j*IDFi,j
(3)
文本語義向量將TF-IDF權重與Word2vec模型結合,其計算公式如下:
(4)
其中,vj表示文本j的語義向量,wi表示項目描述中抽取的第i個關鍵詞,Vwi表示為第i個關鍵詞通過Word2vec工具轉換后的語義向量,n表示文本j中特征詞總數(shù)量.
矩陣分解模型因為具有良好的可擴展性和高效性,所以被廣泛的應用于推薦系統(tǒng)中.模型將用戶-項目評分矩陣Rm×n分解為Pm×d和Qd×n這兩個潛在特征矩陣,示意圖如下所示:
圖2 矩陣分解示意圖
其中n表示用戶總數(shù),m表示項目總數(shù),d表示潛在特征維度,然后再通過P和Q的內積預測評分.
本部分將詳細描述ISCF算法,主要包含3部分:
1)利用基于TF-IDF改進算法的項目語義表示對項目語義信息進行向量化描述;
2)在矩陣分解中融入項目語義;
3)通過聚類分割進行協(xié)同過濾冷啟動推薦.
項目描述是由多種多樣特征詞構成的文本,可以利用語義表示模型計算項目語義向量.語義表示模型中的TF-IDF算法雖然能夠提取文中關鍵特征詞,并將常見特征詞過濾掉,但是該算法僅是利用特征詞的數(shù)量統(tǒng)計權重,并沒有考慮過特征詞本身所具有的含義.例如,兩個特征詞盡管不一樣,但蘊含的意思相近,即近義詞,那么TF-IDF算法將會把它們分別進行統(tǒng)計詞頻,從而降低了關鍵特征詞的提取精度.對此,本文利用不同特征詞之間的語義相關性改進傳統(tǒng)TF-IDF算法,增強文中關鍵特征詞的提取精度.在統(tǒng)計特征詞的詞頻過程中,改用語義詞頻STF,即統(tǒng)計文本中與該特征詞語義相關的特征詞出現(xiàn)的頻率,而非簡單的統(tǒng)計特征詞在文本中出現(xiàn)的次數(shù)TF,語義詞頻STF定義如下:
(5)
其中,N(j)表示為項目j中的特征詞總數(shù)量,ε是一個閾值,當cos(Vwt,j,Vwi,j)>ε時,則認為特征詞t和特征詞i屬于同一類別的詞,即近義詞.因為具有相關性的特征詞集合能反映出整個文本的語義特征,不用傳統(tǒng)的詞頻統(tǒng)計而改用改用特征詞之間的語義相關性來統(tǒng)計,可以挖掘文本中重要的特征詞從而更好的凸顯出文本的語義特征.改進之后的TF-IDF權重計算公式如下所示:
STF-IDFi,j=STFi,j*IDFi,j
(6)
具有語義相關的特征詞通過該公式可以獲得詞頻的增加從而提高自身的權重值.然后利用改進后的TF-IDF算法來優(yōu)化每個特征詞的語義權重值,再利用Word2vec來實現(xiàn)項目語義向量的表示,計算公式如下:
(7)
其中,vj表示項目j的語義向量,STF-IDFi,j表示為結合了語義相關性的項目j描述文本中特征詞wi的權重,n表示項目j描述文本中特征詞總數(shù)量,該方法可以增強項目語義的特征表示.
矩陣分解模型在推薦系統(tǒng)中被廣泛應用,但其精度受限于數(shù)據(jù)的完整性,當用戶評分矩陣數(shù)據(jù)稀疏時,其預測評分的精度不佳.本文將額外的項目語義信息融入到矩陣分解模型中改善因數(shù)據(jù)稀疏性帶來的預測評分欠佳問題.
在矩陣分解中引入用戶在項目語義上的偏好潛在特征,并通過一個調節(jié)因子來調整用戶評分偏好和用戶語義偏好在評分預測中的比例,評分預測函數(shù)如下:
(8)
(9)
本文通過借助隨機梯度下降法求解上述的損失函數(shù)方程.各個學習參數(shù)的梯度方向通過下面公式求解:
(10)
(11)
(12)
參數(shù)訓練完成后,通過評分預測函數(shù)預測評分矩陣R中的缺省值,并進行填補獲得補全評分矩陣R′.
在補全評分矩陣R′的基礎上,本文利用到了k-means聚類算法在線下對補全后的評分矩陣R′進行聚類分割,在線上利用新用戶屬性信息和項目語義信息快速尋找到分割后的數(shù)據(jù)小矩陣,并通過協(xié)同過濾進行預測評分.在預測評分中,使用分割后的小矩陣進行預測計算,計算量的減少使得計算速度大大加快,同時還使得算法具備了可擴展性和實時性.
本文利用內容上的相似表達項目之間的關系,即通過項目的語義向量vi和vj計算余弦值表示項目的相似度simI(i,j).用戶的相似度參考文獻[5]中的屬性相似度計算方法:
(13)
其中,n為用戶所有屬性的總數(shù),Aik和Ajk表示為用戶i和用戶j的第k個屬性的屬性值,sim(Aik,Ajk)表示為用戶i和用戶j的第k個屬性的相似度,wk表示為第k個屬性的權重值.屬性相似度sim(Aik,Ajk)使用絕對指數(shù)相似度計算,其具體公式如下所示:
sim(Aik,Ajk)=e-|Aik-Ajk|
(14)
其中,sim(Aik,Ajk)值的范圍在[0,1]之間,用戶i和用戶j的第k個屬性越相似,其值越接近于1,反之,則越接近于0.wk是屬性的權重值,每個屬性對用戶的影響程度不同,為精確每個屬性的權重值,提取屬性k相同的所有用戶所評分最高的前t個項目集合,并分析不相同的集合個數(shù),計算平均值ave(k),再通過下面公式計算每個屬性的權值,具體公式如下所示:
(15)
通過數(shù)據(jù)統(tǒng)計獲得的屬性權值相比于人工賦值更加的可靠和準確.
本文分別通過用戶和項目的相似度計算方法進行k-means算法聚類,根據(jù)用戶和項目的類簇對評分矩陣進行數(shù)據(jù)分割,圖3展示了該數(shù)據(jù)分割.
圖3 用戶和項目類簇分割數(shù)據(jù)
上述圖3中同種顏色的表示為一個數(shù)據(jù)塊小矩陣,使用用戶類簇和項目類簇來對評分矩陣中的行和列進行共同分割,將一個高緯度的評分矩陣分割成了更加細小且大小不同的低緯度小矩陣.新用戶和新項目根據(jù)與類簇質心的相似度將獲得用戶和新項目各自所屬的類簇xc和yc,然后可以通過這兩個值快速的確定評分矩陣中唯一小矩陣,利用這個小矩陣中的數(shù)據(jù)進行協(xié)同過濾預測評分.評分預測具體公式如下所示:
(16)
本文實驗的硬件環(huán)境為處理器 i7 9700,3.00GHz,8核8線程,內存 8GB,顯卡1050ti 4GBRAM.算法實現(xiàn)采用Python語言.實驗數(shù)據(jù)的公開數(shù)據(jù)集來源于Movielens,其包括了用戶、電影以及電影評分數(shù)據(jù).其用戶對電影的評分取值為{1,2,3,4,5},分數(shù)越高代表對電影越青睞,數(shù)據(jù)稀疏度為93.7%.此外,本文為構建項目語義在互聯(lián)網電影資料庫(Internet Movie Database,簡稱IMDb)中利用爬蟲技術獲取了1682部電影的劇情文本描述信息.
評分預測的準確度采用平均絕對誤差(MAE)和均方根誤差(RESE)評價.其計算方式如下:
(17)
(18)
本部分將對算法中的參數(shù)a、緩解數(shù)據(jù)稀疏性和冷啟動問題進行實驗分析.
4.3.1 參數(shù)a分析
參數(shù)a控制用戶評分信息和項目語義信息的貢獻程度,為了確定參數(shù)a的最佳值,我們將a從0以0.1的步長遞增到1觀察其對預測結果的變化影響.當a=0時,數(shù)據(jù)僅包含用戶評分信息,此時模型等同于MF,當a=1時,數(shù)據(jù)僅包項目的語義信息.
圖4展示了a值不斷提高時融入項目語義的矩陣分解的預測效果,起初在a值從0.1增加到0.6的過程中,MAE的值在下降,即預測評分的準確性上升,但在a值從0.6增加到1的過程中,MAE的值又開始上升,即預測評分的準確性下降.因此,當a=0.6時預測評分的效果達到了最佳.同時,該實驗也證明了融入項目語義能夠提高矩陣分解的預測效果,緩解數(shù)據(jù)稀疏性問題.
圖4 參數(shù)a的影響
4.3.2 緩解數(shù)據(jù)稀疏性問題分析
為了說明融入項目語義的矩陣分解能夠有效得了緩解數(shù)據(jù)稀疏性問題,本文將分別與以下算法進行比較:
1)Basic MF:基礎矩陣分解,僅利用用戶評分矩陣預測評分.
2)PMF:概率矩陣分解,結合概率論的矩陣分解模型.
3)BPMF:基于馬爾可夫蒙特卡羅方法的貝葉斯概率矩陣分解.
4)CBMF:由文獻[13]提出的內容加強矩陣分解,在矩陣分解過程中結合了標簽信息.
5)CISMF:由文獻[8]提出的基于耦合相似度的矩陣分解,利用了耦合相似度的矩陣分解方法.
6)CSMF:本文研究的融入項目語義的矩陣分解,將項目語義信息作為輔助信息融入到矩陣分解過程中.
本文的實驗采用五折交叉驗證的方法,測試數(shù)據(jù)拆分為4份訓練集和1份測試集,與其他算法的對比效果如表1所示.
表1 本文所提算法與其它矩陣分解比較
本文所提融入項目語義的矩陣分解的實驗參數(shù)設置為λ1=λ2=λ3=0.02,a=0.6,d=5,ε=0.8.圖5展示了本文所提算法與其它算法在測試集上的結果,CBMF、CISMF、CSMF引入輔助信息的推薦算法相比于MF、PMF、BPMF無輔助信息的推薦算法明顯降低了MAE值和RMSE值,即提升了預測結果的準確性,這說明引入輔助信息能過有效地緩解數(shù)據(jù)稀疏性問題.其中本文所提的融入項目語義的矩陣分解(CSMF)算法均優(yōu)于其它算法,原因是CSMF算法不同于其它算法僅將輔助信息作為正則化來限制矩陣分解,而是將輔助信息,即項目語義作為分解過程中的潛在特征參數(shù),并分解出用戶主觀上的語義偏好潛在特征,在預測評分過程中,結合了用戶主觀語義上的影響因素和客觀歷史評分上的影響因素,因為在現(xiàn)實世界中項目的語義信是影響用戶行為的重要因素之一.因此將用戶的語義偏好引入到矩陣分解中,能夠有效地提升矩陣分解的評分預測能力,緩解數(shù)據(jù)稀疏性問題.
4.3.3 解決冷啟動問題分析
為了說明本文所提的ISCF算法在提升新用戶評分預測準確性以及解決冷啟動問題上的效果,本文將與以下冷啟動算法進行比較:
1)PredictMean:一種計算已有評分平均值作為預測的基礎推薦算法.
2)UDCF:通過人口統(tǒng)計學屬性特征計算用戶相似度的協(xié)同過濾冷啟動推薦的方法.
3)COS-CF:通過屬性的耦合相似度進行協(xié)同過濾冷啟動推薦的方法[19].
4)ISCF:本文所提的在補全評分矩陣的基礎上,利用聚類分割進行協(xié)同過濾冷啟動推薦方法.
本部分依然采用五折交叉驗證的方法,與其它冷啟動算法的對比效果如表2所示.
表2 本章所提算法與其它冷啟動相關算法比較
圖5 矩陣分解算法MAE對比圖Fig.5 MAE comparison of Matrix factorization algorithm 圖6 冷啟動推薦算法MAE對比圖Fig.6 MAE comparison of cold start recommendation algorithms
由圖6可看出,本文所提的基于項目語義的協(xié)同過濾冷啟動推薦算法(ISCF)對新用戶的評分預測精度高于其它對比算法,這是因為ISCF算法不僅利用了已有評分數(shù)據(jù),還將未評分項通過之前的預測也加入到了推薦過程中,使得數(shù)據(jù)更加全面和完善.此外,在計算評分上,同時利用了用戶相似關系和項目語義相似關系.首先通過項目語義協(xié)同過濾計算已有用戶對這類項目的平均分,然后再通過用戶屬性協(xié)同過濾計算新用戶對此類項目的預測評分.
圖7展示了最近鄰個數(shù)對各種冷啟動推薦算法的影響,隨著橫坐標最近鄰個數(shù)的增加,對應的MEA值變化的過程.
圖7 ISCF與其它冷啟動推薦算法的性能比較
觀察圖7中可知,伴隨橫坐標最近鄰個數(shù)的增加,UDCF、COS-CF、ISCF的MAE值都在不同程度減小,最后趨向于平穩(wěn)狀態(tài).由結果可知,本文所提的ISCF算法始終優(yōu)于其它對比算法,這是因為ISCF算法不僅利用了用戶端的信息,還利用到了項目端的信息,即項目語義,在兩端分別進行了聚類處理.由于實驗中僅用了職業(yè)、性別、年齡這三個特征對用戶進行聚類,所以對比差距不大,如果在用戶信息更全面的環(huán)境下,該算法的優(yōu)勢會更加明顯.
本文所提的基于項目語義的協(xié)同過濾冷啟動推薦算法,首先利用語義相關性改進TF-IDF算法,對項目語義進行向量化表達,然后融入到矩陣分解中以緩解數(shù)據(jù)稀疏性問題,補全評分矩陣,最后通過聚類對補全后的評分矩陣進行分割,獲得多個低緯度的評分小矩陣,利用小矩陣中的數(shù)據(jù)進行協(xié)同過濾預測評分,有效的解決了冷啟動問題,并提升了算法的可擴展性和實時性.下一步的研究方向則是考慮如何將用戶心理特征結合到推薦領域中,改善冷啟動推薦的效果.