陳玨伊, 朱穎琪, 周 剛, 崔蘭蘭, 伍少梅
(1.貴州電網(wǎng)有限責任公司貴陽供電局物流服務中心, 貴陽 550001; 2.貴州電網(wǎng)有限責任公司信息中心, 貴陽 550000;3.四川大學計算機學院, 成都 610065; 4.78123部隊,成都 610017)
隨著電子商務平臺的不斷發(fā)展,越來越多的電商平臺(如淘寶、京東等)高度依賴在線的推薦系統(tǒng),以增強用戶的服務體驗.協(xié)同過濾CF(Collaborative Filtering)是近年來最流行的推薦方法之一.它的基本思想是首先利用用戶對商品的歷史評分信息來度量用戶之間的相似度,再通過搜索最相似用戶的喜好來預測某個用戶對商品感興趣的程度,最后根據(jù)興趣程度將商品進行排序后推薦給用戶[1].但是隨著電子商務系統(tǒng)的發(fā)展,用戶和商品數(shù)目的急劇增加,整個商品項目空間上用戶評分數(shù)據(jù)非常稀疏,即使活躍的用戶,他們購買或評價的商品往往還不到整個項目集的1%.如果用戶對商品項目的評價很少,那么用戶之間選擇商品的差異就很大,不同用戶購買相同產品的情況就很少,那么用戶之間由于商品選擇的差異性會導致最近鄰居的搜索不可靠,也就無法產生準確的推薦,這就是協(xié)同過濾推薦系統(tǒng)所遇到的數(shù)據(jù)稀疏性問題[2]. 為此,研究者們針對協(xié)同過濾算法提出了很多的改進工作,如文獻[3]提出了基于粗糙集規(guī)則的方法提高性能;文獻[4]利用LDA模型提升稀疏評分矩陣下的推薦性能;文獻[5]提出使用矩陣分解解決稀疏問題;文獻[6-7]將遷移學習的方法引入到協(xié)同過濾以此提高推薦性能.
將遷移學習引入到協(xié)同過濾研究的主要思想是通過目標領域和輔助領域的公共用戶的信息來促進目標領域的學習.但是遷移學習的效果依賴于目標領域和輔助領域的共同用戶,雖然兩個領域的共同用戶的商品數(shù)量很多,但是由于每個用戶可能只在少部分商品上有歷史行為,公共用戶所購買的公共商品依然是稀疏的,通過用戶的表面特征來度量用戶相似性的性能也不好.同時,降維的方法,如矩陣分解,雖然也能在一定程度上緩解稀疏問題,但是過于稀疏的數(shù)據(jù),實際應用中矩陣分解的效果不能滿足要求.為了解決公共用戶中商品數(shù)量多,相似度評估性能不好的問題,本文利用遷移學習思想,引入輔助領域的用戶評分信息,提出對兩個領域的用戶評分矩陣進行聯(lián)合矩陣分解,并將公共用戶信息作為兩個矩陣分解的約束項,通過聯(lián)合分解來進一步提高協(xié)同過濾的性能,緩解數(shù)據(jù)稀疏問題.
推薦系統(tǒng)中主要包括三類方法[8]:基于內容的推薦、協(xié)同過濾的推薦以及混合推薦[9-10].其中,協(xié)同過濾推薦算法是推薦系統(tǒng)中應用最廣泛、最成功的個性化推薦技術之一.協(xié)同過濾的算法近年來引起了國內外的研究者廣泛的關注[11-13].在推薦系統(tǒng)中,由于每個用戶評分的商品項目數(shù)目有限,而隨著電子商務的快速發(fā)展,商品項目的集合在不斷增加,因而導致了用戶-商品評分矩陣變得很大也很稀疏.協(xié)同過濾算法主要是依靠用戶的歷史評分信息,數(shù)據(jù)稀疏導致了搜索最近鄰用戶時相似度計算的誤差很大,而過少的評分會導致覆蓋率降低,從而導致推薦的精度嚴重降低[14].
為了解決推薦系統(tǒng)中數(shù)據(jù)稀疏問題,研究者們開展了很多的研究工作,其中主要包括三個方面的研究工作:填值方法[15-16]、降維方法[5,17-19]以及遷移學習方法[4,7,20-22].降維的方法主要是圍繞對用戶-項目評分矩陣進行降維處理,如基于規(guī)則的簡單降維、主成分分析等技術來實現(xiàn).矩陣分解是目前使用最為廣泛的方法[17-18].矩陣分解主要利用了奇異值分解SVD(Singular Value Decomposition),但是SVD只能對稠密數(shù)據(jù)進行處理,因此在分解之前需要補全缺失值,太多的缺失值,導致在實際應用中的效果很差,同時矩陣分解的時間復雜度高,這些缺點制約了SVD 在協(xié)同過濾領域的發(fā)展.2006年,SimonFunk在Netflix 大賽上改進了SVD,并提出Funk-SVD,并在Netflix 上取得了優(yōu)異的成績.Funk-SVD是將評分矩陣分解成兩個近似的低維矩陣相乘,Simon Funk的思想很簡單:可以直接通過訓練集中的觀察值利用最小化均方根學習用戶和商品的特征矩陣,這個模型也被稱作 LFM (隱語義模型).這使得Funk-SVD和它的變體在協(xié)同過濾領域中得到了廣泛的應用.文獻[17]為了解決冷啟動問題,針對現(xiàn)有研究中忽略項目之間關聯(lián)關系的問題,提出將商品度量的關聯(lián)和社會關系相結合的基于聯(lián)合正則化矩陣分解的推薦模型.文獻[18]為了解決稀疏問題,將用戶之間的信任程度考慮到協(xié)同過濾中,提出了基于信任機制的概率矩陣分解的系統(tǒng)過濾算法.現(xiàn)有的基于矩陣分解的各種變體協(xié)同過濾算法雖然一定程度上緩解稀疏帶來的問題,但是單一源領域嚴重的數(shù)據(jù)稀疏仍然制約矩陣分解方法的性能.
近年來,遷移學習逐漸被引入到推薦系統(tǒng)中,它主要是利用目標領域與輔助領域之間隱藏的潛在關系,將輔助領域的知識遷移到目標領域,以此來提高目標領域的推薦質量.文獻[23]提出了基于用戶相似度遷移以及用戶特征遷移的協(xié)同過濾算法.文獻[7]提出了一種綜合相似度遷移模型,在度量目標域和輔助域用戶的相似性時,通過使用用戶評分信息和用戶屬性信息來提高目標領域的推薦性能.這些研究主要利用的是兩個領域的共同覆蓋的公共用戶信息,而公共用戶成為影響基于相似遷移的研究發(fā)展的關鍵.雖然引入輔助領域以后能夠增加公共用戶的數(shù)量,但是公共用戶中共同評分的商品數(shù)目仍然面臨稀疏問題,這導致這些基于相似度遷移的協(xié)同推薦算法性能不好.
綜上所述,現(xiàn)有基于相似度量的遷移協(xié)同過濾研究忽略了輔助領域和目標領域中公共用戶中包含公共商品數(shù)量少時,使用表面特征不能很好地捕捉用戶的潛在特征以及相似性度量性能差的情況,本文提出了一種基于遷移的聯(lián)合矩陣分解協(xié)同過濾模型,以公共用戶為錨,將兩個領域的用戶和商品映射到一個潛在的語義空間,來解決用戶相似度量不準確的問題,從而提高推薦的準確性.
現(xiàn)有的基于相似度的遷移學習協(xié)同推薦算法都是基于用戶商品的淺層特征來計算相似性,而公共用戶所包含的商品打分稀疏時,相似性度量的性能很差.因此,本文提出了在兩個領域公共用戶信息作為約束的情況下,兩個領域的用戶-商品評分矩陣進行聯(lián)合分解的模型,如圖1所示.
由圖1可知,聯(lián)合矩陣分解的過程是通過輸入的兩個領域的評分矩陣,將兩個領域的公共用戶信息作為約束項,對兩個評分矩陣進行聯(lián)合分解,最后分解得到目標領域的用戶和商品潛在特征矩陣,并得到近似得分矩陣.
對于M個用戶和N個商品,用戶-商品的評分矩陣R∈RM×N,其中,Ri,j∈{1,2,3,4,5},表示第i個用戶在第j個商品上評分.由于用戶和商品數(shù)目巨大,R中很多值為空,因此R是一個稀疏矩陣.
圖1 基于遷移的聯(lián)合矩陣分解協(xié)同過濾算法Fig.1 The collaborative filtering algorithm based on transfer learning and joint matrix decomposition
由于傳統(tǒng)的SVD需要對稠密矩陣進行分解,而用戶-商品的評分矩陣往往是一個稀疏矩陣.為了解決傳統(tǒng)SVD存在的問題,現(xiàn)有的協(xié)同過濾矩陣分解算法中使用的主要是LFM、bias SVD以及SVD++.本文選擇bias SVD算法進行矩陣分解.通過bias SVD只需要分解兩個矩陣:U∈Rf×M和V∈Rf×N,分別表示為分解得到的用戶和項目的潛在特征矩陣.用戶商品得分矩陣公式如式(1)所示.
(1)
其中,f表示隱特征維度,用戶i對商品j的預測評分為
(2)
由于用戶對物品的評價有些因素與用戶的喜好無關,而只取決于用戶或物品本身特性.因此,Bias SVD把這些獨立于用戶或獨立于物品的因素稱為偏置(Bias)部分.Bias SVD在用戶的預測評分公式中加入了基準預測評分,如式(3)所示[24].
bij=μ+bi+bj
(3)
其中,μ表示全局評分的平均值;bi表示用戶i的偏置向量,表示用戶的屬性因子;bj表示商品j的偏置向量,代表商品的屬性因子.
(4)
加入基準預測評分后的優(yōu)化目標函數(shù)如式(5)所示.
(5)
其中,λ為正則化因子.最小化的過程即采用梯度下降法分別對Ui、Vj、bi和bj求偏導的過程.
圖2 算法描述Fig.2 Algorithm description
為了學習模型中的各個參數(shù),可以最小化損失函數(shù)J(θ)實現(xiàn)這個目標.令J(θ1)是根據(jù)式(5)得到的輔助領域的損失函數(shù),J(θ2)通過式(5)得到的目標域的損失函數(shù),本文矩陣聯(lián)合分解模型的損失函數(shù)如式(6)所示.
J(θ)=ω1J(θ1)+ω2J(θ2)+
(6)
其中,θ表示所有待優(yōu)化的參數(shù);θ1和θ2為輔助域和目標域損失函數(shù)中待優(yōu)化的參數(shù);ω1,ω2和ω3為超參數(shù),模型的性能和這三個超參數(shù)是密切相關,而手工調優(yōu)它們是非常困難且耗時耗力的事情.為此,借鑒文獻[25]提出的思想,將兩個單域的損失和約束項看成是三個回歸任務的學習問題,考慮每個任務的同方差不確定性(homoscedastic uncertainty)來權衡各個任務的權重.ω1,ω2和ω3為各個任務中訓練集的噪聲水平.因此,聯(lián)合分解過程中ω1,ω2和ω3參與優(yōu)化.
綜述所述,本文提出的方法如算法1所示.
算法1基于遷移的協(xié)同矩陣分解模型
輸入:目標領域評分矩陣Rt,輔助領域評分矩陣Ra,模型參數(shù)epoch,λ,學習率,K
1) 通過Rt和Ra,計算兩個領域的交叉用戶信息,得到指示矩陣Ya和Yt;
2)ω1,ω2和ω3的優(yōu)化過程及聯(lián)合矩陣分解過程;
2-1) 初始化:ω1,ω2,ω3,Ut,Vt,Ua,Va輸入為J(θ),
2-2) 隨機梯度下降,優(yōu)化函數(shù)梯度.
Repeat{
計算▽J(θ);
更新迭代公式:
}直到收斂,算法停止.
3) 計算目標領域的Rt的逼近評分矩陣
實驗數(shù)據(jù)集采用GroupLens小組提供的被廣泛應用在推薦系統(tǒng)的測評數(shù)據(jù)集MovieLens.該數(shù)據(jù)集包含了 943 位用戶對 1 682 部電影的評分,總的評分條目超過 1×105條,用戶評分包含 5 個等級(1~5),其中,1 為不喜歡,5 為非常喜歡,數(shù)值越高代表喜歡程度越高.
我們按照文獻[7]的數(shù)據(jù)分組方法對數(shù)據(jù)集進行了劃分,不同的數(shù)據(jù)組公共用戶的數(shù)量不相同,包含的公共商品也不相同,數(shù)據(jù)分布如表1所示.
表1 五個數(shù)據(jù)集的分布
每個數(shù)據(jù)集將目標域的樣例按照8∶2的比例劃分為訓練集和測試集.
本文實驗采用均方根誤差(Root Mean Squared Error,RMSE)以及平均絕對誤差(Mean Absolute Error,MAE)來評估模型的性能,如下式所示.
(7)
(8)
我們的模型使用Xavier進行參數(shù)的初始化,Adam作為優(yōu)化器,其它超參數(shù)如表2所示.在五組不同的數(shù)據(jù)組中,ω1,ω2和ω3的值,如表3所示.
表2 超參數(shù)設置
為了驗證基于遷移的聯(lián)合矩陣分解協(xié)同過濾模型的有效性,本文選擇了下面三個模型作為基線模型進行對比實驗.(1) UCF 算法[26]:只能利用公共用戶進行推薦;(2) TSUCF 算法[23]:基于傳遞相似性的交叉推薦算法,利用多個網(wǎng)站平臺中用戶的相似度來解決數(shù)據(jù)稀疏問題;(3) Jin2018[7]: 基于綜合相似度遷移模型,在相似度計算上,利用公共用戶評分信息同時也利用了用戶屬性信息,并且考慮了用戶間對滿意度的打分標準的差異性,采用了用戶評分分布一致性來衡量用戶評分相似度的方法.
表3 公式(6)的超參數(shù)
首先我們分別驗證了學習率和隱變量維數(shù)對模型性能的影響,如圖3~圖6所示.
圖3 不同學習率下RMSE的結果
從圖3和圖4可以看出,隨著學習率的增加,RMSE和MAE的性能都在下降,特別是在學習率為0.01時,由于學習率過高,導致無法收斂.從兩個圖的性能比較中可以看出,學習率為0.000 5的模型性能相對較好.
圖4 不同學習率下MAE的結果
圖5 不同維數(shù)隱變量下的RMSE結果
圖6 不同維數(shù)的隱變量下MAE的結果
從圖5和圖6中可以看出,隨著隱變量K維數(shù)的增加,RMSE和MAE的性能都在提高.在維數(shù)為150時,MAE的性能有了降低.
我們使用表2和表3給出的模型超參數(shù),訓練模型,圖7給出了在A組、B組、C組、D組以及E組五個數(shù)據(jù)集在訓練過程中各個epoch下的RMSE和MAE的結果.
圖7 不同Epoch下的RMSE和MAE的結果
從圖7中可以看出,5個數(shù)據(jù)組的RMSE和MAE最開始處于欠擬合狀態(tài),隨著迭代次數(shù)的增加,進入擬合狀態(tài).我們和基線模型進行了對比實驗,結果如圖8所示.
圖8 和基線模型的對比結果
從圖8可以看出,UCF模型的性能是最差的,因為只利用公共用戶的信息進行推薦,沒有考慮其他的信息.當公共用戶數(shù)目增加時,UCF的性能才能有輕微的提高.而Jin2018和TSUCF都是利用淺層的表面特征來計算用戶的相似性的,雖然比UCF性能更好,隨著公共用戶的增加,它們有一定的提升,但是提升的幅度不大,說明這種表層的特征不能很好地刻畫用戶的潛在特征.而我們的模型在A組數(shù)據(jù)集中,公共用戶非常少的情況下,公共用戶的公共商品也非常稀疏,我們的模型RMSE能夠高于Jin2018模型4%,隨著公共用戶的增加,這些公共用戶包含的公共商品數(shù)目也相應在增加,所以在B、C、D以及E組數(shù)據(jù)集中都獲得了很好的結果,特別是在E組數(shù)據(jù)集上,我們模型的RMSE達到了0.48.結果說明捕捉了用戶的潛在特征能夠顯著提高協(xié)同過濾的性能,也驗證了模型的有效性.同時,隨著公共用戶數(shù)目的增加,商品稀疏性在減少,我們的模型能夠從輔助領域學到更多的隱藏知識,因此,在E組的數(shù)據(jù)集下性能顯著提高,并遠遠高于基線模型.
針對現(xiàn)有的基于遷移學習中利用輔助領域和目標領域之間公共用戶的相似性度量進行協(xié)同過濾的研究,本文發(fā)現(xiàn)隨著數(shù)據(jù)的增加,公共用戶雖然多,但是包含的公共商品依然存在數(shù)據(jù)稀疏的問題,利用表層特征計算相似度的性能差.為此,本文提出利用公共用戶信息作為矩陣分解的約束項,將輔助領域和目標領域的用戶評分矩陣進行聯(lián)合矩陣分解的協(xié)同過濾算法.和現(xiàn)有的研究進行了實驗對比,本文提出的算法高于基線模型,隨著公共用戶中包含的公共商品數(shù)量的增加,我們模型的性能顯著提高.實驗結果也證明捕捉用戶之間的潛在特征能更好地提高協(xié)同過濾的性能.