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

基于Spark和微服務(wù)架構(gòu)的電影推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2021-04-13 08:46:36史愛(ài)武李險(xiǎn)貴
電腦知識(shí)與技術(shù) 2021年5期

史愛(ài)武 李險(xiǎn)貴

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

關(guān)鍵詞:推薦系統(tǒng);Spark;ALS;微服務(wù)架構(gòu)

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 背景

大數(shù)據(jù)時(shí)代用戶面臨信息過(guò)載的問(wèn)題,為了從海量數(shù)據(jù)中找到用戶可能感興趣的信息,由此產(chǎn)生了推薦系統(tǒng)。日常生活中常見(jiàn)的有電商、電影、音樂(lè)和新聞推薦等[1]。隨著大數(shù)據(jù)技術(shù)如Spark、Flink等的發(fā)展成熟,其計(jì)算速度更快,可以更好地為廣大群眾服務(wù)。本文將基于Spark和微服務(wù)架構(gòu)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)易的電影推薦系統(tǒng)。

2 相關(guān)技術(shù)

2.1 推薦策略

推薦系統(tǒng)的實(shí)質(zhì)是對(duì)用戶或者物品的本身屬性即基本信息,或者是對(duì)用戶的行為數(shù)據(jù)進(jìn)行分析,通過(guò)特定的算法模型從海量數(shù)據(jù)中找到相關(guān)性,從而產(chǎn)生推薦的結(jié)果。常見(jiàn)的推薦策略有基于內(nèi)容的推薦、協(xié)同過(guò)濾推薦和混合推薦等[2]。

基于內(nèi)容的推薦,即根據(jù)物品自身的屬性特征計(jì)算物品間的相關(guān)性或相似性,再基于用戶的歷史偏好記錄為用戶推薦相似的物品?;趨f(xié)同過(guò)濾的推薦,即根據(jù)用戶評(píng)分矩陣,用戶和物品協(xié)同作戰(zhàn)。協(xié)同過(guò)濾推薦可分為基于內(nèi)存的協(xié)同過(guò)濾Memory-based CF和基于模型的協(xié)同過(guò)濾Model-based CF。Memory-based 可分為基于用戶的協(xié)同過(guò)濾User-based CF和基于物品的協(xié)同過(guò)濾Item-based CF[3]?;旌贤扑],即多種算法按照不同的策略進(jìn)行混合后再推薦,常見(jiàn)的混合推薦有加權(quán)、切換、分區(qū)、分層、瀑布式混合、特征組合和特征增強(qiáng)等[4]。

2.2 Spark介紹

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

2.3 微服務(wù)架構(gòu)

微服務(wù)架構(gòu)將單一應(yīng)用細(xì)分為多個(gè)微服務(wù),可以獨(dú)立開(kāi)發(fā)和部署每個(gè)微服務(wù),便于開(kāi)發(fā)和維護(hù)。多個(gè)微服務(wù)之間互相協(xié)調(diào)、互相配合。常見(jiàn)的微服務(wù)架構(gòu)有Spring Cloud和Dubbo等等。微服務(wù)架構(gòu)體系包含服務(wù)注冊(cè)與發(fā)現(xiàn)、服務(wù)調(diào)用、服務(wù)降級(jí)、服務(wù)網(wǎng)關(guān)、服務(wù)配置和服務(wù)總線等[6],對(duì)應(yīng)的組件如表1所示。

3 系統(tǒng)設(shè)計(jì)

3.1 架構(gòu)設(shè)計(jì)

本系統(tǒng)采用微服務(wù)架構(gòu),并基于前后端分離設(shè)計(jì)理念。系統(tǒng)架構(gòu)設(shè)計(jì)如下圖1,首先選取MovieLens電影數(shù)據(jù)集ml-1m,并基于Spark進(jìn)行數(shù)據(jù)處理,將結(jié)果存入到MongoDB中;然后基于Spring Boot搭建電影后臺(tái)微服務(wù),同時(shí)將服務(wù)注冊(cè)到Nacos中;前端基于Vue等進(jìn)行開(kāi)發(fā),通過(guò)服務(wù)網(wǎng)關(guān)Gateway訪問(wèn)不同的服務(wù),并由Feign調(diào)用具體的微服務(wù)[7]。

