顏 穎
(義烏工商職業技術學院創業學院,浙江 義烏 322000)
通過對各大主流電子商務網站的研究,可以發現推薦系統的功能已遍布各類網站。無論淘寶網站中的“猜你喜歡”,亦或亞馬遜網站中的“為您推薦”等功能,無不展示了推薦系統的強大。在各個電子商務網站之間,推薦系統已成為電子商務網站中最有競爭力的模塊之一,它是必不可少的存在。因此,開發一個精準、強大的個性化推薦系統已成為各個電子商務網站面臨的最大挑戰。
所謂的推薦系統,并不是一個獨立的系統,在一定程度上說,它是依附于主體網站而存在的模塊,也可以被稱為是一種工具,其功能的運作需要主體網站的支撐?;趯χ黧w網站中用戶知識、用戶行為及喜好的分析,該系統能夠發現客戶最為感興趣的商品,并及時推薦給客戶,從而達到提升交易額的目的。
從技術角度出發,推薦系統與搜索引擎類似,其被開發目的都是為了解決信息過載的問題。但與搜索引擎不同,推薦系統的推薦功能是在沒有用戶明確需求的情況下進行的,它通過對用戶歷史行為數據進行挖掘、分析、建模,最終找到用戶可能會感興趣的內容并加以推送。
從電子商務的角度出發,電子商務網站其跨時空跨地域的天然優勢,以及較實體市場相對低廉的運營成本,使得其銷售的產品數量遠遠大于實體店。而在電子商務網站中,主流商品通常只占一小部分,其余的大量商品大多為長尾商品[1],長尾商品通常具有非常客觀的銷售額。那么,如何將這批產品挖掘出來,將它們推送給可能對其感興趣的用戶,從而增加下單率與訂單轉換率,就是個性化推薦系統需要做的。
總的來說,推薦系統算法的目標就是根據不同的規則,找到產品和用戶的對應關系,為不同需求的用戶提供定制化的推薦。這樣既解決了數據過載的問題,又為大量存在的長尾數據的再次被利用指明了方向。
對于電子商務系統,必然會有一個用戶界面(User Interface,簡稱UI系統)。UI系統主要負責頁面展示與用戶交互。用戶在UI系統中會產生各種操作行為,包括點擊、瀏覽、購買、支付等操作。為了記錄用戶在界面上的各種操作行為,網站通常會有日志系統。日志系統中的日志一般會存儲在內存緩存、數據庫或者文件系統中。但無論存儲在何處,推薦系統都會獲取到這些日志信息,并通過分析用戶的行為數據,把數據結果匯總并生成推薦表,最終將推薦表展示在用戶界面中。但是,不同的推薦系統在進行行為日志分析時所用到的算法不盡相同,根據不同的目標,采取的方式也會有所差異。
基于用戶行為數據分析算法為推薦系統算法中的一種。此外,推薦系統算法還包括基于推薦原則與推薦內容的算法。由于這兩種算法與用戶行為相較而言是相對獨立的,它們的推薦結果很難適應于當前需求多變的用戶群,用戶體驗感往往較差,因此在電子商務網站系統中已不是主流的算法。相比之下,基于用戶行為數據分析的算法正好能彌補這一缺陷,特別是基于協同過濾的個性化推薦模型,協同過濾算法的個性化推薦模型具有精準匹配客戶需求與及時推送等特性,有助于提升商品在電商平臺的交易額,進而提升企業的盈利能力。[2]
因此,我們著重對基于用戶行為數據分析的推薦算法進行探討。
基于用戶行為的推薦算法是一種比較直觀的算法,從本質上說,其將用戶數據分析結果分為用戶感興趣與不感興趣兩大類。
用戶行為在電子商務網站上會產生各種操作記錄,包括網頁瀏覽、購買、點擊、收藏、評分和評論等,這些記錄均以日志的形式保存在系統中。通過對用戶行為的分析,可以將數據分為顯性反饋數據與隱形反饋數據。顯性反饋數據中可以較明確地確定用戶對產品的喜好。如:用戶直接的評價,喜歡或者不喜歡。隱性反饋數據則較難確定,如頁面瀏覽數據,通過瀏覽頁面很難直觀地判斷出用戶是否對某一產品感興趣。通常情況下,分析顯性反饋數據可以很容易區分用戶行為是正反饋還是負反饋,而隱形反饋數據就比較難以確定。
推薦系統中最基本的算法為基于領域的一類算法,這類算法在行業中被廣泛使用。這類算法主要分為兩個類別:其一為基于用戶的協同過濾算法,其二為基于物品的協同過濾算法。
1.基于用戶協同過濾算法(UserCF算法)
UserCF算法的基本思想:在一個個性化的推薦系統中,當一個用戶A需要個性化推薦時,首先需要確定與其興趣相似的其他用戶集合B,進而確定用戶集合B感興趣但用戶集合A卻沒有接觸過的產品,并推薦給A集合的用戶。所以,以協同過濾算法機制的核心計算包括如下兩個方面:
(1)確定與目標用戶興趣的相似度較高的用戶集合;
(2)確定(1)集合內用戶感興趣且較為新奇物品的同時將其推薦給用戶A。
UserCF算法中的首要任務是計算兩個用戶的興趣相似度。給定用戶u和用戶v,令N(u)與N(v)分別表示有過正反饋的用戶v與u物品的結合。通過余弦相似度的計算公式,則可以計算:

