張鵬程 馬佳琳
摘 要:伴隨著網(wǎng)購的不斷發(fā)展,各大電商網(wǎng)站均引入了商品推薦系統(tǒng)。但消費者卻常常對這類系統(tǒng)的有效性抱有疑問,因為他們發(fā)現(xiàn)自己前一天剛買的商品依然出現(xiàn)在今天的推薦列表中,而自己已經(jīng)不再需要這類商品了。針對這樣的情況,需要給推薦系統(tǒng)增加一個過濾模塊,將一些在當前明顯不會被目標用戶所需要的商品去除。本文在前人提出的回購周期去重方案的基礎(chǔ)上進行優(yōu)化,提出了一套綜合去重方案。
關(guān)鍵詞:推薦方法;推薦去重;推薦過濾;大數(shù)據(jù)
中圖分類號:TP391 文獻標識碼:A
Abstract:With the continuous development of online shopping,the main e-commerce websites have all introduced commodity recommendation systems.However,consumers usually have doubts on the effectiveness of such kind of system,as they find that the commodities they purchased a day before still appear on the recommendation list today,which they do not need any more.Aimed at such cases,a filtering module needs to be added to the recommendation system to eliminate the commodities that are obviously undesired by the target users at present.This paper conducted optimization based on the filtering schemes put forward on buy-back cycle previously and put forward a set of comprehensive filtering scheme.
Keywords:Recommendation method;repetition removal;recommendation filtering;big data
1 引言(Introduction)
互聯(lián)網(wǎng)的出現(xiàn)使人們足不出戶就能獲得各類信息。而多年以來互聯(lián)網(wǎng)的發(fā)展也呈現(xiàn)出爆炸性趨勢,加上物流運輸產(chǎn)業(yè)的的發(fā)展,越來越多的人選擇通過網(wǎng)上商城進行購物。商家們?yōu)榱双@取更多的利潤,幾乎都在網(wǎng)站上使用了商品推薦系統(tǒng),以期獲得更大的利潤。
Resnick和Varian在1997年給出了推薦系統(tǒng)的定義:“它利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程”[1]。推薦系統(tǒng)的核心是推薦方法,經(jīng)過多年的發(fā)展,當前較為成熟的推薦方法包括協(xié)同過濾,基于內(nèi)容推薦,基于圖結(jié)構(gòu)推薦和混合推薦[2]。
然而當前幾乎所有的購物網(wǎng)站使用的推薦系統(tǒng)在對消費者進行商品推薦時都沒有考慮推薦去重的問題。例如目標用戶經(jīng)過一個月的篩選,最終買下了一臺幾千元的手機,而當用戶第二天打開網(wǎng)站的時候,網(wǎng)站的推薦系統(tǒng)卻仍然在賣力的向其推薦手機。這樣的情況不僅浪費了推薦的機會,更讓消費者對網(wǎng)站的推薦系統(tǒng)能力產(chǎn)生懷疑,用戶對系統(tǒng)推薦性能持否定態(tài)度的結(jié)果將導(dǎo)致其不再關(guān)注系統(tǒng)推薦的任何商品。這樣的局面不僅是消費者的損失,更是商家的損失。
而對購買過的商品采取“一刀切”,不再推薦的做法也顯然不行,如果消費者購買的商品屬于消耗類商品,例如牙膏,那么顯然很有必要再次進行推薦,但推薦的時機是一個很重要的問題。
針對以上的問題,張志清[3]等人提出了一種考慮商品重復(fù)購買周期[4]的協(xié)同過濾推薦方案。本文則受其啟發(fā),在其基礎(chǔ)上提出一種獨立的去重模塊,以期能與各類推薦方法組合使用在推薦系統(tǒng)中,提升推薦系統(tǒng)的有效性。
2 去重方案(Filtering scheme)
2.1 考慮商品重復(fù)購買周期的協(xié)同過濾推薦方案
該方案主要包括如下步驟:第一是建立商品數(shù)據(jù)庫和顧客交易數(shù)據(jù)庫,并將所有商品分成三類,即長重復(fù)購買周期、短重復(fù)購買周期和零重復(fù)購買周期的商品;第二步是計算短重復(fù)購買周期商品的重復(fù)購買周期,生成重復(fù)購買周期表;第三步則是計算目標推薦用戶已購商品的回購狀態(tài),找出處于消費周期,失效狀態(tài)和長重復(fù)購買周期的商品;最后一步是將傳統(tǒng)的協(xié)同過濾方法得到的商品推薦列表與以上三步獲得的商品列表進行比對,將兩個列表中重復(fù)的商品從協(xié)同過濾結(jié)果的列表中去除,最后將過濾后列表內(nèi)的商品推薦給用戶。
2.2 考慮商品重復(fù)購買周期方案的局限性
首先是分類的局限,原方案中對商品進行了事先人工分類,但這樣的分類缺乏個性化,因為一些商品對于不同的人來說情況不同,存在一部分人幾年內(nèi)只購買一次,而另一部分人會隔一段時間就購買一次的商品,這樣的情況下人工分類吃力不討好。第二是重復(fù)購買周期計算方法的局限。原方案對顧客遇到特價活動時的提前重復(fù)購買行為在計算時僅簡單的去除,沒有考慮提前重復(fù)購買對于后續(xù)購買周期的影響。第三是對重復(fù)購買周期離散值確定上的局限。原方案將離散值設(shè)定為固定的30天,但由于商品特性和消費者復(fù)雜的情況,該離散值在實際使用上很難取得較好的效果。最后是對失效期商品去除的局限。當超出回購周期后,原方案會認為用戶已經(jīng)在其他地方購買了商品,于是不再對其推薦該商品,這其中沒有考慮消費者不購買的原因而是做簡單拋棄。
2.3 基于消費者購物記錄的去重方案
針對以上問題,本文提出了一套綜合的去重方案,主要改動包括:首先是不再進行人工三段式分類,改為先按商品品種[5,6]簡單分類(這樣的分類每個電商網(wǎng)站本來就有,相當于不需要做額外分類),再通過計算來劃分出真正的針對目標用戶的個性化分類的方式。其次,充分考慮優(yōu)惠打折活動對消費者帶來的影響,修改計算方式,使得到的回購周期更加合理。第三,通過考慮用戶多次購買同類產(chǎn)品的回購周期離散值來決定商品的黃金推薦周期,消費周期和超期失效周期。第四,對于超過回購周期的商品,通過參考用戶在最后一次購買后的瀏覽記錄,購物車記錄和商品售價情況綜合判斷用戶對商品的態(tài)度后,在有必要的情況下會根據(jù)實際情況再次計算回購周期來決定待推薦的商品的去留,不再是一超期就無條件丟棄。
3 方案實現(xiàn)(Scheme realization)
3.1 數(shù)據(jù)準備
在進行去重前,需要在數(shù)據(jù)庫中先建立如下表格:
表1:用戶歷史購買記錄表。表中記錄項目包括“商品ID,購買日期,購買數(shù)量,單件容量,單價,購買時是否享有折扣”。
表2:商品分類表。表中記錄項目包括“商品ID,商品所屬類別ID,全體用戶日均消耗離散值”,其中商品的分類按照商品品種進行劃分。
表3:用戶瀏覽記錄表。表中記錄項目包括“商品ID,瀏覽日期,單件容量,單價,用戶瀏覽時是否有折扣”。
表4:用戶購物車記錄表。表中記錄項目包括“商品ID,放入購物車時間,單件容量,單價,放入購物車時是否有折扣”。
以上表中的“單件容量”屬性均指代消耗類商品的容量,非消耗類商品此值留空。考慮到節(jié)省存儲空間問題,一個用戶對一個商品的瀏覽或購物車放入記錄都只保留最后一次。
3.2 去重方案具體步驟
在正式開始去重前還需要準備以下列表用于計算:一個針對目標用戶的推薦列表I,該列表通過任意一種推薦算法得出;一個待處理列表I*,I*的內(nèi)容與I一致;一個排除列表Ik,Ik初始為空,用以保存待清除的推薦商品。以上列表均只保存商品的ID。
步驟1:依次檢查I*中的所有商品,若目標用戶對待檢商品及與待檢商品同類商品的購買次數(shù)之和僅為1次,則將商品ID從I*移動到Ik中,而購買記錄為0的商品ID則從I*中刪除。I*經(jīng)過處理后稱為I2*。
步驟2:依次檢查I2*中所有非特價購買次數(shù)小于等于1次的商品,若這些商品正在打折,則將其從I2*中刪除,否則將商品ID從I*移動到Ik中。I2*經(jīng)過處理后稱為I3*。
步驟3:嘗試從I3*中取一個商品,若I3*為空,則將I與Ik中均存在的ID值相同的商品從I中刪除,I經(jīng)處理后最終得到I2,將I2中的商品推薦給用戶,全部流程結(jié)束;否則將取到的商品ID記為C,并獲得C所屬的商品類別,記為U。接著計算目標用戶對該類商品的日均消耗量:
其中,DEnR代表目標用戶最后一次以非打折價格購買U類商品的日期,DFiR代表目標用戶第一次以非打折價格購買U類商品的日期,WN代表單次購買U類商品的數(shù)量,WC代表單次購買U類商品的容量(若WC為空或0,則WC=1,之后步驟同理),n代表在DEnR與DFiR之間購買過U類商品的次數(shù)。
計算用戶對U類商品的單次回購周期內(nèi)對U的日均消耗量Gct:
計算用戶對商品C的日均消耗量的離散程度SDc:
其中,Dt為第t次購買U類商品的日期,Gct為第t次和t+1次購買的U類商品的日均消耗量,n代表在Dt與Dt+1之間購買過U類商品的次數(shù)。
步驟4:最后一次以非特價購買U類商品到最后一次購買U類商品期間總購買量PE:
其中,N為最后一次以非特價購買U類商品到最后一次購買U類商品期間對U類商品的購買次數(shù)。
步驟5:計算目標用戶對商品C的消耗周期預(yù)測范圍(即黃金回購周期):
其中,SDCA*代表商品C的全體用戶日均消耗離散程度,SDA為可選參數(shù),默認為0,該值代表與目標用戶相似的其他用戶對U類商品的離散程度,例如推薦算法中使用到“相似用戶”[7]時可以計算相似用戶對商品C的離散程度。
另外考慮到電商的物流情況,若計算后THMax<1,則令THMax=1。
步驟6:判定當前日期與黃金回購周期的關(guān)系:
若THMin≤ TAct≤ THMax,說明商品處于黃金回購周期,可以推薦。將C從I3*中刪除,完成后執(zhí)行步驟3。
若THMin>TAct,說明商品處于消耗周期,不需要推薦。將C從I3*移動到Ik內(nèi),完成后執(zhí)行步驟3。
若TAct>THMax,說明商品處于失效周期,需要進一步確定情況,執(zhí)行下一步驟。
其中,前時間與最后一次非特價購買U類商品的時間差為TAct。
步驟7:檢查目標用戶在回購期開始后有無將U類商品放入購物車的記錄,若無,執(zhí)行步驟8,否則首先檢查購物車記錄中商品價格情況,若滿足MNow≥MSe≥MCM,說明消費者因為價格因素放棄購買,則將C從I3*移動到Ik內(nèi),完成后執(zhí)行步驟3;若不滿足,說明消費者超期未購買的因素可能與價格無關(guān),將DEnR值設(shè)置為購物車記錄生成日期,而PE值通過購物車信息計算得到,之后返回步驟5。
其中,MNow代表當前商品C的最新單價,MSC代表目標用戶最后一次將U類商品放入購物車時的商品單價,MCM代表用戶購買過的U類商品的平均單價。
步驟8:檢查目標用戶在回購期開始后有無對U類商品頁面的瀏覽記錄,若無,則將商品C從I3*中刪除,完成后執(zhí)行步驟3,否則采用與購物車記錄相同的處理步驟,如果需要重新計算黃金回購周期,則DEnR的值設(shè)置為目標用戶對U類商品最后瀏覽日期,PE值設(shè)置為:
4 算法檢驗(Algorithm inspection)
4.1 去重有效性評價指標
主要從兩個指標進行評價:召回率和誤識別率[8,9]。
召回率。召回率在本文中定義為正確去除的推薦商品占所有需要去除的推薦商品的百分比,召回率越高越好。其計算公式為:
召回率=(正確識別的多余推薦商品數(shù)目/實際包含的多余推薦商品總數(shù))×100%
誤識別率。誤識別率在本文中定義為被錯誤去除的推薦商品占所有被識別為待去除商品的百分比,誤識別率越低越好。其計算公式如下:
誤識別率=(錯誤識別為待去除商品的數(shù)量/被識別為待去除商品的總數(shù))×100%
4.2 評價指標獲取方案
步驟1:獲取算法所需表格。
步驟2:任意取一個用戶P,統(tǒng)計其歷史購買記錄,獲取每個類別商品的總購買次數(shù)。
步驟3:對每種購買次數(shù)>2的商品,忽略掉其最后一次購買記錄。將剩余相關(guān)記錄導(dǎo)入算法中計算,算法會輸出每一個商品的黃金回購周期。
步驟4:將黃金回購周期與用戶最后一次購買該商品的日期進行比對,若用戶最后一次購買該商品的日期在黃金回購周期內(nèi),則判定為成功識別,否則為錯誤識別。
步驟5:通過前四個步驟獲取的參數(shù)計算召回率和誤識別率。
4.3 實驗結(jié)果
實驗采用的數(shù)據(jù)集是包含有關(guān)網(wǎng)站部分用戶購物信息匯總的數(shù)據(jù)集,實驗結(jié)果如表1所示。
5 結(jié)論(Conclusion)
目前各大電商網(wǎng)站的推薦系統(tǒng)基本都存在重復(fù)推薦消費者當前所不需要的商品的情況。本文在前人的基礎(chǔ)上提出了一種以重復(fù)購買周期為主,考慮多種情況的推薦商品去重方案,讓商家和消費者能得到雙贏的結(jié)果。該去重方案還可以反向運用,即作為一種推薦方法,定期向用戶推薦其可能需要重復(fù)購買的商品。
在后續(xù)的研究中,將著重處理以下問題:一是對于某些商品來說,消費者重復(fù)購買并不是因為周期消耗因素,例如目標用戶間隔一段時間就幫不同的朋友購買一塊電腦硬盤,這時候計算消耗周期的意義不大,因為即使目標用戶也不一定清楚自己會在什么時候需要硬盤;而直接將硬盤歸入非消耗類商品從而排除計算周期的方案也不可行,因為存在一些消費者需要大量的存儲空間而定期購買硬盤的情況,例如商店內(nèi)的監(jiān)控錄像存儲,因此需要研究一種全新的思路。另一個問題是分類計算周期,在本文的算法中,考慮到很多用戶在重復(fù)購買時并不局限于購買一個品牌的商品,因此在第一次人工分類時沒有細化分類,但部分同類產(chǎn)品高端與低端之分,消費者可能出現(xiàn)種種原因?qū)е赂叩投水a(chǎn)品都有購買,這時在計算周期前可能還需要考慮例如價格等因素來進行更細致的分類,之后才計算回購周期。
參考文獻(References)
[1] 王國霞,劉賀平.個性化推薦系統(tǒng)綜述[J].計算機工程與應(yīng)用,2012,48(07):66-76.
[2] 楊博,趙鵬飛.推薦算法綜述[J].山西大學學報,2012(3):337-350.
[3] 張志清,李夢,胡竹青.考慮商品重復(fù)購買周期的協(xié)同過濾推薦方法改進[J].武漢科技大學學報,2017,40(04):307-313.
[4] 羅子明.消費者購買行為的測量指標[J].北京商學院學報,2000(04):30-33.
[5] 陳立平.淺談商品分類的目的[N].中國商報,2004-05-21.
[6] 聯(lián)商.便利店商品分類與編碼[N].中國商報,2003-11-28.
[7] 高董英,鄧新國,肖如良.融合相似用戶和信任關(guān)系的動態(tài)反饋協(xié)同過濾推薦算法[J].福州大學學報,2017,45(01):25-31.
[8] 周奕辛.數(shù)據(jù)清洗算法的研究與應(yīng)用[D].青島大學,2005:40-41.
[9] 朱郁筱,呂琳媛.推薦系統(tǒng)評價指標綜述[J].電子科技大學學報,2012,41(02):163-175.
作者簡介:
張鵬程(1993-),男,碩士生.研究領(lǐng)域:中小企業(yè)信息化.
馬佳琳(1972-),女,碩士,教授.研究領(lǐng)域:中小企業(yè)信息化,電子商務(wù).