胡 迪
(成都錦城學院,四川 成都 610000)
在互聯網和電子商務的迅速發展下,電商平臺已經成為人們主要的購物方式之一[1-2]。然而,隨著電商平臺上商品種類的不斷增加和用戶需求的多樣化,用戶往往在面對大量商品時遇到信息過載的問題,難以快速找到符合個人興趣和需求的商品。智能商品推薦系統作為一種幫助用戶在眾多商品中發現個性化推薦的工具變得越來越重要[3]。在上述問題中,傳統的商品推薦方法基于人工規則和經驗,存在推薦效果不佳、無法滿足用戶個性化需求等問題。機器學習技術的快速發展促使基于機器學習的智能商品推薦系統成為研究的熱點和應用的趨勢。基于機器學習的智能商品推薦系統通過分析用戶的歷史行為、興趣偏好、社交網絡等信息,利用機器學習算法挖掘隱藏在海量數據中的潛在關聯,提供更準確、個性化的商品推薦服務[4-5]。
為了解決上述問題,本文設計了基于XGBoost分類器[6-7]的商品推薦系統。該系統采用基于內容的過濾方法,包括數據庫、XGBoost分類器、總體預測、預測和推薦、推薦商品5個組件的協調工作。實驗通過處理和分析某在線購物平臺的10 000條數據集,展示系統在識別率和計算時間方面的良好性能。本文為電商平臺的商品推薦提供了一種有效的解決方案,未來的研究可進一步優化系統性能,提高推薦的準確性和用戶體驗。
推薦系統是一種用于過濾信息并預測用戶興趣和物品評價的平臺,在許多應用場景中得到廣泛應用,如淘寶、拼多多、亞馬遜等電商平臺。推薦系統通常包含不同的組成部分,其中基于內容的過濾和協同過濾是兩種常見的方法。產品推薦系統旨在為用戶生成各種項目和信息的推薦意見,從而使購買過程更加便捷和舒適。創建產品推薦系統的方法主要包括基于用戶-產品關系、用戶-用戶關系和產品-產品關系3種方式。用戶與產品之間的關系基于個人對產品的偏好,而用戶-用戶關系則是基于相同情境下的用戶,例如相同年齡、相同興趣等;產品-產品關系則是基于相似的補充產品,如鋼筆和鉛筆之間的關系。
在推薦系統中,機器學習技術,特別是基于機器學習的推薦技術,被廣泛應用于數據過濾和預測過程中。本文采用的是基于內容的過濾和協同過濾相結合的方法。其中,基于內容的過濾是基礎,該方法在提取用戶指標,例如用戶點擊次數、購買的商品、訪問的頁面、在網站上經過的時間、產品類別等。根據這些信息,制作客戶檔案,并使用這些信息推薦該區域的商品。協同過濾基于用戶行為和優先級提取信息,并預測用戶與其他用戶之間的相似性。例如,如果用戶1點草莓,用戶2也點草莓,那么系統會識別出這些用戶有相同的選擇,并向他們推薦一些類似的商品。
本文設計的推薦系統根據用戶之前的活動和點擊信息提供基于內容的過濾推薦項。圖 1 顯示了包含5個部分的系統架構,分別為數據庫、XGBoost分類器、總體預測、預測和推薦、推薦商品。
數據庫用于存儲用戶之前的活動和點擊信息,例如用戶的歷史購買記錄、瀏覽記錄、評價等。這些信息作為推薦系統的輸入數據,用于構建用戶的興趣模型。XGBoost分類器是系統的關鍵部分,用于構建基于內容的推薦模型。它通過訓練一個梯度提升樹模型(XGBoost模型),基于用戶之前的活動和點擊信息進行特征提取和模型訓練,從而得到一個強大的分類器,用于預測用戶對不同商品的興趣。總體預測部分使用XGBoost分類器對所有商品進行預測,得到每個商品的興趣度得分。這些興趣度得分用于后續的推薦過程。在預測和推薦部分,系統根據用戶的歷史活動和點擊信息,通過XGBoost分類器對用戶對所有商品的興趣度進行預測,并選擇得分較高的商品作為候選推薦項。這些候選推薦項會進一步經過過濾和排序的處理,從而得到最終的推薦商品列表。推薦商品部分將經過過濾和排序的推薦商品列表呈現給用戶,用戶可以根據自己的興趣和需求選擇并進行購買。
這5個部分構成了一個完整的基于內容的推薦系統總體架構。用戶的歷史活動和點擊信息存儲在數據庫中,XGBoost分類器根據這些信息進行模型訓練,并通過總體預測對所有商品進行興趣度預測。預測和推薦部分根據預測的興趣度得分對商品進行過濾和排序,從而得到最終的推薦商品列表,呈現給用戶進行選擇和購買。

