原福永,馮凱東,李 晨,雷 瑜,周 馨,黃國言,梁順攀
1(燕山大學 信息科學與工程學院計算機系,河北 秦皇島 066004) 2(東北大學 軟件學院,沈陽 110179)
隨著互聯網信息的爆炸式增長,推薦系統[1,2]越來越多地被選擇為應對信息過載問題[3]的有效手段,例如亞馬遜、阿里巴巴等平臺利用推薦系統,幫助用戶選擇可能與用戶當前任務相關但尚未體驗過的產品來解決此種問題.
現有的推薦研究中采用非個性化推薦策略或個性化推薦策略來解決不同的問題.非個性化推薦策略主要用于解決冷啟動用戶的問題,算法通過不同維度(如,地理位置、社交網絡等)獲得冷啟動用戶[1]的基本特征,從而進行粗粒度[2]的推薦.其中最常用的方法是利用大眾口味對冷啟動用戶進行推薦,待系統獲取用戶數據到一定閾值后,即系統積累了一些用戶數據,再轉用個性化推薦策略.
個性化推薦策略是很多推薦算法常用的策略,主要針對非冷啟動用戶,系統根據已有用戶數據進行細粒度的推薦[2].目前矩陣分解算法[4]作為個性化推薦策略在推薦算法領域表現出優異的性能,該算法能夠很好地補全用戶-物品的評分矩陣中的缺失值并將缺失值作為個性化偏好的預測值,從而達到推薦的效果.
當前推薦系統方法主要可以分為兩類[5]:基于顯式反饋的推薦方法和基于隱式反饋的推薦方法.基于顯式反饋(explicit feedback)的推薦方法通過獲取用戶的歷史評分或者評價信息,對用戶的潛在評分進行預測.但該方法往往需要大量的用戶評分數據.在實際場景中,會存在用戶很少購買或評價商品造成的評分數據稀疏問題,這使得該方法的應用受到限制,無法準確地為用戶提供推薦.
基于隱式反饋(implicit feedback)[6,7]的推薦方法不同于顯式反饋方法,不需要獲取顯式信息,而是通過獲取用戶的行為信息(如瀏覽點擊,收藏等行為),得出用戶偏好信息.由于用戶的隱式信息遠遠多于顯式信息.因此,該方法受到廣泛應用.
本文的主要工作如下.1)提出了用戶經歷,將用戶參與的隱式反饋加權和作為用戶經歷,將用戶經歷作為一個平衡系數使不同的推薦方法間有一個平滑的過渡;2)在此基礎上,在該模型上加入阻尼系數,使得不同“經歷”的用戶都被推薦到熱門的商品,從而防止推薦內容過于單一;3)利用貝葉斯個性化排名-優化規則對模型進行優化,對最后的推薦結果進行排名;4)在兩個真實數據集上進行實驗,采用隨機梯度下降方法對參數進行訓練,采用多種評估指標進行評估,得出評估結果并與其它算法進行比較分析.
本節將介紹基于隱式反饋的推薦方法的相關工作,現有的隱式反饋推薦方法研究中,將隱式行為分為目標行為和輔助行為,因此可將隱式反饋推薦方法分為基于目標行為的推薦方法、基于目標行為與輔助行為的推薦方法和基于所有行為的推薦方法.
目標行為是指只選用相對影響大的行為,如在點擊、收藏以及購買三個行為中,只選擇購買行為作為有效數據.Koren Y等人提出的基于矩陣分解的推薦方法[4]通過建立用戶商品矩陣,將目標行為對應的商品作為已知,進而預測出矩陣中的未知值.例如奇異值分解(SVD)方法.Mnih A等人提出的基于概率的矩陣分解方法(PMF)[8]在矩陣分解方法基礎上引入概率模型,利用最大后驗分布與最大似然估計得出的特征矩陣來預測矩陣值.但是上述方法對于非目標行為利用不充分,而Rendle S等人提出的貝葉斯個性化排序(BPR)[9]算法將目標行為作為正向數據,將非目標行為作為負向數據,提出用戶相對于負向數據更傾向于正向數據的觀點,并提出了通用性的貝葉斯個性化排名-優化標準(BPR-OPT),通過貝葉斯分析得到最大后驗分布,使得優化過的評估結果得到大大提高.BPR中只是將隱式反饋分為目標行為與非目標行為,沒有將隱式反饋進一步劃分.
只對目標行為進行處理會導致數據處理不充分,因此在采集目標行為數據之外,加入輔助行為,例如在把購買作為目標行為之外,將點擊作為輔助行為加入到模型中,將輔助行為與目標行為相結合,從而得到更為精準的推薦結果.Pan W等人提出的自適應貝葉斯個性化排序(ABPR)[10]將用戶的購買行為作為目標行為,將點擊行為作為輔助行為,首次提出將輔助行為與目標行為聯系到一起.Qiu H等人提出的基于三位一體偏好的多元隱式反饋貝葉斯個性化排序(TBPR)[11]在聯系輔助行為與目標行為基礎之上,加入了無交互行為(用戶與商品無行為發生),推薦效果得到提升.但上述推薦方法只是應用到了少數隱式行為,并沒有將所有的隱式行為考慮進去.
基于所有隱式行為是將所有的隱式行為都作為目標行為,為不同的行為賦予不同的權重值,從而利用所有的隱式反饋信息,得到精準的推薦結果.Loni B等人提出的基于多層次用戶反饋的貝葉斯個性化排名(MC-BPR)[12]利用不同層次的隱式反饋對采樣進行擴展.不同于BPR中的目標行為大于非目標行為,而是詳細給出不同隱式行為的權重,高權重的隱式行為大于低權重的隱式行為進而大于未觀測到的行為,而未觀測到的行為優于差評行為.但是該方法沒有解決用戶冷啟動問題,只是增強了用戶個性化推薦部分.
本文提出的融合用戶經歷的自適應推薦模型能夠很好地解決用戶冷啟動與個性化推薦之間的關系,實現了從用戶冷啟動到個性化推薦的平滑過渡,使得推薦結果更加人性化,更符合用戶需求.在用戶經歷中,考慮到了所有的隱式行為,通過迭代訓練為每個用戶的每種隱式行為賦予不同的權重.引入阻尼系數,提出加入阻尼系數的融合用戶經歷的自適應模型,以防止推薦內容過于單一,保證針對不同“經歷”的用戶都能被推薦到熱門的商品.在后面的實驗部分中,實驗結果表明加入阻尼系數的模型效果更優.
本節主要提出了一種融合用戶經歷的推薦系統模型.首先引入用戶經歷的概念,并介紹用戶經歷在模型中的作用.其次給出了需要平衡的多種策略,最后提出利用用戶經歷進行平衡的多策略自適應模型.
如上所述,隱式反饋相對于顯式反饋,不需要用戶主動提交反應用戶偏好信息的行為,是比較容易獲得的.因此本文利用隱式反饋,將用戶的隱式反饋累計數量作為用戶經歷.具體定義如式(1)所示.
(1)
式(1)中eui表示用戶u對商品i的經歷值,Xuik表示用戶u對商品i在反饋行為k上的數量,Wuk表示用戶u在反饋行為k上的權重值.
3.2.1 非個性化推薦策略
非個性化策略,是針對冷啟動問題,行為數量少的用戶的推薦策略.本文選擇的是根據物品本身的屬性進行推薦,借鑒了經典算法Most Popular和用于信息檢索與文本挖掘的常用加權方法詞頻-逆文檔頻率的思想,即物品的評分數據與物品在數據集記錄中出現的次數成正比,如公式(2)-公式(4)所示.
popi=σ(ci,cavg)
(2)
(3)
(4)
式(2)中POPi表示物品i的受歡迎程度,Ci表示物品i詞頻,即物品i在數據集中出現的次數.式(3)中Cavg表示平均每個物品的記錄數,Call表示數據集中的總記錄數,Cai表示物品出現的次數.
3.2.2 個性化推薦策略
個性化推薦策略,是針對用戶個性化的推薦策略.在機器學習領域,隱式因子模型表現出優秀的性能,又因為基本的矩陣分解的參數相對較少,能夠在一定程度上減小訓練的難度,因此,本文實驗選擇隱式因子模型來訓練.將用戶-物品的行為矩陣低秩表達為用戶特征矩陣和物品特征矩陣,用戶特征矩陣表示用戶對隱式特征的包含程度,物品特征矩陣表示物品對隱式特征的包含程度,通過計算用戶向量和物品向量的點積確定用戶對物品的偏好程度.具體如公式(5)所示.
(5)
其中,pu表示用戶的特征矩陣,qi表示商品的特征矩陣,Xui表示用戶u對商品i的預測評分.
本模型通過引入經歷系數,實現多種策略的平衡,主要分為三個部分:非個性化策略、個性化策略和經歷系數,模型如公式(6)所示.
(6)

