999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Spark 的商品推薦系統的設計與實現

2024-06-26 07:57:45胡紹方高光
電腦知識與技術 2024年14期

胡紹方 高光

摘要:隨著電商平臺的普及,商品推薦系統實現了用戶的個性化推薦,幫助用戶過濾掉無用的信息,提供更感興趣的商品,既提升了用戶體驗,也增加了平臺收益,實現了用戶和平臺的雙贏。文章歸納了推薦算法和推薦系統研究中的關鍵技術,并利用Spark技術完成推薦系統的設計。該推薦系統包括離線推薦和實時推薦兩大部分。離線推薦為用戶提供離線推薦、最近熱門商品、歷史熱門商品和相似商品的推薦結果;實時推薦根據用戶的實時評分行為給出實時的推薦結果。系統推薦結果表現良好。

關鍵詞:Spark;協同過濾算法;隱語義模型;推薦系統

中圖分類號:TP311 文獻標識碼:A

文章編號:1009-3044(2024)14-0001-03 開放科學(資源服務)標識碼(OSID) :

0 引言

在大數據時代下,各領域的數據量呈現爆炸式增長。在信息接收過程中,更多的是充斥著無用的信息,電商購物時也會遇到這個問題。面對海量的商品數據,如何高效準確地把用戶感興趣的商品推送到用戶面前,大數據推薦系統的研究顯得尤為重要。

1 相關算法基礎

1.1 推薦算法

1.1.1 基于內容的推薦算法

該算法通過提取用戶歷史購買物品的特征信息,提取商品標簽或描述文本中的關鍵詞作為特征信息,發現物品或內容的相關性,根據特征信息匹配相似內容的商品,提供推薦結果[1]。

1.1.2 基于協同過濾的推薦算法

1) 基于用戶的協同過濾推薦算法:根據用戶歷史行為數據,例如搜索、購買、評分數據,進行歸納分析,計算用戶之間的相似度矩陣,根據與用戶相似度高的其他用戶的歷史評分記錄,找出喜好程度高的物品進行推薦[2]。

2) 基于物品的協同過濾推薦算法:其主要是計算物品之間的相似度矩陣。根據用戶對商品的歷史評分找出喜好程度高的商品,找到與它相似的其他物品,向用戶推薦。

3) 基于模型的協同過濾算法:使用一些機器學習算法進行訓練,對每一個用戶建立模型,來預測用戶對物品的喜愛程度。在大數據的情況下,當用戶與商品成千上萬時,矩陣會很大,而且會有許多空白,計算機處理這樣的矩陣時,會浪費計算資源,且浪費時間,這就是稀疏矩陣的問題。

1.1.3 基于深度學習的推薦算法

ALS(Alternating Least Squares) 算法雖然解決了稀疏矩陣的問題,但仍存在“冷啟動”的問題,即當系統中用戶的數據較少時,無法準確地判斷新用戶的偏好[3]。針對這種問題,就有了基于深度學習的推薦算法。基于CNN(Convolutional Neural Network) 的深度學習方法分析文本特征進行分類,因為使用了深度學習的模型進行自動文本特征提取,相對于傳統的文本分類,文本分類的速度更快且效果更優[4]。

1.2 隱語義模型

基于隱語義模型(Latent Factor Model,LFM) 的推薦算法是一種源于基于模型的推薦算法的思想[5]。LFM是通過降維把原先的用戶物品評分矩陣分為兩個矩陣,一個表示用戶潛在關聯的維度,一個表示物品潛在關聯的維度,每一個維度對應著一個隱性特征,這種隱性特征難以清楚地解釋,但可以作為一種用戶偏好和物品特征的隱含語義去描述。LFM矩陣分解示意圖如圖1所示。

假設一個用戶物品評分的m×n矩陣為R,基于隱語義矩陣的分解是要找出兩個矩陣的乘積R?可以和矩陣R來近似,如公式(1) 所示:

上式中,Puk表示用戶對隱含因子k 的關聯度,Qki表示物品對隱含因子k 的關聯度。為了更好地理解,以用戶user1為例,user1對隱含因子k1、k2、k3的關聯度用P11、P12、P13來表示,物品item1對隱含因子k1、k2、k3的關聯度用Q11、Q12、Q13來表示。user1對item1的偏好值如公式(2) 所示:

隱語義模型是根據這種聯系分析建立用戶偏好特征模型,形成推薦結果[6]。

2 系統體系設計

2.1 系統業務設計

基于Spark的商品推薦系統包含了離線部分和實時部分,離線推薦部分包括統計推薦、基于內容的推薦和基于物品的協同過濾推薦,實時推薦部分則使用基于模型的推薦算法。該系統實現了前端應用、后臺服務、算法設計實現和平臺部署的業務。

用戶可視化部分使用AngularJS2進行實現,通過可視化為用戶提供系統的前端交互和數據展示。綜合業務服務部分主要通過Spring進行構建,負責從數據庫加載或寫入數據,也負責埋點對評分數據采集日志,為離線推薦和實時推薦提供數據支持。系統的業務流程圖如圖2所示。