圖1 系統總體架構
推薦系統中的算法體系結構流程如圖2所示,第一部分為數據預處理,第二部分為預測過程,最后部分為產品推薦結果。

圖2 推薦系統中的算法體系結構
XGBoost分類器是系統的關鍵算法。該算法是一種基于梯度提升樹的機器學習模型,用于解決分類和回歸問題。
XGBoost通過集成多個弱學習器(本文采用決策樹[8-10])來構建一個強大的分類模型。每個弱學習器都是在之前弱學習器的基礎上進行訓練,通過對之前弱學習器預測錯誤的樣本進行更加關注,從而不斷優化模型的預測性能。另外,XGBoost采用了梯度提升的策略,通過迭代的方式不斷優化模型的預測性能。在每一輪迭代中,XGBoost計算損失函數的負梯度(即殘差),然后將負梯度作為新的目標,構建一個新的弱學習器,將其加入模型。這樣,模型在每一輪迭代中都會不斷提升,從而得到一個強大的模型。XGBoost還引入了正則化項,包括了L1和L2正則化,用于防止過擬合。正則化項在目標函數中添加了一個懲罰項,限制模型的復雜度,從而提高模型的泛化能力。
XGBoost允許用戶自定義損失函數,從而可以靈活地適應不同的問題和場景。用戶可以根據問題的特點定義自己的損失函數,并在訓練過程中使用該損失函數進行優化。XGBoost的目標函數包括了目標函數和損失函數,分別為:
Obj(Θ)=L(Θ)+Ω(Θ)
(1)
(2)

(1)初始化:首先,初始化模型的預測值,通常可以使用均值作為初始值。
(2)計算殘差:通過計算預測值與實際標簽之間的殘差,得到當前模型的預測誤差。
(3)構建弱學習器:使用弱學習器(通常是決策樹)對預測誤差進行建模,將其添加到模型中。
(4)更新模型:通過梯度下降法對模型的預測值進行更新,從而減少預測誤差。
(5)迭代優化:重復上述步驟,直到達到指定的迭代次數或者預定的停止條件。
(6)集成模型:最終將所有弱學習器集成,得到最終的XGBoost分類器。
實驗設置如表1所示。本系統的所有實驗和結果均在搭載Intel(R) Core(TM) i7-8700 CPU @3.20 GHz處理器、32 GB內存的計算機上進行。推薦系統采用了XGBoost機器學習算法。同時,本系統所使用的庫和框架為Jupyter notebooks。在系統設計中,使用了WinPython-3.6.2作為編程語言。本研究中所使用的數據集來自某在線購物商城的記錄,具體信息如表1所示。數據集總共包含10 000條記錄。每個用戶的最大點擊信息數為12次,最小點擊數為4次,因為少于4次點擊的信息無法提供足夠的推薦依據。本文將80%的數據作為訓練集,20%的數據作為測試集。

表1 識別率和計算時間
為了剔除少于4次點擊的信息,本實驗對驗證系統的識別率和計算時間進行了驗證,表1展示了本系統10次實驗的測試結果。最高的識別率達到了87%,而最短的計算時間為0.124 8 s。
經過預測處理后,系統會推薦5個最接近預測商品的商品。表2展示了推薦結果。第一列顯示了預測的值,第二列顯示了文本值,第三列顯示了推薦的商品。通過將推薦的商品與用戶的點擊列表進行對比,可以判斷推薦的商品是否出現在用戶的點擊列表中。為了在推薦系統中進行處理,本文首先使用了標簽編碼的過程,將收集到的數據進行編碼,使其適用于推薦系統的使用。

表2 5個最近的推薦結果
在向用戶推薦項目后,為了進一步處理標簽編碼項目以轉換為真實的商品編號。表3顯示了將項目編號轉換為實際項目編號的結果。

表3 將推薦結果轉換為真實商品結果
推薦系統作為一種信息過濾和用戶興趣預測的平臺,在現代電商平臺得到了廣泛應用。然而,隨著電商平臺上商品種類的增多和用戶需求的多樣化,用戶面臨信息過載的問題,難以快速找到符合個人興趣和需求的商品。為解決這一問題,本文設計了一個基于XGBoost分類器的商品推薦系統。系統通過數據庫、XGBoost分類器、總體預測、預測和推薦、推薦商品5個部分的協調工作,實現了基于內容的過濾推薦。經過測試,實驗結果表明該系統的識別率最高可達87%,計算時間最小為0.124 8秒。在商品推薦方面,系統通過預測過程后,推薦5個最接近預測商品的商品,并通過標簽編碼的方式處理數據,使其適用于推薦系統。通過與測試值的對比,可以判斷推薦的商品是否出現在用戶的點擊列表中,從而為用戶提供更為準確的推薦。未來可以進一步優化系統性能,提高推薦準確性和用戶體驗。