成鵬飛,黃鈺譞,劉 正,成思婕
( 1.湖南科技大學商學院,湖南 湘潭 411201;2.產業發展大數據與智能決策湖南省工程研究中心,湖南 湘潭 411201;3.首都經濟貿易大學 管理工程學院,北京 100070;4.中南大學 地球科學與信息物理學院,湖南 長沙 410089)
隨著電子商務技術的快速發展,用戶不再需要去擁擠的商場購買商品,可隨時隨地通過電腦、手機,在電商平臺上選購自己所需商品[1]。方便快捷的電商平臺購物方式,使電商用戶量急劇攀升,據中國互聯網絡信息中心(CNNIC)發布的第45次《中國互聯網絡發展狀況統計報告》,截至2020年3月,中國網民數量已達到9.04億,比2018年底新增網民7508萬,增長率為4.9%。其中,由于2020年初疫情的影響,全國響應“宅在家、不出門”的號召,這使得互聯網的利用率急劇攀升,尤其是在網絡支付和網絡購物兩個方面表現得最明顯,用戶規模分別為76798萬和71027萬、網民使用率分別達到85%和78.6%,這相對于2018年底增長將近27.9%和16.4%。無數企業將數以萬計的商品在電商平臺上呈現給用戶,供用戶選擇,但這給用戶選購商品帶來不便,同時也出現信息過載等問題,即用戶在面對大量不同商家所提供的相似商品時往往難以抉擇,需要花費大量時間才能夠選購到自己所需的商品,這大大降低了商品交易效率。因此,商家和用戶都希望有一種個性化推薦算法,能幫助用戶剔除無關商品信息,準確將所需商品推薦給用戶,快速為用戶和商家搭建信息渠道,既能給商家精準推薦商品,為其帶來商業利益,又能方便用戶選購商品,為用戶帶來便利。
近幾年大數據與個性化推薦研究逐步深入,國內外學術界逐漸出現一些學者開始研究大數據背景下個性化推薦內容。國外學者Alka等(2017)[2]研究了大數據背景下電子商務個性化推薦系統中遇到的問題并提出解決辦法;Bhujade和Chandak(2018)[3]提出推薦系統可采取步驟克服問題以改進海量數據的問題。國內學者陳玉(2016)[4]對大數據背景下個性化推薦方法展開研究并提出了適用于電子商務模式下改進的推薦方法;張昊和楊帆(2018)[5]研究了大數據時代下個性化推薦發展趨勢,為日后的研究提供了一定思路。
綜上所述,近幾年不管是國內還是國外對于基于大數據的個性化推薦算法的研究都還不夠深入,因此,對已有個性化推薦系統進行優化,有效解決電子商務平臺與用戶之間所存在的局限性,是極為必要的,這不僅能更好地為客戶推薦他們感興趣的商品,為客戶選擇所需商品帶來便利,同時也能提高商家的盈利能力。
電子商務個性化推薦算法可從商務平臺大數據中獲取到某類商品信息,實時推薦給用戶(表1)。個性化推薦主要包括五個步驟[6],具體流程如圖1所示。

圖1 電子商務個性化推薦算法的步驟

表1 常見的個性化推薦算法

續表
目前,基于應用個性化推薦技術可以縮減用戶尋找所需商品的時間、降低平臺用戶跳出率等優點,各行業都在運用個性化推薦系統來為用戶推薦其所需的商品,各電商平臺也在根據自己的實際情況選擇推薦算法[11]。目前在電子商務平臺應用最廣泛的算法有基于用戶或者商品的協同過濾算法、基于內容的推薦算法等,具體可見表1所示。雖然這些推薦算法的目的如出一轍,都是為用戶提供個性化服務,但是不同算法是基于不同種類的信息進行推薦,在推薦過程中也會遇到不同的問題,因此本節對四種常見的推薦算法進行對比分析,研究不同算法的特點,如表2所示。

