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