高雄 何利力



摘 要:對于有個性化推薦需求的電子商務系統,傳統協同過濾推薦算法對商品的用戶項目矩陣構建比較單一,難以解決數據稀疏以及推薦結果精度較低等問題。為此,提出一種改進的基于信任度的協同過濾算法,根據用戶歷史行為,對用戶項目評分矩陣進行細分量化,綜合考慮用戶間關系,引入信任因子維持用戶信任關系中的非對稱性,通過共同評分項計算用戶評分信任度。最終融合信任度與信任因子,計算獲得最佳鄰居集并產生最終推薦列表。在淘寶官方UserBehavior數據集下進行實驗,結果表明,該算法降低了推薦稀疏性,提高了推薦精度。
關鍵詞:協同過濾;電子商務;信任因子;信任度;商品推薦
DOI:10. 11907/rjdk. 182836 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP312文獻標識碼:A 文章編號:1672-7800(2019)007-0075-05
Research on Commodity Recommendation Algorithm
Based on Improved Trust Metrics
GAO Xiong, HE Li-li
(School of Information Science and Technology, Zhejiang Sci-Tech University, Hangzhou 310018, China)
Abstract: For the e-commerce system with personalized recommendation requirements, traditional collaborative filtering algorithm has a simple construction of the user item matrix of the commodity, which is difficult to solve the problem of data sparseness and low accuracy of recommendation results. For this reason, an improved trust recommendation algorithm is proposed with trust metrics. According to the historical behavior of the user, the user project scoring matrix is subdivided and quantified, and then the relationship between users is comprehensively considered. The trust factor is introduced to maintain the asymmetry in the user trust relationship, the user's trust is calculated by the common score item, and finally the trust metrics and the trust factor are integrated to calculate the best neighbor set and generate the final recommendation list. Experiments were carried out under the official UserBehavior dataset of Taobao. The results show that the proposed algorithm reduces the recommended sparsity and improves the accuracy of the recommendation.
Key Words: collaborative filtering; e-commerce; trust factor; trust metrics; commodity recommendation
基金項目:浙江省科技廳(重大)項目(2015C03001)
作者簡介:高雄(1994-),男,浙江理工大學信息學院碩士研究生,研究方向為計算機應用技術;何利力(1968-),男,博士,浙江理工大學信息學院教授、博士生導師,研究方向為制造業信息化、企業智能。
0 引言
隨著互聯網的發展,在線電子商務系統也得到了廣泛應用,在為用戶提供大量商品的同時,也帶來了信息過載的問題,海量商品為用戶選擇帶來極大困難。推薦系統是解決信息過載問題的主要方法之一,根據推薦機制的不同,推薦系統分為基于內容的推薦、協同過濾推薦、基于知識的推薦與混合推薦等,其中協同過濾(Collaborative-Filtering,CF)算法應用最為廣泛。傳統基于用戶的協同過濾算法通過一系列步驟計算相似度,選擇最近鄰,最終生成推薦[1-2]。如黃瑩[3]、賈忠濤等[4]分別將協同過濾應用于電影推薦中;歸偉夏[5]研究了基于Hadoop的協同過濾在電商系統中的應用。然而,在電子商務系統中,用戶和項目數量往往十分龐大,而用戶購買或評價過的商品數量有限,因此造成了評分數據極其稀疏。目前常用的相似度計算方法盡管已考慮了用戶評價標準的復雜性,但在數據稀疏時精度仍然較低,且在某些情況下無法反映用戶真實的相似性[6-8]。對此,研究者提出了各種不同解決方案,如申凱麗[9]提出基于用戶偏好的免疫推薦算法,但依然沒有解決電子商務系統中商品稀疏導致的覆蓋率問題;黃濤[10]利用復雜網絡中的結構相似性度量用戶之間的相似性;王祥德等[11]提出非精確拉格朗日乘子法對稀疏矩陣進行填充,從而改進SVD協同過濾算法;Massa P[12]將信任度引入到類似計算中,但其仍局限于用戶必須自己維護與鄰居的信任關系;李良等[13]提出一種基于評分信任度與偏好信任度的推薦方法,綜合考慮用戶間的共同評分項目與非共同評分項目;蔣宗禮[14]、劉勝宗[15]通過信任關系的傳遞規則,分別用不同方法融合了用戶相似度和信任度;Yang和Zhu [16]提出結合用戶信任與社會相似性的協同過濾算法;Lu[17]對全局信任度與局部信任度進行計算,挖掘用戶的潛在信任關系,以提高推薦準確性。
目前大多數關于信任的研究中,信任關系都是事先給定的,即用戶間通過關注等方式設定好信任關系。但實際的電子商務系統中并沒有給定用戶之間的信任網絡,并且每個預測評分是基于最近鄰居給出的評分進行計算的,沒有考慮測試用戶對最近鄰居給出評分的接受性。Neal &? Stephen[18]提出一種可信賴的KNR算法,該算法允許用戶通過評估其收到評分信息的效用,以了解彼此信任程度,若目標用戶與最近鄰關于某個項目評分越接近,則信任度越高。然而其沒有考慮到用戶間的信任關系是不對稱的,且線性計算方法使用戶間的信任關系相對平滑,影響了推薦性能。另一方面,目前的電子商務系統中對于商品評分僅局限于購買與否,若用戶購買則在評分矩陣中置為1,沒有則置為0。該方式很大程度上限制了對用戶購買行為中潛在信息的挖掘,影響了推薦精確性。
綜上所述,本文提出一種改進的基于信任度的協同過濾推薦算法。針對電子商務系統,采集用戶對商品的歷史行為,進行量化處理后,首先計算反映用戶之間非對稱關系的信任因子,其次根據用戶共同評分項目改進用戶間的信任度計算方式,最終融合信任因子與信任度,選取最近鄰并產生推薦列表。在天貓官方數據集下進行實驗,結果表明,本文算法有效緩解了數據稀疏性,提高了系統推薦的準確性,具有一定的實際意義。
1 傳統協同過濾算法
在傳統基于用戶的協同過濾系統中,推薦過程大致可分為3步:①建立用戶—項目評分矩陣;②計算目標用戶與其他用戶相似度,得到用戶的最近鄰居集;③根據其最近鄰居集對項目的評分信息,預測目標用戶對評分項目的評分,選取評分最高的TOP-N個項目推薦給用戶。具體步驟如下:
1.1 用戶—項目評分矩陣建立
用戶—項目矩陣可表示為一個n*m維矩陣,如表1所示。n行表示用戶數為n,m列表示項目數為m。第i行第j列元素rij表示用戶i對項目j的評分為rij,其值與項目內容有關。如果是商品,通常表示訂購與否,如1表示訂購,0表示未訂購;如果是評分類如電影等,可按等級進行劃分,如1~5,評分越高表示用戶對其喜愛程度越高。如果用戶i未對項目j進行評分,則rij值為0。
表1 用戶—項目評分矩陣
1.2 最近鄰尋找
最近鄰居集通常利用TOP-N方法進行選取,即通過對用戶之間的相似度進行排序,選取排名最靠前的N名用戶作為鄰居用戶。計算用戶相似度的方法很多,目前廣泛應用于協同過濾算法的有3種,即余弦相似度、修正余弦相似度和皮爾遜相關相似度。
本文采用皮爾遜相關相似度作為傳統協同過濾的最近鄰計算方式,其表達式如式(1)所示。
[sim(a,b)=p∈P(ra,p-ra)(rb,p-rb)p∈P(ra,p-ra)2p∈P(rb,p-rb)2] (1)
其中sim(a,b)表示用戶a和用戶b的相似性,值的區間為[-1,1]。P表示用戶a、b的共同評分項目集合,ra,p、rb,p表示用戶a、b對項目p的評分,[ra]、[rb]分別表示用戶a、b對項目的平均評分。sim(a,b)絕對值越接近1,表示用戶之間相似性越強,反之則越弱。
1.3 評分預測
在找到最近鄰居集之后,通過式(2)對用戶a的未評分項目p進行評分預測。
[pred(a,p)=ra+b∈Nsim(a,b)*(rb,p-rb)b∈Nsim(a,b)]? (2)
其中pred(a,p)表示目標用戶a對推薦項目p的預測評分,rb,p是目標用戶a最近鄰居集中用戶b對項目p的評分,N表示用戶a最近鄰居集中的用戶個數。通過式(2)可以發現相似性在協同過濾算法的整個過程中至關重要,同時測試用戶對最近鄰居評分的接受性對于預測評分也很重要。
2 改進信任度的協同過濾算法
2.1 信任因子計算
傳統信任關系認為用戶之間的信任是相同的,如果用戶A信任用戶B,則用戶B也會信任A,且兩者信任程度是一樣的。然而在現實生活中,通常用戶A、B的信任程度是不等的,如用戶A信任用戶B,相反用戶B并不一定信任用戶A,或用戶B信任用戶A,但是兩者信任程度并不相同。在電子商務系統中,傳統方法在計算用戶之間的信任相似性時,只利用了用戶共同評分項目數量這一屬性,如式(3)所示。
[θab=Ia?IbIa?Ib]? ? ? ? ? ? ? ? ? ? (3)
其中Ia、Ib分別表示用戶a、b評分過的項目。從式(3)可以看出,對用戶a、b的信任相似性僅通過兩用戶之間共同評分過的數量在其所有評分項目數量中的占比進行衡量,顯然在該計算方法中,用戶a、b的互相信任程度相同。但根據之前提到的信任程度具有非對稱性特點,對上述公式進行修正,提出非對稱的信任因子計算方式,以更好地衡量用戶之間的信任程度,如式(4)、式(5)所示。
[θab=Ia?IbIa*Ia?IbIa?Ib]? ? ? ? ? ? ? (4)
[θba=Ia?IbIb*Ia?IbIa?Ib]? ? ? ? ? ? ? (5)
式(4)、式(5)分別計算了用戶a對b的信任相似度和用戶b對a的信任相似度,其中融入了用戶各自評分項目總數的影響,考慮了共同評分項目在各自評分項目中的占比。
2.2 信任度計算
用戶在選擇信任對象時,不僅會考慮評分項目數,還會考慮具體評分數值,通常評分多少也代表了用戶對項目的認可程度。為了更準確地計算用戶間的信任度,需要考慮用戶公共項目以及評分數值。文獻[18]中對信任度的計算方式基于最近鄰推薦的貢獻,提出目標用戶相信對其產生過積極影響的用戶,并保留未知作用的用戶。允許用戶通過評估其收到評分信息的效用,了解彼此信任程度,并動態選擇目標用戶的鄰居集。但其默認了用戶間信任的對稱關系,且出于對結果的考慮,實驗設計較為簡單,只關注了線性信任度的案例。為了能更好地凸顯用戶間的信任關系,應該從更高層次考慮,本文給出用戶間的信任關系如式(6)所示。
[value(a,b,i)=(rai-rbi)22(Max-Min)]? ? ? ? ? ? (6)
式(6)中,value(a,b,i)表示用戶a在項目i上對用戶b的信任。其中Max為評分最大值,Min為評分最小值。若用戶a、b在項目i上的評分差距較大,則表現出的信任程度相對較低,反之評分差距較小則信任程度相對較高,從而更明顯地體現出b的影響。其中ra,i、rb,i分別為用戶a、b對項目i的評分。因此,用戶a對用戶b的信任度可定義為公式(7),n代表用戶a評分過的所有項目數。
[trust(a,b)=i=0nvalue(a,b,i)n]? ? ? ? ? ? ? ? (7)
2.3 改進的信任度協同過濾
在綜合上述信任因子與信任度計算公式后,將改進后的信任度計算公式與信任因子融合,得到用戶a對用戶b的評分信任度如下:
[simt(a,b)=trust(a,b)*θab]? ? ? ? ? ? ? (8)
同理,用戶b對用戶a的評分信任度為:
[simt(b,a)=trust(b,a)*θba]? ? ? ? ? ? ? ?(9)
在得到最終的評分信任度后,本文采用TOP-N方法選取用戶的最近鄰居集,即將用戶的信任度值按照降序排列,選取排名最靠前的N個用戶作為目標用戶的鄰居集。然后根據用戶鄰居集,利用公式(10)計算得出最終推薦結果。其中,simt(a,b)表示計算得出的評分信任度。
[pred(a,p)=ra+b∈Nsim(a,b)*(rb,p-rb)b∈Nsim(a,b)]? ? ? ? ? (10)
本文具體推薦流程如圖1所示。
圖1 推薦流程
3 實驗與分析
3.1 數據處理與評估標準
針對電子商務系統,在傳統協同過濾算法中,對于商品類推薦都是基于用戶購買與否進行評估預測的。例如對于某商品,若用戶購買,則評分為1,否則為0。但該做法難以避免地增加了數據稀疏性,無法保證結果的準確性。因此,本文提出對用戶購買行為進行細分量化,將用戶瀏覽商品、收藏、加購物車以及購買分別設為評分1、2、3和4,以不同權重表示用戶對商品的關注度,形成評分梯度,從而避免將購買作為唯一評判標準。
本實驗采用淘寶官方的Userbehavior數據集,該數據集是淘寶用戶行為數據的子集,包含了2017年11月25日~12月3日之間有行為的約100萬隨機用戶的所有行為。數據集組織形式與MovieLens-20M類似,即數據集的每一行表示一條用戶行為,由用戶ID、商品類目ID、行為類型等組成。為保證實驗的可行性與準確性,本文從中提取25萬條數據進行處理與篩選,去除用戶只瀏覽過的商品,以避免實驗數據的稀疏性,得到最終的實驗數據集如表3所示。
表2 實驗數據集描述
實驗采用以下兩種指標體系評估算法性能:
(1) 平均絕對誤差(MAE)。MAE[19]通過比較預測值與用戶實際評分之間的偏差以測量預測準確性,具體定義如式(11)所示。
[MAE=i=1Npi-qiN]? ? ? ? ? ? ? ? ? ? (11)
(2)均方差誤差(RSME)。RSME[20]通過計算預測評分值與用戶對該項目真實評分值的平方偏差以測量準確性,對推薦要求更加嚴格,如式(12)所示。
[RSME=1ni=1n(pi-qi)2]? ? ? ? ? ? ?(12)
在式(11)、(12)中,{p1,p2,…,pn}對應用戶預測評分集合,{q1,q2,…,qn}對應用戶實際評分集合,N是測試集中的項目數,用戶預測值與真實評分都不為0。MAE與RSME的值越小,表示推薦精度越高。
3.2 實驗設計與結果分析
為評估本文提出算法的準確性,將數據集劃分為80%的訓練集與20%的數據集。訓練集用于訓練算法中的相關參數,測試集用于評估結果準確性。
實驗1:為驗證購買行為量化對提高推薦精度的有效性,設計對比實驗。對量化處理后的數據集應用傳統協同過濾算法,命名為UCF;對未經量化處理的數據集應用傳統協同過濾算法,命名為NUCF。實驗結果如圖2所示。
圖2 量化前后MAE對比
圖2為量化處理前后的MAE柱狀對比圖。橫軸表示最近鄰數量,縱軸表示MAE具體值。可以看出,相比于NUCF,UCF整體在MAE值上低很多,說明對商品數據進行量化處理后再進行推薦,結果要精確得多。這是由于只考慮購買的商品時,用戶項目矩陣會顯示出巨大的稀疏性,而量化后的矩陣會產生更多評分項。
實驗2:將本文提出算法命名為AUTCF,為了驗證AUTCF的精確性,選擇3種算法進行對比實驗:①傳統基于用戶的協同過濾算法UCF,采用皮爾遜相似度計算方法;②文獻[18]中提出的基于最近鄰的信任度算法TrustCF;③文獻[13]中提出的評分信任度算法SUCF。實驗在經量化處理后的數據集上進行,得到各種指標結果如圖3所示。
圖3 不同算法MAE對比
圖3為MAE的對比圖,橫軸為最近鄰數量,縱軸為平均絕對誤差MAE。根據實驗結果可以看出,隨著N值逐漸增加,TrustCF、SUCF與本文TUTCF算法的MAE值均呈先下降后上升的趨勢,且均低于傳統協同過濾算法,表明信任度的引入確實有利于提高推薦精度;在N值相同的情況下,AUTCF算法相比于TrustCF、SUCF算法以及傳統UCF算法,在平均絕對誤差上始終更低,顯示出較為明顯的優勢,而且在N=50時達到了最優性能,MAE值接近0.66。原因為UTCF是在量化后的數據下進行實驗的,而且在信任度計算過程中,不僅考慮了用戶之間非對稱的信任關系,還使用戶間的信任度關系更加尖銳,存在潛在信任的鄰居表現得更加積極,信任度較低的鄰居作用更加弱化,同時保證了用戶信任值計算過程中不會因差值太小而給計算帶來誤差。