王 普,張朝霞,吳艷華,趙正陽(yáng)
(1.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 研修學(xué)院,北京 100081;2.中國(guó)鐵路北京局集團(tuán)有限公司 天津電務(wù)段,天津 300140;3.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081)
隨著互聯(lián)網(wǎng)、電子支付、大數(shù)據(jù)等技術(shù)的快速發(fā)展,各類電子商務(wù)平臺(tái)逐步增多。電子商務(wù)的發(fā)展主要包括3個(gè)階段:①基于電子數(shù)據(jù)交換EDI(Electronic Data Interchange)的電子商務(wù)階段:20世紀(jì)60年代,出現(xiàn)了應(yīng)用于企業(yè)間的EDI技術(shù)和銀行間的電子資金轉(zhuǎn)賬EFT(Electronic Funds Transfer System,又稱電子支付)技術(shù)作為電子商務(wù)應(yīng)用的系統(tǒng)雛形;②基于互聯(lián)網(wǎng)的電子商務(wù)階段:以全球的互聯(lián)網(wǎng)為架構(gòu),以交易雙方為主體,以網(wǎng)上支付和結(jié)算為手段,以客戶信息數(shù)據(jù)庫(kù)為依托的一種新的商務(wù)模式迅速發(fā)展,這也是今天所說的電子商務(wù);③智慧電子商務(wù)階段:以主動(dòng)、互動(dòng)、用戶關(guān)懷等多角度與用戶進(jìn)行深層次溝通的主動(dòng)互聯(lián)網(wǎng)營(yíng)銷模式出現(xiàn),進(jìn)一步滿足了消費(fèi)者的個(gè)性化需求。
電子商務(wù)平臺(tái)的分類有多種,常用的包括企業(yè)對(duì)消費(fèi)者B2C(Business-to-Customer)、企業(yè)對(duì)企業(yè)B2B(Business-to-Business)、消費(fèi)者對(duì)消費(fèi)者C2C(Customer-to-Consumer)等[1-2]。面向消費(fèi)者(B2C、C2C)類的電商平臺(tái)起步很早,如美國(guó)的亞馬遜、eBay,中國(guó)的京東、中糧我買網(wǎng)、淘寶網(wǎng)等,平臺(tái)架構(gòu)和關(guān)鍵技術(shù)快速發(fā)展、逐步完善,已經(jīng)進(jìn)入智慧電子商務(wù)階段,通過主動(dòng)推送、實(shí)時(shí)更新、個(gè)性化推薦等方式提升消費(fèi)者用戶體驗(yàn),提升用戶黏度,實(shí)現(xiàn)精準(zhǔn)營(yíng)銷。近年,以企業(yè)為背景的B2B類電商平臺(tái)也逐步發(fā)展,如阿里巴巴、慧聰網(wǎng)、找鋼網(wǎng)、易派客、國(guó)網(wǎng)商城等,這些平臺(tái)也在探索運(yùn)用大數(shù)據(jù)關(guān)鍵技術(shù)提升企業(yè)用戶體驗(yàn)。企業(yè)用戶的檢索、瀏覽和購(gòu)買等行為特征與個(gè)人用戶差異較大,基于企業(yè)用戶的企業(yè)背景特征開展B2B類電商平臺(tái)智能推薦是其必然發(fā)展趨勢(shì)。
文獻(xiàn)[3]提出了推薦系統(tǒng)的定義,常用推薦算法主要包括協(xié)同過濾推薦、基于內(nèi)容的推薦、基于二部圖的推薦、基于關(guān)聯(lián)規(guī)則的推薦、基于社交網(wǎng)絡(luò)的推薦等[3-4]。由于算法原理和過程的側(cè)重各有不同,上述推薦算法各有優(yōu)劣,適用的典型應(yīng)用場(chǎng)景也各不相同。總的來說,協(xié)同過濾推薦算法具有適用于個(gè)性化推薦、自動(dòng)化程度高、處理復(fù)雜非結(jié)構(gòu)化對(duì)象等優(yōu)點(diǎn),是最適用電商網(wǎng)站的推薦算法之一,其應(yīng)用最為廣泛[5-6]。
協(xié)同過濾算法可以分為三大類,分別為基于用戶、基于產(chǎn)品和基于模型的協(xié)同過濾推薦算法[7]。文獻(xiàn)[8-11]提出基于用戶的協(xié)同過濾算法,通過目標(biāo)用戶的購(gòu)買、瀏覽、評(píng)價(jià)等數(shù)據(jù),找到相似用戶群體并進(jìn)行推薦的過程,也可以形象地描述為“人推人”。文獻(xiàn)[12-13]基于產(chǎn)品的協(xié)同過濾算法,通過用戶現(xiàn)有行為數(shù)據(jù),計(jì)算目標(biāo)產(chǎn)品與用戶購(gòu)買、瀏覽產(chǎn)品的相似度,從而將相似產(chǎn)品推薦給用戶的過程,也可以形象地描述為“物推物”。文獻(xiàn)[14-18]提出基于模型的協(xié)同過濾算法,其中包括了大量使用用戶群組信息的推薦算法以及為解決電商冷啟動(dòng)問題而在文獻(xiàn)[19-20]提出的改進(jìn)方法。
但是專門針對(duì)B2B電商平臺(tái)的推薦系統(tǒng),很少有學(xué)者展開深入的研究。與面向消費(fèi)者的平臺(tái)不同,B2B電商平臺(tái)的商品和用戶,都具備獨(dú)特的企業(yè)特征,如平臺(tái)中的商品以企業(yè)特有和業(yè)務(wù)需求的商品為主,用戶的搜素、瀏覽和購(gòu)買行為與所屬企業(yè)的經(jīng)營(yíng)范圍相關(guān)等。鐵路B2B電商平臺(tái)(或招投標(biāo)采購(gòu)平臺(tái))以鐵路企業(yè)的特殊需求商品為主,供貨商和采購(gòu)用戶都具有典型的鐵路企業(yè)屬性,如某些企業(yè)只采購(gòu)工務(wù)專業(yè)設(shè)備,因此其用戶的專屬業(yè)務(wù)領(lǐng)域特征明顯。針對(duì)B2B電商平臺(tái)的這些獨(dú)有特征,提出智能推薦的總體架構(gòu),并基于平臺(tái)數(shù)據(jù)構(gòu)建具有企業(yè)屬性的雙偏好矩陣協(xié)同過濾算法,提高B2B電商平臺(tái)智能推薦系統(tǒng)的適用性和精度。
目前,大多數(shù)B2B電商平臺(tái)都是基于傳統(tǒng)的B/S架構(gòu)進(jìn)行設(shè)計(jì)和開發(fā)的。隨著平臺(tái)用戶、商品、成交量等的不斷增加,數(shù)據(jù)量和商品檢索、成交時(shí)間等都將受技術(shù)架構(gòu)和軟硬件條件的限制。大數(shù)據(jù)技術(shù)的成熟應(yīng)用,有效地解決了以上問題[8]。因此,提出B2B電商大數(shù)據(jù)分析平臺(tái)總體架構(gòu),如圖1所示。
圖1 電商大數(shù)據(jù)分析平臺(tái)總體架構(gòu)
在電商平臺(tái)應(yīng)用系統(tǒng)外搭建大數(shù)據(jù)分析平臺(tái),用于提升智能推薦、用戶畫像等數(shù)據(jù)分析應(yīng)用的處理效率。B2B電商大數(shù)據(jù)分析平臺(tái),除存儲(chǔ)的數(shù)據(jù)和數(shù)據(jù)分析應(yīng)用與B2C/C2C類的電商平臺(tái)略有差異,其原理和處理流程等均相同。電商大數(shù)據(jù)分析平臺(tái)實(shí)現(xiàn)數(shù)據(jù)采集、清洗、存儲(chǔ)、建模和分析等功能?;谟布A(chǔ)設(shè)施,平臺(tái)中存儲(chǔ)了用戶信息、商品庫(kù)、用戶行為數(shù)據(jù)、商品交易數(shù)據(jù)、企業(yè)特征數(shù)據(jù)等。同時(shí),為了提升數(shù)據(jù)的存儲(chǔ)和處理速度,滿足算法引擎的分析需求,不同類型特征的數(shù)據(jù)分別存儲(chǔ)于數(shù)據(jù)倉(cāng)庫(kù)和分布式文件系統(tǒng),并按照數(shù)據(jù)分析主題進(jìn)行數(shù)據(jù)建模。
一般的電商平臺(tái)應(yīng)用系統(tǒng)主要包括三大類頁(yè)面,分別是首頁(yè)、搜索頁(yè)和詳情頁(yè)。電商大數(shù)據(jù)分析平臺(tái),可為應(yīng)用系統(tǒng)的不同頁(yè)面、不同模塊提供不同的推薦策略,或者是組合策略。以下簡(jiǎn)要列舉某鐵路電商平臺(tái)網(wǎng)站各頁(yè)面不同模塊的推薦策略,見表1。
表1 不同板塊的推薦策略
電商大數(shù)據(jù)分析平臺(tái)中最核心的是智能推薦引擎。B2B電商大數(shù)據(jù)分析平臺(tái)與面向個(gè)人消費(fèi)者類的B2C平臺(tái)間,在推薦引擎中存在局部差異,B2B電商推薦引擎中需要考慮供需雙方的企業(yè)特征信息,從而進(jìn)一步提升推薦引擎的精準(zhǔn)度。在智能推薦引擎基本架構(gòu)中,增加了企業(yè)特征數(shù)據(jù)、特征提取、特征轉(zhuǎn)換,以及特征向量2(企業(yè)-類別特征向量)的構(gòu)建過程,如圖2所示。
圖2 B2B智能推薦引擎基本流程
加入企業(yè)特征數(shù)據(jù)的智能推薦引擎,其中的協(xié)同過濾算法的向量矩陣,由原來的一個(gè)用戶-商品矩陣,變?yōu)橛脩?商品和企業(yè)-類別兩個(gè)矩陣,因此提出了雙偏好矩陣協(xié)同過濾推薦算法。
雙偏好矩陣協(xié)同過濾推薦算法是為了進(jìn)一步滿足B2B電商平臺(tái)智能推薦的精準(zhǔn)度而提出的,增加了平臺(tái)中供貨企業(yè)和采購(gòu)企業(yè)的特征信息。接下來就雙偏好矩陣的構(gòu)建,以及協(xié)同過濾推薦算法的求解流程進(jìn)行詳細(xì)描述。
雙偏好矩陣由兩層構(gòu)成,內(nèi)層為企業(yè)-類別矩陣,以數(shù)組的方式存儲(chǔ)了企業(yè)和商品類別的打分信息;外層為用戶-商品矩陣,分別存儲(chǔ)了用戶與企業(yè)的對(duì)應(yīng)關(guān)系、類別與商品的對(duì)應(yīng)關(guān)系。如圖3所示。
圖3 企業(yè)-類別&用戶-商品雙偏好矩陣
企業(yè)-類別矩陣的構(gòu)建,實(shí)現(xiàn)以企業(yè)為單位與商品類別間建立打分矩陣。一方面,有針對(duì)性地提升了B2B電商平臺(tái)的推薦準(zhǔn)確度,不僅可以為用戶推薦企業(yè)需要的產(chǎn)品,更能推薦適合當(dāng)前用戶崗位需求的產(chǎn)品;同時(shí)也保證同一企業(yè)的不同用戶對(duì)企業(yè)整體購(gòu)買歷史、企業(yè)最新需要等有更好的了解。
從矩陣存儲(chǔ)的角度來說,傳統(tǒng)的用戶-商品矩陣采用協(xié)同過濾算法求解的過程中,通常采用k近鄰算法對(duì)矩陣中的k個(gè)鄰居進(jìn)行檢索,但因?yàn)橛脩?商品矩陣中的用戶和商品數(shù)量都十分巨大,導(dǎo)致矩陣稀疏搜索時(shí)間成本高,同時(shí)可能存在算法在使用初期找不到相應(yīng)的k個(gè)鄰居。企業(yè)-類別矩陣的構(gòu)建可以壓縮原來存儲(chǔ)用戶-商品矩陣的空間,使得原本稀疏的矩陣變得密集,從而縮小搜索范圍,去除矩陣中的噪聲[6]。
雙矩陣協(xié)同過濾算法是協(xié)同過濾算法在實(shí)際應(yīng)用中的一種改進(jìn)。協(xié)同過濾算法基于物以類聚、人以群分的思想,對(duì)每個(gè)用戶建立用戶-商品矩陣,其表示如下。
若設(shè)用戶集合U共有n個(gè)用戶,使用集合{u1,u2,…,un}表示;商品集合I共有m個(gè)商品,使用集合{i1,i2,…,im}表示。若對(duì)用戶ui以購(gòu)買次數(shù)、瀏覽次數(shù)為評(píng)分標(biāo)準(zhǔn)建立評(píng)分矩陣,則用戶ui對(duì)商品ik的評(píng)分為
S(ui,ik)=λB(ui,ik)+γL(ui,ik)
( 1 )
式中:B、L分別為購(gòu)買、瀏覽的統(tǒng)計(jì)次數(shù);λ、γ為瀏覽購(gòu)買在評(píng)分中的權(quán)重參數(shù)。通過統(tǒng)計(jì)次數(shù)加和乘以權(quán)重參數(shù)可得到用戶ui對(duì)商品ik的偏好評(píng)分S(ui,ik),即Sik。對(duì)所有用戶的所有偏好進(jìn)行計(jì)算可得用戶商品偏好評(píng)分矩陣Sui,樣例數(shù)據(jù)見表2。
表2 用戶-商品評(píng)分矩陣
在用戶-評(píng)分矩陣當(dāng)中,可能出現(xiàn)如表2中u3用戶所示的情況,即新用戶對(duì)所有商品都不存在任何評(píng)分偏好。故用戶-商品偏好矩陣無法對(duì)u3用戶進(jìn)行相應(yīng)的推薦。但在B2B電商場(chǎng)景中,由于用戶除自身屬性外,用戶所在企業(yè)的所有用戶也構(gòu)成一個(gè)具有共同屬性特征的用戶集合,可用C表示。同理,如表2中i2商品所示,由于i2為新上架商品,故不存在用戶對(duì)i2商品具有偏好評(píng)分,但用戶對(duì)與i2所屬類別相同商品具有評(píng)分,故對(duì)于用類別商品可用集合K進(jìn)行表示。結(jié)合式( 1 )所示評(píng)分計(jì)算方法、用戶所在企業(yè)集合C、商品所屬類別集合K,可計(jì)算企業(yè)-類別偏好評(píng)分矩陣,推導(dǎo)過程如下:
首先,設(shè)有企業(yè)Ci,商品分類Kj,那么對(duì)于企業(yè)Ci的用戶Cip對(duì)商品分類Kj的商品Kjq可使用式( 1 )計(jì)算出對(duì)應(yīng)偏好評(píng)分向量為
S(Cip,Kjq)=λB(Cip,Kjq)+γL(Cip,Kjq)
( 2 )
則企業(yè)Ci對(duì)Kj的整體評(píng)分SCiKj為
( 3 )
使用式( 3 )對(duì)企業(yè)集合C、商品所屬類別集合K進(jìn)行計(jì)算后可得企業(yè)-類別評(píng)分矩陣SCK,樣例見表3。
表3 企業(yè)-類別評(píng)分矩陣
經(jīng)過上述推導(dǎo)得到用戶-商品、企業(yè)-類別兩種偏好矩陣,但對(duì)于如何選擇矩陣進(jìn)行具體推薦仍存在問題,為解決這一問題,進(jìn)一步引入用戶活躍度、商品熱度兩種概念。用戶ui的活躍度即用戶ui對(duì)于所有商品的瀏覽、購(gòu)買次數(shù),若用戶瀏覽、購(gòu)買次數(shù)較多,則可評(píng)價(jià)為活躍用戶,用戶活躍度可表示為
( 4 )
在式( 4 )中可通過δ控制權(quán)重決定f(ui)的最終結(jié)果,并且通過式( 5 )判定用戶是否為活躍用戶。
( 5 )
在得到用戶-商品或企業(yè)-類別評(píng)分矩陣后可使用相似度計(jì)算方法去計(jì)算各個(gè)用戶或企業(yè)間的相似度。關(guān)于相似度的計(jì)算方法有很多種,如余弦相似度、歐幾里德距離度量、皮爾遜相關(guān)系數(shù)等。本文采用皮爾遜相關(guān)系數(shù),用式( 6 )來計(jì)算用戶&企業(yè)間的相似程度。
( 6 )
式中:X,Y分別為兩個(gè)用戶、兩個(gè)企業(yè)間的偏好向量。通過式( 6 )可以計(jì)算出兩個(gè)向量皮爾遜相關(guān)系數(shù),從而可獲得各個(gè)用戶間和企業(yè)間的偏好相似度。通過偏好相似度的值,找到與目標(biāo)用戶、企業(yè)偏好相似度排名靠前的k名用戶、企業(yè),根據(jù)其用戶-商品和企業(yè)-類別評(píng)分矩陣的結(jié)果得到所推薦的商品序列。
以雙偏好矩陣為基礎(chǔ)構(gòu)建的協(xié)同過濾算法基本流程如圖4所示。
雙偏好矩陣協(xié)同過濾算法中,最關(guān)鍵的3個(gè)步驟為收集用戶-商品和企業(yè)-類別偏好、類型/商品相似度計(jì)算、關(guān)聯(lián)類別的查找。
圖4 雙偏好矩陣協(xié)同過濾算法流程
3.3.1 收集用戶/企業(yè)偏好
用戶偏好獲取是推薦系統(tǒng)的關(guān)鍵,偏好獲取的準(zhǔn)確性直接影響推薦系統(tǒng)的準(zhǔn)確性。作為B2B電商大數(shù)據(jù)分析平臺(tái)的關(guān)鍵算法之一,偏好的獲取主要利用MapReduce中的Word-Count方法,對(duì)用戶瀏覽、訪問、購(gòu)買商品的次數(shù)進(jìn)行統(tǒng)計(jì)。同時(shí),為防止過量瀏覽、訪問所造成數(shù)據(jù)分布偏移,對(duì)次數(shù)進(jìn)行歸一化處理,并使用算法對(duì)數(shù)據(jù)進(jìn)行過濾,去除次數(shù)較小的數(shù)據(jù)噪聲,防止偏好矩陣過于稀疏。
3.3.2 類型/商品相似度計(jì)算
根據(jù)用戶/企業(yè)的瀏覽、訪問、購(gòu)買商品行為分析得到其偏好后,可構(gòu)建用戶-商品和企業(yè)-類別評(píng)分矩陣。在對(duì)用戶-商品和企業(yè)-類別進(jìn)行檢索的過程中,通過相似度計(jì)算方法判斷用戶間、企業(yè)間的相似程度,從而給用戶&企業(yè)推薦相似操作行為的用戶&企業(yè)所關(guān)注的商品&類別。
3.3.3 關(guān)聯(lián)類別的查找
B2B電商平臺(tái)中的商品通常歸屬于固定的類別。同時(shí),類別的劃分可以包含多個(gè)層級(jí),通常情況下類別劃分越詳細(xì)越容易推薦出偏好的商品。但同時(shí)由于某些商品很難歸于固定的類別,因此也為類別層級(jí)的劃分帶來困難。很多特定的類別或商品,與同一層級(jí)或上幾層級(jí)中的特定類別或商品存在一定的關(guān)聯(lián)關(guān)系,如成品與配件間的關(guān)系、產(chǎn)品與耗材間的關(guān)系。
雙偏好矩陣協(xié)同過濾算法,適用于帶有企業(yè)特征的B2B電商平臺(tái)。阿里巴巴、國(guó)網(wǎng)商城、慧聰網(wǎng)、找鋼網(wǎng)、易派客等電商平臺(tái)均為B2B類型的平臺(tái);也有很多鐵路電商平臺(tái)以經(jīng)營(yíng)鐵路物資為主,貨主方和采購(gòu)方均為企業(yè),都屬于B2B類型的電商平臺(tái)。這類平臺(tái)均可采用雙偏好矩陣思想構(gòu)建其評(píng)分矩陣,實(shí)現(xiàn)企業(yè)商品的精準(zhǔn)推薦。本文以某鐵路電商平臺(tái)為例,對(duì)雙偏好矩陣協(xié)同過濾算法進(jìn)行應(yīng)用實(shí)踐。算法實(shí)踐的過程主要包括數(shù)據(jù)獲取、數(shù)據(jù)整合建模、算法應(yīng)用和結(jié)果驗(yàn)證等。
獲取某鐵路電商平臺(tái)的數(shù)據(jù),基礎(chǔ)數(shù)據(jù)表主要包括用戶表、企業(yè)表、商品表、類別表等,動(dòng)態(tài)數(shù)據(jù)表主要包括用戶瀏覽記錄表、用戶購(gòu)買記錄表等。以下僅以用戶表、商品表、用戶瀏覽記錄表、用戶購(gòu)買記錄表為例。
(1)用戶表:主要記錄用戶自身相關(guān)信息,選取了用戶ID、企業(yè)ID等屬性。
(2)商品表:某鐵路電商平臺(tái)商品表包含約13萬條記錄,每條記錄包含商品ID、商品名稱、商品單價(jià)、商品折扣價(jià)、折扣率、所屬類別ID等屬性。
(3)用戶瀏覽記錄表:平臺(tái)中存儲(chǔ)的用戶瀏覽記錄表主要包括用戶ID、所屬企業(yè)ID、商品ID、商品名稱、瀏覽開始時(shí)間、瀏覽結(jié)束時(shí)間等屬性。
(4)用戶購(gòu)買記錄表:平臺(tái)中存儲(chǔ)的用戶購(gòu)買記錄表主要包括用戶ID、所屬企業(yè)ID、商品ID、商品名稱、商品數(shù)量、成交單價(jià)、成交總額、成交時(shí)間、運(yùn)費(fèi)、折扣等屬性。
交易系統(tǒng)數(shù)據(jù)導(dǎo)入大數(shù)據(jù)分析平臺(tái)過程中,需對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,剔除或修改錯(cuò)誤的字符、編碼,修復(fù)格式錯(cuò)誤、數(shù)據(jù)不完整等。同時(shí),需在平臺(tái)中構(gòu)建新的數(shù)據(jù)分析計(jì)算模型。導(dǎo)入數(shù)據(jù)見表4。
表4 導(dǎo)入數(shù)據(jù)示例
注:商品名稱中“*”“**”為商標(biāo)。
采用Word-Count方法對(duì)偏好矩陣進(jìn)行初始化。根據(jù)用戶對(duì)商品的瀏覽、訪問、購(gòu)買頻次等,對(duì)用戶-商品矩陣進(jìn)行初始化,根據(jù)企業(yè)對(duì)類別的購(gòu)買頻次等,對(duì)企業(yè)-類別矩陣進(jìn)行初始化。初始化示例見表5、表6。
表5 用戶-商品評(píng)分矩陣示例
表6 企業(yè)-類別評(píng)分矩陣示例
偏好矩陣的存儲(chǔ)可通過數(shù)據(jù)字典的方式保存,其中key存儲(chǔ)用戶-商品或企業(yè)-類別,value為對(duì)應(yīng)的偏好評(píng)分。由于用戶對(duì)商品、企業(yè)對(duì)類別的偏好差異性,評(píng)分矩陣數(shù)值差異較大,為了防止對(duì)推薦產(chǎn)生的偏差、推薦結(jié)果過于收斂等情況的出現(xiàn),算法計(jì)算過程中對(duì)評(píng)分進(jìn)行歸一化處理。
算法實(shí)踐過程中,需建立相應(yīng)的整合表,用來保存用戶ID-企業(yè)ID、商品ID-類別ID、商品ID-商品名稱、類別ID-類別名稱等不同映射,從而使得計(jì)算和推薦的返回結(jié)果更加直觀。
通過電商系統(tǒng)獲得訪問用戶ID,檢索得到用戶所在企業(yè)ID,以及相應(yīng)的偏好矩陣等。讀取偏好矩陣皮爾遜相關(guān)系數(shù)進(jìn)行運(yùn)算,生成偏好相似度矩陣。根據(jù)用戶所在企業(yè)相似度推薦商品類別,再根據(jù)商品類別推薦商品。需要注意的是,類別當(dāng)中不需要排除已經(jīng)瀏覽(購(gòu)買)過的類別,而商品中需要去除掉已經(jīng)瀏覽(購(gòu)買)過的商品,防止重復(fù)推薦。
與傳統(tǒng)的協(xié)同過濾算法、KNN算法相比,雙矩陣協(xié)同過濾算法在準(zhǔn)確率、召回率、覆蓋率和新穎度[21]等方面具有明顯優(yōu)勢(shì)。以某鐵路電商平臺(tái)中相關(guān)數(shù)據(jù)為基礎(chǔ),過濾掉沒有購(gòu)買記錄的商品以及沒有企業(yè)信息的用戶,使用數(shù)據(jù)的80%作為訓(xùn)練集,20%作為測(cè)試集進(jìn)行測(cè)試,并分別就準(zhǔn)確率、召回率、覆蓋率和新穎度進(jìn)行對(duì)比。
4.4.1 準(zhǔn)確率
準(zhǔn)確率是推薦算法當(dāng)中的最能體現(xiàn)算法性能的指標(biāo),計(jì)算公式為
( 7 )
式中:Lu為用戶u喜歡的商品序列;Bu為推薦返回的商品序列。
同理,整體評(píng)分為
( 8 )
對(duì)于準(zhǔn)確率的評(píng)價(jià),采用推薦序列長(zhǎng)度為1、5、10的三種推薦序列,對(duì)比了三種算法的準(zhǔn)確率。對(duì)比結(jié)果如圖5所示。
圖5 準(zhǔn)確率測(cè)試
通過結(jié)果統(tǒng)計(jì)圖可知,雙矩陣協(xié)同過濾在整體準(zhǔn)確率上遠(yuǎn)高于協(xié)同過濾或KNN。為進(jìn)一步對(duì)比對(duì)于新用戶推薦的效果,在測(cè)試集中,選取用戶活躍程度較低的用戶進(jìn)行測(cè)試。測(cè)試結(jié)果如圖6所示。
圖6 不活躍用戶準(zhǔn)確率測(cè)試
由圖6可見,對(duì)于無購(gòu)買瀏覽行為的用戶,協(xié)同過濾或KNN很難對(duì)其進(jìn)行推薦,TOP1準(zhǔn)確率不足10%,TOP10準(zhǔn)確率幾乎接近0%。但雙矩陣協(xié)調(diào)過濾算法,利用企業(yè)的特性,對(duì)于不活躍用戶TOP1準(zhǔn)確率約為38.8%,TOP10準(zhǔn)確率雖有所下降,但仍可大于10%,超過了普通的協(xié)同過濾算法。
4.4.2 召回率
與準(zhǔn)確率相對(duì)的測(cè)試指標(biāo)為召回率,召回率指在推薦列表中能推薦出多少用戶喜歡的商品,計(jì)算方法為
( 9 )
與準(zhǔn)確率相同,Lu為用戶u喜歡的商品序列,Bu為推薦返回的商品序列。同樣可計(jì)算整體召回率結(jié)果為
(10)
對(duì)三種算法的測(cè)試結(jié)果如圖7所示。
圖7 召回率測(cè)試
如圖7可見,雙矩陣協(xié)同過濾算法與另外兩種算法的召回率指標(biāo)并無明顯差異。說明,雙矩陣協(xié)同過濾算法在提升準(zhǔn)確率的同時(shí),并不會(huì)損失召回率的性能。
4.4.3 覆蓋率
覆蓋率指的推薦算法中推薦的所有商品在全部商品當(dāng)中的比例,主要考慮到冷門商品的推薦。覆蓋率的計(jì)算公式為
(11)
式中:C為覆蓋率;n為商品種類;Lu為對(duì)用戶u的推薦列表。
測(cè)試結(jié)果如圖8所示。
圖8 覆蓋率測(cè)試
由于雙矩陣協(xié)同過濾算法加入了商品類別的計(jì)算,所以對(duì)于分類當(dāng)中的冷門商品同樣有概率出現(xiàn)在用戶的推薦列表中。可見對(duì)于KNN與協(xié)同過濾算法覆蓋率均不足60%,也就是有40%以上商品沒有出現(xiàn)在推薦列表中。但雙矩陣協(xié)同過濾算法將覆蓋率提升至79.2%,相比于另外兩種算法,優(yōu)勢(shì)明顯。
4.4.4 新穎度
新穎商品是指用戶沒有采購(gòu)或?yàn)g覽過的商品。通過推薦用戶可能喜歡的新分類中的商品,達(dá)到提升商品新穎度的目的。新穎度指標(biāo)計(jì)算方法為
(12)
式中:Bu為算法為用戶u推薦的商品集合;Ku為用戶喜歡的商品分類集合;Lu為用戶u喜歡的商品集合。
同理,整體新穎度評(píng)分為
(13)
按式(13)對(duì)三種算法進(jìn)行測(cè)試,結(jié)果如圖9所示。
圖9 新穎度測(cè)試
通過圖9可以看出,對(duì)于傳統(tǒng)協(xié)同過濾、KNN等算法,新穎度較低只有不到20%,而雙矩陣協(xié)同過濾,由于對(duì)于不活躍用戶同樣可推薦出用戶喜好類型的商品,所以對(duì)于整體新穎度相比另外兩種算法提升十分明顯。
雙矩陣協(xié)同過濾算法能夠有效地解決電商平臺(tái)冷啟動(dòng)、數(shù)據(jù)量少等問題?,F(xiàn)有的各種電商平臺(tái)都是基于用戶-物品的關(guān)系進(jìn)行推薦,無法體現(xiàn)B2B電商平臺(tái)的企業(yè)特征。雙偏好矩陣協(xié)同過濾算法針對(duì)B2B電商平臺(tái)的特點(diǎn),在某一企業(yè)可能存在多個(gè)用戶的情況下,研究電商個(gè)性化推薦系統(tǒng)的構(gòu)建,該推薦系統(tǒng)既保證推薦了企業(yè)需要的商品,又加入了用戶個(gè)人的偏好。此外,對(duì)于點(diǎn)擊量較小且與其他用戶關(guān)聯(lián)較少的用戶,因?yàn)橄嗨破髽I(yè)間有共同偏好存在,也可以推薦出對(duì)應(yīng)類別,從而加強(qiáng)對(duì)長(zhǎng)尾數(shù)據(jù)的適應(yīng)性。同時(shí),由于存在企業(yè)-類別偏好屬性,對(duì)于新用戶可直接進(jìn)行推薦。對(duì)于新添加的商品,雖然沒有用戶對(duì)應(yīng)的打分以及行為可獲得,但仍可以使用企業(yè)-類別矩陣進(jìn)行推薦。
在電商平臺(tái)推薦系統(tǒng)上分別對(duì)協(xié)同過濾算法、KNN算法、雙矩陣協(xié)同過濾算法,在準(zhǔn)確率、召回率、覆蓋率及新穎度4個(gè)推薦算法常用測(cè)試指標(biāo)進(jìn)行對(duì)比測(cè)試。雙矩陣協(xié)同過濾算法相比于其他算法在準(zhǔn)確率方便有了很大提升的同時(shí),并沒有降低召回率。此外對(duì)于覆蓋率、新穎度都有了質(zhì)的提升,對(duì)于推薦算法整體性能與用戶體驗(yàn)都有較大的改進(jìn)。在時(shí)間上,我們?cè)趩螜C(jī)單核為2.9 GHz的電腦上執(zhí)行,在數(shù)據(jù)量為56萬條的情況下,計(jì)算時(shí)間約為0.4 ms。
在算法實(shí)踐的過程中,如果能將商品類別的劃分更明確、更合理,則用戶體驗(yàn)可進(jìn)一步得到提升。在后續(xù)的其他模塊中,隨著數(shù)據(jù)量的增多,機(jī)器學(xué)習(xí)、深度學(xué)習(xí)相關(guān)的算法將更有助于提升計(jì)算速度。利用深度學(xué)習(xí)的算法,能夠?qū)崿F(xiàn)準(zhǔn)確預(yù)測(cè)用戶想法,做到個(gè)性化、智能化。