表2 個性化推薦算法特點分析
在進行個性化推薦時,協同過濾推薦算法僅通過用戶行為數據進行計算,因此當存在新進入用戶或新商品的情況時該算法無法適用;基于內容的推薦算法主要對用戶曾經購買過的商品內容信息進行收集,因此不會出現商品冷啟動問題,如果有新商品進入時可以根據其內容信息與用戶偏好商品進行匹配,但該算法在面對新用戶時無法進行;基于知識的推薦算法不僅是一種商品過濾算法,而更多是一種交互式算法,以一種個性化方法像導購員一樣引導用戶進行商品的選購,因此該算法在新商品或新用戶進入時都不會出現問題;但這種方法在計算時較為繁瑣,不適用所有商品;基于標簽的推薦算法根據用戶提出的標簽與商品本身的標簽進行匹配,為用戶推薦商品。該算法同時避免了商品冷啟動問題和新用戶的問題,但其計算過程復雜,且推薦結果不夠準確。在幾類主要的推薦算法中,協同過濾推薦算法由于其簡便性與易理解性仍然是平臺上運用最多的算法,因此本文主要針對協同過濾推薦算法存在的不足進行闡述并尋求優化方法。
1.數據稀疏問題
在進行個性化推薦的過程中,用戶與商品數據的質量影響著其推薦質量,如果用戶產生歷史行為基數足夠大,平臺才更容易發現與目標用戶的相似用戶,保證推薦的準確率。在電子商務平臺上,由于大數據的背景,用戶和商品的數據是大量的,但是用戶對商品進行評價等行為數量在商品基數下都是微不足道的,這就是數據稀疏問題。如表3所示,該矩陣具有很高的數據稀疏性,表中有許多空值。假設用戶4和用戶5都只對商品3產生共同評分,通過相似度計算可得二者相似度為1,但因此認定兩用戶喜歡的商品完全相同,這樣的預測結果是不準確的。

表3 稀疏性較高的評分矩陣舉例
2.冷啟動問題
當平臺上有新用戶出現時,該用戶并沒有歷史行為數據,平臺則無法將其與平臺內的其他用戶進行比較。以基于內容的推薦算法為例,通過分析用戶歷史選購商品的屬性,為用戶推薦與以往購買商品屬性相同的不同商品,此方法雖被大量電子商務平臺所采納,但對于沒有產生購買或瀏覽行為的用戶,難以提取其興趣特征[5],這便是冷啟動問題。針對該問題有以下思路供采納:可在用戶注冊信息時,從個人信息中抽取出用戶偏好或是平臺主動向用戶咨詢其興趣偏好。
3.用戶差異性問題
當平臺計算用戶相似度時僅根據用戶評分的大小進行分析,但不同用戶評分的標準是不同的,例如:在用戶A看來,對商品的評分在5分即是好評,但在用戶B看來,對商品的評分在3分即是好評,這便是用戶差異性問題。在實際計算中,用戶差異性很大程度上影響了用戶相似度計算的準確性,也影響了平臺的推薦效果。
傳統協同過濾推薦算法存在諸多不足影響著推薦效果,因此本文構建了一種基于商品的協同過濾推薦算法的改進算法,采用商品屬性值和巴氏系數共同改進相似度的方法優化傳統協同過濾推薦算法,提高推薦的精準度。
傳統的基于商品的協同過濾推薦算法僅依靠用戶對商品的評分數據進行商品相似性計算,而沒有考慮商品之間的內在關聯。因此本文在計算商品相似度時引入商品屬性值的概念,將商品具有的屬性值進行量化并賦予其相等的權重進行計算,以彌補傳統推薦算法的不足。商品屬性相似度算法的步驟如下:
1.建立商品屬性特征值表
通過商品屬性值的整理,可以得到商品屬性值表,如表4所示,其中I1,I2,…,In代表的是n個商品,F1,F2,…,Fm代表的是m個商品屬性,通常用數字“1”表示商品具備該項屬性,用數字“0”表示商品不具備該項屬性。商品具有的屬性特征最終會被抽象為只包含0,1的向量,每個商品都使用一個屬性向量來描述,如表4中商品I1的屬性向量為{1,0,1,…,1}。

表4 商品屬性值表
2.計算商品屬性特征相似度
商品屬性原理即是根據商品之間是否具有相同的屬性值來判定商品是否具有相似性。依據表4的商品屬性值可計算商品屬性相似度,如公式(1)所示。
(1)
在公式中,分別用N(i)和N(j)代表商品i和商品j具有的屬性數量,|N(i)∩N(j)|代表商品i和商品j擁有的共同屬性數量。
當用皮爾遜相似度計算方法計算相似度時利用的僅是被相同用戶評價過的商品評分值,而在大數據背景下會引起的數據稀疏問題時,用該方法計算相似度僅考慮用戶對商品的共同評分,并未完全利用到所有的評分數據,計算準確率不高。因此本文采用巴氏系數來優化皮爾遜相似度,巴氏系數相似度算法的步驟如下:
1.計算巴氏系數
巴氏系數主要衡量的是兩者間的相關性。在算法中,巴氏系數根據用戶對商品的評分值分布來計算商品的相似度系數,如公式(2)所示。
(2)
其中H為對商品評分為H的用戶總量,I為對商品i評分的用戶總量,J為對商品j評分的用戶總量。
下面舉例來說明如何使用巴氏系數:例如設評分區間為[1,5],商品i和商品j的評分向量為ri=(2,-,3,-,1,-,4,-,2,-),rj=(-,1,-,3,-,2,-,5,-,2),所以商品i與商品j之間的巴氏系數為:
(3)
2.計算皮爾遜相似度
兩商品間相似度的計算通過皮爾遜相關系數來進行評估,如公式(4)所示。
(4)

