李建貴,孫 詠,高 岑,劉 璐
1(中國科學(xué)院大學(xué),北京 100049)
2(中國科學(xué)院 沈陽計算技術(shù)研究所,沈陽 110168)
隨著電子商務(wù)的發(fā)展,國內(nèi)市場對物流配送的需求量越來越大,基于雙邊資源整合,出現(xiàn)了大量的物流服務(wù)平臺[1],這些平臺中服務(wù)方案眾多,結(jié)合實際的應(yīng)用情景分析,當(dāng)用戶通過物流服務(wù)平臺選定物流商及其服務(wù)發(fā)出配送請求,物流商在線確定后線下提供服務(wù) ,在服務(wù)執(zhí)行結(jié)束后通過平臺對服務(wù)評分,除了給出綜合評分還會對服務(wù)涉及的多個屬性如時間、價格等進行評分,綜合評分反映出用戶對服務(wù)的整體偏好,而各個屬性的評分反應(yīng)出用戶對服務(wù)各方面的偏好[2],如何充分利用多屬性評分為用戶提供盡可能滿足其個性化偏好的物流配送服務(wù)是一個值得研究的課題.
目前推薦系統(tǒng)技術(shù)是解決用戶個性化需求的主要途徑,其中協(xié)同過濾算法被廣泛采用來構(gòu)建推薦系統(tǒng),其基本思想是通過對用戶-項目評分矩陣分析,過濾掉大量信息,幫用戶找出感興趣的項目[3].該算法基于如下假設(shè): 如果兩個用戶對某些項目的評分比較相似,則認(rèn)為兩個用戶之間的偏好相似,就可以推斷這兩個用戶對其他項目的評分也比較相似,利用這種相似度找出與其相似的用戶,將相似用戶喜好的項目推薦給目標(biāo)用戶.
使用協(xié)同過濾推薦,應(yīng)當(dāng)充分考慮被推薦項目在其領(lǐng)域的特征,為此本文進行了相關(guān)研究分析.在電商領(lǐng)域,由于商品的種類繁多,如果對同一類商品的評分相似,并不能代表用戶對其他類商品的評分相似,目標(biāo)用戶對協(xié)同過濾推薦的未接觸過其它類商品不感興趣的可能性很大.與電商領(lǐng)域不同,在物流配送領(lǐng)域,服務(wù)種類相對于商品來說比較單一,用戶對某一服務(wù)的評分相似,說明用戶在其價格、時效等方面偏好相似,對于某一目標(biāo)用戶而言,其相似用戶喜歡的服務(wù)往往能較好的滿足其偏好,這是可以將協(xié)同過濾應(yīng)用于物流配送服務(wù)推薦的關(guān)鍵所在.
近年來,將協(xié)同過濾用于物流配送服務(wù)推薦的相關(guān)研究較少,文獻[4]提出了基于用戶屬性關(guān)注度的協(xié)同過濾推薦算法.在物流領(lǐng)域?qū)W術(shù)研究中,文獻[5]利用協(xié)同過濾算法設(shè)計了應(yīng)用于物流信息平臺的推薦系統(tǒng)框架,文獻[6]給出了出了基于協(xié)同過濾的物流商推薦算法.
由于傳統(tǒng)的協(xié)同過濾是基于用戶對推薦項目的單個整體評分進行推薦,不再適用于有著多屬性評分特點的物流配送服務(wù)推薦[7],本文構(gòu)建一種基于多屬性協(xié)同過濾的推薦算法,在關(guān)鍵步驟針對物流配送服務(wù)的實際情況進行改進,并將該算法應(yīng)用于物流配送服務(wù)平臺,通過構(gòu)建推薦系統(tǒng),向用戶推薦盡可能滿足其偏好的物流配送服務(wù),在沈陽市沈北物流信息平臺進行了應(yīng)用驗證.
基于多屬性協(xié)同過濾的推薦是對傳統(tǒng)協(xié)同過濾的延伸,利用傳統(tǒng)協(xié)同過濾思想預(yù)測用戶對項目單個屬性的評分值,然后利用所有屬性的評分預(yù)測值來綜合預(yù)測產(chǎn)生推薦,通過挖掘用戶細(xì)粒度的評分?jǐn)?shù)據(jù),能更加細(xì)微的洞察用戶偏好,產(chǎn)生更精準(zhǔn)的推薦,算法構(gòu)建過程主要包括單屬性評分值預(yù)測、綜合評分預(yù)測.
U表示用戶集,U={u1,u2,…,um}.
S代表項目集,S={s1,s2,…,sn}.
C代表項目屬性集合,C={c1,c2,…,cv}.
R代表用戶評分集合,R={Ri|Ri代表用戶ui∈U的評分集合},對于Ri表示為三元組(USi,TSi,RSi).其中USi代表用戶接觸過的項目集,有USi={s|s∈S};TSi為用戶的項目評分次數(shù)統(tǒng)計結(jié)果,有TSi={ti,j|ti,j表示用戶ui對sj∈U的評分次數(shù)};RSi={ri,j,c,k|ri,j,c,k表示當(dāng)前ui對項目sj屬性c的第k次評分值,sj∈USi,c∈C}.
在物流配送服務(wù)平臺中,Ri∈R則表示用戶對所使用物流配送服務(wù)時效、時間等屬性評價程度關(guān)系,即用戶ui對配送服務(wù)的屬性評分?jǐn)?shù)據(jù).
1.2.1 用戶相似度計算
要得到用戶的最近鄰居集合,需要進行用戶間相似度計算.常見的相似度計算方法有Euclidean距離法、Cosine相似度、Pearson相似度和修正的 Cosine相似度[8],本文使用Euclidean距離法,將用戶對共同使用過的配送服務(wù)屬性評分視為多維空間的一點,通過計算兩點間距離得到用戶關(guān)于某一屬性偏好的相似度.
對于熱門的配送服務(wù),因其在費用、時效等方面有著較高的品質(zhì),受到大多用戶的一致好評,則不同用戶對這類服務(wù)的評分相似不能較好的體現(xiàn)其偏好相似,而存在一些服務(wù),不同用戶對其評分產(chǎn)生的差別很大,服務(wù)滿足不同用戶需求偏好的程度不同,對于這類服務(wù)來說,不同用戶的評分相似才能較好的體現(xiàn)其偏好相似,從而在計算用戶相似度時的貢獻更大.
針對上述情形,本文計算用戶相似度時引入服務(wù)的個性化特征因子[9],使用公式(1)計算:
為用戶ui對服務(wù)sj中屬性c的評分的均值;,c為使用過服務(wù)sj的用戶集中所有用戶對屬性c評分的均值,φ為使用過服務(wù)的用戶數(shù),σj,c為服務(wù)sj在屬性c上評分的標(biāo)準(zhǔn)差.
得到服務(wù)的個性化特征因子βj,c:
USi∩USi'為用戶共同使用的服務(wù),η為一個可變參數(shù),用來調(diào)節(jié)計算過程中服務(wù)個性化特征的程度,如果η=0,則沒有考慮.
加入由公式(2)計算得到的服務(wù)的個性化特征因子,用戶ui和ui'關(guān)于屬性c評分的Euclidean距離為:
,j,c和i′,j,c為兩個用戶關(guān)于服務(wù)sj中某屬性c的平均評分.
轉(zhuǎn)化成對應(yīng)的相似度:
simi,i',c為兩個用戶關(guān)于屬性c評分的相似度.通過加入懲罰因子減小用戶之間共同評分服務(wù)數(shù)少對相似度計算產(chǎn)生的誤差:
則最終的相似度計算公式為:
simi,i',c為用戶ui和ui'在共同使用物流配送服務(wù)集合USi∩USi'上關(guān)于屬性c偏好的相似度.
1.2.2 單個屬性評分預(yù)測值計算
通過式(6)計算得到與用戶ui關(guān)于物流配送服務(wù)屬性c偏好相似的用戶構(gòu)成的最近鄰居集合Ni,c,預(yù)測目標(biāo)用戶ui對未使用服務(wù)sj屬性c的評分值:
,c為用戶ui對所有服務(wù)在屬性c上評分的均值,′,j,c代表鄰居用戶ui'對sj在屬性c上評分的均值.
通過對物流配送服務(wù)平臺中用戶評分行為進行研究,發(fā)現(xiàn)用戶對同一屬性的評分存在波動性,如果用戶對于某一屬性在不同服務(wù)間評分的波動較大時,則說明對該屬性比較偏好,如果對于某一屬性評分接近穩(wěn)定,則在用戶評分預(yù)測時參照其歷史評分值使得準(zhǔn)確度更高.
根據(jù)參考文獻[10],通過信息熵En來對使用協(xié)同過濾得到的單個屬性評分預(yù)測值進行修正.
將用戶ui關(guān)于所有服務(wù)的屬性c的評分情況統(tǒng)計,得到取值區(qū)間RAc為 [rcmin,rcmax].STu,c={tr|tr表示對屬性c評分為r的次數(shù),r∈RAc}.
信息熵計算公式:
En(STu,c)取值范圍為[0,log2(rcmax–rcmin+1)],當(dāng)rcmin=rcmax熵為0,當(dāng)對于所有r∈RAc,tr相等時,取到最大值Enmax.綜合式(7)和式(8)最終用戶對服務(wù)sj屬性的評分預(yù)測值如下:
ri,j,c'為用戶ui對物流配送服務(wù)sj的c屬性評分的的最終預(yù)測值,為目標(biāo)用戶ui在屬性c上評分的均值,ri,j,c為協(xié)同過濾推薦分值,由公式可知,En(STu,c)越小,預(yù)測評分受歷史評分影響較大.
同理,可以預(yù)測目標(biāo)用戶ui對未使用配送服務(wù)Sj其它屬性的評分值.
利用ui對未使用配送服務(wù)Sj各個屬性的評分預(yù)測值進行綜合預(yù)測,研究發(fā)現(xiàn)同一用戶對配送服務(wù)不同屬性評分的波動性不同,如果某一屬性波動性小,則在綜合評分預(yù)測中所起作用大[11],對用戶ui而言,屬性c的評分預(yù)測權(quán)重為:
Ei,c表示對ui而言c歸一化后的信息熵值,n為屬性的個數(shù).
通過式(10)得到的用戶各屬性評分預(yù)測權(quán)重,對用戶未使用配送服務(wù)Si各屬性評分預(yù)測值加權(quán)求和,得到用戶ui對配送服務(wù)sj的綜合評分預(yù)測值:
根據(jù)式(11)計算得到目標(biāo)用戶ui對所有未使用配送服務(wù)的評分,將分值按從高到低排序形成Top-N服務(wù)列表推薦給用戶.
以上將物流配送服務(wù)平臺與實際情況結(jié)合,將基于多屬性協(xié)同過濾的推薦算法主要環(huán)節(jié)進行重新定義與描述,構(gòu)建過程中通過考慮用戶間共同評分服務(wù)的個性化特征以及用戶對服務(wù)屬性評分的波動性降低用戶評分預(yù)測的誤差,有助于提高服務(wù)平臺的推薦準(zhǔn)確性.
本文提到的物流配送服務(wù)平臺是物流信息云平臺的一個子平臺,通過該平臺幫助需要物流配送服務(wù)的用戶能夠找到現(xiàn)有的服務(wù),隨著平臺運作和大量物流商入駐,沉淀了大量物流商及其配送服務(wù)信息,這些服務(wù)在費用、時效方面存在差異,同時平臺聚集了大量物流配送服務(wù)需求用戶,這些用戶對于配送服務(wù)的費用、時效存在偏好差異,對于用戶來說了解每一項服務(wù)是不現(xiàn)實的,用戶在選擇服務(wù)時需要外界幫助,而推薦系統(tǒng)正好有這種功能.
平臺目前具備的服務(wù)評價功能是系統(tǒng)實現(xiàn)的基本條件: 每完成一筆物流配送服務(wù)交易,平臺會提醒用戶對所使用的物流配送服務(wù)進行評價,現(xiàn)有平臺的評價指標(biāo)為用戶關(guān)心的運輸費用、運輸時效、服務(wù)態(tài)度、運輸安全性屬性除此之外還有整體評價.評價采取打分制,分值劃分為5個等級,1代表非常不滿意,5代表非常滿意.
基于上述背景,本文提出在現(xiàn)有物流配送服務(wù)平臺中加入推薦系統(tǒng)功能,基于構(gòu)建的多屬性協(xié)同過濾算法為用戶推薦滿足偏好的物流配送服務(wù).
遵循低耦合、分層、模塊化的設(shè)計原則,將系統(tǒng)分為三個模塊: 用戶建模模塊、推薦引擎模塊、結(jié)果處理模塊,推薦系統(tǒng)為服務(wù)器端程序,以物流配送服務(wù)平臺中的服務(wù)為推薦庫,首先通過建立用戶興趣模型即用戶-服務(wù)評分矩陣,然后由推薦引擎基于構(gòu)建的多屬性協(xié)同過濾推薦算法,生成推薦結(jié)果,最后根據(jù)推薦結(jié)果的預(yù)測分?jǐn)?shù)對推薦結(jié)果排名,返回給平臺,由物流配送服務(wù)平臺向用戶呈現(xiàn)推薦結(jié)果,推薦系統(tǒng)組織結(jié)構(gòu)如圖1所示.
圖1 基于多屬性協(xié)同過濾的物流配送服務(wù)推薦系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)通過調(diào)用物流配送服務(wù)平臺提供的接口獲取用戶、服務(wù)等數(shù)據(jù),這些數(shù)據(jù)由平臺維護,系統(tǒng)產(chǎn)生的結(jié)果會再次通過平臺提供的接口返回,本系統(tǒng)也提供接口供平臺二次開發(fā)使用.
推薦引擎通過執(zhí)行推薦算法產(chǎn)生推薦,本文構(gòu)建的基于多屬性評分的協(xié)同過濾算法為了減小熱門物流配送服務(wù)對用戶相似度計算造成的誤差,使用Euclidean距離法計算用戶相似度時引入了服務(wù)的個性化特征因子,根據(jù)研究發(fā)現(xiàn)的用戶服務(wù)屬性評分波動性會對協(xié)同過濾的評分預(yù)測準(zhǔn)確性會產(chǎn)生影響,使用信息熵將用戶對單個屬性的歷史評分均值和協(xié)同過濾的評分預(yù)測值加權(quán)求和進行修正,得到用戶關(guān)于服務(wù)所有屬性的評分預(yù)測值,最后根據(jù)不同用戶服務(wù)屬性評分波動性差異產(chǎn)生用戶各屬性的評分預(yù)測權(quán)重,根據(jù)這些權(quán)重與對應(yīng)屬性的評分預(yù)測值加權(quán)求和得到綜合預(yù)測評分進行推薦,配送服務(wù)的推薦過程如圖2所示.
圖2 物流配送服務(wù)推薦流程圖
由圖可知推薦過程主要分為兩步: 首先分別預(yù)測用戶對單個配送服務(wù)屬性的評分值,然后進行綜合評分預(yù)測,推薦過程描述如下:
(1)通過用戶間相似度計算確定和目標(biāo)用戶偏好相似的最近鄰居集合,用來預(yù)測用戶對未使用服務(wù)的評分,通過算法1來實現(xiàn).
算法1.用戶相似度計算輸入: ratingData(用戶物流服務(wù)多屬性評分?jǐn)?shù)據(jù))輸出: sim(用戶關(guān)于每個服務(wù)屬性的偏好相似度)Step 1.根據(jù)式(2)得到所有服務(wù)每個屬性的個性特征因子;Step 2.根據(jù)式(6)進行用戶間關(guān)于每個屬性的偏相似度計算.
(2)預(yù)測用戶對未使用服務(wù)單個屬性的評分值通過算法2進行.
算法 2.單個屬性評分值預(yù)測輸入: ratingData,sim輸出: pRating(用戶對所有未使用服務(wù)每個屬性的評分預(yù)測值)Step 1.過濾ratingData獲得目標(biāo)用戶的評分?jǐn)?shù)據(jù);Step 2.過濾ratingDdta獲取目標(biāo)用戶未使用服務(wù);Step 3.根據(jù)式(8)計算得到目標(biāo)用戶關(guān)于每一個服務(wù)屬性評分的信息熵;Step 4.根據(jù)式(9)將用戶對每個服務(wù)屬性評分的均值和對應(yīng)的評分預(yù)測值加權(quán)求和得到關(guān)于所有未使用服務(wù)每個屬性的最終評分預(yù)測值.
(3)最后一步則是綜合評分預(yù)測,把計算得到的用戶對未使用服務(wù)每個屬性的評分預(yù)測值通過算法3來得到綜合評分預(yù)測值.
算法3.綜合評分預(yù)測輸入: pRating輸出: Top-N服務(wù)推薦列表
Step 1.根據(jù)式(10)計算目標(biāo)用戶每個屬性的評分預(yù)測權(quán)重.Step 2.將計算得到的用戶對所有未使用服務(wù)的評分預(yù)測值從高到低排序,選取前N個作為最終的配送服務(wù)推薦結(jié)果.
構(gòu)建的基于多屬性評分的協(xié)同過濾推薦算法在物流配送服務(wù)平臺中實現(xiàn),當(dāng)用戶登錄平臺后,推薦能符合用戶偏好的物流配送服務(wù).
本文采用離線測試的方式驗證了推薦系統(tǒng)的效果,實驗數(shù)據(jù)來源于實驗室項目“沈陽市沈北物流信息平臺”配送服務(wù)子平臺,數(shù)據(jù)集包含了該平臺5000條數(shù)據(jù),包含2016下半年沈陽到北京線路400個用戶對60項物流配送服務(wù)的評分,數(shù)據(jù)的稀疏度為79%.
數(shù)據(jù)選取過程中限定每個用戶對至少10項不同配送服務(wù)進行評分,數(shù)據(jù)稀疏度為79%,經(jīng)處理后的每條數(shù)據(jù)包含了用戶ID、物流商ID以及運輸費用、貨物安全、服務(wù)態(tài)度、運輸時效評分信息以及綜合評分.通過對時間和距離的限定,排除了兩者引起的較大幅度的價格變化造成的影響.
實驗中的算法在Pycharm開發(fā)環(huán)境中使用Python語言實現(xiàn).
通過計算評價指標(biāo)來評價推薦算法的質(zhì)量是實驗部分的重要環(huán)節(jié),針對不同的推薦算法可以選取不同的評價指標(biāo),本文選取的評價指標(biāo)如下:
(1)平均絕對誤差(MAE)
平均絕對誤差用來度量用戶實際評分和真實評分之間的差值,其值越小,代表預(yù)測準(zhǔn)確性越高,定義如下:
其中,Ri,j為用戶i對服務(wù)j的預(yù)測評分,ri,j為用戶i對服務(wù)j的實際評分,n為測試集中服務(wù)評分的數(shù)目.
(2)準(zhǔn)確率(Precision)
準(zhǔn)確率表示用戶產(chǎn)生的推薦列表中有多大的比例是實際滿足用戶偏好的服務(wù),如下式:
其中,R(u)為生成的服務(wù)推薦列表,T(u)表示測試集里用戶表現(xiàn)出興趣的服務(wù)列表.
為了說明本文構(gòu)建的基于多屬性協(xié)同過濾推薦算法的有效性,使用實驗數(shù)據(jù)將本文算法(Mul-CF)和其他算法對比分析:
(1)基于傳統(tǒng)的協(xié)調(diào)過濾推薦算法: 基于用戶對服務(wù)的綜合評分,使用本文提出的改進的Euclidean距離法進行用戶相似度計算,為了和基于多屬性評分的推薦算法對比,稱作Sin-iEuclidean.
(2)基于多屬性協(xié)同過濾的推薦算法: 1)使用普通的Euclidean距離法進行用戶相似度計算,稱作MulpEuclidean; 2)本文算法中預(yù)測得到的用戶對單個屬性的評分不使用信息熵計算結(jié)果加權(quán),稱作Mu-noEn.
同時在長度不同的推薦列表Top-5和Top-7下進行對比,得到實驗數(shù)據(jù)綜合結(jié)果如表1所示.
表1 不同推薦算法在實驗中的性能對比表
由實驗結(jié)果可知,本文構(gòu)建的算法在Top-5和TopN-7列表下的準(zhǔn)確率和平均絕對誤差都明顯好于其他三種算法,并且在Top-5列表下性能要略高經(jīng)分析,本文算法優(yōu)于其他三個算法: 一是基于粒度小的多屬性評分,能較精確的反映用戶偏好; 二是在計算用戶相似度時,考慮了服務(wù)的個性化特征,降低了相似度計算誤差; 三是考慮了用戶歷史評分波動性對預(yù)測的影響.
綜上,通過對比實驗驗證了本文推薦系統(tǒng)的有效性,應(yīng)用于物流配送服務(wù)平臺能更好的滿足用戶需求,提高用戶體驗.
本文結(jié)合物流配送平臺的實際情況構(gòu)建了一種基于多屬性協(xié)調(diào)過濾的推薦算法,引入服務(wù)個性化特征因子減小用戶相似度誤差,使用信息熵將用戶歷史評分均值與協(xié)調(diào)過濾的預(yù)測評分值線性組合進行修正,同時考慮了同一用戶對服務(wù)不同熟悉評分波動的差異性,使最后得到的綜合評分預(yù)測值更加準(zhǔn)確,同時將算法應(yīng)用于物流配送服務(wù)平臺構(gòu)建推薦系統(tǒng),實驗結(jié)果表明,推薦系統(tǒng)有較好的推薦效果,本文下一步將基于“沈陽市沈北物流信息平臺”研究新用戶冷啟動問題,使得物流配送服務(wù)推薦系統(tǒng)功能進一步完善.