高雄 何利力
摘 要:對(duì)于有個(gè)性化推薦需求的電子商務(wù)系統(tǒng),傳統(tǒng)協(xié)同過(guò)濾推薦算法對(duì)商品的用戶項(xiàng)目矩陣構(gòu)建比較單一,難以解決數(shù)據(jù)稀疏以及推薦結(jié)果精度較低等問(wèn)題。為此,提出一種改進(jìn)的基于信任度的協(xié)同過(guò)濾算法,根據(jù)用戶歷史行為,對(duì)用戶項(xiàng)目評(píng)分矩陣進(jìn)行細(xì)分量化,綜合考慮用戶間關(guān)系,引入信任因子維持用戶信任關(guān)系中的非對(duì)稱性,通過(guò)共同評(píng)分項(xiàng)計(jì)算用戶評(píng)分信任度。最終融合信任度與信任因子,計(jì)算獲得最佳鄰居集并產(chǎn)生最終推薦列表。在淘寶官方UserBehavior數(shù)據(jù)集下進(jìn)行實(shí)驗(yàn),結(jié)果表明,該算法降低了推薦稀疏性,提高了推薦精度。
關(guān)鍵詞:協(xié)同過(guò)濾;電子商務(wù);信任因子;信任度;商品推薦
DOI:10. 11907/rjdk. 182836 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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
基金項(xiàng)目:浙江省科技廳(重大)項(xiàng)目(2015C03001)
作者簡(jiǎn)介:高雄(1994-),男,浙江理工大學(xué)信息學(xué)院碩士研究生,研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù);何利力(1968-),男,博士,浙江理工大學(xué)信息學(xué)院教授、博士生導(dǎo)師,研究方向?yàn)橹圃鞓I(yè)信息化、企業(yè)智能。
0 引言
隨著互聯(lián)網(wǎng)的發(fā)展,在線電子商務(wù)系統(tǒng)也得到了廣泛應(yīng)用,在為用戶提供大量商品的同時(shí),也帶來(lái)了信息過(guò)載的問(wèn)題,海量商品為用戶選擇帶來(lái)極大困難。推薦系統(tǒng)是解決信息過(guò)載問(wèn)題的主要方法之一,根據(jù)推薦機(jī)制的不同,推薦系統(tǒng)分為基于內(nèi)容的推薦、協(xié)同過(guò)濾推薦、基于知識(shí)的推薦與混合推薦等,其中協(xié)同過(guò)濾(Collaborative-Filtering,CF)算法應(yīng)用最為廣泛。傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法通過(guò)一系列步驟計(jì)算相似度,選擇最近鄰,最終生成推薦[1-2]。如黃瑩[3]、賈忠濤等[4]分別將協(xié)同過(guò)濾應(yīng)用于電影推薦中;歸偉夏[5]研究了基于Hadoop的協(xié)同過(guò)濾在電商系統(tǒng)中的應(yīng)用。然而,在電子商務(wù)系統(tǒng)中,用戶和項(xiàng)目數(shù)量往往十分龐大,而用戶購(gòu)買或評(píng)價(jià)過(guò)的商品數(shù)量有限,因此造成了評(píng)分?jǐn)?shù)據(jù)極其稀疏。目前常用的相似度計(jì)算方法盡管已考慮了用戶評(píng)價(jià)標(biāo)準(zhǔn)的復(fù)雜性,但在數(shù)據(jù)稀疏時(shí)精度仍然較低,且在某些情況下無(wú)法反映用戶真實(shí)的相似性[6-8]。對(duì)此,研究者提出了各種不同解決方案,如申凱麗[9]提出基于用戶偏好的免疫推薦算法,但依然沒(méi)有解決電子商務(wù)系統(tǒng)中商品稀疏導(dǎo)致的覆蓋率問(wèn)題;黃濤[10]利用復(fù)雜網(wǎng)絡(luò)中的結(jié)構(gòu)相似性度量用戶之間的相似性;王祥德等[11]提出非精確拉格朗日乘子法對(duì)稀疏矩陣進(jìn)行填充,從而改進(jìn)SVD協(xié)同過(guò)濾算法;Massa P[12]將信任度引入到類似計(jì)算中,但其仍局限于用戶必須自己維護(hù)與鄰居的信任關(guān)系;李良等[13]提出一種基于評(píng)分信任度與偏好信任度的推薦方法,綜合考慮用戶間的共同評(píng)分項(xiàng)目與非共同評(píng)分項(xiàng)目;蔣宗禮[14]、劉勝宗[15]通過(guò)信任關(guān)系的傳遞規(guī)則,分別用不同方法融合了用戶相似度和信任度;Yang和Zhu [16]提出結(jié)合用戶信任與社會(huì)相似性的協(xié)同過(guò)濾算法;Lu[17]對(duì)全局信任度與局部信任度進(jìn)行計(jì)算,挖掘用戶的潛在信任關(guān)系,以提高推薦準(zhǔn)確性。
目前大多數(shù)關(guān)于信任的研究中,信任關(guān)系都是事先給定的,即用戶間通過(guò)關(guān)注等方式設(shè)定好信任關(guān)系。但實(shí)際的電子商務(wù)系統(tǒng)中并沒(méi)有給定用戶之間的信任網(wǎng)絡(luò),并且每個(gè)預(yù)測(cè)評(píng)分是基于最近鄰居給出的評(píng)分進(jìn)行計(jì)算的,沒(méi)有考慮測(cè)試用戶對(duì)最近鄰居給出評(píng)分的接受性。Neal &? Stephen[18]提出一種可信賴的KNR算法,該算法允許用戶通過(guò)評(píng)估其收到評(píng)分信息的效用,以了解彼此信任程度,若目標(biāo)用戶與最近鄰關(guān)于某個(gè)項(xiàng)目評(píng)分越接近,則信任度越高。然而其沒(méi)有考慮到用戶間的信任關(guān)系是不對(duì)稱的,且線性計(jì)算方法使用戶間的信任關(guān)系相對(duì)平滑,影響了推薦性能。另一方面,目前的電子商務(wù)系統(tǒng)中對(duì)于商品評(píng)分僅局限于購(gòu)買與否,若用戶購(gòu)買則在評(píng)分矩陣中置為1,沒(méi)有則置為0。該方式很大程度上限制了對(duì)用戶購(gòu)買行為中潛在信息的挖掘,影響了推薦精確性。
綜上所述,本文提出一種改進(jìn)的基于信任度的協(xié)同過(guò)濾推薦算法。針對(duì)電子商務(wù)系統(tǒng),采集用戶對(duì)商品的歷史行為,進(jìn)行量化處理后,首先計(jì)算反映用戶之間非對(duì)稱關(guān)系的信任因子,其次根據(jù)用戶共同評(píng)分項(xiàng)目改進(jìn)用戶間的信任度計(jì)算方式,最終融合信任因子與信任度,選取最近鄰并產(chǎn)生推薦列表。在天貓官方數(shù)據(jù)集下進(jìn)行實(shí)驗(yàn),結(jié)果表明,本文算法有效緩解了數(shù)據(jù)稀疏性,提高了系統(tǒng)推薦的準(zhǔn)確性,具有一定的實(shí)際意義。
1 傳統(tǒng)協(xié)同過(guò)濾算法
在傳統(tǒng)基于用戶的協(xié)同過(guò)濾系統(tǒng)中,推薦過(guò)程大致可分為3步:①建立用戶—項(xiàng)目評(píng)分矩陣;②計(jì)算目標(biāo)用戶與其他用戶相似度,得到用戶的最近鄰居集;③根據(jù)其最近鄰居集對(duì)項(xiàng)目的評(píng)分信息,預(yù)測(cè)目標(biāo)用戶對(duì)評(píng)分項(xiàng)目的評(píng)分,選取評(píng)分最高的TOP-N個(gè)項(xiàng)目推薦給用戶。具體步驟如下:
1.1 用戶—項(xiàng)目評(píng)分矩陣建立
用戶—項(xiàng)目矩陣可表示為一個(gè)n*m維矩陣,如表1所示。n行表示用戶數(shù)為n,m列表示項(xiàng)目數(shù)為m。第i行第j列元素rij表示用戶i對(duì)項(xiàng)目j的評(píng)分為rij,其值與項(xiàng)目?jī)?nèi)容有關(guān)。如果是商品,通常表示訂購(gòu)與否,如1表示訂購(gòu),0表示未訂購(gòu);如果是評(píng)分類如電影等,可按等級(jí)進(jìn)行劃分,如1~5,評(píng)分越高表示用戶對(duì)其喜愛(ài)程度越高。如果用戶i未對(duì)項(xiàng)目j進(jìn)行評(píng)分,則rij值為0。
表1 用戶—項(xiàng)目評(píng)分矩陣
1.2 最近鄰尋找
最近鄰居集通常利用TOP-N方法進(jìn)行選取,即通過(guò)對(duì)用戶之間的相似度進(jìn)行排序,選取排名最靠前的N名用戶作為鄰居用戶。計(jì)算用戶相似度的方法很多,目前廣泛應(yīng)用于協(xié)同過(guò)濾算法的有3種,即余弦相似度、修正余弦相似度和皮爾遜相關(guān)相似度。
本文采用皮爾遜相關(guān)相似度作為傳統(tǒng)協(xié)同過(guò)濾的最近鄰計(jì)算方式,其表達(dá)式如式(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的相似性,值的區(qū)間為[-1,1]。P表示用戶a、b的共同評(píng)分項(xiàng)目集合,ra,p、rb,p表示用戶a、b對(duì)項(xiàng)目p的評(píng)分,[ra]、[rb]分別表示用戶a、b對(duì)項(xiàng)目的平均評(píng)分。sim(a,b)絕對(duì)值越接近1,表示用戶之間相似性越強(qiáng),反之則越弱。
1.3 評(píng)分預(yù)測(cè)
在找到最近鄰居集之后,通過(guò)式(2)對(duì)用戶a的未評(píng)分項(xiàng)目p進(jìn)行評(píng)分預(yù)測(cè)。
[pred(a,p)=ra+b∈Nsim(a,b)*(rb,p-rb)b∈Nsim(a,b)]? (2)
其中pred(a,p)表示目標(biāo)用戶a對(duì)推薦項(xiàng)目p的預(yù)測(cè)評(píng)分,rb,p是目標(biāo)用戶a最近鄰居集中用戶b對(duì)項(xiàng)目p的評(píng)分,N表示用戶a最近鄰居集中的用戶個(gè)數(shù)。通過(guò)式(2)可以發(fā)現(xiàn)相似性在協(xié)同過(guò)濾算法的整個(gè)過(guò)程中至關(guān)重要,同時(shí)測(cè)試用戶對(duì)最近鄰居評(píng)分的接受性對(duì)于預(yù)測(cè)評(píng)分也很重要。
2 改進(jìn)信任度的協(xié)同過(guò)濾算法
2.1 信任因子計(jì)算
傳統(tǒng)信任關(guān)系認(rèn)為用戶之間的信任是相同的,如果用戶A信任用戶B,則用戶B也會(huì)信任A,且兩者信任程度是一樣的。然而在現(xiàn)實(shí)生活中,通常用戶A、B的信任程度是不等的,如用戶A信任用戶B,相反用戶B并不一定信任用戶A,或用戶B信任用戶A,但是兩者信任程度并不相同。在電子商務(wù)系統(tǒng)中,傳統(tǒng)方法在計(jì)算用戶之間的信任相似性時(shí),只利用了用戶共同評(píng)分項(xiàng)目數(shù)量這一屬性,如式(3)所示。
[θab=Ia?IbIa?Ib]? ? ? ? ? ? ? ? ? ? (3)
其中Ia、Ib分別表示用戶a、b評(píng)分過(guò)的項(xiàng)目。從式(3)可以看出,對(duì)用戶a、b的信任相似性僅通過(guò)兩用戶之間共同評(píng)分過(guò)的數(shù)量在其所有評(píng)分項(xiàng)目數(shù)量中的占比進(jìn)行衡量,顯然在該計(jì)算方法中,用戶a、b的互相信任程度相同。但根據(jù)之前提到的信任程度具有非對(duì)稱性特點(diǎn),對(duì)上述公式進(jìn)行修正,提出非對(duì)稱的信任因子計(jì)算方式,以更好地衡量用戶之間的信任程度,如式(4)、式(5)所示。
[θab=Ia?IbIa*Ia?IbIa?Ib]? ? ? ? ? ? ? (4)
[θba=Ia?IbIb*Ia?IbIa?Ib]? ? ? ? ? ? ? (5)
式(4)、式(5)分別計(jì)算了用戶a對(duì)b的信任相似度和用戶b對(duì)a的信任相似度,其中融入了用戶各自評(píng)分項(xiàng)目總數(shù)的影響,考慮了共同評(píng)分項(xiàng)目在各自評(píng)分項(xiàng)目中的占比。
2.2 信任度計(jì)算
用戶在選擇信任對(duì)象時(shí),不僅會(huì)考慮評(píng)分項(xiàng)目數(shù),還會(huì)考慮具體評(píng)分?jǐn)?shù)值,通常評(píng)分多少也代表了用戶對(duì)項(xiàng)目的認(rèn)可程度。為了更準(zhǔn)確地計(jì)算用戶間的信任度,需要考慮用戶公共項(xiàng)目以及評(píng)分?jǐn)?shù)值。文獻(xiàn)[18]中對(duì)信任度的計(jì)算方式基于最近鄰?fù)扑]的貢獻(xiàn),提出目標(biāo)用戶相信對(duì)其產(chǎn)生過(guò)積極影響的用戶,并保留未知作用的用戶。允許用戶通過(guò)評(píng)估其收到評(píng)分信息的效用,了解彼此信任程度,并動(dòng)態(tài)選擇目標(biāo)用戶的鄰居集。但其默認(rèn)了用戶間信任的對(duì)稱關(guān)系,且出于對(duì)結(jié)果的考慮,實(shí)驗(yàn)設(shè)計(jì)較為簡(jiǎn)單,只關(guān)注了線性信任度的案例。為了能更好地凸顯用戶間的信任關(guān)系,應(yīng)該從更高層次考慮,本文給出用戶間的信任關(guān)系如式(6)所示。
[value(a,b,i)=(rai-rbi)22(Max-Min)]? ? ? ? ? ? (6)
式(6)中,value(a,b,i)表示用戶a在項(xiàng)目i上對(duì)用戶b的信任。其中Max為評(píng)分最大值,Min為評(píng)分最小值。若用戶a、b在項(xiàng)目i上的評(píng)分差距較大,則表現(xiàn)出的信任程度相對(duì)較低,反之評(píng)分差距較小則信任程度相對(duì)較高,從而更明顯地體現(xiàn)出b的影響。其中ra,i、rb,i分別為用戶a、b對(duì)項(xiàng)目i的評(píng)分。因此,用戶a對(duì)用戶b的信任度可定義為公式(7),n代表用戶a評(píng)分過(guò)的所有項(xiàng)目數(shù)。
[trust(a,b)=i=0nvalue(a,b,i)n]? ? ? ? ? ? ? ? (7)
2.3 改進(jìn)的信任度協(xié)同過(guò)濾
在綜合上述信任因子與信任度計(jì)算公式后,將改進(jìn)后的信任度計(jì)算公式與信任因子融合,得到用戶a對(duì)用戶b的評(píng)分信任度如下:
[simt(a,b)=trust(a,b)*θab]? ? ? ? ? ? ? (8)
同理,用戶b對(duì)用戶a的評(píng)分信任度為:
[simt(b,a)=trust(b,a)*θba]? ? ? ? ? ? ? ?(9)
在得到最終的評(píng)分信任度后,本文采用TOP-N方法選取用戶的最近鄰居集,即將用戶的信任度值按照降序排列,選取排名最靠前的N個(gè)用戶作為目標(biāo)用戶的鄰居集。然后根據(jù)用戶鄰居集,利用公式(10)計(jì)算得出最終推薦結(jié)果。其中,simt(a,b)表示計(jì)算得出的評(píng)分信任度。
[pred(a,p)=ra+b∈Nsim(a,b)*(rb,p-rb)b∈Nsim(a,b)]? ? ? ? ? (10)
本文具體推薦流程如圖1所示。
圖1 推薦流程
3 實(shí)驗(yàn)與分析
3.1 數(shù)據(jù)處理與評(píng)估標(biāo)準(zhǔn)
針對(duì)電子商務(wù)系統(tǒng),在傳統(tǒng)協(xié)同過(guò)濾算法中,對(duì)于商品類推薦都是基于用戶購(gòu)買與否進(jìn)行評(píng)估預(yù)測(cè)的。例如對(duì)于某商品,若用戶購(gòu)買,則評(píng)分為1,否則為0。但該做法難以避免地增加了數(shù)據(jù)稀疏性,無(wú)法保證結(jié)果的準(zhǔn)確性。因此,本文提出對(duì)用戶購(gòu)買行為進(jìn)行細(xì)分量化,將用戶瀏覽商品、收藏、加購(gòu)物車以及購(gòu)買分別設(shè)為評(píng)分1、2、3和4,以不同權(quán)重表示用戶對(duì)商品的關(guān)注度,形成評(píng)分梯度,從而避免將購(gòu)買作為唯一評(píng)判標(biāo)準(zhǔn)。
本實(shí)驗(yàn)采用淘寶官方的Userbehavior數(shù)據(jù)集,該數(shù)據(jù)集是淘寶用戶行為數(shù)據(jù)的子集,包含了2017年11月25日~12月3日之間有行為的約100萬(wàn)隨機(jī)用戶的所有行為。數(shù)據(jù)集組織形式與MovieLens-20M類似,即數(shù)據(jù)集的每一行表示一條用戶行為,由用戶ID、商品類目ID、行為類型等組成。為保證實(shí)驗(yàn)的可行性與準(zhǔn)確性,本文從中提取25萬(wàn)條數(shù)據(jù)進(jìn)行處理與篩選,去除用戶只瀏覽過(guò)的商品,以避免實(shí)驗(yàn)數(shù)據(jù)的稀疏性,得到最終的實(shí)驗(yàn)數(shù)據(jù)集如表3所示。
表2 實(shí)驗(yàn)數(shù)據(jù)集描述
實(shí)驗(yàn)采用以下兩種指標(biāo)體系評(píng)估算法性能:
(1) 平均絕對(duì)誤差(MAE)。MAE[19]通過(guò)比較預(yù)測(cè)值與用戶實(shí)際評(píng)分之間的偏差以測(cè)量預(yù)測(cè)準(zhǔn)確性,具體定義如式(11)所示。
[MAE=i=1Npi-qiN]? ? ? ? ? ? ? ? ? ? (11)
(2)均方差誤差(RSME)。RSME[20]通過(guò)計(jì)算預(yù)測(cè)評(píng)分值與用戶對(duì)該項(xiàng)目真實(shí)評(píng)分值的平方偏差以測(cè)量準(zhǔn)確性,對(duì)推薦要求更加嚴(yán)格,如式(12)所示。
[RSME=1ni=1n(pi-qi)2]? ? ? ? ? ? ?(12)
在式(11)、(12)中,{p1,p2,…,pn}對(duì)應(yīng)用戶預(yù)測(cè)評(píng)分集合,{q1,q2,…,qn}對(duì)應(yīng)用戶實(shí)際評(píng)分集合,N是測(cè)試集中的項(xiàng)目數(shù),用戶預(yù)測(cè)值與真實(shí)評(píng)分都不為0。MAE與RSME的值越小,表示推薦精度越高。
3.2 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析
為評(píng)估本文提出算法的準(zhǔn)確性,將數(shù)據(jù)集劃分為80%的訓(xùn)練集與20%的數(shù)據(jù)集。訓(xùn)練集用于訓(xùn)練算法中的相關(guān)參數(shù),測(cè)試集用于評(píng)估結(jié)果準(zhǔn)確性。
實(shí)驗(yàn)1:為驗(yàn)證購(gòu)買行為量化對(duì)提高推薦精度的有效性,設(shè)計(jì)對(duì)比實(shí)驗(yàn)。對(duì)量化處理后的數(shù)據(jù)集應(yīng)用傳統(tǒng)協(xié)同過(guò)濾算法,命名為UCF;對(duì)未經(jīng)量化處理的數(shù)據(jù)集應(yīng)用傳統(tǒng)協(xié)同過(guò)濾算法,命名為NUCF。實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 量化前后MAE對(duì)比
圖2為量化處理前后的MAE柱狀對(duì)比圖。橫軸表示最近鄰數(shù)量,縱軸表示MAE具體值。可以看出,相比于NUCF,UCF整體在MAE值上低很多,說(shuō)明對(duì)商品數(shù)據(jù)進(jìn)行量化處理后再進(jìn)行推薦,結(jié)果要精確得多。這是由于只考慮購(gòu)買的商品時(shí),用戶項(xiàng)目矩陣會(huì)顯示出巨大的稀疏性,而量化后的矩陣會(huì)產(chǎn)生更多評(píng)分項(xiàng)。
實(shí)驗(yàn)2:將本文提出算法命名為AUTCF,為了驗(yàn)證AUTCF的精確性,選擇3種算法進(jìn)行對(duì)比實(shí)驗(yàn):①傳統(tǒng)基于用戶的協(xié)同過(guò)濾算法UCF,采用皮爾遜相似度計(jì)算方法;②文獻(xiàn)[18]中提出的基于最近鄰的信任度算法TrustCF;③文獻(xiàn)[13]中提出的評(píng)分信任度算法SUCF。實(shí)驗(yàn)在經(jīng)量化處理后的數(shù)據(jù)集上進(jìn)行,得到各種指標(biāo)結(jié)果如圖3所示。
圖3 不同算法MAE對(duì)比
圖3為MAE的對(duì)比圖,橫軸為最近鄰數(shù)量,縱軸為平均絕對(duì)誤差MAE。根據(jù)實(shí)驗(yàn)結(jié)果可以看出,隨著N值逐漸增加,TrustCF、SUCF與本文TUTCF算法的MAE值均呈先下降后上升的趨勢(shì),且均低于傳統(tǒng)協(xié)同過(guò)濾算法,表明信任度的引入確實(shí)有利于提高推薦精度;在N值相同的情況下,AUTCF算法相比于TrustCF、SUCF算法以及傳統(tǒng)UCF算法,在平均絕對(duì)誤差上始終更低,顯示出較為明顯的優(yōu)勢(shì),而且在N=50時(shí)達(dá)到了最優(yōu)性能,MAE值接近0.66。原因?yàn)閁TCF是在量化后的數(shù)據(jù)下進(jìn)行實(shí)驗(yàn)的,而且在信任度計(jì)算過(guò)程中,不僅考慮了用戶之間非對(duì)稱的信任關(guān)系,還使用戶間的信任度關(guān)系更加尖銳,存在潛在信任的鄰居表現(xiàn)得更加積極,信任度較低的鄰居作用更加弱化,同時(shí)保證了用戶信任值計(jì)算過(guò)程中不會(huì)因差值太小而給計(jì)算帶來(lái)誤差。