經歷系數,是非個性化策略與個性化策略之間的平衡系數,當用戶在系統中的數據十分稀疏時,經歷系數的值很小,此時非個性化策略在用戶喜愛偏好上占主導作用;反之,經歷系數值很大,個性化策略在決定用戶喜愛偏好上占主導作用.假設用戶的不同隱式反饋行為是不同的維度,將用戶在各個維度上的隱式反饋行為數目加權求和作為經歷系數,如公式(1)所示.
為了提高訓練時每次迭代的訓練速率,本文將公式(1)簡化,提前算好常量用戶隱式反饋的數目,如公式(7)所示.
(7)
自適應是根據已有的數據特征不斷調整,從而達到不斷逼近目標的目的.機器學習是通過學習模擬大量的數據規律,然后利用學習規律預測新的事物.自適應推薦模型需要通過機器學習的訓練方法來獲得最佳的處理效果.梯度下降法(Gradient Descent Optimization)是機器學習中最常用的訓練優化方法.
對于自適應推薦模型,基本都是采用梯度下降算法來進行優化訓練的.梯度下降算法的原理是通過計算得到的目標函數對于參數的梯度是目標函數上升最快的方向,對于最小化優化的問題,只需要設置參數在梯度相反的方向增加一個學習速率,即步長,就可以實現在目標函數上的下降.參數更如公式(8)所示.
θ=θ-ηJ(θ)
(8)
公式(8)中J(θ)表示參數的梯度,η表示學習速率.
本文使用的是梯度下降方法中的隨機梯度下降算法(Stochastic Gradient Descent),因此在本文實驗中采用的數據集樣本量很大的情況下,只需少量樣本數據,就可以將所有參數迭代到全局最優解或局部最優解.
在以上基礎上,本文采用貝葉斯個性化排名優化準則(BPR-OPT)[6]對最終的推薦結果進行排序,并將排名前十的商品推薦給用戶.
在文獻[6]中,BPR-OPT的定義如式(9)所示.
(9)
式(9)中λθ表示模型的正則化參數,θ表示要求解的模型參數.p(>u|θ)定義如式(10)所示.
p(>u|θ)=σ(ruij(θ))
(10)
ruij(θ)表示模型參數θ的任意矢量函數.對于本文應用的矩陣分解模型,在文獻[6]中,ruij定義如公式(11)所示.
ruij=rui-ruj
(11)
其中rui為用戶u對商品i的評分預測,具體表達式如公式(11).利用隨機梯度下降算法對BPR-OPT進行求解.如公式(12)所示.
(12)
(13)
(14)
(15)
(16)
上述融合用戶經歷的多策略自適應推薦模型忽略了一個問題,即一味地為“用戶經歷”豐富的用戶推薦個性化的商品,這會導致推薦的結果過于單一,正如機器學習中的過擬合問題,本推薦模型面臨著“過個性化”的問題.
借鑒谷歌的佩奇排名(Page Rank)算法的思想,大多數用戶都不會接受“過個性化”的推薦,他們希望得到個性化推薦的同時,也能體驗時下的熱點信息.因此,本文猜想對非個性化策略的比重加以控制,是否能夠提升推薦算法的預測精度.
具體做法是:將佩奇排名算法的思想融入到本文的研究中,即使對于非常有“用戶經歷”的用戶,也會獲得非個性化的推薦內容.引入阻尼系數,將其作為非個性化策略的系數,使針對不同“用戶經歷”的用戶都被推薦到熱門的商品,以此提升算法的新穎性.用戶對于物品的個性化預測評分模型如式(17)所示.
(17)
公式(17)中γ表示控制非個性化策略的系數,防止在用戶行為較多的情況下,用戶的非個性化推薦策略完全消失.同樣需要更新的參數為Pu,Qi,Qj和Wuk,對于Pu,Qi和Qj三個參數來說,更新公式如公式(13)-公式(15)所示.Wuk對應的參數更新梯度如公式(18)所示.
(18)
通過公式(13)-公式(16)多次迭代更新參數Pu,Qi,Qj和Wuk,達到最大迭代次數或者達到收斂條件,最終得出較優的參數值.
算法1.融入阻尼系數的融合用戶經歷的多策略自適應推薦模型參數求解算法.
輸入:用戶對商品行為集合,用戶集合,學習率,正則化系數以及阻尼系數;
輸出:參數集合Pu,Qi,Qj和Wuk.
步驟:
1.初始化參數Pu,Qi,Qj,Wuk;
2.Repeat;
3.從用戶集合中選取用戶u,從該用戶對應商品集合中選取商品i;
4.計算用戶經歷eui;
8.Util 達到最大迭代次數或收斂;
9.End.
本節主要展示在兩個真實數據集Sobazaar和淘寶上,本文提出的兩個算法及相關算法的實驗結果,并進一步對實驗結果進行分析.
Sobazaar[注]https://github.com/hainguyen-telenor/Learning-to-rank-from-implicit-feedback/tree/master/Data是由Telenor Digital開發的一款時尚社交應用程序.該應用可以提供給用戶許多不同的時尚服裝,用戶可以自行設計發表的內容.數據集的樣本數據來源于2014年9月至2014年12月,所有用戶在Sobazaar應用的行為信息,用戶行為信息分為9種.
淘寶數據集[注]https://tianchi.aliyun.com/datalab/dataSet.html?spm=5176.100073.0.0.26a16fc1khUmdr&dataId=6包含了從2017年11月25日至2017年12月3日之間的用戶的行為記錄,記錄了約一百萬名隨機用戶的四種行為(用戶行為包括了點擊、購買、加入購物車、喜歡).
兩個數據集的主要行為數量對比如表1所示.從表1可以看出,淘寶數據集的規模要遠大于Sobazaar數據集的規模.
在推薦系統領域中,評估指標作為衡量推薦系統算法效果的標準,評估指標可分為[13,14]預測指標(prediction metrics)、集合推薦指標(set recommndation metrics)、排名推薦指標(rank recommendation metrics)以及多樣性指標(diversity metrics).
表1 Sobazaar與淘寶數據集行為數量
Table 1 Behavior number of sobazaar and taobao

