,
(三明學(xué)院 信息工程學(xué)院,福建 三明 365004)
由于互聯(lián)網(wǎng)上的信息數(shù)據(jù)以爆炸性的速度快速增長,使得用戶無法區(qū)分和獲取有效信息,導(dǎo)致信息利用率低下并且信息超載。因此,許多學(xué)者已將注意力轉(zhuǎn)向研究根據(jù)網(wǎng)站收集的用戶信息給用戶自動推薦商品。推薦系統(tǒng)可以通過對目標(biāo)用戶精準(zhǔn)投放興趣信息來減少無用信息量,提高用戶點(diǎn)擊轉(zhuǎn)換率。目前主流的推薦算法都是基于協(xié)同過濾算法,該算法在預(yù)測用戶的興趣度時會不但單只利用該用戶的信息,而是經(jīng)由全部用戶對物品的行動來計(jì)算用戶之間、物品之間的類似度,經(jīng)過聚合相似度和用戶的行動數(shù)據(jù)來決議推薦內(nèi)容。傳統(tǒng)的協(xié)同過濾算法基于鄰近用戶域來預(yù)測用戶個性?;驹硎鞘褂盟杏脩舻臍v史數(shù)據(jù)來計(jì)算各用戶的鄰居,并將類似的最近鄰居分?jǐn)?shù)數(shù)據(jù)給目標(biāo)用戶,這是為了產(chǎn)生目標(biāo)用戶的推薦信息[2]。隨用戶規(guī)模和項(xiàng)目規(guī)模的爆炸式增長,如何下降算法的復(fù)雜度、同時不影響算法的推薦精度是協(xié)同過濾算法面臨的一個挑戰(zhàn)。為了因?qū)@些挑戰(zhàn),本文提出了一種基于物品協(xié)同過濾算法的電子商務(wù)推薦系統(tǒng),通過分析用戶行為日志挖掘用戶物品間的相關(guān)度,據(jù)此預(yù)測用戶偏好,形成推薦清單。并針對電子商務(wù)的特性,考慮用戶行為時間上下文關(guān)系對用戶興趣度影響,對算法細(xì)節(jié)上進(jìn)行了調(diào)整,使得推薦結(jié)果更加精準(zhǔn)。
基于物品的協(xié)同過濾算法會向用戶們提供符合用戶偏好的物品。算法會分析網(wǎng)站收集的所有用戶歷史行為數(shù)據(jù),并從用戶對物品行為中提煉出物品間的類似度。
基于物品協(xié)同過濾算法首先需要計(jì)算物品之間的相似度,計(jì)算相似性有幾種方法:
1)基于余弦(Cosine-based)的相似度計(jì)算,
(1)
2)基于皮爾森相關(guān)性(PearsonCorrelation-based)的相似度計(jì)算
兩個連續(xù)變量(X,Y)的pearson相關(guān)性系數(shù)(Px,y)等于它們之間的協(xié)方差cov(X,Y)除以它們各自標(biāo)準(zhǔn)偏差(σX,σY)的乘積[5]。系數(shù)的取值域?yàn)?1至1,它反應(yīng)變量間線性相關(guān)度。相似度計(jì)量公式為:
(2)
傳統(tǒng)基于物品協(xié)同過濾算法描述物品相似度的基本思想為“如果大部分購買物品A的人同時也購買了物品B,則說明物品A和物品B的相似度非常高”[6]。用公式表達(dá)為:
(3)
該公式計(jì)算相似度時,當(dāng)物品j被大部分用戶有過行為時,兩個用戶集的交集可能會接近目標(biāo)物品的用戶集,這導(dǎo)致物品j與任何其他物品的相似度都非常高,這對其他非熱門商品是非常不利的。所以我們對公式(3)作出了改進(jìn),采用
(4)
分母懲罰項(xiàng)目j的權(quán)重,避免了熱門項(xiàng)目的推薦,從而使推薦系統(tǒng)更專注于挖掘長尾信息[ 7 ]。
這個公式可以用余弦相似度計(jì)算物品之間的相似度,但還是過于簡單。針對電子商務(wù)的特性對公式作出了以下改進(jìn):
(1)用戶活躍度對物品相似度的影響
從公式(3)得知,物品間的相似度來源于這兩個物品具有共同的行為用戶集。然而,這些來自不同用戶的貢獻(xiàn)卻并不一定是完全相同的。如果一個用戶購買了商城里大部分的書籍,說明這個用戶可能是開書店的,并不能說明這些書之間有很強(qiáng)的相似度。因此引入了論文[8]中提出的IUF參數(shù),通過該參數(shù)懲罰過于活躍的用戶,得到了新的度量公式:
(5)
其中u為同時購買物品i物品j的用戶,N(u)是用戶u的活躍度,通過乘以用戶活躍度對數(shù)的倒數(shù)來懲罰高活躍度用戶對物品相似度的貢獻(xiàn)[8]。
(2)時間上下文對物品相似度的影響
用戶偏好是隨時間變化的,時間因素對用戶偏好的影響應(yīng)當(dāng)被添加到計(jì)算公式中。在用戶行為日志中挖掘出行為的時間信息,并考慮了其對物品相似度計(jì)算的影響,用下面的公式改進(jìn)了相似度計(jì)算:
(6)
公式加入了時間因素項(xiàng)f(|tui-tuj|),其中|tui-tuj|越大,f(|tui-tuj|)值越小。這樣懲罰了時間過于久遠(yuǎn)的用戶行為,提高了用戶近期行為在用戶偏好評估中的權(quán)重。本文采 用的衰減函數(shù)如下:
(7)
其中a是時間衰減參數(shù),這是提前設(shè)定好的超參數(shù)。當(dāng)a的值比較大時,用戶的偏好和時間因素相關(guān)性較強(qiáng)。在調(diào)優(yōu)后使用的a的取值為0.7。
用戶u對目標(biāo)物品j的興趣度通過以下公式計(jì)算:
(8)
其中N(u)代表用戶有過行為的所有物品,S(i,k)代表和物品i最臨近的K個物品,wji代表物品j和物品i的相似度,rui代表用戶u對物品i的興趣度[6]。
在度量興趣度時,添加了時間因素項(xiàng),在計(jì)算用戶的偏好時,給予用戶比最近行為的類似物品更高的權(quán)重。用戶興趣度量公式為:
(9)
其中,t0是當(dāng)前時間。b是時間衰減參數(shù)。該公式表明,tuj和t0相隔越短,和物品j相似的物品權(quán)重就越高。
在傳統(tǒng)的基于物品協(xié)同過濾算法的基礎(chǔ)上針對電子商務(wù)進(jìn)行優(yōu)化,通過在網(wǎng)站保存的用戶行為日志中挖掘相關(guān)數(shù)據(jù)并進(jìn)行數(shù)據(jù)清洗和分析,提取有效數(shù)據(jù)計(jì)算出物品之間的類似度,并結(jié)合用戶歷史行為生成離線推薦清單,實(shí)現(xiàn)對登陸用戶的實(shí)時推薦。完整的算法流程如圖1所示:
采用嵌套字典結(jié)構(gòu)儲存用戶-物品評分表,從用戶行為日志中提取用戶對物品的所有行為類型和時間信息并通過加權(quán)相加的方式作為用戶對物品的評分和時間,并通過鍵-值方式儲存在嵌套字典中。
如果計(jì)算所有物品間的相似度,這樣在計(jì)算中會存在大量的冗余計(jì)算,加大算法的時間復(fù)雜度。事實(shí)上,部分物品的行為用戶集間不存在交集。即很多時候N(i)∩N(j)=0。所以可以首先計(jì)算出N(i)∩N(j)不等于零的物品,建立物品到用戶的倒排表[9],減少計(jì)算的時間復(fù)雜度。
共現(xiàn)矩陣是物品和物品之間的關(guān)系矩陣,用來計(jì)算物品相關(guān)度。
圖1簡單的展示了數(shù)據(jù)的處理過程。如圖2所示將用戶-物品評分表轉(zhuǎn)化成物品倒排表,并最終生成物品之間的共現(xiàn)矩陣。得到共現(xiàn)矩陣后,通過上部分所講的物品相似度計(jì)算方法計(jì)算出各物品之間的相似度,運(yùn)用上部分所講的用戶興趣度計(jì)算方法,可以計(jì)算出最終的推薦列表并將其儲存為本地文件。當(dāng)用戶登陸時,可以對用戶進(jìn)行實(shí)時推薦。
采用阿里天池提供的數(shù)據(jù)集,包括用戶在阿里巴巴移動電商平臺的真實(shí)用戶-商品行為數(shù)據(jù)以及百萬級的商品信息。其數(shù)據(jù)結(jié)構(gòu)如下表1所示
表1 用戶消費(fèi)數(shù)據(jù)表
圖1 電子商務(wù)算法推薦流程圖
圖2 用戶物品關(guān)系矩陣
從原始數(shù)據(jù)中提取了用戶行為數(shù)據(jù)和物品信息重疊的部分,先根據(jù)用戶將行為數(shù)據(jù)匯總,以9比1的比例劃分用戶設(shè)定訓(xùn)練集與測試集。 根據(jù)行動時間進(jìn)一步劃分為訓(xùn)練集和驗(yàn)證集,其中將2017年11月18日至12月18日的行為數(shù)據(jù)作為訓(xùn)練集,2017年12月18日后的行為數(shù)據(jù)用作驗(yàn)證集。
圖3 算法比對結(jié)果
采用平均絕對偏差MAE的倒數(shù)作為度量標(biāo)準(zhǔn)。平均絕對偏差MAE一種常用的精度評估方法,它有解釋性強(qiáng)的優(yōu)點(diǎn),其度量公式為:
(9)
其中P代表算法預(yù)測的用戶對物品興趣度,q代表用戶對物品的真實(shí)興趣度,N為物品的數(shù)量。
圖3是算法與傳統(tǒng)算法的性能比較,通過比較不同算法在驗(yàn)證集上的表現(xiàn)來驗(yàn)證算法的性能。文中電子商務(wù)系統(tǒng)算法的改進(jìn)確實(shí)提高了推薦的有效性。
提出的基于物品協(xié)同過濾算法,在傳統(tǒng)算法基礎(chǔ)上改進(jìn)了具有電子商務(wù)特征的相似度計(jì)算和興趣度計(jì)算。 在數(shù)據(jù)挖掘中,提取用戶關(guān)于商品行為的時間信息,并進(jìn)一步利用用戶行為信息。實(shí)驗(yàn)表明這種改進(jìn)的算法相對傳統(tǒng)的算法在推薦精度上確實(shí)有所提升。實(shí)驗(yàn)結(jié)果說明了充分利用用戶信息對于提高預(yù)測效果確實(shí)有幫助。
設(shè)計(jì)了一種基于物品協(xié)同過濾算法的電子商務(wù)推薦算法,通過網(wǎng)站記錄的用戶行為日志挖掘用戶-物品信息,計(jì)算物品相似度,通過用戶對物品的興趣度給用戶推薦商品。通過對時間上下文的考慮,進(jìn)一步提高了推薦的效果,通過離線算法保存用戶推薦列表,做到了對用戶的實(shí)時推薦。