魏一丁
[摘 要]利用8天左右的淘寶用戶數(shù)據(jù),基于Keras框架完成電商推薦系統(tǒng)排名部分構(gòu)建。該系統(tǒng)采用了多層深度學習框架,使用用戶ID、商品ID、類目ID、用戶行為類型與行為時間作為隱藏特征來源輸入,映射成高密度低維向量,利用ReLU與Softmax等激活函數(shù)生成推薦模型,預測誤差率0.21。
[關鍵詞]隱藏特征;推薦系統(tǒng);排名;深度學習;Keras
doi:10.3969/j.issn.1673 - 0194.2020.12.073
[中圖分類號]TP391.3[文獻標識碼]A[文章編號]1673-0194(2020)12-0-04
1 ? ? 基于多維隱藏特征電商推薦系統(tǒng)的相關研究
對于在線電商平臺來說,主要目的是最高效率地撮合交易,高性能的推薦系統(tǒng)不可或缺,可以讓買賣雙方在最短時間內(nèi)找到對方,并實現(xiàn)交易。有關推薦系統(tǒng)的算法包括傳統(tǒng)推薦算法和當前基于深度學習的算法。當前有3類基于內(nèi)容、協(xié)同過濾和混合的推薦方法,其中協(xié)同過濾推薦方法由GoldBerg等人提出,基于項目或基于用戶,通過矩陣的點乘積計算得分實現(xiàn)。目前,推薦算法引入了深度學習算法,大致說來:基于深度神經(jīng)網(wǎng)絡的DNN適用于隱藏多層的數(shù)據(jù)維度,卷積神經(jīng)網(wǎng)絡CNN訓練參數(shù)較少,圖卷積GNN適合推薦質(zhì)量要求較高以及關注序列信息的循環(huán)神經(jīng)網(wǎng)絡RNN與LSTM等,每種方法都有不同的側(cè)重場景。
推薦系統(tǒng)一般分為召回階段和排序階段。在召回時,快速使用簡單維度的數(shù)據(jù)將百萬級用戶商品等數(shù)據(jù)過濾成百級。在排序期,充分利用多維度的數(shù)據(jù)來精細化篩選,輸出個、十位數(shù)級。在上述兩個階段中,核心在于嵌入(Embedding)生成,旨在將高維數(shù)據(jù)映射到低維數(shù)據(jù)域,降低了計算復雜度。當前的嵌入方法包括:LLE、Laplacian Eigenmaps、Graph、HOPE的因式分解型,DeepWalk、node2Vec的隨機行走型,還有GCN等深度學習型。其中,每個社交媒體根據(jù)自身數(shù)據(jù)分布情況和特點選取數(shù)據(jù)維度生成嵌入。目前,成熟的社交媒體平臺采用的架構(gòu)基本一致,只是在算法選擇、網(wǎng)絡層設計有所不同。Youtube采用前述,全部使用DNN方式,在召回時不再使用LSH,而是使用Spill-tree這種改進版的鄰域搜索方法。Instagram采用的PinSage架構(gòu),一種基于GNN的方式。衡量推薦系統(tǒng)的指標包括A/B測試、精準率和響應時間等,而目前各類開源架構(gòu)、開放Python功能包,在所考慮的各項指標中基本能夠滿足實際方面的需求。比較成熟的是Keras框架,基本囊括了大多數(shù)算法和網(wǎng)絡層。此外,一些新興的算法,也可以通過引包方式實現(xiàn)。
相對于評論文字、星級評價這些顯性的特征,用戶在線狀態(tài)、在線時長、觀看次數(shù)、點擊數(shù)、購買頻次、加購、收藏數(shù)則是隱性特征,需要一種可量度的方式來構(gòu)建用戶與商品的關聯(lián)。本研究側(cè)重隱藏特征,從用戶ID、商品ID、行為類型與行為時間構(gòu)建嵌入Embedding,通過Keras的DNN,實現(xiàn)生成推薦。
2 ? ? 研究方法及過程
本文選取基于淘寶平臺2017年11月25日01:21:10-2017年12月3日17:38:11的數(shù)據(jù),合計1億多條。將原始數(shù)據(jù)清洗,并按照2∶8的比例隨機分成訓練集、測試集(圖1)。
假設:研究側(cè)重于精細化排序部分,簡單地將億條數(shù)據(jù)按用戶ID大于100的條目進行刪除,得到1萬多條數(shù)據(jù),近似于召回的結(jié)果。
沿用Keras的Embedding方法,使用“ReLU”“Softmax”函數(shù)進行激活,編譯器為“adam”,選取“mean_squared_error”指標評估。嵌入映射部分,選用用戶ID、商品ID、行為類型、時間戳等作為隱藏多維數(shù)據(jù)。其中,行為類型包括【展現(xiàn)-1】、【加購-2】、【收藏-3】、【購買-4】。
特征工程:給定某個用戶ID,能夠準確預測與之相近的商品ID?;诖蚍诌壿嫞擃A測假設展現(xiàn)對應1分,加購對應2分,收藏對應3分,購買對應4分,分數(shù)越高則越是期望推薦的商品。于是將數(shù)據(jù)集做一個處理,分別用評分1~4代替原有行為類型,嵌入部分如圖1所示。其中,用戶ID等數(shù)據(jù)分別表示嵌入,經(jīng)過Flatten之后,合并輸入第一層。ReLU分別有5層,從1 028位到32位,最后通過分類函數(shù)Softmax輸出(圖2)。
這4類輸入?yún)?shù)均具有一對多的關系,用戶可以連接任何一個商品,商品可以連接任何一個行為類型,行為類型也可以連接任何一個時間戳(圖3)。但實際情況是,某些連接出現(xiàn)頻次更高,可以在任何兩個隱藏特征層之間,越粗的線條,代表頻次高;用權重代表,即模型在學習過程中更新的權重系數(shù),可以代表某個具體特征的權重,圖4就代表了商品的權重系數(shù)。
將商品ID嵌入item_Embedding用PCA方式表示(圖5),圖5a的輸入包括所有數(shù)據(jù)維度,圖5b的輸入只有用戶ID與商品ID。橫軸占較大比例。
其學習過程曲線,橫軸代表迭代次數(shù),縱軸代表誤差率,可以看出其逐漸達到最小誤差點,最終的誤差率維持在0.17(圖6)。通過減少輸入?yún)?shù),只保留用戶ID與商品ID,誤差曲線類似。
將得到的模型存儲,并用驗證集校驗,發(fā)現(xiàn)其預測誤差率為21%,即準確率79%。模型參數(shù)(圖7)通過對比其他參數(shù)設置可以發(fā)現(xiàn):學習深度越深越廣,誤差率越小。有Softmax激活函數(shù)比沒有的情況誤差率減小10%。
3 ? ? 結(jié) 語
越多的數(shù)據(jù)維度參與學習就會得到越豐富的特征向量,建立的預測模型越精準。Keras框架可以實現(xiàn)快速設計模型,通過使用自身的Embedding方法,可以輕松實現(xiàn)高維空間向低維空間的映射。將用戶行為類型設置為不同的等級,按照4個數(shù)據(jù)維度的網(wǎng)絡關系(圖3)進行多次迭代,發(fā)現(xiàn)各個節(jié)點的權重系數(shù),最終形成網(wǎng)絡模型,可以進行推薦。電商推薦系統(tǒng)是提升精準度的關鍵環(huán)節(jié),可以用于召回與排序,有很多的推薦算法可以實現(xiàn),但是在具體實踐中,需要考慮用戶的屬性與數(shù)據(jù)維度。依據(jù)用戶評論文字和評分會造成稀疏矩陣和冷啟動問題,這里不進一步展開。因此這就意味著賣家需要靠評價提高自身獲取流量的權重。這往往帶來虛假交易等現(xiàn)象,浪費了平臺很多資源,甚至花費更高的成本去監(jiān)管。隨著推薦系統(tǒng)的成熟,快速匹配相似度高的交易已經(jīng)成為趨勢。電商平臺將隱藏維度的數(shù)據(jù)引入推薦系統(tǒng)中,模型會深刻地描繪用戶畫像。
主要參考文獻
[1]周萬珍,曹迪,許云峰,等.推薦系統(tǒng)研究綜述[J].河北科技大學學報,2020(1):76-87.
[2]David Goldberg,David.Nichols,Brian M,et al.Using Collaborative Filtering to Weave an Information Tapestey[J].Communications of the ACM,1992,35(12):61-70.
[3]Goyal P,F(xiàn)errara E.Graph Embedding Techniques,Applications,and Performance:A Survey[J].Knowledge Based Systems,2018,151:78-94.