數據集Sobazaar淘寶用戶數量17126987994商品數量247854162024購買行為1520847809喜歡行為95589189628點擊行為1268461918897
由于在本文提出的模型中需要為用戶按照權重推薦不同的商品,因此本文選用的是集合和排名推薦指標,包括準確率(precision)、召回率(recall)、AUC以及NDCG.
在本文中,采取留出法對數據集進行劃分.即將數據集中的80%作為訓練集以對模型進行構建,將20%作為測試集,對模型進行驗證.
1)準確率(precision)
表示在預測出的所有推薦結果中,與用戶相關的推薦結果所占比例.具體表達式如(19)所示.
(19)
其中,K表示為用戶推薦項目的數目,本實驗中設置K=10,δ(x)函數表示當x條件為真時,函數返回1,否則返回0.Zu表示用戶u在測試集中的所有目標行為集合.準確率越高,代表推薦結果更加準確.
2)召回率(recall)
表示在所有與用戶有關的商品中,被推薦出來的商品所占比例.具體表達式如(20)所示.
(20)
其中,Tu表示用戶u的所有目標反饋行為集合.召回率越高,代表推薦結果更加精確.
3)AUC
本意指ROC曲線下面積,文獻[6]中將其進行類推,并作為評估BPR-OPT算法效果好壞的指標.具體表達式如式(21)所示.