事實上對獨立用戶而言,對冷門物品通過這類方式進行計算,一定程度上更能表明用戶間興趣的相似度。因此,如果直接使用基于余弦相似度的公式來計算所得的結果并不夠準確,我們需要對熱門產品進行一定程度的懲罰:

得出用戶間興趣相似度的結果后,UserCF算法會智能地對用戶推薦感興趣的物品,同時也會告知用戶有k個用戶也對該物品感興趣。具體的計算公式如下式:

上式中,S(u,K)表示用戶u興趣最接近的用戶數量為K個,N(i)為用戶對物品i有過行為的集合,Wuv為用戶v與u的興趣相似度,γvi則為用戶V對物品i的興趣程度。
2.基于物品的協同過濾算法(Item CF算法)
通俗地講,這一算法在于能夠為用戶推薦感興趣的物品或是與其感興趣物品特性相近的物品。需要注意的是,Item CF這一算法并非是通過物品內置屬性的相似度來確定用戶關注相似度的,而是對用戶行為數據進行分析后得出的物品間的相似度。也可以理解為:若A與B兩種物品的相似度較高,用戶對A物品感興趣的同時也對B物品感興趣。所以,關于ItemCF的算法主要包括如下兩個步驟:
(1)對物品間相似的計算;
(2)基于用戶歷史行為與物品間的相似度為用戶生成并推薦有關物品列表。
令給定兩位用戶分別為i和j,若│N(i)│為對商品i感興趣的用戶數量,N(i)∩N(j)為同時對物品 i與 j感興趣的用戶數,則Wij可看作為用戶同時對i于j物品的占比。那么,
然而,當物品j很熱門時,Wij的值就會很大,接近于1。此時,就會出現一種現象:任何物品都會和熱門的物品有很大的相似度。為了避免推薦出熱門的物品,可以根據余弦相似度公式得出:
但是事實上,并不是每個用戶的貢獻都是相同的,非因自身需求因素而批量購買的用戶的貢獻遠遠沒有出于自身興趣而購買少量物品的用戶的貢獻大。因此,針對這類用戶,需要對其進行懲罰。這時需引入IUF概念,這一概念是由John S.Breese提出,其既為用戶活躍度對數的導數的參數,同時不活躍用戶對物品相似度的貢獻應當大于等于活躍用戶。若增加IFU的有關參數來對物品相似度進行修正,則得出興趣相似度公式如下:

