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

基于Spark和微服務架構的電影推薦系統設計與實現

2021-04-13 08:46:36史愛武李險貴
電腦知識與技術 2021年5期

史愛武 李險貴

摘要:推薦系統廣泛應用于人們生活的多個領域,日常生活中常見的有電商、電影、音樂和新聞推薦等。推薦系統根據用戶的歷史偏好主動推送相關的信息,節約了用戶的時間,極大地提升了用戶的體驗。隨著大數據技術的發展成熟,數據處理的速度變得更快。該文選取MovieLens電影數據集,并基于大數據分布式處理框架Spark和交替最小二乘法ALS等算法搭建數據處理平臺,然后再結合Spring Boot和Spring Cloud等搭建電影后臺服務,實現一個基于微服務架構的電影推薦系統。

關鍵詞:推薦系統;Spark;ALS;微服務架構

Abstract: Recommendation system is widely used in many fields of people's life, such as e-commerce, movies, music and news recommendation and so on. Recommendation system actively pushes relevant information according to the user's historical preference, which saves the user's time and greatly improves the user's experience. With the development and maturity of big data technology, the speed of data processing becomes faster. This paper selects movielens movie data set, builds a data processing platform based on big data distributed processing framework Spark and alternating least squares algorithm ALS, and then builds movie background service combined with Spring Boot and Spring Cloud to realize a movie recommendation system based on microservice architecture.

Key words: recommendation system; Spark; ALS; microservice architecture

1 背景

大數據時代用戶面臨信息過載的問題,為了從海量數據中找到用戶可能感興趣的信息,由此產生了推薦系統。日常生活中常見的有電商、電影、音樂和新聞推薦等[1]。隨著大數據技術如Spark、Flink等的發展成熟,其計算速度更快,可以更好地為廣大群眾服務。本文將基于Spark和微服務架構設計并實現一個簡易的電影推薦系統。

2 相關技術

2.1 推薦策略

推薦系統的實質是對用戶或者物品的本身屬性即基本信息,或者是對用戶的行為數據進行分析,通過特定的算法模型從海量數據中找到相關性,從而產生推薦的結果。常見的推薦策略有基于內容的推薦、協同過濾推薦和混合推薦等[2]。

基于內容的推薦,即根據物品自身的屬性特征計算物品間的相關性或相似性,再基于用戶的歷史偏好記錄為用戶推薦相似的物品。基于協同過濾的推薦,即根據用戶評分矩陣,用戶和物品協同作戰。協同過濾推薦可分為基于內存的協同過濾Memory-based CF和基于模型的協同過濾Model-based CF。Memory-based 可分為基于用戶的協同過濾User-based CF和基于物品的協同過濾Item-based CF[3]。混合推薦,即多種算法按照不同的策略進行混合后再推薦,常見的混合推薦有加權、切換、分區、分層、瀑布式混合、特征組合和特征增強等[4]。

2.2 Spark介紹

Spark作為大數據并行計算框架,由于支持內存計算,減少了IO開銷,帶來了更高的迭代計算效率,同時Spark也支持批處理和實時流數據處理等。Spark包含的組件主要有Spark Core、Spark SQL、Spark Streaming、Structured Streaming、MLlib和GraphX等[5]。

2.3 微服務架構

微服務架構將單一應用細分為多個微服務,可以獨立開發和部署每個微服務,便于開發和維護。多個微服務之間互相協調、互相配合。常見的微服務架構有Spring Cloud和Dubbo等等。微服務架構體系包含服務注冊與發現、服務調用、服務降級、服務網關、服務配置和服務總線等[6],對應的組件如表1所示。

3 系統設計

3.1 架構設計

本系統采用微服務架構,并基于前后端分離設計理念。系統架構設計如下圖1,首先選取MovieLens電影數據集ml-1m,并基于Spark進行數據處理,將結果存入到MongoDB中;然后基于Spring Boot搭建電影后臺微服務,同時將服務注冊到Nacos中;前端基于Vue等進行開發,通過服務網關Gateway訪問不同的服務,并由Feign調用具體的微服務[7]。

3.2 功能模塊

本系統主要分為數據處理部分和電影后臺微服務部分。如圖2其中數據處理主要包括離線統計模塊和離線推薦模塊,離線統計模塊包含最新電影推薦和熱門電影推薦功能;離線推薦模塊包含基于交替最小二乘法ALS的協同過濾推薦、基于物品的協同過濾推薦和基于內容的推薦;電影后臺服務包含電影模塊和用戶模塊等。

4 系統實現

4.1 開發工具和開發環境

實現一個簡易的基于微服務架構的電影推薦系統,選取IntelliJ IDEA和Visual Studio Code為開發工具,開發環境如下表2。

4.2 熱門電影推薦實現

熱門電影推薦考慮最近每周內每部電影的評分次數,評分次數越多說明該電影的熱度越高。具體流程如下。

1)加載數據集。

2)統計最近每周電影的評分次數并進行降序排序。

3)將結果存入到MongoDB中。

4.3 基于ALS的協同過濾推薦實現

交替最小二乘法ALS其實是將一個稀疏的用戶評分矩陣通過降維得到用戶隱特征矩陣和電影隱特征矩陣的過程[8],推薦流程如下。

1)加載數據集并隨機切分為訓練集和測試集。

2)多次調整ALS的參數如迭代次數iteration、隱特征個數k和正則化系數lambda等對模型進行訓練。

3)計算每種參數組合下測試集預測評分與實際評分之間的均方根誤差RMSE。

4)選取RMSE最小時的參數組合作為ALS的最優參數組合。