(21)

4)歸一化折損累積增益(NDCG)
具體定義式如式(22)(23)所示.
(22)
(23)
其中,ru,ij表示用戶u對商品ij的行為預測,IDCGu為idealDCGu即需要對K個用戶商品預測值首先進行降序排序,根據式(23)計算可得出IDCGu值.
為了驗證本文算法的優越性,我們設計了兩組實驗,其中第一組驗證加入阻尼系數對模型的影響.第二組將本模型與其它模型進行對比,最終得出實驗結果.
5.3.1 UE+實驗結果
本節在兩個數據集上對兩個算法進行實驗,得出結果如圖1所示.通過圖1中的曲線趨勢可以看出,隨著迭代次數不斷增加,模型逐漸收斂.并且在兩個不同的數據集上,UERM+模型在兩個不同的評估標準下的效果明顯優于UERM模型,從而在兩個數據集上,證明加入阻尼系數后的模型效果是要優于不加入阻尼系數的模型,驗證了優化方案的正確性.
5.3.2 對比其他自適應推薦模型的實驗結果
將UERM+模型與以下三種模型進行比較,比較結果如表2所示.
表2 比較模型在Sobazaar和taobao數據集的評估結果
Table 2 Evaluation result comparison on Sobazaar and taobao

數據集模型precision@10recall@10AUCNDCG@10SobazaarMostPopular0.0058470.0436790.5277380.025634PMF0.0020110.0035860.5095590.003041MFBPR0.0031030.0215320.5170120.011454VALS0.0126230.0991700.5623320.062403UERM+0.0410820.2578590.6697210.190278Improve225.4%160.0%19.1%204.4%TaobaoMostPopular0.0010840.0108400.5054160.005590PMF0.0005420.0054200.5027080.002022MFBPR0.0012120.0007290.5060370.001278VALS0.0048120.0467910.5240430.025575UERM+0.0113550.1013430.5555080.068381Improve136.0%116.6%6.0%167.3%

