張 許,虞慧群,范貴生
(華東理工大學 信息科學與工程學院,上海 200237)
推薦系統(tǒng)被證明可以有效地減輕信息過載問題,基于協(xié)同過濾(collaborative filtering,CF)的推薦已經(jīng)應用于互聯(lián)網(wǎng)上的許多領域[1-3]。傳統(tǒng)的協(xié)同過濾中通常使用評分數(shù)據(jù)等顯示反饋分析用戶偏好,至今為止,許多研究人員從各方面對基于評分預測的協(xié)同過濾推薦進行了深入研究,取得了一些顯著成果。但是評分數(shù)據(jù)這種顯示反饋更多情況下很難收集,大多數(shù)反饋都不是明確的,隱式反饋更常見,也更易于獲得。在實際應用中,傳統(tǒng)的協(xié)同過濾推薦在顯示反饋數(shù)據(jù)缺失的情況下,不能進行有效推薦。同時,在新用戶加入的情況下,協(xié)同過濾也存在冷啟動問題。本文針對上述兩個問題,提出了一種基于隱式反饋的相似度計算和用戶推薦方法,該方法使用隱式反饋行為數(shù)據(jù)計算用戶行為相似度,同時,引入用戶屬性信息計算用戶屬性相似度,然后融合用戶屬性和行為綜合度量用戶相似性,解決了傳統(tǒng)協(xié)同過濾算法存在的一些問題。在真實數(shù)據(jù)集上的實驗結果表明,本文方法在用戶推薦具有一定的準確度和有效性,并且冷啟動條件下,也具有較好的推薦效果。
推薦算法作為一門熱門研究學科,發(fā)展至今已經(jīng)有了非常成功的應用,例如電影[4,5]、社交網(wǎng)絡[6]以及其它方面[7]。常見的推薦算法包括基于內(nèi)容推薦、協(xié)同過濾和混合推薦。
基于內(nèi)容推薦分析用戶評價對象的特征,然后學習用戶的興趣模型。協(xié)同過濾(CF)在推薦系統(tǒng)中起著重要作用,是最成功的推薦方法之一。協(xié)同過濾推薦與目標用戶最相似的用戶所偏好的信息?;旌贤扑]方法提供了兩種方法的組合,并利用了每種方法的優(yōu)點。協(xié)同過濾算法分為兩種不同類別,即基于內(nèi)存的CF和基于模型的CF?;趦?nèi)存的CF可分為基于用戶的CF[8,9]和基于項目的CF[10,11],在基于用戶的CF中,分析用戶的相似性進行預測,可以認為,用戶可能會購買與他相似的用戶購買過的物品。在基于項目的CF中,分析項目之間的相似性以進行預測,一般認為,用戶很可能會購買類似于他過去購買的物品。基于模型的CF方法中,使用數(shù)據(jù)集以生成學習模型。本文研究的重點是基于用戶的CF方法。
傳統(tǒng)的協(xié)同過濾通常使用顯示反饋數(shù)據(jù)進行推薦,然而,實際應用中,這種顯示反饋數(shù)據(jù)通常難以收集,而隱式反饋數(shù)據(jù)更容易獲取。關于隱式反饋的協(xié)同過濾也被稱為單類協(xié)同過濾(one-class collaborative filtering,OCCF),與沒有數(shù)據(jù)評分的傳統(tǒng)CF相比,OCCF在許多情況下適用性更高。文獻[12]提出了一種UOCCF方法,該方法基于CLiMF(collaborative less-is-more filtering)和概率矩陣分解(probabilistic matrix factorization,PMF),具有低復雜度、高精度和良好的可擴展性的優(yōu)勢。文獻[13,14]通過利用隱式反饋來解決協(xié)同過濾的數(shù)據(jù)稀疏性問題。文獻[15]提出了一個僅使用隱式反饋數(shù)據(jù)的數(shù)字內(nèi)容推薦框架,其不僅考慮用戶和內(nèi)容之間的交互,還考慮在期間可用的各種其它隱含信息。文獻[16]利用預定義相似性和學習相似性的互補性,提出了一種具有隱式反饋的混合相似性推薦方法。
傳統(tǒng)的相似性度量方法主要依據(jù)評分數(shù)據(jù),通過評分數(shù)據(jù)計算相似性。在顯示反饋的評分數(shù)據(jù)缺失的情況下,利用隱式反饋數(shù)據(jù)計算相似性是可行的。此外,新用戶加入沒有反饋數(shù)據(jù),即冷啟動的情況下,引入其它用戶信息是一種有效的方法。本文引入用戶信息和隱式反饋,提出了一種相似度計算方法。
本文提出的方法從用戶屬性和用戶行為兩個方面計算用戶相似度,主要貢獻在于:①利用用戶隱式反饋計算行為相似度,使用隱式反饋替代缺失的顯示反饋數(shù)據(jù),解決了協(xié)同過濾在顯式反饋數(shù)據(jù)缺失的情況下不能有效推薦的問題。②引入用戶個人信息計算屬性相似度,并融合用戶屬性和行為相似度,解決了協(xié)同過濾推薦的用戶冷啟動問題。本文提出的算法模型如圖1所示。
2.1.1 用戶屬性相似度
用戶屬性相似度依據(jù)用戶屬性特征矩陣計算得出,每位用戶屬性特征使用Attr=(a1,a2,…,ak) 表示,其中,ai為用戶的第i個屬性值,k為屬性總數(shù)。本節(jié)用戶屬性值均設定為分類屬性,年齡等數(shù)值屬性則按一定范圍劃分轉換為分類屬性。對于兩個用戶u和v,若屬性值ai相同,則認為simAttr(u,v,i)=1, 否則,認為simAttr(u,v,i)=0。 兩個用戶之間屬性相似度計算定義如式(1)所示
(1)
2.1.2 用戶行為相似度
用戶行為相似度依據(jù)用戶行為特征矩陣計算得出,每位用戶行為特征使用Act=(b1,b2,…,bl) 表示,其中,bi為用戶產(chǎn)生的第i類行為的數(shù)量,l為行為類型總數(shù)。對于兩個用戶u和v,如果行為數(shù)量bi相近,則表明二者某種程度上相似,一般數(shù)值差距越小,二者越相似。本文使用sigmoid函數(shù)表明這種非線性變換,兩個用戶在類型為i的行為下的相似度定義如式(2)所示
(2)
其中,rui和rv i分別表示用戶u和v產(chǎn)生的第i類行為的數(shù)量,系數(shù)2是歸一化。
用戶行為相似度是所有行為類型依據(jù)式(2)所得相似度的均值,兩個用戶之間行為相似性定義如式(3)所示
(3)
其中,l為用戶行為類型總數(shù)。
2.1.3 用戶融合相似度
本節(jié)定義上文兩種用戶相似度融合后的相似度為用戶融合相似度。融合相似度具有更高的可靠性和準確度。兩種相似度融合基于假設:新用戶加入時,沒有行為數(shù)據(jù),用戶行為相似度計算結果為零,融合相似性僅利用屬性相似度;當用戶行為逐漸增多,用戶行為相似度準確度逐漸增高,融合相似性更多利用行為相似度。使用sigmoid型函數(shù)實現(xiàn)這種平滑過渡,用戶融合相似度定義如式(4)所示
(4)
本文預測燃氣系統(tǒng)中用戶使用的訪問方式,用戶訪問方式使用向量Way=(w1,w2,…,wm) 表示,其中,wi表示用戶是否使用方式i訪問,m為訪問方式的總數(shù)。根據(jù)用戶信息和隱式反饋行為數(shù)據(jù),計算用戶融合相似度,然后使用K近鄰方法計算預測值。用戶訪問方式的預測值計算如式(5)所示
(5)
本文算法具體描述見算法1所示。
算法1: 本文算法
輸入: 用戶數(shù)n, 屬性特征矩陣Attrn×k, 行為特征矩陣Actn×l, 訪問方式矩陣Wayn×m;
輸出: 訪問方式預測矩陣Pren×m;
(2)fori= 0;i (3) forj= 0;j (7) end for (8)end for (9)fori= 0;i (10) //計算預測值,NK為K近鄰集合 (11)end for (12)fori= 0;i (13) //計算評價指標recall和precise (14) 計算recalli和precisioni; (15)end for (16) //計算評價指標平均值 本實驗數(shù)據(jù)集選取自上海燃氣集團2015年7月值2018年11月期間注冊的部分用戶個人信息和他們在這期間的歷史行為記錄,其中,包括4394名用戶和60 130條行為記錄。本實驗算法使用Python語言編寫,系統(tǒng)平臺為Windows10系統(tǒng)。 評價推薦系統(tǒng)推薦質(zhì)量的度量標準主要包括預測評分和TopN推薦兩類,本文使用TopN推薦的精準率(Precision)和召回率(Recall)作為度量標準,同時,使用F1-Score同時兼顧準確率和召回率。 用戶屬性相似性的權重分配見表1,權重使用層次分析法計算得出,層次判別矩陣見表2。 表1 權重分配設置 表2 計算權重的判別矩陣 3.4.1 TopN推薦 本實驗對算法進行仿真實驗,實驗過程中,用戶推薦列表長度N=150,用戶相似度計算的最近鄰數(shù)目K在5到100之間。實驗結果如圖2和圖3所示。 圖2 推薦結果評價指標召回率和準確率 圖3 推薦結果評價指標F1-Score 從圖2和圖3中可以看出,當最近鄰數(shù)目K小于20時,推薦結果具有較高的準確率和召回率,同時F1-Score具有較高值,當K=16時推薦結果的F1-Score有最高值,同時召回率和準確率都具有較高的數(shù)值。而當K大于20后,推薦結果準確率和召回率均明顯下降,F(xiàn)1-Score有相同下降趨勢。因此,實驗選擇K=16為最佳最近鄰數(shù)目。 3.4.2 不同相似性比較 本文算法中用戶相似性是用戶屬性相似性和行為相似性融合得到的相似性計算結果,為了對比兩種相似性融合得到的融合相似性對推薦結果對召回率和準確率的提高,本實驗分別使用屬性相似性、行為相似性和融合相似性推薦潛在的用戶列表,實驗結果的評價指標召回率和準確率如圖4所示。 圖4 不同相似性度量方法推薦結果對比 從圖4中可以看出,當最近鄰數(shù)目K小于20時,使用融合相似性的推薦結果準確率和召回率明顯比只使用屬性相似性和行為相似性更高。當K在20到40范圍內(nèi),行為相似性推薦結果召回率出現(xiàn)稍高于融合相似性的情況,而準確率仍然是融合相似性更高。當K大于40時,融合相似性保持具有更高的準確率和召回率。另外,在最佳配置條件下(K=16),融合相似性對比屬性相似性,召回率提升了68.4%,準確率提升了23.0%,而融合相似性對比行為相似性,召回率提升了25.5%,準確率提升了16.2%。實驗結果表明,本文算法具有一定的有效性和準確性,而且使用融合相似性推薦結果更準確。 3.4.3 算法在冷啟動條件下的表現(xiàn) 本實驗測試本文算法在用戶冷啟動情況下的表現(xiàn),從數(shù)據(jù)集中隨機抽取300名用戶,模擬新用戶加入,冷啟動情況下,用戶訪問方式的預測值使用平均值。實驗結果召回率和準確率如圖5所示。從圖5可以看出,新用戶加入時,融合相似性方法使用屬性相似性可以得到有效推薦,本文算法一定程度上解決了冷啟動問題。 圖5 冷啟動條件下推薦結果召回率和準確率 本文提出了一種用戶相似度計算方法,利用了用戶屬性信息和隱式反饋行為數(shù)據(jù),從用戶屬性和行為兩個方面計算用戶相似度,然后融合兩種相似度綜合度量用戶相似性,解決了用戶推薦中顯式反饋數(shù)據(jù)缺失的問題,同時一定程度克服了協(xié)同過濾的冷啟動問題。本文算法適用于具有用戶信息和隱式反饋行為記錄的協(xié)同過濾推薦。實驗結果表明,上述方法對推薦結果具有一定準確性和有效性,并且,使用融合相似度對于用戶相似度計算更加準確,推薦結果更精準,在冷啟動情況下仍能夠有效推薦。實驗不足之處在于相似度計算過程中,行為相似度只根據(jù)用戶行為數(shù)量計算,沒有更充分挖掘用戶行為隱藏的信息,需要進一步改進。3 實驗結果與分析
3.1 數(shù)據(jù)集和平臺
3.2 評價標準
3.3 實驗設置
3.4 實驗結果
4 結束語