潘正軍 趙蓮芬 王紅勤
摘要:針對(duì)電商用戶大數(shù)據(jù)的特點(diǎn),研究了基于品牌偏好預(yù)估的推薦算法,比較了關(guān)聯(lián)規(guī)則推薦算法和邏輯回歸算法在基于品牌流行度的推薦系統(tǒng)中的準(zhǔn)確率、召回率和F1性能指標(biāo)。實(shí)驗(yàn)表明,在特征工程比較完善的情況下,邏輯回歸算法性能優(yōu)于基于關(guān)聯(lián)規(guī)則的推薦算法。
關(guān)鍵詞:大數(shù)據(jù);電商推薦系統(tǒng);邏輯回歸算法
中圖分類號(hào):TP393 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)15-0291-03
Abstract: According to the characteristics of big data of e-commerce users, this paper studies the recommendation algorithm based on brand preference prediction, and compares the accuracy, recall and F1 performance indicators of association rule recommendation algorithm and logistic regression algorithm in the recommendation system based on brand popularity. Experiments show that the performance of the logistic regression algorithm is better than that of the recommendation algorithm based on association rules when the feature engineering is relatively perfect.
Key words: Big data; E-commerce recommendation system; Logical regression algorithm
在電商領(lǐng)域,隨著用戶行為數(shù)據(jù)的不斷累積增長(zhǎng),產(chǎn)生了海量的用戶大數(shù)據(jù)。為了使用戶有更好的一站式購(gòu)物體驗(yàn),就需要引入推薦系統(tǒng)利用好海量大數(shù)據(jù)來(lái)解決信息過(guò)載問(wèn)題,充分根據(jù)用戶歷史行為、地理位置、社交關(guān)系等推薦一些用戶想要的個(gè)性化結(jié)果[1]。推薦的核心問(wèn)題是如何發(fā)現(xiàn)用戶對(duì)潛在商品的偏好,在用戶沒(méi)有明確意圖的情況下,幫助用戶發(fā)現(xiàn)自己偏好的商品。目前,推薦系統(tǒng)已經(jīng)在工業(yè)界獲得了廣泛的應(yīng)用,比如音樂(lè)推薦、電影推薦、個(gè)性化閱讀推薦、社交網(wǎng)絡(luò)好友推薦、朋友圈推薦以及基于位置的服務(wù)推薦等。據(jù)統(tǒng)計(jì),Netflix有60%多的電影因推薦而被觀看,Google News因推薦提升40%的點(diǎn)擊率,亞馬遜因推薦被購(gòu)買的銷售占比高達(dá)38%。因此,如何利用推薦提高電商用戶的體驗(yàn)具有很強(qiáng)的實(shí)用價(jià)值[2][3]。
1 相關(guān)推薦算法介紹
常用的推薦算法主要包括基于關(guān)聯(lián)規(guī)則的推薦、協(xié)同過(guò)濾推薦以及基于邏輯回歸模型的推薦等[4]。
1.1 基于關(guān)聯(lián)規(guī)則的推薦
基于關(guān)聯(lián)規(guī)則的推薦的前提是用戶已經(jīng)購(gòu)買了某個(gè)商品,然后根據(jù)用戶已購(gòu)買商品和其他商品之間的相關(guān)性做出推薦。關(guān)聯(lián)規(guī)則的建立是采用概率統(tǒng)計(jì)的方式來(lái)判斷某兩種或者多種商品之間的相關(guān)性有多大。這種推薦以實(shí)現(xiàn)容易,通用性較好在零售業(yè)中得到了較好的應(yīng)用。但這種推薦的缺點(diǎn)是關(guān)聯(lián)規(guī)則的建立容易受到隱含因素的影響,有可能得出相反的結(jié)論,要用實(shí)際結(jié)果校驗(yàn)關(guān)聯(lián)規(guī)則的有效性。使用基于關(guān)聯(lián)規(guī)則的推薦時(shí),往往借助兩個(gè)指標(biāo)評(píng)價(jià)商品間的關(guān)聯(lián)程度,支持度和信任度,如公式(1)和(2)所示[5][6]。
1.2 協(xié)同過(guò)濾推薦
協(xié)同過(guò)濾推薦是利用最近鄰算法得到目標(biāo)用戶對(duì)物品的喜好程度而產(chǎn)生推薦結(jié)果。該算法在一定的數(shù)據(jù)量下有優(yōu)秀的表現(xiàn),也得到了廣泛應(yīng)用。但這種算法的缺點(diǎn)是對(duì)于稀疏數(shù)據(jù)效果不好且性能開(kāi)銷較大,僅適合處理密集數(shù)據(jù),如User-based的協(xié)同過(guò)濾和Item-based的協(xié)同過(guò)濾的實(shí)現(xiàn)[7]。
1.3 邏輯回歸算法
該算法是機(jī)器學(xué)習(xí)中的一種分類模型,由于算法的簡(jiǎn)單和高效,在實(shí)際中應(yīng)用非常廣泛。邏輯回歸模型的思想來(lái)源于線性回歸,為了解決線性回歸的量綱敏感問(wèn)題,邏輯回歸在線性回歸的基礎(chǔ)上套用了一個(gè)Logistic函數(shù),它的核心思想是,如果線性回歸的結(jié)果輸出是一個(gè)連續(xù)值,而值的范圍是無(wú)法限定的,那是否可以把這個(gè)結(jié)果映射為(0, 1)上的概率值,幫助判斷結(jié)果。sigmoid函數(shù)就是這樣一個(gè)簡(jiǎn)單的函數(shù),函數(shù)公式如(3)所示。
直觀地在二維空間理解邏輯回歸,sigmoid函數(shù)的特性使得判定的閾值能夠映射為平面的一條判定邊界,當(dāng)然隨著特征的復(fù)雜化,判定邊界可能是多種多樣的樣貌,但是它能夠較好地把兩類樣本點(diǎn)分隔開(kāi),解決分類問(wèn)題[8][9]。
2 基于邏輯回歸的推薦算法應(yīng)用
傳統(tǒng)的推薦系統(tǒng)通常采用基于關(guān)聯(lián)規(guī)則或者協(xié)同過(guò)濾作為核心算法,本文研究基于邏輯回歸作為推薦的核心算法。通過(guò)和關(guān)聯(lián)規(guī)則算法進(jìn)行對(duì)比,比較它們?cè)跍?zhǔn)確率、召回率和F1值上的性能指標(biāo)。
邏輯回歸算法本質(zhì)是一個(gè)線性模型,為了使該算法具有非線性擬合能力,需要使用特征提取、特征選擇和特性組合使得特征具備非線性。特征組合是決定該算法性能好壞的關(guān)鍵。本文使用基于規(guī)則和基于邏輯回歸研究品牌偏好的推薦。
基于規(guī)則可以實(shí)現(xiàn)簡(jiǎn)單的推薦,比如,熱門排行榜就是一種基于規(guī)則(按照訪問(wèn)量取top-k)的簡(jiǎn)單推薦。對(duì)于這類問(wèn)題,可以根據(jù)用戶平時(shí)的購(gòu)物習(xí)慣得出點(diǎn)擊次數(shù)越多的品牌,就越有可能購(gòu)買。因此可對(duì)數(shù)據(jù)集進(jìn)行分析,分析點(diǎn)擊數(shù)與購(gòu)買比例的關(guān)系,如圖1所示,橫軸代表點(diǎn)擊次數(shù),縱軸是該點(diǎn)擊次數(shù)下,品牌是否被購(gòu)買的比例關(guān)系。點(diǎn)擊次數(shù)越多,購(gòu)買的可能性越大,因此可以使用這些觀察到的規(guī)則來(lái)進(jìn)行推薦。
然而,基于規(guī)則的推薦因?yàn)椴荒軌蚝芎玫剡M(jìn)行控制導(dǎo)致推薦效果有限。為了得到更好的推薦效果,通常采用其他的推薦算法,比如協(xié)同過(guò)濾、隨機(jī)森林、邏輯回歸等。由于選取的數(shù)據(jù)集有限,又限于用戶矩陣和商品矩陣過(guò)于稀疏,很難通過(guò)協(xié)同過(guò)濾來(lái)發(fā)現(xiàn)合適的相關(guān)性,因此本文選用邏輯回歸算法作為推薦算法。
Logistic regression(邏輯回歸)是當(dāng)前業(yè)界比較常用的機(jī)器學(xué)習(xí)方法,用于估計(jì)某事件的可能性。如某用戶購(gòu)買某商品的可能性、廣告被某用戶點(diǎn)擊的可能性等。如圖2所示,邏輯回歸公式將事件可能性限制在0到1之間,對(duì)應(yīng)事件發(fā)生的概率。
通過(guò)邏輯回歸,可以得到某用戶購(gòu)買某品牌的可能性,最終按照這個(gè)可能性排序來(lái)取top-k進(jìn)行推薦。
3 實(shí)驗(yàn)分析
在電商領(lǐng)域,每天都會(huì)有數(shù)千萬(wàn)的用戶通過(guò)品牌發(fā)現(xiàn)自己喜歡的商品,品牌是連接消費(fèi)者與商品最重要的紐帶。本文的任務(wù)就是根據(jù)用戶6個(gè)月在某電商平臺(tái)的行為日志,建立用戶的品牌偏好,并預(yù)測(cè)他們?cè)趯?lái)一個(gè)月內(nèi)對(duì)品牌下商品的購(gòu)買行為。
為了獲取更高的F1得分,本文采取不為每位用戶都生成推薦內(nèi)容,而是生成最有可能的購(gòu)買推薦列表,這一點(diǎn)正好和傳統(tǒng)的推薦系統(tǒng)相反。
本文的目標(biāo)是根據(jù)原始的6個(gè)月的交互日志數(shù)據(jù)集來(lái)推測(cè)下一個(gè)月的購(gòu)買情況。通常的做法是要根據(jù)這6個(gè)月的數(shù)據(jù)集通過(guò)訓(xùn)練得到推薦模型,在將模型應(yīng)用到數(shù)據(jù)中,來(lái)得到下一個(gè)月的預(yù)測(cè)結(jié)果,再將結(jié)果應(yīng)用到具體的測(cè)試數(shù)據(jù)集中,得到最終的F1得分。因此,首先要將數(shù)據(jù)集劃分為訓(xùn)練集與測(cè)試集,訓(xùn)練集用于建立推薦模型,而測(cè)試集用于評(píng)估模型效果。一般的做法是將原始脫敏數(shù)據(jù)集均勻分為兩份,通過(guò)不斷地調(diào)整特征或者規(guī)則,逐步改善推薦模型的效果。
推薦系統(tǒng)的效果,一方面取決于所采用的算法,另一方面則取決于所使用的特征,業(yè)界有個(gè)常見(jiàn)的說(shuō)法“數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上限,而模型和算法只是逼近這個(gè)上限而已”,可見(jiàn)“特征”在推薦系統(tǒng)中的重要性[10][11]。
對(duì)于本研究的問(wèn)題而言,核心任務(wù)定位于特征的選擇,通??梢愿鶕?jù)用戶的網(wǎng)購(gòu)習(xí)慣,綜合影響成交的因素,并根據(jù)原始實(shí)驗(yàn)數(shù)據(jù)集,將這些因素轉(zhuǎn)化為具體的特征,然后進(jìn)行檢驗(yàn),爭(zhēng)取得到更高的F1得分。
本實(shí)驗(yàn)脫敏后的數(shù)據(jù)集文件有大約10M左右,涉及2千左右電商用戶,幾千個(gè)電商品牌,總共20萬(wàn)多條的行為記錄。數(shù)據(jù)集字段說(shuō)明如表1所示。
用戶對(duì)任意商品的行為都會(huì)映射為一行數(shù)據(jù),其中,所有商品ID都已匯總為商品對(duì)應(yīng)的品牌ID。用戶和品牌均用數(shù)字ID來(lái)表示,且所有行為的時(shí)間都精確到“天”級(jí)別(隱藏年份)。
3.1 實(shí)驗(yàn)環(huán)境及評(píng)價(jià)指標(biāo)
本實(shí)驗(yàn)所采用的環(huán)境包括:Linux(Ubuntu14.1)、Python2.7以及依賴包numpy、pandas、statsmodels、scipy、patsy。
實(shí)驗(yàn)評(píng)價(jià)指標(biāo):
預(yù)測(cè)的結(jié)果用戶存入文本文件中,格式為: user_id \t brand_id , brand_id , brand_id \n,如圖3所示。
3.2 基于規(guī)則的推薦算法的實(shí)驗(yàn)步驟
對(duì)基于規(guī)則的推薦,通過(guò)簡(jiǎn)化流程,直接根據(jù)推薦規(guī)則生成推薦結(jié)果,并對(duì)推薦效果進(jìn)行檢驗(yàn)。
通過(guò)實(shí)現(xiàn)基于規(guī)則的推薦的代碼,基準(zhǔn)代碼采用的推薦規(guī)則是推薦最近一個(gè)月內(nèi)有交互,且點(diǎn)擊次數(shù)大于10次的品牌。運(yùn)行“recommend-rule.py”,就可以得到最終的推薦效果,代碼recommend-rule.py已對(duì)執(zhí)行過(guò)程進(jìn)行了封裝,核心代碼如下所示:
# 1. 加載數(shù)據(jù)
data = loadUserData()
# 2. 根據(jù)推薦規(guī)則生成推薦結(jié)果
recommend = getRecommendByRule(data)
# 3. 對(duì)推薦結(jié)果進(jìn)行檢驗(yàn)
showF1Score(recommend)
通過(guò)在userRule.py中定義getRecommendByRule()函數(shù)進(jìn)行特征計(jì)算并形成推薦規(guī)則,來(lái)得到F1的值。通過(guò)不斷的改進(jìn)這個(gè)函數(shù)可以提高F1的值。
3.3 基于邏輯回歸的推薦算法的實(shí)驗(yàn)步驟
對(duì)基于邏輯回歸的推薦,則相對(duì)復(fù)雜一些,通過(guò)將前3個(gè)月的數(shù)據(jù)作為訓(xùn)練集,建立推薦模型,然后將推薦模型應(yīng)用到后3個(gè)月的數(shù)據(jù)中,得到推薦結(jié)果。
同樣,通過(guò)實(shí)現(xiàn)基于邏輯回歸的推薦的代碼,使用到的特征有點(diǎn)擊次數(shù)、購(gòu)買次數(shù)、加入收藏夾次數(shù)、加入購(gòu)物車次數(shù),交互間隔日期,運(yùn)行“recommend-logistic.py”,得到推薦結(jié)果。
通過(guò)在文件userFeature.py中定義generateFeature()函數(shù)來(lái)進(jìn)行特征計(jì)算,來(lái)得到F1的值,并可以通過(guò)不斷改進(jìn)該函數(shù)來(lái)得到更高的F1值。
3.4 兩種推薦結(jié)果分析
為了直觀的分析實(shí)驗(yàn)的結(jié)果,本文采用多次對(duì)比實(shí)驗(yàn),將整個(gè)實(shí)驗(yàn)分為了采用邏輯回歸的推薦和采用基于規(guī)則的推薦分別進(jìn)行,然后二者對(duì)同樣的數(shù)據(jù)做分析后得出不同的推薦結(jié)果,分別比較他們的準(zhǔn)確率、召回率和F1性能指標(biāo)。
圖 4是本文采用的邏輯回歸方法和一般的基于規(guī)則推薦的準(zhǔn)確率比較。從圖中數(shù)據(jù)可以得出,采用了邏輯回歸模型對(duì)商品特征進(jìn)行篩選過(guò)濾后和采用基于關(guān)聯(lián)規(guī)則進(jìn)行推薦,二者的差距雖然不是很明顯,但還是有一定的區(qū)別,采用了邏輯回歸模型的推薦效果其準(zhǔn)確率高于標(biāo)準(zhǔn)的基于關(guān)聯(lián)規(guī)則的推薦。隨著推薦列表的增長(zhǎng),推薦效果的差距變小,效果最好的時(shí)候是在推薦列表為25的時(shí)候,此時(shí),邏輯回歸算法產(chǎn)生的準(zhǔn)確率為4.2%,而基于規(guī)則的算法的準(zhǔn)確率為3.5%。
圖 5是兩種不同方式產(chǎn)生結(jié)果的召回率比較。從圖中數(shù)據(jù)可以得出,二者的召回率都隨著推薦列表的增長(zhǎng)出現(xiàn)提高的趨勢(shì)。在推薦列表為45的時(shí)候達(dá)到了相對(duì)較好的實(shí)驗(yàn)結(jié)果,此時(shí),采用邏輯回歸模型的推薦召回率為9.5%,而基于關(guān)聯(lián)規(guī)則的推薦召回率為8.3%左右。通過(guò)比較分析得出邏輯回歸模型的推薦效果要優(yōu)于基于關(guān)聯(lián)規(guī)則的推薦系統(tǒng)。
根據(jù)二種方式的準(zhǔn)確率和召回率,通過(guò)公式可以計(jì)算出它們各自的F1指標(biāo)。雖然二者的準(zhǔn)確率和召回率都不能全面反映最終的推薦效果,但是通過(guò)計(jì)算它們的F1可以減少對(duì)實(shí)驗(yàn)結(jié)果的影響,能夠更好的反映最終的推薦效果。由圖6數(shù)據(jù)得出,基于邏輯回歸模型的推薦效果在F1 指標(biāo)上要優(yōu)于基于關(guān)聯(lián)規(guī)則的推薦系統(tǒng)。
4 結(jié)束語(yǔ)
本文在實(shí)驗(yàn)中驗(yàn)證了電商大數(shù)據(jù)中品牌偏好基于關(guān)聯(lián)規(guī)則的推薦算法和基于邏輯回歸的推薦算法在預(yù)測(cè)準(zhǔn)確率、召回率和F1上的性能指標(biāo),實(shí)驗(yàn)結(jié)果表明基于邏輯回歸模型的推薦算法綜合性能表現(xiàn)更好。由于數(shù)據(jù)集選取有限以及數(shù)據(jù)特征選取的局限性,下一步仍需要進(jìn)一步在這方面進(jìn)行驗(yàn)證和提高。
參考文獻(xiàn):
[1] 吳翔宇.數(shù)據(jù)挖掘在電商客戶行為忠誠(chéng)度預(yù)測(cè)研究中的應(yīng)用[D].蘭州財(cái)經(jīng)大學(xué),2016.
[2] 唐志燕.基于用戶收視行為特征的產(chǎn)品精準(zhǔn)推薦研究[D].浙江工業(yè)大學(xué),2017.
[3] 盧嘉穎. 基于用戶行為的電商推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2017.
[4] 劉朋.混合個(gè)性化推薦方法研究[D].北方工業(yè)大學(xué),2018.
[5] 李夢(mèng).考慮商品重復(fù)購(gòu)買周期的推薦方法研究[D].武漢科技大學(xué),2018.
[6] 劉軍煜,賈修一.一種利用關(guān)聯(lián)規(guī)則挖掘的多標(biāo)記分類算法[J].軟件學(xué)報(bào),2017,28(11):2865-2878.
[7] 梅剛.基于用戶聚類和隱語(yǔ)義模型的協(xié)同過(guò)濾推薦研究[D].海南大學(xué),2018.
[8] 董書(shū)超.基于邏輯回歸模型的廣告點(diǎn)擊率預(yù)估系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱工業(yè)大學(xué),2016.
[9] 許騰騰.基于貝葉斯邏輯回歸文本分類模型的改進(jìn)及其應(yīng)用[D].蘭州財(cái)經(jīng)大學(xué),2018.
[10] 馬雅從.基于特征組合的展示廣告點(diǎn)擊率預(yù)估模型研究[D].華南理工大學(xué),2018.
[11] 錢超.基于特征優(yōu)化的邏輯回歸模型在廣告點(diǎn)擊率問(wèn)題中的應(yīng)用研究[D].華中師范大學(xué),2018.
【通聯(lián)編輯:唐一東】