圖1 兩種模型在不同迭代次數下的評估結果Fig.1 Evaluation resuls of two models in different iterations
1)MostPopulary:一種非個性化推薦模型,通過統計商品與用戶的交互行為次數,將行為次數多的商品推薦給用戶.
2)PMF:Mnih A等人[8]提出的利用概率模型優化矩陣分解的方法.
3)MFBPR:Rendle等人[9]提出的貝葉斯個性化排序是首個將成對法應用于商品推薦的算法,通過成對排序思想優化矩陣補全模型,并通過隨機梯度下降方法對參數進行訓練.
4)VALS:Ding等人[15]提出的目前較為先進的利用隱式反饋的個性化推薦模型.通過將隱式反饋行為分為購買,查看和未查看三種行為,進一步利用用戶隱式反饋提高個性化推薦質量.
由表2可以看出:
1)非個性化策略的重要性:從兩個數據集中可以看出,Most Popular非個性化策略在某些場合下的效果是要優于個性化策略的,如以precision指標為例,在上述表2中,可以看出Most Popular模型得出的值是大于PMF以及MFBPR兩個模型的,充分說明了非個性化策略在推薦結果中的重要性以及不可忽略性.
2)個性化策略的改進:在推薦系統中,如何提高個性化策略一直是近年來研究的熱點.從表2中結果可以看出,VALS作為目前最新的研究成果在各個評估指標上都優于之前提出的個性化推薦模型.證明了個性化推薦在推薦系統研究中的重要地位.
3)平衡系數用戶經歷:從表2中可以看出,加入用戶經歷作為平衡系數之后,在不同數據集的不同評估指標上,UERM+模型的效果明顯優于其它模型.驗證了本文提出的融合用戶經歷的自適應推薦模型,在融入阻尼系數后,達到了本文的預期結果.
本文提出了融合用戶經歷的自適應推薦模型(UERM)以及融入了阻尼系數的UERM+模型.相對于其它模型,本文首先充分利用了用戶的隱式反饋,將用戶的所有隱式行為信息利用起來.其次引入了用戶經歷概念,將用戶的行為種類賦予初始權重,并在不斷訓練中更新權重,將行為權重與行為數量結合構成用戶經歷.最后,以用戶經歷作為系數將個性化策略與費個性化策略相結合.并在此基礎上,引入阻尼系數對初始模型進行優化,防止由于用戶經歷過大導致個性化策略與非個性化策略之間的失衡,使得非個性化策略失效.
通過在兩個真實數據集上進行實驗,驗證了本文模型在不同評估指標上,效果優于其它模型,能夠為用戶提供更加準確的推薦結果.
本文的主要工作是利用隱式反饋將個性化與非個性化推薦策略結合起來.在以后的工作中,將深度學習與推薦系統相結合,從而改進個性化推薦策略,從而提高個性化推薦質量.