3.2 功能模塊

本系統(tǒng)主要分為數(shù)據(jù)處理部分和電影后臺(tái)微服務(wù)部分。如圖2其中數(shù)據(jù)處理主要包括離線統(tǒng)計(jì)模塊和離線推薦模塊,離線統(tǒng)計(jì)模塊包含最新電影推薦和熱門(mén)電影推薦功能;離線推薦模塊包含基于交替最小二乘法ALS的協(xié)同過(guò)濾推薦、基于物品的協(xié)同過(guò)濾推薦和基于內(nèi)容的推薦;電影后臺(tái)服務(wù)包含電影模塊和用戶模塊等。

4 系統(tǒng)實(shí)現(xiàn)

4.1 開(kāi)發(fā)工具和開(kāi)發(fā)環(huán)境

實(shí)現(xiàn)一個(gè)簡(jiǎn)易的基于微服務(wù)架構(gòu)的電影推薦系統(tǒng),選取IntelliJ IDEA和Visual Studio Code為開(kāi)發(fā)工具,開(kāi)發(fā)環(huán)境如下表2。

4.2 熱門(mén)電影推薦實(shí)現(xiàn)

熱門(mén)電影推薦考慮最近每周內(nèi)每部電影的評(píng)分次數(shù),評(píng)分次數(shù)越多說(shuō)明該電影的熱度越高。具體流程如下。

1)加載數(shù)據(jù)集。

2)統(tǒng)計(jì)最近每周電影的評(píng)分次數(shù)并進(jìn)行降序排序。

3)將結(jié)果存入到MongoDB中。

4.3 基于ALS的協(xié)同過(guò)濾推薦實(shí)現(xiàn)

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

1)加載數(shù)據(jù)集并隨機(jī)切分為訓(xùn)練集和測(cè)試集。

2)多次調(diào)整ALS的參數(shù)如迭代次數(shù)iteration、隱特征個(gè)數(shù)k和正則化系數(shù)lambda等對(duì)模型進(jìn)行訓(xùn)練。

3)計(jì)算每種參數(shù)組合下測(cè)試集預(yù)測(cè)評(píng)分與實(shí)際評(píng)分之間的均方根誤差RMSE。

4)選取RMSE最小時(shí)的參數(shù)組合作為ALS的最優(yōu)參數(shù)組合。

5)通過(guò)訓(xùn)練ALS模型得到電影隱特征矩陣。

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

7)將結(jié)果存入到MongoDB中。

4.4 基于物品的協(xié)同過(guò)濾推薦實(shí)現(xiàn)

基于物品的協(xié)同過(guò)濾是根據(jù)用戶的行為數(shù)據(jù)如評(píng)分、點(diǎn)擊、收藏等計(jì)算出兩物品間的相似度,即兩物品間有相同的受眾,表示兩物品間有相關(guān)性。以用戶評(píng)分記錄為例,具體流程如下。

1)加載數(shù)據(jù)集。

2)統(tǒng)計(jì)每部電影的評(píng)分個(gè)數(shù),并根據(jù)電影ID進(jìn)行組合。

3)統(tǒng)計(jì)兩兩電影被同一用戶評(píng)過(guò)分的次數(shù)。

4)計(jì)算兩兩電影間的同現(xiàn)相似度并按相似度降序排序。

5)將結(jié)果存入到MongoDB中。

4.5 電影后臺(tái)服務(wù)實(shí)現(xiàn)

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

5 結(jié)束語(yǔ)