3.計算商品最終相似度
巴氏系數是根據用戶對商品的所有評分來計算的,將巴氏系數與皮爾遜相似度相乘可以通過評分分布規律彌補皮爾遜相似度計算方法的缺陷,用I表示所有的商品集合,因此用公式(5)表示兩商品間的相似度。
(5)
本文采用的巴氏系數相似度的優勢在于利用用戶對商品的所有評分來彌補皮爾遜相似度計算方法的缺陷,不會造成資源浪費,優化相似度計算公式。
在大數據背景下,如果僅通過用戶對商品進行的共同評分進行相似度計算會導致計算結果不準確,因此采用商品屬性值和巴氏系數共同改進相似度,希望能夠提高推薦的準確度。算法主要分為3個步驟,首先構建用戶-商品評分矩陣,然后通過相似度計算獲取目標商品的相似商品,最終產生推薦,下面詳細介紹算法的步驟。
1.構建用戶-商品的評分矩陣
用戶-商品評分矩陣是根據用戶對商品的評分數據值得到的,如公式(6)所示,其中縱坐標表示各個用戶,橫坐標表示各個商品,設共有m個用戶和n個商品,中間部分的數值為所有用戶對相應商品的評分,可以通過一個矩陣來儲存所有用戶的評分。
(6)
2.計算商品相似度
綜合公式(1)與公式(5)計算出的結果,用公式(7)衡量兩個商品之間的相似度,此公式融合了皮爾遜相似度計算公式、巴氏系數相似度計算公式和商品屬性相似度計算公式來計算商品相似度,計算結果更加可靠。
sim(i,j)=(1-μ)[simbc(i,j)]+μsimfea(i,j)
(7)
本文擬通過商品屬性相似度與巴氏系數相似度組合得到最終相似度,公式中的是商品屬性相似度與巴氏系數相似度的調和加權系數,如果為新加入的商品,則通過商品屬性特征來計算商品間的相似度,就可解決商品的冷啟動問題。
3.產生推薦
在獲得相似度計算結果后,對于任意一個商品i,設定鄰居個數k并獲取最近鄰居,鄰居集記為T={t1,t2,…,tk}。在預測用戶對t的評分值時,可以根據該用戶對T中的每一個商品的評分進行預測計算,設s是t的最近鄰商品,令sim(i,s)表示i與s的相似度,表示用戶u對s的評分值,表示用戶對商品s的評分均值。
(8)
具體公式如(8)所示。在計算完預測評分后,將分值最高的前K項商品的評分進行加權求和作為用戶對商品s的評分。
本文實驗采用的數據是GroupLens 研究小組開發的MovieLens上下載的100K規模電影評分數據集中的部分數據,所采用的實驗數據集約有10萬條用戶評分記錄,其中共有943個用戶信息和1682個電影評分信息。數據集采用5分制評分,評分范圍[1,5],評分越高,則代表用戶越喜歡該電影。
由于本文采用的實驗數據集由真實推薦系統MovieLens中導出,結果具有可靠性,因此本實驗從10萬條數據中隨機選取了8個用戶對8部電影的評分,具體信息見表5、表6所示。

表5 用戶信息表

表6 電影信息表
在表6中,每個特征屬性用“|”間隔,每行最后一列的字符串表示電影所屬類型,電影類型共19個,字符串0和1分別表示該電影是否屬于該類型的電影,數字“1”表示電影具有該項屬性,數字“0”表示電影不具有該項屬性。
本小節在MovieLens數據集上對該算法進行測試以檢驗本文構建推薦算法的推薦質量,為方便計算與檢驗,本實驗在原數據集中隱藏了用戶6對電影3的評分,并運用該算法根據其他用戶行為數據對隱藏分數進行預測,預測評分與實際評分差異最小的便是最優的推薦算法。本文主要驗證了所構建的采用商品屬性和巴氏系數共同改進相似度的優化協同過濾推薦算法與傳統的采用皮爾遜相似度協同過濾推薦算法[12]的準確度,算法模型的驗證過程共4步:建立用戶-商品評分數據集、計算商品之間的相似度、計算不同加權因子的評分預測值和比較不同算法的評分預測值。
1.建立用戶-商品評分數據集
本文從10萬條數據中隨機選取了8個用戶對8部電影的評分進行實驗,用戶集設為U={U1,U2,…,U8},商品集設為I={I1,I2,…,I8},對電影的評分區間是[1,5],用戶未評分的電影對應于數據集中的“—”。用戶-電影評分數據表如表7所示。