5)通過訓練ALS模型得到電影隱特征矩陣。

6)計算兩兩電影隱特征向量的余弦相似度并按照相似度進行降序排序。

7)將結果存入到MongoDB中。

4.4 基于物品的協同過濾推薦實現

基于物品的協同過濾是根據用戶的行為數據如評分、點擊、收藏等計算出兩物品間的相似度,即兩物品間有相同的受眾,表示兩物品間有相關性。以用戶評分記錄為例,具體流程如下。

1)加載數據集。

2)統計每部電影的評分個數,并根據電影ID進行組合。

3)統計兩兩電影被同一用戶評過分的次數。

4)計算兩兩電影間的同現相似度并按相似度降序排序。

5)將結果存入到MongoDB中。

4.5 電影后臺服務實現

電影后臺服務基于Spring Boot和Spring Cloud等實現,主要功能是讀取MongoDB中的數據,并對外提供用戶模塊和電影模塊的訪問接口。為了讓每種算法推薦的效果更加明顯,基于Vue搭建前端項目,最終前端頁面的推薦效果如圖3,其中上半部分展示電影的詳細信息,中間部分展示各種推薦算法推薦的電影ID列表和是否有交集及交集個數,下半部分展示不同算法推薦的電影列表及相似度。

5 結束語

通過設計并實現一個簡易的電影推薦系統,對Spark進行數據處理和微服務架構等有更深入的了解,同時也了解了不同推薦算法的具體流程,本系統暫時包含最新電影推薦、熱門電影推薦、基于ALS的協同過濾推薦、基于物品的協同過濾推薦、基于內容的推薦、用戶注冊登錄和電影展示等功能。未來的研究工作將結合kmeans和深度學習等模型進行推薦,提高推薦的多樣性和準確率,同時也可考慮進行實時推薦。

參考文獻:

[1] 項亮.推薦系統實踐[M].北京:人民郵電出版社,2012.

[2] Zhang S,Yao L N,Sun A X,et al.Deep learning based recommender system:a survey and new perspectives[EB/OL].[2020-03-02].https://arxiv.org/abs/1707.07435.

[3] Zhang Y F,Chen X.Explainable recommendation:a survey and new perspectives[J].Foundations and Trends? in Information Retrieval,2020,14(1):1-101.

[4] 張志威.個性化推薦算法研究綜述[J].信息與電腦(理論版),2018(17):27-29.

[5] 林子雨.大數據技術原理與應用:概念、存儲、處理、分析與應用[M].2版.北京:人民郵電出版社,2017.

[6] 馮志勇,徐硯偉,薛霄,等.微服務技術發展的現狀與展望[J].計算機研究與發展,2020,57(5):1103-1122.

[7] 熊其昌.基于微服務架構的學習系統設計與實現[D].武漢:華中師范大學,2020.

[8] 侯敬儒,吳晟,李英娜.基于Spark的并行ALS協同過濾算法研究[J].計算機與數字工程,2017,45(11):2197-2201.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 欧美日韩成人在线观看| 99久久国产自偷自偷免费一区| 亚洲成人免费在线| 欧美成人精品在线| 国产成人精品在线| 欧美亚洲日韩不卡在线在线观看| 久久久黄色片| 操美女免费网站| 亚洲日韩Av中文字幕无码| 岛国精品一区免费视频在线观看| 久久综合成人| 欧美日本在线播放| 22sihu国产精品视频影视资讯| 亚洲综合香蕉| 欧美成人在线免费| 亚洲欧美成人网| 五月激情婷婷综合| 97国产一区二区精品久久呦| 91精品免费久久久| 欧美一区二区福利视频| 不卡国产视频第一页| 亚洲三级成人| 国产精品主播| 精品少妇人妻无码久久| 国产系列在线| 中文字幕无码中文字幕有码在线| 国产精品免费入口视频| 日韩国产亚洲一区二区在线观看| 亚洲美女一区| 日韩成人在线网站| 国产在线精品香蕉麻豆| 看av免费毛片手机播放| 国产精品福利导航| 99人妻碰碰碰久久久久禁片| 中国国语毛片免费观看视频| 四虎国产精品永久一区| 毛片手机在线看| 精品天海翼一区二区| 国产精品久久久久久搜索| 美女无遮挡免费视频网站| 免费观看成人久久网免费观看| 欧美日韩成人在线观看| 日本午夜影院| 手机精品视频在线观看免费| 国产精品专区第1页| 精品国产99久久| 亚洲av日韩av制服丝袜| 欧美成人精品高清在线下载| a级毛片在线免费| 国产网友愉拍精品| 免费高清毛片| 草草线在成年免费视频2| 中文字幕自拍偷拍| 精品少妇人妻av无码久久| 东京热av无码电影一区二区| 99国产精品国产| 香蕉视频在线观看www| 国产精品亚洲五月天高清| 狠狠v日韩v欧美v| 亚洲午夜综合网| 国产精品视频a| 欧美精品黑人粗大| 九色在线视频导航91| 国产欧美视频一区二区三区| 日韩欧美高清视频| 亚洲动漫h| 手机成人午夜在线视频| 日本手机在线视频| 四虎永久在线精品国产免费| 欧美精品另类| 亚洲精品无码久久久久苍井空| 欧美 亚洲 日韩 国产| 国产18在线播放| 国产一级二级在线观看| 久久精品人人做人人爽97| 亚洲bt欧美bt精品| 色综合久久久久8天国| 亚洲人成电影在线播放| a在线亚洲男人的天堂试看| 亚洲不卡无码av中文字幕| 四虎精品国产AV二区| 免费人成网站在线观看欧美|