劉 軍, 楊 軍, 宋姍姍
(吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長(zhǎng)春 130012)
推薦系統(tǒng)能為用戶提供精準(zhǔn)、快速的業(yè)務(wù)(如商品、項(xiàng)目、服務(wù)等)信息[1], 不僅有利于用戶發(fā)現(xiàn)未知的感興趣商品信息, 而且有利于網(wǎng)站以特色項(xiàng)目快速吸引并發(fā)展目標(biāo)用戶群體, 實(shí)現(xiàn)用戶和網(wǎng)站的互惠.
目前已有的多數(shù)推薦系統(tǒng)算法是解決冷啟動(dòng)、稀疏等問(wèn)題[2], 提高推薦的準(zhǔn)確性[3], 而針對(duì)目標(biāo)用戶購(gòu)買意愿的推薦算法相對(duì)較少. 文獻(xiàn)[4]將價(jià)格影響系數(shù)和折扣影響系數(shù)混合加權(quán)到預(yù)測(cè)評(píng)分中, 由于計(jì)算中考慮了更細(xì)致的影響用戶購(gòu)買因子, 從而有效提升了歸一化折損累積增益(NDCG)排序指標(biāo), 該算法盡管在購(gòu)買能力方面有一定效力, 但不是針對(duì)購(gòu)買意愿力及目標(biāo)用戶的算法; 文獻(xiàn)[5]提出了一種矩陣分解和K-means聚類的推薦算法, 對(duì)用戶評(píng)分類別中的興趣點(diǎn)值(POI value)重點(diǎn)加權(quán), 從而提高了推薦的準(zhǔn)確率和召回率; 文獻(xiàn)[6]提出了一種基于雙聚類的協(xié)同過(guò)濾推薦算法(BCF), 通過(guò)BCF算法將在局部項(xiàng)目上具有相似興趣的用戶聚類, 挖掘出用戶和項(xiàng)目之間的局部相關(guān)模式, 從而在一定程度上提高了推薦精度; 文獻(xiàn)[7]通過(guò)矩陣分解和多細(xì)節(jié)層次(LOD)相似度重點(diǎn)解決了數(shù)據(jù)稀疏及冷啟動(dòng)問(wèn)題, 提高了推薦精度; 文獻(xiàn)[8]通過(guò)詞嵌入技術(shù), 提出了Prefs2vec算法, 重點(diǎn)突出了詞袋間的多樣性及特征, 提升了基于存儲(chǔ)的協(xié)同過(guò)濾改進(jìn)算法.
但上述算法的目標(biāo)只針對(duì)推薦算法精度, 本文提出一種基于用戶購(gòu)買意愿力的推薦算法, 在用戶購(gòu)買意愿較強(qiáng)烈的前提下, 向目標(biāo)用戶準(zhǔn)確推薦其感興趣的商品, 在減少用戶導(dǎo)購(gòu)迷航的同時(shí), 增加用戶購(gòu)物體驗(yàn)的滿意度.
協(xié)同過(guò)濾推薦(CF)算法是推薦系統(tǒng)中廣泛使用的一種方法, 其在聚類的思想下[9], 利用大數(shù)據(jù)分析、數(shù)據(jù)挖掘等技術(shù)將大部分看起來(lái)無(wú)交集的人, 通過(guò)某些特定的算法挖掘出興趣、愛(ài)好都較相似的個(gè)別群體, 將他們感興趣的項(xiàng)目組成一個(gè)排序列表推薦給興趣相似的人[10]. 協(xié)同過(guò)濾算法應(yīng)用在全球電子商務(wù)領(lǐng)域中的業(yè)績(jī)較突出, 例如AMAZON搜索引擎, 其網(wǎng)站上約35%的銷售額來(lái)自其個(gè)性化推薦. CF算法主要分為基于存儲(chǔ)的方法(Memory_Based)和基于模型的方法(Model_Based). Memory_Based CF是經(jīng)用戶評(píng)過(guò)分的項(xiàng)目偏好預(yù)測(cè)可能最感興趣的未知項(xiàng)目偏好, 分為基于用戶的協(xié)同過(guò)濾(User_Based CF)和基于項(xiàng)目的協(xié)同過(guò)濾(Item_Based CF)兩種算法[11]. 基于模型的方法使用機(jī)器學(xué)習(xí)(如聚類[12]、回歸、數(shù)據(jù)挖掘、關(guān)聯(lián)規(guī)則及Bayes技術(shù)等)建立用戶與商品之間以及用戶與用戶之間的關(guān)系[13], 然后通過(guò)優(yōu)化過(guò)程得到模型參數(shù), 建立的數(shù)據(jù)模型比原始數(shù)據(jù)集小, 最終根據(jù)模型產(chǎn)生合理的推薦.
實(shí)施基于項(xiàng)目協(xié)同過(guò)濾推薦(IBCF)算法的主要過(guò)程: 首先計(jì)算項(xiàng)目間的相似度; 其次通過(guò)用戶_項(xiàng)目評(píng)分矩陣和物品的相似度得出預(yù)測(cè)評(píng)分; 最后通過(guò)排序法篩選出最感興趣的項(xiàng)目為用戶生成推薦列表[14]. 測(cè)量不同矢量間的相似性通常使用矢量之間的“距離”計(jì)算. 設(shè)項(xiàng)目a與b之間的相似度為sim(a,b)[15], 其度量方法主要有下列3種.
1) 歐氏距離. 由于平方和是線性規(guī)則中的重要表達(dá), 因此多數(shù)場(chǎng)景下采用歐氏距離相似度, 表示為
(1)
其中Uab表示對(duì)項(xiàng)目a和b評(píng)分過(guò)的用戶集,ai表示用戶i對(duì)項(xiàng)目a的評(píng)分.
2) Pearson相似度. 首先預(yù)處理異常值, 然后用數(shù)量積計(jì)算用戶之間的距離. 由于計(jì)算相對(duì)較復(fù)雜, 因此只能應(yīng)用于帶評(píng)分的場(chǎng)景, 對(duì)不同量綱的評(píng)分, 衡量相似度時(shí)效果較好, 可表示為
(2)
3) 余弦相似度. 主要用于評(píng)分?jǐn)?shù)據(jù)稀疏矩陣, 但易受向量平移的影響, 可表示為
(3)
在實(shí)際應(yīng)用中, 需要分析具體問(wèn)題, 以便采用最適合的相似度計(jì)算公式. 本文利用Pearson相似度計(jì)算用戶或物品間相似度得到的實(shí)驗(yàn)效果比其他方法更好[16].
計(jì)算項(xiàng)目之間的相似性是以用戶對(duì)項(xiàng)目的評(píng)分為基礎(chǔ), 最終評(píng)分預(yù)測(cè)還可以填充稀疏矩陣, 開(kāi)放源數(shù)據(jù)集通常分為培訓(xùn)組和測(cè)試組. 傳統(tǒng)的評(píng)分預(yù)測(cè)算法如下:
1) 基于用戶的鄰域算法是關(guān)聯(lián)與目標(biāo)用戶相似性最靠前的用戶對(duì)物品的預(yù)測(cè)評(píng)分, 構(gòu)建目標(biāo)用戶的最終評(píng)分, 可表示為
(4)
2) 基于物品的鄰域算法是在商品間相似度最靠前的物品集合中, 關(guān)聯(lián)興趣相似用戶的預(yù)測(cè)評(píng)分, 構(gòu)建目標(biāo)用戶的最終評(píng)分, 可表示為
(5)
邏輯回歸(logistic regression, LR)是一種常用的處理二分類問(wèn)題的線性模型[17]. 本文為解決連續(xù)的線性函數(shù)不適合分類的問(wèn)題, 引入非線性函數(shù)g:Rd→(0,1)預(yù)測(cè)類別標(biāo)簽的后驗(yàn)概率:
(6)
這里邏輯函數(shù)作為激活函數(shù),x=(x1,x2,…xd,1)T和ω=(ω1,ω2,…ωd,b)T分別為(d+1)維的增廣特征向量和增廣權(quán)重向量.
用表征用戶購(gòu)買意愿力的特征值(瀏覽Browse、收藏Collect、加購(gòu)物車Cart)建立購(gòu)買意愿力評(píng)分矩陣Spif. 設(shè)商品i在用戶購(gòu)買意愿力評(píng)分中的排名為RankScore(即rsi), 將rsi值作歸一化、標(biāo)準(zhǔn)化處理后, 代入懲罰因子加權(quán)公式, 最后將權(quán)重代入增強(qiáng)相似度公式, 得出增強(qiáng)矩陣預(yù)測(cè)評(píng)分.
min-max標(biāo)準(zhǔn)化: 以線性方式表示原始數(shù)據(jù), 并將數(shù)據(jù)結(jié)果指定在[0,1]內(nèi). 對(duì)序列x1,x2,…,xn進(jìn)行線性變換:
(7)
則新序列y1,y2,…,yn∈[0,1]且無(wú)量綱.
協(xié)同過(guò)濾算法作為推薦系統(tǒng)中的最基本算法, 具有重要的研究?jī)r(jià)值和應(yīng)用前景[18]. 基于項(xiàng)目的協(xié)同過(guò)濾(item-based collaborative filtering, IBCF)作為協(xié)同過(guò)濾算法的分支之一, 具有優(yōu)異的性能和較強(qiáng)的可解釋性, 已得到廣泛應(yīng)用[19]. 但數(shù)據(jù)長(zhǎng)尾現(xiàn)象是該算法需解決的主要問(wèn)題之一[20].
文獻(xiàn)[21]對(duì)基于存儲(chǔ)的協(xié)同過(guò)濾方法進(jìn)行了改進(jìn), 包括缺省投票(根據(jù)用戶未評(píng)分項(xiàng)目的某些規(guī)則給出分?jǐn)?shù))、倒轉(zhuǎn)用戶頻率(考慮到在一些大眾物品上評(píng)分相似并不能很好地代表兩用戶偏好相似, 在小組中給相似項(xiàng)目打分更有參考意義)、放大示例(增強(qiáng)類似的用戶權(quán)重及減少不同的用戶權(quán)重), 以此修正物品余弦相似度公式[21], 表示為
(8)
文獻(xiàn)[22]提出了一種基于牛頓冷卻定律的熱門排序懲罰因子算法, 即將熱門排名想象成一個(gè)自然冷卻的過(guò)程. 同理, 在時(shí)間流逝中, 客戶所關(guān)注的項(xiàng)目熱度也在不斷下降. 因此, 在“時(shí)間”和“溫度”的基礎(chǔ)上構(gòu)造牛頓漸冷法, 表示為
T=T0e-γ(t-t0).
(9)
之后, 劉歡等[23]進(jìn)一步改進(jìn)了該公式, 并將其應(yīng)用到推薦系統(tǒng)算法中.
本文針對(duì)評(píng)分矩陣中變量X或Y的線性關(guān)系不能清晰體現(xiàn), 對(duì)其進(jìn)行數(shù)據(jù)轉(zhuǎn)換后, 得出新的懲罰因子加權(quán)公式為
(10)
其中β為懲罰系數(shù), 本文取β=0.5.
設(shè)Se為ERM預(yù)測(cè)評(píng)分, 其值為購(gòu)買意愿力評(píng)分矩陣Spif與權(quán)值Wpf-i的加權(quán)再除以權(quán)值總和. 該算法主要針對(duì)有購(gòu)買意愿的商品排名靠后, 從而未被及時(shí)推薦導(dǎo)致的長(zhǎng)尾效應(yīng). 因頭部標(biāo)的物會(huì)被越來(lái)越多的用戶消費(fèi), 而質(zhì)量較好且用戶有購(gòu)買意愿的長(zhǎng)尾標(biāo)的物由于用戶關(guān)注行為較少, 自身描述信息不足而得不到足夠的關(guān)注.Se可表示為
(11)
其中Ic表示購(gòu)買意愿力較強(qiáng)的用戶集合.
設(shè)Mui為最終評(píng)分, 其值是混合加權(quán)基礎(chǔ)型評(píng)分矩陣BRM與增強(qiáng)型評(píng)分矩陣ERM的加權(quán)和, 可表示為
(12)
其中α為調(diào)節(jié)系數(shù), 本文取α=0.7.
實(shí)驗(yàn)采用本文方法與傳統(tǒng)IBCF算法在進(jìn)行對(duì)比.
1) 傳統(tǒng)IBCF算法. 通過(guò)采用余弦相似度計(jì)算用戶間的相似度值, 得到推薦結(jié)果; LRR(logistic regression recommendation)邏輯回歸是在推薦算法領(lǐng)域內(nèi), 通過(guò)設(shè)定概率閾值對(duì)用戶有意購(gòu)買或無(wú)意購(gòu)買做二值判斷;
2) 本文采用增強(qiáng)矩陣協(xié)同過(guò)濾推薦(ERM-IBCF)算法. 首先, 通過(guò)奇異值分解(SVD)降維, 再以Pearson相似度計(jì)算用戶相似度值, 得到基礎(chǔ)型評(píng)分矩陣(BRM); 其次, 用懲罰因子作為增強(qiáng)型矩陣ERM的評(píng)價(jià)權(quán)重, 加權(quán)表征用戶購(gòu)買意愿力的商品畫(huà)像, 取得增強(qiáng)型矩陣ERM的預(yù)測(cè)評(píng)分; 最后, 混合加權(quán)BRM&ERM得到最終評(píng)分.
向購(gòu)買意愿力較強(qiáng)的目標(biāo)用戶推薦TOP-N個(gè)下單可能性最大的商品作為興趣偏好商品, 采用準(zhǔn)確率(P)、召回率(R)和綜合評(píng)價(jià)指標(biāo)(F1)值作為評(píng)價(jià)標(biāo)準(zhǔn)對(duì)推薦性能進(jìn)行評(píng)估, 分別表示為
(13)
(14)
(15)
其中: 準(zhǔn)確率是通過(guò)計(jì)算預(yù)測(cè)偏好與實(shí)際偏好相等的數(shù)量占整個(gè)測(cè)試集推薦商品個(gè)數(shù)的比值衡量推薦的準(zhǔn)確度,P(N)表示推薦數(shù)量為N時(shí)的準(zhǔn)確率; 召回率是預(yù)測(cè)正確的偏好數(shù)量占被推薦商品個(gè)數(shù)的比值,R(N)表示推薦數(shù)量為N時(shí)的召回率; 綜合評(píng)價(jià)指標(biāo)F1值越高說(shuō)明推薦性能越好.
本文實(shí)驗(yàn)數(shù)據(jù)來(lái)源于天池新人挑戰(zhàn)賽離線賽, 數(shù)據(jù)包含約1萬(wàn)個(gè)用戶的完整行為和位置信息以及近50萬(wàn)條的商品信息, 其中用戶行為分類為瀏覽、收藏、加車、購(gòu)買, 評(píng)分分別為1~4分. 實(shí)驗(yàn)中, 將數(shù)據(jù)劃分為訓(xùn)練集和測(cè)試集兩部分. 通過(guò)訓(xùn)練集預(yù)測(cè)目標(biāo)用戶感興趣程度最大的興趣偏好, 再以測(cè)試集驗(yàn)證推薦算法的優(yōu)劣.
3.3.1 調(diào)節(jié)懲罰系數(shù)β
選取最優(yōu)的β值, 得出對(duì)應(yīng)的準(zhǔn)確率和召回率.
1) 準(zhǔn)確率: 截取區(qū)間[0.3,0.6]+0.1內(nèi)實(shí)驗(yàn)數(shù)據(jù), 結(jié)果如圖1所示.
2) 召回率: 截取區(qū)間[0.3,0.6]+0.1內(nèi)實(shí)驗(yàn)數(shù)據(jù), 結(jié)果如圖2所示.
圖1 不同懲罰因子下的準(zhǔn)確率對(duì)比結(jié)果Fig.1 Comparison results of accuracy under different penalty factors
圖2 不同懲罰因子下的召回率對(duì)比結(jié)果Fig.2 Comparison results of recall rates under different penalty factors
在圖1和圖2中, 對(duì)于每組推薦長(zhǎng)度N, 從左至右分別對(duì)應(yīng)β=0.3,0.4,0.5,0.6. 算法ERM-IBCF中, 當(dāng)懲罰因子β=0.5時(shí), 準(zhǔn)確率和召回率的結(jié)果達(dá)到最優(yōu). 隨著推薦列表長(zhǎng)度的增加, 準(zhǔn)確率和召回率的值也增大.
3.3.2 LRR和IBCF與ERM-IBCF算法之間推薦結(jié)果對(duì)比分析
圖3 LRR,IBCF和ERM-IBCF算法的準(zhǔn)確率對(duì)比結(jié)果Fig.3 Comparison results of accuracy of LRR, IBCF and ERM-IBCF algorithms
IBCF和ERM-IBCF兩種算法分別采用兩種不同相似度計(jì)算方法, 準(zhǔn)確率定義為推薦列表中用戶感興趣且購(gòu)買意愿較強(qiáng)的商品所占比例, 召回率定義為用戶購(gòu)買意愿較強(qiáng)商品被推薦的概率. 選擇準(zhǔn)確率和召回率作為實(shí)驗(yàn)的基礎(chǔ)評(píng)價(jià)指標(biāo),F1值作為實(shí)驗(yàn)的綜合評(píng)價(jià)指標(biāo), 偏好推薦列表的長(zhǎng)度分別取5,10,15,20.
邏輯回歸和兩種基于用戶協(xié)同過(guò)濾偏好推薦算法在淘寶用戶數(shù)據(jù)集上的推薦準(zhǔn)確率、召回率和F1值結(jié)果分別如圖3~圖5所示. 由圖3~圖5可見(jiàn): 由于ERM-IBCF算法融合了表征用戶購(gòu)買意愿的評(píng)分矩陣, 對(duì)購(gòu)買意愿較強(qiáng)烈的項(xiàng)目進(jìn)行重點(diǎn)推薦, 因此, ERM-IBCF算法具有更好的重點(diǎn)項(xiàng)目推薦性能; LRR由于包含了較多的目標(biāo)意愿用戶, 所以準(zhǔn)確率和召回率略高于IBCF算法, 但與ERM-IBCF算法相比, 后者由于融合了增強(qiáng)矩陣, 重點(diǎn)推薦購(gòu)買意愿較強(qiáng)項(xiàng)目, 因此ERM-IBCF算法的準(zhǔn)確率和召回率高于LRR. 由圖3和圖4可見(jiàn), 隨著推薦項(xiàng)目數(shù)量的增加, 準(zhǔn)確率和召回率的增加也非常明顯, 這主要是因?yàn)槟繕?biāo)用戶購(gòu)買意愿較強(qiáng)項(xiàng)目被推薦的數(shù)目也在逐漸增多, 從而也逐漸提高了F1值.
圖4 LRR,IBCF和ERM-IBCF算法的召回率對(duì)比結(jié)果Fig.4 Comparison results of recall rates of LRR, IBCF and ERM-IBCF algorithms
圖5 LRR,IBCF和ERM-IBCF算法的F1值對(duì)比結(jié)果Fig.5 Comparison results of F1 values of LRR, IBCF and ERM-IBCF algorithms
綜上所述, 本文針對(duì)網(wǎng)購(gòu)行為中商品瀏覽量排名靠前而銷量滯后的問(wèn)題, 在用戶購(gòu)買意愿力的基礎(chǔ)上, 提出一種增強(qiáng)評(píng)分矩陣協(xié)同過(guò)濾推薦算法. 通過(guò)懲罰因子權(quán)重算法, 有效解決了興趣偏移導(dǎo)致的不確定性和因時(shí)間等因素導(dǎo)致的感興趣商品關(guān)注熱度下降問(wèn)題; 同時(shí)通過(guò)對(duì)數(shù)轉(zhuǎn)換呈現(xiàn)了用戶購(gòu)買意愿力評(píng)分排名與懲罰因子權(quán)值的線性關(guān)系; 通過(guò)融合增強(qiáng)矩陣中表征用戶購(gòu)買意愿的評(píng)分矩陣, 將用戶感興趣且購(gòu)買意愿較強(qiáng)的項(xiàng)目從眾多下單盲區(qū)中, 對(duì)目標(biāo)用戶重點(diǎn)推薦, 從而增加用戶下單的幾率.