這里,N(u)代表用戶喜歡的物品集合。
得到用戶之間的興趣相似度后,ItemCF算法會為用戶推薦和他興趣最相似的k個用戶喜歡的物品。公式如下:

S(j,K)是和物品j最相似的K個物品的集合,Wij是物品i和物品j的相似度,γui是用戶u對物品i的興趣。
3.UserCF算法和ItemCF算法的比較
從數據分析維度的角度看,可以說UserCF算法是對用戶數據進行橫向的挖掘,更著重于為用戶推薦那些和該用戶有共同興趣愛好的用戶喜歡的物品,關注點在于興趣相似的小群體的熱點。而ItemCF算法是對用戶數據縱向的挖掘,其關注的點是目標用戶的歷史,通過分析目標用戶過去的記錄為其推薦其感興趣的相似度高的產品。
從數據算法復雜度的角度來看,在UserCF算法中,計算機需要針對每個用戶維護一個巨大的興趣相似度矩陣。隨著電子商務的不斷發展,系統中的用戶數量會成倍增加,因此對于用戶興趣相似度矩陣的相關計算就會越來越繁雜,其運算時間復雜度和空間復雜度會近似于幾何倍數的增長,這就對計算機的硬件需求提出了嚴峻的挑戰。相比之下,ItemCF算法著重于維護物品相似度矩陣,在用戶數目遠遠小于物品數量,系統中相對比較穩定,因此更適用于電子商務類的網站。
以著名電子商務網站亞馬遜為例。亞馬遜是最早使用推薦系統的電子商務平臺。基于物品的ItemCF算法(協同過濾算法)于1998年正式上線,這一算法將處理百萬級商品,同時也將用戶推向了一個電子商務領域發展的新高度。[3]在此之前,協同過濾算法主要還是基于用戶的,由于物品數變化頻率要小于用戶數量的變化率,因此此前并不完全適用于亞馬遜。
亞馬遜在ItemCF算法廣泛使用以后,系統在一定程度上進行了改版,將推薦系統的功能分布在網站頁面的多個角落。首先,在主頁面中較為醒目位置放置了用戶購買歷史與瀏覽行為等個性化模塊;在搜索結果頁一側展示了與搜索商品有關的推薦結果;此外,在用戶購物車界面中增設了用戶可能感興趣的其他商品;在訂單的尾部會出現購買這些物品后未來建議購買的產品(也就是捆綁銷售)等。整個亞馬遜電子商務系統中到處出現了推薦模塊的身影,它以各種形式融入于頁面中。每位用戶登錄系統所見到的網上商店都是不同的,千人千面。依據微軟研究院對其后幾年的調查數據顯示,亞馬遜至少有三成的頁面瀏覽量源于系統的推薦。[3]
在實際的開發過程中,沒有一種算法是適用于所有系統的,也沒有一種算法能夠滿足所有系統的需求。當面臨不同的應用場景的算法選擇時,一定要結合產品自身與使用平臺的考量,需要考慮到例如產品冷啟動期間數據量、長期樣本數據量的多少以及算法所在的平臺的成熟度等。[4]另外,不同的數據量級下不同方法配合不同算法產生的性能壓力也需要考察。多數情況下,很多業務場景不會只使用一種算法來解決問題,往往需要多個算法相互結合。因此,在推薦系統算法的選擇上,根據不同的場景和需求可以采用混合推薦的方法,利用多種方法之間的優勢,規避各種方法的劣勢,從而達到比較完美的效果。
個性化推薦系統是一門強大的自學習工具,它的核心就是有好的算法,通過好的算法就可以得到較精確的反饋。它的發展從無到有,現如今已演變成為電商網站的基礎設施之一。面對未來的挑戰,個性化推薦系統還需要不斷地提高,不斷地更新與探索。算法是一個程序系統的靈魂所在,其更新迭代的速度也極快,唯有不斷地使機器學習,才更有可能提供更為智能化與人性化的服務。相信未來,個性化推薦系統可以做得更好、更智能、更全面。