2.2 系統數據設計

2.2.1 系統初始化部分

通過Spark SQL 將數據集數據加載到MongoDB 中。數據來自經過修改的真實中文亞馬遜電商數據集,該數據集分為商品數據表和評分數據表,分別包含1 000個商品和44 852條評分記錄。每個商品包含商品ID、商品名稱、商品所屬類別、商品圖片的URL 和商品的用戶評價標簽,每條評分記錄包含用戶ID、商品ID、商品評分分值和評分時間。

2.2.2 離線部分

離線統計服務從數據庫加載數據,統計商品的評分數據,根據商品的評分個數多少,結果可作為歷史熱門推薦結果;按時間順序統計商品的評分個數,結果作為最近熱門的商品推薦[7]。離線推薦服務從數據庫中加載數據,使用基于ALS的隱語義模型協同過濾推薦算法,獲得用戶的離線推薦結果,同時也計算出商品相似度矩陣,可以為實時推薦做準備。

2.2.3 實時部分

綜合業務服務會埋點記錄下用戶對商品的打分數據,存入日志文件。Flume監聽日志文件,將日志信息更新到Kafka隊列,Kafka Stream程序會對所收集的日志信息進行過濾處理,將格式化后的數據流發送給另一個Kafka 隊列。Spark Streaming 通過監聽這個Kafka隊列,將收集的評分數據流存儲在Redis中,并進行實時推薦算法的計算,將得到的實時推薦結果合并到數據庫中原有的推薦結果。

2.2.4 綜合業務系統部分

將數據庫中推薦結果進行展示。將用戶在頁面上的操作記錄進數據庫中,會將數據傳輸到Redis緩存[8],同時也將埋點采集的評分數據傳輸到Tomcat的日志中,為實時推薦部分服務。

3 系統實現

3.1 首頁推薦

登錄進入系統主界面中的4個推薦部分。頂欄中有快速鏈接可以進行首頁以及各個推薦結果頁面的跳轉,右上方還可進行賬號的退出操作。首頁主界面有實時推薦、離線推薦、最近熱門商品和好物推薦4個模塊。

實時推薦:首先連接數據庫,加載商品相似度矩陣,創建Kafka和Kafka Stream,對Kafka Stream進行處理,產生評分數據流,經過Spark Streaming的處理,從Redis中取出用戶最近的n次評分,計算每個備選商品的推薦優先級,最后將數據寫回數據庫。

離線推薦:首先連接數據庫,加載商品評分表,使用MLlib的ALS算法訓練隱語義模型,獲取預測評分矩陣,根據該矩陣得到用戶的推薦列表,利用商品的特征向量,兩兩商品計算余弦相似度得出商品的相似度矩陣,最后將數據寫回數據庫。

最近熱門商品和好物推薦:連接數據庫,加載商品評分表,Spark SQL做不同的統計,統計評分個數后降序排序可得到好物推薦的結果,將日期格式化后,先加上一個按日期的降序排序后再排序可得到最近熱門商品的結果,統計商品的評分后計算商品的平均分,將商品平均分表寫回數據庫。

3.2 商品相似推薦

商品詳情頁面的主界面上有兩個部分,第一部分是該商品的相關信息。用戶可以在這里給商品進行打分,表示用戶對該商品的喜愛程度。商品的標簽是根據大部分買家的評價所產生的,代表著這個商品的特征屬性,這些標簽可以作為基于內容推薦中商品的內容特征向量。第二部分是商品相似推薦,分為兩塊,用于展示該商品協同過濾推薦結果和內容推薦結果,實現流程如下:

商品評分:在Spring MVC的Service層中設計評分方法來給Controller響應前端發送來的商品評分請求,Service層會連接MongoDB,將評分數據(用戶ID、商品ID、評分和時間戳)保存或更新到MongoDB和Redis數據庫中。在響應評分請求后,會將該記錄寫入日志文件中。

基于內容的相似推薦:先用空格將標簽進行分詞,定義一個HashingTF工具計算詞匯頻次,定義一個IDF計算TF-IDF,訓練出IDF模型,得出特征向量,將數據進行轉換,兩兩商品配對計算余弦相似度得出商品的相似度矩陣,計算出推薦列表,結果寫回數據庫中。

基于物品的協同過濾推薦:首先統計商品的評分個數,將評分個數通過商品ID連接到原來的評分表上,將評分表按照用戶ID進行兩兩配對,統計兩個商品被同一個用戶評分的次數,對兩個商品做group by,統計用戶ID的數量,即對兩個商品同時評分的人數。之后計算商品的相似度矩陣,得到推薦列表,將結果寫回數據庫。