表7 用戶-電影評分數據表
2.計算商品之間的相似度
本實驗分別采用本文構建的算法與傳統協同過濾推薦算法計算商品間的相似度,下面按照以下幾個步驟計算商品相似度。
(1)計算商品屬性相似度
本實驗按照公式(1)計算商品間的商品屬性相似度,結果如表8所示。

表8 商品屬性相似度計算結果
(2)計算巴氏相似度
本實驗計算巴氏相似度首先按照公式(2)計算巴氏系數結果如表9所示。
在獲得巴氏系數后運用公式(3)計算皮爾遜相似度,結果如表10所示。
將表9與表10所得的結果分別對應相乘,得到的最終巴氏相似度結果如表11所示。

表9 巴氏系數計算結果

表10 皮爾遜相關系數計算結果

表11 巴氏相似度計算結果
3.計算不同加權因子的評分預測值
由于本文構建的推薦算法中存在加權調節因子,它的取值對評分預測值有很大的影響,調節加權因子從0~0.3,統計評分預測值與實際評分值的差距,最終確定最優的加權因子。
4.比較不同算法的評分預測值
本實驗最終目的是檢驗本文構建的應用商品屬性值和巴氏系數共同改進相似度的優化協同過濾推薦算法與傳統協同過濾推薦算法相比的預測準確度,因此需要在相同數據下進行兩組實驗,比較不同算法的評分預測值,最終判定評分預測值與實際評分值差距最小的算法推薦準確度最高。
實驗結果分為兩部分:首先本實驗在采用商品屬性值和巴氏系數共同改進相似度時存在加權因子,需要比較不同加權因子對結果的影響,為后續實驗奠定基礎;其次本實驗主要檢測的是本文構建的算法與傳統推薦算法評分預測準確度,需要比較二者預測評分值與實際評分值的差距。
1.不同加權因子下評分值結果與分析
本實驗通過調節公式(7)中加權因子,來檢驗加權因子對最后評分預測值預測準確度的影響,實驗結果如表12所示。

表12 不同加權因子下評分值統計結果
由統計結果可知,在加權因子為0.1時,用戶6對電影3的預測評分值4.013451與實際評分值4之間的差異最小,隨后評分值差距逐漸擴大,即推薦質量逐漸下降,因此本文后期的實驗設置加權因子為0.1,在這個前提下對比本文構建的推薦算法與傳統的基于商品的協同過濾推薦算法的預測準確度。
2.不同算法評分預測值結果與分析
本實驗在相同數據下進行了兩組實驗,設置加權因子為0.1,比較本文構建的算法與傳統推薦算法評分預測準確度的評分預測值,所得結果如表13所示。

表13 算法優化前后評分值統計結果
由統計結果可知,本文構建的采用商品屬性值和巴氏系數共同改進相似度的優化協同過濾推薦算法與傳統的采用皮爾遜相似度計算方法的協同過濾推薦算法相比,其用戶6對電影3的評分預測值與實際評分值之間差距更小,因此其預測準確度更高,即用本文構建的優化算法來對用戶進行電影推薦,其效果要比傳統的推薦算法更準確,并且同時處理了傳統推薦算法所存在的冷啟動問題,當有新電影加入時,則通過商品屬性特征來計算商品間的相似度,就可以為合適的用戶推薦該電影,這充分體現了優化算法的優勢。
本文圍繞推薦技術,研究了相關理論,介紹了幾種常用的推薦算法,并探討了傳統電子商務個性化推薦算法在大數據背景下的局限性。最終構建了一種基于商品屬性值和巴氏系數共同改進相似度的優化協同過濾推薦算法,并設計實驗驗證了本文所構建算法的準確性。本文利用預測分數與實際分數的差異檢測出新構建的推薦算法在精確度方面有一定的提升。
本文在進行算法測試時,使用的是MovieLens電影評分數據集合中的部分數據,驗證了本文構建的優化推薦算法的準確性,將其映射到電子商務中,即可以說明如果用本文構建的推薦算法來優化已有的電子商務推薦系統,能提高給用戶推薦商品的準確度,使用戶能夠更快尋找到自己所需的商品,同時也能處理商品的冷啟動問題,優化之后的推薦算法解決了部分傳統算法的局限性,也對電子商務的發展起到一定的促進作用,提高了相關企業的盈利能力。