通過(guò)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)易的電影推薦系統(tǒng),對(duì)Spark進(jìn)行數(shù)據(jù)處理和微服務(wù)架構(gòu)等有更深入的了解,同時(shí)也了解了不同推薦算法的具體流程,本系統(tǒng)暫時(shí)包含最新電影推薦、熱門(mén)電影推薦、基于ALS的協(xié)同過(guò)濾推薦、基于物品的協(xié)同過(guò)濾推薦、基于內(nèi)容的推薦、用戶注冊(cè)登錄和電影展示等功能。未來(lái)的研究工作將結(jié)合kmeans和深度學(xué)習(xí)等模型進(jìn)行推薦,提高推薦的多樣性和準(zhǔn)確率,同時(shí)也可考慮進(jìn)行實(shí)時(shí)推薦。

參考文獻(xiàn):

[1] 項(xiàng)亮.推薦系統(tǒng)實(shí)踐[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] 張志威.個(gè)性化推薦算法研究綜述[J].信息與電腦(理論版),2018(17):27-29.

[5] 林子雨.大數(shù)據(jù)技術(shù)原理與應(yīng)用:概念、存儲(chǔ)、處理、分析與應(yīng)用[M].2版.北京:人民郵電出版社,2017.

[6] 馮志勇,徐硯偉,薛霄,等.微服務(wù)技術(shù)發(fā)展的現(xiàn)狀與展望[J].計(jì)算機(jī)研究與發(fā)展,2020,57(5):1103-1122.

[7] 熊其昌.基于微服務(wù)架構(gòu)的學(xué)習(xí)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中師范大學(xué),2020.

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

【通聯(lián)編輯:謝媛媛】

主站蜘蛛池模板: 国产专区综合另类日韩一区| 538国产视频| 沈阳少妇高潮在线| 国产超碰在线观看| 国产精品一区二区在线播放| 1769国产精品视频免费观看| 青青草原国产| 国产一级毛片在线| 色国产视频| 亚洲欧美一级一级a| 欧美国产日韩在线| 亚洲专区一区二区在线观看| 中文字幕av一区二区三区欲色| 午夜限制老子影院888| 波多野结衣一区二区三视频 | 精品一区二区三区中文字幕| 亚洲a级在线观看| 国产男人的天堂| 国产午夜精品一区二区三区软件| 国产资源免费观看| 国产午夜福利片在线观看| 无码国产伊人| 成人在线观看不卡| 亚洲国产日韩欧美在线| 国产在线观看99| 成人免费午夜视频| 免费观看成人久久网免费观看| 91欧美在线| 毛片基地美国正在播放亚洲 | 2020精品极品国产色在线观看| 久久视精品| 日韩精品专区免费无码aⅴ| 中文字幕日韩久久综合影院| P尤物久久99国产综合精品| 欧美日韩中文国产va另类| 精品欧美日韩国产日漫一区不卡| 91小视频版在线观看www| 亚洲熟女偷拍| 国产一区二区三区在线观看免费| 国产亚洲精品va在线| 日本不卡在线| 国产白浆在线观看| 久久国产毛片| 国产女人爽到高潮的免费视频| 在线观看国产小视频| 国产精品九九视频| 国产激情在线视频| 欧美一级99在线观看国产| 国产精品免费p区| 亚洲有无码中文网| 波多野结衣中文字幕久久| 国产日本一线在线观看免费| 国产三级国产精品国产普男人| 亚洲人成电影在线播放| 亚洲综合色区在线播放2019| 亚洲人在线| 国产00高中生在线播放| 中国一级毛片免费观看| 国产精品污污在线观看网站| 久久中文电影| 成年看免费观看视频拍拍| 国产综合精品日本亚洲777| 亚洲国产AV无码综合原创| 天天综合网色中文字幕| 久热re国产手机在线观看| 色悠久久久久久久综合网伊人| 国产在线精品美女观看| 国产欧美日韩综合在线第一| 伊人天堂网| 国产亚洲精| AV熟女乱| 69av免费视频| 国产精品开放后亚洲| 国产成人无码久久久久毛片| 毛片卡一卡二| 国产无码网站在线观看| 亚洲欧洲天堂色AV| 国产欧美专区在线观看| 欧美特级AAAAAA视频免费观看| 99中文字幕亚洲一区二区| 久操中文在线| 激情网址在线观看|