結果分析:可以直觀地看到基于內容的推薦結果數量較少,基于物品的協同過濾推薦的推薦結果較多。這是因為商品的數據集規模較小,在計算標簽詞匯的頻次時,特征數量會比較少,所以在進行商品標簽的特征向量提取后,進行商品推薦時,對商品的特征向量的相似判斷上要求會比較苛刻;而基于物品的協同過濾推薦,推薦結果依據的是購買商品的用戶群體,當兩個用戶群體擁有比較高的相似度時,兩個商品的相似度也可能會比較高,根據這個思路進行推薦,所以基于物品的協同過濾推薦結果數量會比較多。

4 總結

推薦系統是當下熱門的一個研究方向,推薦系統的研究從2012年開始起步,十多年間,推薦系統逐漸完善、豐富、多樣化。對電商企業來說,一個良好的推薦系統能為電商企業和用戶帶來切實的收益,企業能增加銷售額,用戶能獲得愉快的購物體驗。基于Spark的商品推薦系統對電商平臺上推薦系統的應用進行了模擬,通過部署在Tomcat的綜合業務服務,連接前端和后臺,分別進行了離線推薦和實時推薦,滿足電商平臺不同需求的商品推薦。

參考文獻:

[1] 馬小添.基于Hadoop的推薦系統設計與實現[D].成都:電子科技大學,2020.

[2] 焦健.基于Spark的協同過濾推薦算法研究[J].電腦編程技巧與維護,2020(3):40-41,73.

[3] 張明敏.基于Spark平臺的協同過濾推薦算法的研究與實現[D].南京:南京理工大學,2015.

[4] 劉建國,周濤,郭強,等.個性化推薦系統評價方法綜述[J].復雜系統與復雜性科學,2009,6(3):1-10.

[5] SAVESKI M,MANTRACH A.Item cold-start recommendations:learning local collective embeddings[C]//Proceedings of the 8th ACM Conference on Recommender systems.Foster City,Silicon Valley California USA.ACM,2014.

[6] KALCHBRENNER N, GREFENSTETTE E, BLUNSOM P. A convolutional neural network for modelling sentences[J]. arXiv preprint arXiv:1404.2188,2014.

[7] 徐啟東.基于隱語義模型的個性化推薦系統研究[D].廣州:廣東工業大學,2019.

[8] 薛琳蘭.基于隱語義模型的電商推薦系統的設計與實現[J].數字通信世界,2020(7):99,229.

【通聯編輯:謝媛媛】

基金項目:周口師范學院應用型課程項目(項目編號:YYKC-2024027) ;周口師范學院課程思政教育教學改革研究項目

主站蜘蛛池模板: 无码内射中文字幕岛国片| 久久国产精品娇妻素人| 无码专区第一页| 69免费在线视频| 亚洲日本www| 草草线在成年免费视频2| 国产视频a| 亚洲开心婷婷中文字幕| 精品少妇人妻无码久久| 曰韩人妻一区二区三区| 有专无码视频| 国产精品人莉莉成在线播放| 免费观看亚洲人成网站| a欧美在线| 亚洲精品无码抽插日韩| 找国产毛片看| 国产免费羞羞视频| 好久久免费视频高清| 国产人免费人成免费视频| 精品伊人久久久香线蕉| 国产欧美日韩综合一区在线播放| 成AV人片一区二区三区久久| 九色视频最新网址| 国产不卡国语在线| 久久无码av一区二区三区| 美女被操91视频| 国产亚洲美日韩AV中文字幕无码成人| 2021国产乱人伦在线播放| 天天操精品| 在线日韩一区二区| 日本成人精品视频| 国产青青操| 99久久人妻精品免费二区| 亚洲永久免费网站| 久久婷婷色综合老司机| 奇米影视狠狠精品7777| 亚洲第一中文字幕| 久久国产精品麻豆系列| 国产精品林美惠子在线播放| 一级爆乳无码av| 99久久国产综合精品2023| 欧美区国产区| 亚洲黄色视频在线观看一区| 亚洲欧美日韩另类| 国产成年女人特黄特色毛片免| h视频在线播放| 国产精品自在自线免费观看| 亚洲福利片无码最新在线播放| 美女被狂躁www在线观看| 成人午夜精品一级毛片| 国产二级毛片| 人妻中文字幕无码久久一区| 欧美成人区| 欧美亚洲另类在线观看| 国产 在线视频无码| 四虎国产成人免费观看| 欧美国产日韩在线观看| 亚洲国产精品无码久久一线| 日韩一区精品视频一区二区| 欧美日韩中文国产va另类| 国产成人亚洲日韩欧美电影| 久久精品无码一区二区日韩免费| 国产性精品| 男女精品视频| 国产精品尤物在线| 1级黄色毛片| 二级特黄绝大片免费视频大片| 欧美一级视频免费| 欧美成人一区午夜福利在线| 国产乱人乱偷精品视频a人人澡| 日本精品视频| 欧美人与动牲交a欧美精品| 18禁黄无遮挡网站| 综合人妻久久一区二区精品 | 性激烈欧美三级在线播放| 亚洲一区二区三区国产精华液| 色综合手机在线| av色爱 天堂网| 手机精品视频在线观看免费| 亚洲一区二区精品无码久久久| 亚洲无线视频| 米奇精品一区二区三区|