劉豐維
(上海飛機制造有限公司,上海201324)
無論在學術界還是在工業(yè)界,個性化推薦系統(tǒng)的研究越來越受到重視。一方面來說,個性化推薦系統(tǒng)在電子商務領域落地情況很好,積累了大量真實的數(shù)據(jù),這能夠推動學術界對于推薦系統(tǒng)的研究。另一方面來說,個性化推薦系統(tǒng)能夠在海量商品中,給用戶展示其最有購買意向的商品,極大地改善了用戶的購物體驗,提高了用戶的購買率。
在大數(shù)據(jù)技術初步用于電商推薦系統(tǒng)時,猜你喜歡、看了又看等推薦形式給用戶帶來了全新體驗,可以在一定程度上捕捉到消費者的興趣點。但是由于用戶興趣點在長期和短期內(nèi)都會發(fā)生變化,滯后或不變的推薦結果會造成用戶疲勞。隨著大數(shù)據(jù)、云計算、人工智能算法技術的發(fā)展,各電商平臺都在研究開發(fā)個性化實時推薦系統(tǒng),做到根據(jù)用戶的行為為每個用戶實時地、精準地推送感興趣商品,從而達到比用戶更了解自己的效果。本文設計了包含數(shù)據(jù)層、模型層、融合層、應用層的個性化實時推薦系統(tǒng)架構。數(shù)據(jù)層基于Spark Streaming實現(xiàn)了用戶行為實時采集。模型層包含協(xié)同過濾、相似商品、熱度等多路召回模型。融合層根據(jù)用戶實時行為對召回結果重排。應用層展示推薦結果,并埋點記錄用戶反饋,用于推薦效果評估。
本文設計基于用戶歷史行為序列的電商個性化推薦系統(tǒng)包括數(shù)據(jù)層、模型層、融合層、應用層4個部分,基于用戶實時行為(包括瀏覽、收藏、分享、購買、不喜歡等),實現(xiàn)了實時召回+精排的主流推薦流程。系統(tǒng)架構如圖1所示。
圖1 基于用戶歷史行為序列的電商個性化推薦系統(tǒng)架構
數(shù) 據(jù) 層 包 括Spark Streaming、HBase、MySQL和Hive。
Spark Streaming流式計算實時處理應用層埋點獲取的用戶行為,包括正向行為(瀏覽、收藏、分享、購買)和負向行為(不喜歡、不再推薦)。Spark Streaming將用戶行為數(shù)據(jù)寫入HBase和Hive。
HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),能夠支持大量字段的隨機寫入和讀取。本系統(tǒng)采用HBase的這個特性,實現(xiàn)用戶行為的實時寫入和快速查詢。根據(jù)實時查詢到的用戶行為,在融合層實時計算用戶類目偏好權重。
MySQL是一種關系型數(shù)據(jù)庫管理系統(tǒng)。本系統(tǒng)使用MySQL存儲商品及用戶信息,這些信息用于生成相似商品、相關商品模型以及用戶類目偏好權重計算。
Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進行大數(shù)據(jù)的提取、轉化、加載。本系統(tǒng)利用Hadoop大數(shù)據(jù)存儲及并行計算能力,來存儲用戶歷史行為數(shù)據(jù),以及用這些數(shù)據(jù)來計算商品推薦效果指標,比如商品曝光點擊率CTR等。
模型層主要包含4個召回模型,分別是協(xié)同過濾模型、相似商品模型、熱度統(tǒng)計模型和相關商品模型。
協(xié)同過濾模型主要采用矩陣分解方法,從用戶和商品交互行為數(shù)據(jù)中,挖掘出相似用戶和相似商品,并得到為每個用戶推薦的商品集合。
相似商品模型通過計算商品特征向量間的內(nèi)積得到商品間的相似度,為每個商品推薦最為相似的前100個商品集合。當用戶對某個商品存在顯示的正向行為(比如瀏覽、收藏、分享等)時,根據(jù)這個商品的屬性,可為用戶推薦相似商品。
熱度統(tǒng)計模型根據(jù)平臺一段時間內(nèi)全部用戶行為,統(tǒng)計類目及商品熱度(瀏覽量、購買量),選取最熱門的100個類目,每個類目下選擇最熱門的100個商品。當一個新用戶進入平臺后,由于缺少該用戶行為,所以難以捕捉到用戶興趣,可以嘗試為其推薦熱門類目商品。
相關商品模型以商品類目和商品標題信息來計算相關商品集合。相關商品指具有一定相關性的不同商品,比如同品牌下的不同類型商品、在類似場景下使用的不同商品等。當用戶已購買了某一類商品,短期內(nèi)不可能再次購買時,推送相關商品會更加合適。
融合層包括用戶類目偏好權重計算、精排兩個部分。
用戶類目偏好權重計算根據(jù)用戶的社會統(tǒng)計學信息(性別和年齡)和用戶的歷史行為來計算用戶對各商品類目的偏好程度,以權重來表示。不推薦的類目權重為0,最優(yōu)先推薦的類目權重為2。
精排部分使用精排模型,綜合用戶對商品類目偏好權重,對從模型層的4個召回源召回候選商品,進行重新排序,選取前20個作為最終推薦結果推送給應用層展示。
應用層包括用戶行為反饋埋點、推薦商品展示以及推薦結果評價指標計算。
用戶行為反饋埋點用于記錄用戶對推薦商品的反饋行為,包括前文中提到的正向和負向行為。這些行為數(shù)據(jù)通過Spark Streaming流式計算實時寫入HBase和Hive。
推薦商品展示向用戶展示實時商品推薦結果。
推薦結果評價指標計算主要為推薦商品曝光點擊通過率CTR。CTR越高說明用戶對推薦的商品感興趣的可能性越大。
本系統(tǒng)的關鍵技術點為模型層和融合層的算法實現(xiàn),這里對模型層中的協(xié)同過濾模型、相似商品模型、相關商品模型以及融合層中的用戶類目偏好權重計算、精排進行詳細論述。
2.1.1 協(xié)同過濾模型
協(xié)同過濾是推薦系統(tǒng)最為流行的算法之一,簡單來說是利用某興趣相投、擁有共同經(jīng)驗之群體的喜好來推薦用戶感興趣的信息,個人通過合作的機制給予信息相當程度地回應(如評分)并記錄下來以達到過濾的目的,進而幫助別人篩選信息。
交替最小二乘法ALS(Alternative Least Square)算法是一種基于隱語義模型的協(xié)同過濾推薦,其核心思想是對稀疏的用戶-物品評分矩陣進行模型分解。
在這種方法中,一個U×I的用戶-物品評分矩陣R(矩陣秩為n)可近似表示為PQT,其中P是一個和基于鄰域的協(xié)同過濾類似,對用戶-物品評分矩陣分解,可看作在U×k用戶因子矩陣,Q是一個k×I物品因子矩陣。這樣矩陣P的第u行表示用戶u在向量空間k上的映射向量。同樣矩陣Q的第j行表示物品j在向量空間k上的映射向量。
這里向量空間k可以解釋成物品集合存在k個類別,每個物品屬于k個類別的評分就是矩陣Q的第j行,每個用戶對k個類別的興趣評分就是矩陣P的第u行。
用戶和商品的特征向量間的內(nèi)積可看作用戶對商品的感興趣程度,即用戶對物品的評分,那么就可以依據(jù)此評分來為用戶推薦物品。主要思路如下:
(1)針對每個用戶,計算用戶特征向量和所有商品特征向量內(nèi)積。
(2)將上一步驟的計算結果進行排序。
(3)返回分值最大的前N個商品,作為當前用戶的協(xié)同過濾推薦結果。
2.1.2 相似商品模型
ALS算法獲得商品的特征向量,而兩個商品特征向量的內(nèi)積可以看作兩個商品的相似度。
式中,p和q為商品的特征向量。
任意兩個商品間相似度都可以由公式計算得到,商品與商品之間的相似度在一段時間內(nèi)基本是固定值。
2.1.3 相關商品模型
經(jīng)過總結,相關商品的定義為標題里包含多個相同的特定詞語,且不屬于同一類目的商品。例如商品A的類目為口紅,標題為“迪奧烈艷藍金唇啞光999口紅經(jīng)典正紅唇膏”,商品B的類目為香水,標題為“迪奧小姐花漾淡香氛女士淡香水”,商品A和B不屬于同類商品,但是標題中包含“迪奧”特定詞語,可看作同品牌的相關商品。
相關商品模型計算需要進行以下步驟:
(1)獲取商品標題中的特定詞語。對所有商品標題進行中文分詞,統(tǒng)計各分詞出現(xiàn)的總次數(shù)以及在各商品類目中出現(xiàn)的次數(shù),保留出現(xiàn)總次數(shù)大于20,且最多在5個類目下出現(xiàn)的分詞作為特定分詞。
過濾掉標題中不含有特定分詞的商品。
(2)對于某個商品,在其余屬于不同類目的商品中,按照包含相同特定詞語數(shù)多少倒排,取前20個作為該商品的相關商品。
2.2.1 類目偏好權重計算
類目偏好權重計算基于用戶的社會統(tǒng)計學信息(性別和年齡)和用戶的歷史行為。
用戶的年齡、性別作為默認的過濾條件,在用戶無正向行為情況下,過濾掉不合適推薦的目錄。例如男士刮胡刀一般不適合推薦給女性用戶,對于女性用戶來說,男士刮胡刀類目權重默認為0,即不推薦展示;但是如果某位女性用戶主動瀏覽、收藏過男士刮胡刀,則男士刮胡刀類目對于該用戶權重大于0(具體值由該用戶的歷史行為序列決定),可進行展示。
基于用戶的歷史行為的實時類目權重計算過程:
(1)從HBase中實時獲取用戶最近30天的購買行為、最近15天的瀏覽、收藏、分享行為以及最近7天內(nèi)的曝光不點擊、不喜歡行為。
(2)獲取上述所有行為涉及商品的類目。
(3)對每一種行為涉及的商品類目進行打分,最近30天內(nèi)購買行為打-2分,最近15天正向行為打1分,最近7天的負向行為打-5分。
(4)對上述類目的打分進行合并計算,得到用戶對歷史行為涉及類目的偏好權重,并縮放至(0,1)之間。
(5)用戶行為未涉及的類目,如果為社會統(tǒng)計學信息過濾的類目,則權重為0,否則權重為0.5。
2.2.2精排
精排部分中的精排模型采用邏輯回歸LR(Logistic Regression)算法,計算用戶瀏覽商品的可能性。該算法是機器學習中的一種分類模型,由于算法的簡單和高效,在實際中應用非常廣泛。邏輯回歸模型的思想來源于線性回歸,為了解決線性回歸的量綱敏感問題,邏輯回歸在線性回歸的基礎上套用了一個Logistic函數(shù),從而將線性回歸的結果映射為(0,1)上的概率值。概率值越大,則該樣本為正樣本(用戶瀏覽該商品)的可能性越大。
精排模型樣本為Hive中的用戶歷史行為,正樣本為商品曝光且用戶瀏覽,負樣本為商品曝光且用戶未瀏覽,樣本特征包括用戶社會統(tǒng)計學信息、商品類目、商品價格、時間等。
獲得召回的候選商品及用戶信息之后,使用精排模型可計算用戶瀏覽商品的概率。根據(jù)用戶類目偏好權重,對用戶瀏覽商品概率進行修正。對候選商品以修正后的結果按大小倒排,取前20作為最終推薦結果展示給用戶。
這里使用用戶類目偏好權重對精排模型修正的原因是精排模型體現(xiàn)的是用戶中長期的興趣,而用戶類目偏好權重計算基于用戶短期行為,體現(xiàn)了用戶實時的興趣。
本系統(tǒng)設計開發(fā)完成之后在某移動電商平臺首頁為你推薦tab頁上線,如圖2所示。
圖2 推薦商品展示
經(jīng)過線上A/B對比測試,本推薦系統(tǒng)與人工配置推薦商品曝光點擊率指標CTR的對比結果如圖3所示。
圖3 推薦系統(tǒng)與人工配置CTR對比
本文設計并開發(fā)了電商平臺基于用戶歷史行為的個性化實時推薦系統(tǒng)。采用大數(shù)據(jù)、云計算、人工智能技術,實現(xiàn)了用戶行為的實時采集、用戶興趣偏好的實時計算以及商品推薦結果的實時更新。最終線上A/B對比測試表明,電商平臺中用戶正向和負向行為能夠明顯地表達出用戶的興趣偏好,實時獲取用戶行為,并融入推薦系統(tǒng),根據(jù)用戶歷史行為進行個性化實時推薦,能夠取得較好的推薦效果。